From 39a73b2058f92d2367390a1a2e549ccf9155a7e8 Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Sat, 3 Feb 2024 03:16:04 +0200 Subject: [PATCH 01/30] Update model_generator.sh --- model_generator.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/model_generator.sh b/model_generator.sh index e7231f19a..a2b016bb0 100755 --- a/model_generator.sh +++ b/model_generator.sh @@ -5,4 +5,6 @@ cd cw_bitcoin && flutter pub get && flutter packages pub run build_runner build cd cw_haven && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. cd cw_nano && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. cd cw_bitcoin_cash && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. -flutter packages pub run build_runner build --delete-conflicting-outputs \ No newline at end of file +cd cw_ethereum && flutter pub get && cd .. +cd cw_polygon && flutter pub get && cd .. +flutter packages pub run build_runner build --delete-conflicting-outputs From 3945a3d7b43a14646c3459fe0daacfc127487d3d Mon Sep 17 00:00:00 2001 From: Matthew Fosse Date: Tue, 6 Feb 2024 12:12:51 -0800 Subject: [PATCH 02/30] Cw 577 translation fixes (#1290) * pt.1 * alphabetize * alphabetize translation files * revert trailing comma addition * fix translations --- res/values/strings_ar.arb | 1483 +++++++++---------- res/values/strings_bg.arb | 1475 +++++++++---------- res/values/strings_cs.arb | 1475 +++++++++---------- res/values/strings_de.arb | 1495 +++++++++---------- res/values/strings_en.arb | 1497 +++++++++---------- res/values/strings_es.arb | 1495 +++++++++---------- res/values/strings_fr.arb | 1495 +++++++++---------- res/values/strings_ha.arb | 1459 +++++++++---------- res/values/strings_hi.arb | 1495 +++++++++---------- res/values/strings_hr.arb | 1497 +++++++++---------- res/values/strings_id.arb | 1467 +++++++++---------- res/values/strings_it.arb | 1491 +++++++++---------- res/values/strings_ja.arb | 1491 +++++++++---------- res/values/strings_ko.arb | 1493 +++++++++---------- res/values/strings_my.arb | 1487 +++++++++---------- res/values/strings_nl.arb | 1491 +++++++++---------- res/values/strings_pl.arb | 1491 +++++++++---------- res/values/strings_pt.arb | 1489 +++++++++---------- res/values/strings_ru.arb | 1491 +++++++++---------- res/values/strings_th.arb | 1487 +++++++++---------- res/values/strings_tl.arb | 1501 ++++++++++---------- res/values/strings_tr.arb | 1487 +++++++++---------- res/values/strings_uk.arb | 1491 +++++++++---------- res/values/strings_ur.arb | 1475 +++++++++---------- res/values/strings_yo.arb | 1485 +++++++++---------- res/values/strings_zh.arb | 1495 +++++++++---------- tool/append_translation.dart | 10 + tool/utils/translation/arb_file_utils.dart | 26 +- 28 files changed, 19385 insertions(+), 19329 deletions(-) diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 7ee08460d..6ccc3f9bf 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -1,775 +1,776 @@ { - "welcome": "مرحبا بك في", - "cake_wallet": "Cake Wallet", - "first_wallet_text": "محفظة رائعة ل Monero, Bitcoin, Ethereum, Litecoin و Haven", - "please_make_selection": "يرجى الأختيار لإنشاء أو استعادة محفظتك.", - "create_new": "إنشاء محفظة جديدة", - "restore_wallet": "استعادة محفظة", - "monero_com": "Monero.com بواسطة Cake Wallet", - "monero_com_wallet_text": "محفظة رائعة ل Monero", - "haven_app": "Haven بواسطة Cake Wallet", - "haven_app_wallet_text": "محفظة رائعة ل Haven", - "accounts": "حسابتي", - "edit": "تعديل", + "about_cake_pay": "يتيح لك Cake Pay شراء بطاقات هدايا بأصول افتراضية بسهولة ، ويمكن إنفاقها على الفور لدى أكثر من 150,000 تاجر في الولايات المتحدة.", "account": "حساب", + "accounts": "حسابتي", + "accounts_subaddresses": "الحسابات والعناوين الفرعية", + "activate": "تفعيل", + "active": "نشيط", + "active_cards": "البطاقات النشطة", + "activeConnectionsPrompt": "ﺎﻨﻫ ﺔﻄﺸﻨﻟﺍ ﺕﻻﺎﺼﺗﻻﺍ ﺮﻬﻈﺘﺳ", "add": "إضافة", + "add_contact": "ﻝﺎﺼﺗﺍ ﺔﻬﺟ ﺔﻓﺎﺿﺇ", + "add_custom_node": "إضافة عقدة مخصصة جديدة", + "add_custom_redemption": "إضافة استرداد مخصص", + "add_fund_to_card": "أضف أموالاً مدفوعة مسبقًا إلى البطاقات (حتى ${value})", + "add_new_node": "أضافة عقدة جديدة", + "add_new_word": "أضف كلمة جديدة", + "add_receiver": "أضف مستقبل آخر (اختياري)", + "add_secret_code": " ﺔﻗﺩﺎﺼﻤﻟﺍ ﻖﻴﺒﻄﺗ ﻰﻟﺇ ﻱﺮﺴﻟﺍ ﺰﻣﺮﻟﺍ ﺍﺬﻫ ﻒﺿﺃ ﻭﺃ", + "add_tip": "أضف بقشيش", + "add_token_disclaimer_check": "لقد قمت بتأكيد عنوان ومعلومات عقد الرمز المميز باستخدام مصدر حسن السمعة. يمكن أن تؤدي إضافة معلومات خبيثة أو غير صحيحة إلى خسارة الأموال.", + "add_token_warning": "لا تقم بتحرير أو إضافة رموز وفقًا لتعليمات المحتالين.\nقم دائمًا بتأكيد عناوين الرموز مع مصادر حسنة السمعة!", + "add_value": "إضافة قيمة", + "address": " ﻥﺍﻮﻨﻋ", "address_book": "دليل العناوين", - "contact": "تواصل", - "please_select": "الرجاء الأختيار:", - "cancel": "إلغاء", - "ok": "حسناً", - "contact_name": "اسم جهة الاتصال", - "reset": "إعادة", - "save": "حفظ", + "address_book_menu": "دليل العناوين", + "address_detected": "تم ايجاد العنوان", + "address_from_domain": "هذا العنوان من ${domain} من Unstoppable Domains", + "address_from_yat": "هذا العنوان من ${emoji} على Yat", + "address_label": "تسمية عنوان", "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": "عمليات التداول", - "filter_by": "تصفية حسب", - "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": "بدعم من ${title}", - "error": "خطأ", - "estimated": "مُقدَّر", - "min_value": "الحد الأدنى: ${value} ${currency}", - "max_value": "الحد الأقصى: ${value} ${currency}", - "change_currency": "تغيير العملة", - "overwrite_amount": "تغير المبلغ", - "qr_payment_amount": "يحتوي هذا ال QR على مبلغ الدفع. هل تريد تغير المبلغ فوق القيمة الحالية؟", - "copy_id": "نسخ معرف العملية", - "exchange_result_write_down_trade_id": "يرجى نسخ أو كتابة معرّف العملية للمتابعة.", - "trade_id": "معرف عملية التبادل:", - "copied_to_clipboard": "نسخ إلى الحافظة", - "saved_the_trade_id": "لقد تم حفظ معرف العملية", - "fetching": "جار الجلب", - "id": "رقم المعرف:", - "amount": "مقدار:", - "payment_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": "* يرجى نسخ أو كتابة معرف هويتك الأعلى لحفظة.", - "confirm": "تأكيد", - "confirm_sending": "تأكيد الإرسال", - "commit_transaction_amount_fee": "تنفيذ الصفقة\nالمبلغ: ${amount}\nالرسوم: ${fee}", - "sending": "يتم الإرسال", - "transaction_sent": "تم إرسال المعاملة!", - "expired": "منتهي الصلاحية", - "time": "${minutes}د ${seconds}س", - "send_xmr": "أرسل XMR", - "exchange_new_template": "قالب جديد", - "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_to_get_address": "امسح ال QR للحصول على العنوان", - "qr_fullscreen": "انقر لفتح ال QR بملء الشاشة", - "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": "مفتاح العرض (خاص)", - "restore_spend_key_private": "مفتاح الإنفاق (خاص)", - "restore_recover": "استعادة", - "restore_wallet_restore_description": "وصف استعادة المحفظة", - "restore_new_seed": "سييد جديدة", - "restore_active_seed": "السييد النشطة", - "restore_bitcoin_description_from_seed": "قم باستعادة محفظتك من كود مكون من 24 كلمة", - "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": "لغة البذور", - "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": "الأسبانية", - "seed_language_french": "فرنسي", - "seed_language_italian": "إيطالي", - "send_title": "إرسال", - "send_your_wallet": "محفظتك", - "send_address": "عنوان ${cryptoCurrency}", - "send_payment_id": "معرف عملية الدفع (اختياري)", + "advanced_settings": "إعدادات متقدمة", + "aggressive": "عنيف", + "agree": "موافق", + "agree_and_continue": "الموافقة ومتابعة", + "agree_to": "من خلال إنشاء حساب فإنك توافق على", "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": "الأسم", - "got_it": "فهمتك", - "send_sending": "يتم الإرسال...", - "send_success": "تم إرسال ${crypto} الخاص بك بنجاح", - "settings_title": "إعدادات", - "settings_nodes": "العقد", - "settings_current_node": "العقدة الحالية", - "settings_wallets": "المحافظ", - "settings_display_balance": "عرض الرصيد", - "settings_currency": "العملة", - "settings_fee_priority": "رسوم الأولوية", - "settings_save_recipient_address": "حفظ عنوان المستلم", - "settings_personal": "شخصي", - "settings_change_pin": "تغيير 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_key_public": "مفتاح العرض (عام)", - "spend_key_private": "مفتاح الإنفاق (خاص)", - "spend_key_public": "مفتاح الإنفاق (عام)", - "copied_key_to_clipboard": "تم نسخ ${key} إلى الحافظة", - "new_subaddress_title": "عنوان جديد", - "new_subaddress_label_name": "تسمية", - "new_subaddress_create": "إنشاء", - "address_label": "تسمية عنوان", - "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_edit_wallet": "تحرير المحفظة", - "wallet_list_wallet_name": "اسم المحفظة", - "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ويجب أن يتراوح بين حرف واحد و 15 حرفًا", - "error_text_contact_name": "لا يمكن أن يحتوي اسم جهة الاتصال على الرموز ` , ' \"\nويجب أن يتراوح بين حرف و 32 حرفًا", - "error_text_address": "يجب أن يتوافق عنوان المحفظة مع نوع\nالعملة المشفرة", - "error_text_node_address": "الرجاء إدخال عنوان IPv4", - "error_text_node_port": "منفذ العقدة يمكن أن يحتوي فقط على أرقام بين 0 و 65535", - "error_text_node_proxy_address": "الرجاء إدخال <عنوان IPv4>: ، على سبيل المثال 127.0.0.1:9050", - "error_text_payment_id": "يمكن أن يحتوي معرّف الدفع فقط من 16 إلى 64 حرفًا hex", - "error_text_xmr": "لا يمكن أن تتجاوز قيمة XMR الرصيد المتاح.\nيجب أن يكون عدد الكسور أقل من أو يساوي 12", - "error_text_fiat": "لا يمكن أن تتجاوز قيمة المبلغ الرصيد المتاح.\nيجب أن يكون عدد الكسور أقل أو يساوي 2", - "error_text_subaddress_name": "لا يمكن أن يحتوي اسم العنوان الفرعي على رموز ` , ' \"\nويجب أن يتراوح طولها بين حرف واحد و 20 حرفًا", - "error_text_amount": "يجب أن يحتوي المبلغ على أرقام فقط", - "error_text_wallet_name": "يمكن أن يحتوي اسم المحفظة على أحرف وأرقام ورموز _ - فقط\nويجب أن يتراوح طولها بين حرف واحد و 33 حرفًا", - "error_text_keys": "يمكن أن تحتوي مفاتيح المحفظة على 64 حرفًا hex", - "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 حرفًا", + "all_trades": "جميع عمليات التداول", + "all_transactions": "كل التحركات المالية", + "alphabetical": "مرتب حسب الحروف الأبجدية", + "already_have_account": "لديك حساب؟", + "always": "دائماً", + "amount": "مقدار:", + "amount_is_estimate": "المبلغ المستلم هو تقدير", + "amount_is_guaranteed": "مبلغ الاستلام مضمون", + "and": "و", + "anonpay_description": "توليد ${type}. يمكن للمستلم ${method} بأي عملة مشفرة مدعومة ، وستتلقى أموالاً في هذه", + "apk_update": "تحديث APK", + "approve": "ﺪﻤﺘﻌﻳ", + "arrive_in_this_address": "سيصل ${currency} ${tag}إلى هذا العنوان", + "ascending": "تصاعدي", + "ask_each_time": "اسأل في كل مرة", "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": "متصل", - "sync_status_attempting_sync": "جاري محاولة المزامنة", - "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": "تم أرسل Btc", - "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}", - "extracted_address_content": "سوف ترسل الأموال إلى\n${recipient_name}", - "card_address": "العنوان:", - "buy": "اشتري", - "sell": "بيع", - "placeholder_transactions": "سيتم عرض معاملاتك هنا", - "placeholder_contacts": "سيتم عرض جهات الاتصال الخاصة بك هنا", - "template": "قالب", - "confirm_delete_template": "سيؤدي هذا الإجراء إلى حذف هذا القالب. هل ترغب في الاستمرار؟", - "confirm_delete_wallet": "سيؤدي هذا الإجراء إلى حذف هذه المحفظة. هل ترغب في الاستمرار؟", - "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", - "trusted": "موثوق به", - "color_theme": "سمة اللون", - "light_theme": "فاتح", - "bright_theme": "مشرق", - "dark_theme": "داكن", - "enter_your_note": "أدخل ملاحظتك ...", - "note_optional": "ملاحظة (اختياري)", - "note_tap_to_change": "ملاحظة (انقر للتغيير)", - "view_in_block_explorer": "عرض في Block Explorer", - "view_transaction_on": "عرض العملية على", - "transaction_key": "مفتاح العملية", - "confirmations": "التأكيدات", - "recipient_address": "عنوان المستلم", - "extra_id": "معرف إضافي:", - "destination_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 للتبادل", - "xrp_extra_info": "من فضلك لا تنس تحديد علامة الوجهة أثناء إرسال معاملة XRP للتبادل", - "exchange_incorrect_current_wallet_for_xmr": "إذا كنت ترغب في استبدال XMR من رصيد Cake Wallet Monero ، فيرجى التبديل إلى محفظة Monero أولاً.", - "confirmed": "رصيد مؤكد", - "unconfirmed": "رصيد غير مؤكد", - "displayable": "قابل للعرض", - "submit_request": "تقديم طلب", - "buy_alert_content": ".ﺎﻬﻴﻟﺇ ﻞﻳﺪﺒﺘﻟﺍ ﻭﺃ Monero ﻭﺃ Litecoin ﻭﺃ Ethereum ﻭﺃ Bitcoin ﺔﻈﻔﺤﻣ ءﺎﺸﻧﺇ ﻰﺟﺮﻳ .", - "sell_alert_content": ".ﺎﻬﻴﻟﺇ ﻞﻳﺪﺒﺘﻟﺍ ﻭﺃ Litecoin ﻭﺃ Ethereum ﻭﺃ Bitcoin ﺔﻈﻔﺤﻣ ءﺎﺸﻧﺇ ﻰﺟﺮﻳ .Litecoin ﻭ", - "outdated_electrum_wallet_description": "محافظ Bitcoin الجديدة التي تم إنشاؤها في Cake الآن سييد مكونة من 24 كلمة. من الضروري أن تقوم بإنشاء محفظة Bitcoin جديدة وتحويل جميع أموالك إلى المحفظة الجديدة المكونة من 24 كلمة ، والتوقف عن استخدام محافظ سييد مكونة من 12 كلمة. يرجى القيام بذلك على الفور لتأمين أموالك.", - "understand": "لقد فهمت", - "apk_update": "تحديث APK", - "buy_bitcoin": "شراء Bitcoin", - "buy_with": "اشتر بواسطة", - "moonpay_alert_text": "يجب أن تكون قيمة المبلغ أكبر من أو تساوي ${minAmount} ${fiatCurrency}", - "outdated_electrum_wallet_receive_warning": "إذا كانت هذه المحفظة تحتوي على سييد مكونة من 12 كلمة وتم إنشاؤها في Cake ، فلا تقم بإيداع Bitcoin في هذه المحفظة. قد يتم فقد أي BTC تم تحويله إلى هذه المحفظة. قم بإنشاء محفظة جديدة مكونة من 24 كلمة (انقر فوق القائمة في الجزء العلوي الأيمن ، وحدد محافظ ، واختر إنشاء محفظة جديدة ، ثم حدد Bitcoin) وقم على الفور بنقل BTC الخاص بك هناك. محافظ BTC الجديدة (24 كلمة) من Cake آمنة", - "do_not_show_me": "لا ترني هذا مجددا", - "unspent_coins_title": "العملات الغير المنفقة", - "unspent_coins_details_title": "تفاصيل العملات الغير المنفقة", - "freeze": "تجميد", - "frozen": "مجمدة", - "coin_control": "التحكم في العملة (اختياري)", - "address_detected": "تم ايجاد العنوان", - "address_from_domain": "هذا العنوان من ${domain} من Unstoppable Domains", - "add_receiver": "أضف مستقبل آخر (اختياري)", - "manage_yats": "إدارة Yats", - "yat_alert_title": "أرسل واستقبل العملات المشفرة بسهولة أكبر مع Yat", - "yat_alert_content": "يمكن لمستخدمي Cake Wallet الآن إرسال واستلام جميع عملاتهم المفضلة باستخدام اسم مستخدم فريد من نوعه قائم على الرموز التعبيرية.", - "get_your_yat": "احصل على Yat", - "connect_an_existing_yat": "توصيل Yat الحالي", - "connect_yats": "توصيل Yats", - "yat_address": "عنوان Yat", - "yat": "Yat", - "address_from_yat": "هذا العنوان من ${emoji} على Yat", - "yat_error": "خطأ Yat", - "yat_error_content": "لا توجد عناوين مرتبطة بهذا Yat. جرب يات آخر", - "choose_address": "\n\nالرجاء اختيار عنوان:", - "yat_popup_title": "يمكن تحويل عنوان محفظتك إلى رموز تعبيرية.", - "yat_popup_content": "يمكنك الآن إرسال واستلام العملات المشفرة في Cake Wallet باستخدام Yat - اسم مستخدم قصير يعتمد على الرموز التعبيرية. إدارة Yats في أي وقت على شاشة الإعدادات", - "second_intro_title": "عنوان تعبيري ايموجي واحد يحكمهم جميعا!", - "second_intro_content": "Yat الخاص بك هو عنوان تعبيري فريد يحل محل جميع العناوين السداسية العشرية الطويلة لجميع عملاتك.", - "third_intro_title": "يتماشي Yat بلطف مع الآخرين", - "third_intro_content": "يعيش Yats خارج Cake Wallet أيضًا. يمكن استبدال أي عنوان محفظة على وجه الأرض بـ Yat!", - "learn_more": "اعرف المزيد", - "search": "بحث", - "search_language": "ابحث عن لغة", - "search_currency": "ابحث عن عملة", - "new_template": "قالب جديد", - "electrum_address_disclaimer": "نقوم بإنشاء عناوين جديدة في كل مرة تستخدم فيها عنوانًا ، لكن العناوين السابقة تستمر في العمل", - "wallet_name_exists": "توجد بالفعل محفظة بهذا الاسم. الرجاء اختيار اسم مختلف أو إعادة تسمية المحفظة الأخرى أولاً.", - "market_place": "منصة التجارة", - "cake_pay_title": "بطاقات هدايا Cake Pay", - "cake_pay_subtitle": "شراء بطاقات هدايا مخفضة السعر (الولايات المتحدة فقط)", - "cake_pay_web_cards_title": "بطاقات Cake Pay Web", - "cake_pay_web_cards_subtitle": "اشتري بطاقات مدفوعة مسبقا وبطاقات هدايا في جميع أنحاء العالم", - "about_cake_pay": "يتيح لك Cake Pay شراء بطاقات هدايا بأصول افتراضية بسهولة ، ويمكن إنفاقها على الفور لدى أكثر من 150,000 تاجر في الولايات المتحدة.", - "cake_pay_account_note": "قم بالتسجيل باستخدام عنوان بريد إلكتروني فقط لمشاهدة البطاقات وشرائها. حتى أن بعضها متوفر بسعر مخفض!", - "already_have_account": "لديك حساب؟", - "create_account": "إنشاء حساب", - "privacy_policy": "سياسة الخصوصية", - "welcome_to_cakepay": "مرحبا بكم في Cake Pay!", - "sign_up": "اشتراك", - "forgot_password": "هل نسيت كلمة السر", - "reset_password": "إعادة تعيين كلمة المرور", - "gift_cards": "بطاقات الهدايا", - "setup_your_debit_card": "قم بإعداد بطاقة ائتمان الخاصة بك", - "no_id_required": "لا ID مطلوب. اشحن وانفق في أي مكان", - "how_to_use_card": "كيفية استخدام هذه البطاقة", - "purchase_gift_card": "شراء بطاقة هدايا", - "verification": "تَحَقّق", - "fill_code": "يرجى ملء رمز التحقق المرسل إلى بريدك الإلكتروني", - "didnt_get_code": "لم تحصل على رمز؟", - "resend_code": "الرجاء إعادة إرسالها", - "debit_card": "بطاقة ائتمان", - "cakepay_prepaid_card": "بطاقة ائتمان CakePay مسبقة الدفع", - "no_id_needed": "لا حاجة لID!", - "frequently_asked_questions": "الأسئلة الشائعة", - "debit_card_terms": "يخضع تخزين واستخدام رقم بطاقة الدفع الخاصة بك (وبيانات الاعتماد المقابلة لرقم بطاقة الدفع الخاصة بك) في هذه المحفظة الرقمية لشروط وأحكام اتفاقية حامل البطاقة المعمول بها مع جهة إصدار بطاقة الدفع ، كما هو معمول به من وقت لآخر.", - "please_reference_document": "يرجى الرجوع إلى الوثائق أدناه لمزيد من المعلومات.", - "cardholder_agreement": "اتفاقية حامل البطاقة", - "e_sign_consent": "الموافقة على التوقيع الإلكتروني", - "agree_and_continue": "الموافقة ومتابعة", - "email_address": "عنوان البريد الالكترونى", - "agree_to": "من خلال إنشاء حساب فإنك توافق على", - "and": "و", - "enter_code": "ادخل الرمز", - "congratulations": "تهانينا!", - "you_now_have_debit_card": "لديك الآن بطاقة ائتمان", - "min_amount": "الحد الأدنى: ${value}", - "max_amount": "الحد الأقصى: ${value}", - "enter_amount": "أدخل المبلغ", - "billing_address_info": "إذا طُلب منك عنوان إرسال فواتير ، فأدخل عنوان الشحن الخاص بك", - "order_physical_card": "طلب البطاقة المادية", - "add_value": "إضافة قيمة", - "activate": "تفعيل", - "get_a": "احصل على", - "digital_and_physical_card": " بطاقة ائتمان رقمية ومادية مسبقة الدفع", - "get_card_note": " يمكنك إعادة تحميلها بالعملات الرقمية. لا توجد معلومات إضافية مطلوبة!", - "signup_for_card_accept_terms": "قم بالتسجيل للحصول على البطاقة وقبول الشروط.", - "add_fund_to_card": "أضف أموالاً مدفوعة مسبقًا إلى البطاقات (حتى ${value})", - "use_card_info_two": "يتم تحويل الأموال إلى الدولار الأمريكي عند الاحتفاظ بها في الحساب المدفوع مسبقًا ، وليس بالعملات الرقمية.", - "use_card_info_three": "استخدم البطاقة الرقمية عبر الإنترنت أو مع طرق الدفع غير التلامسية.", - "optionally_order_card": "اختياريا اطلب بطاقة فعلية (مادية).", - "hide_details": "أخف التفاصيل", - "show_details": "اظهر التفاصيل", - "upto": "حتى ${value}", - "discount": "وفر ${value}٪", - "gift_card_amount": "مبلغ بطاقة الهدايا", - "bill_amount": "مبلغ الفاتورة", - "you_pay": "انت تدفع", - "tip": "بقشيش:", - "custom": "مخصصة", - "by_cake_pay": "عن طريق Cake Pay", - "expires": "تنتهي", - "mm": "MM", - "yy": "YY", - "online": "متصل", - "offline": "غير متصل على الانترنت", - "gift_card_number": "رقم بطاقة الهدية", - "pin_number": "الرقم السري", - "total_saving": "إجمالي المدخرات", - "last_30_days": "آخر 30 يومًا", - "avg_savings": "متوسط مدخرات", - "view_all": "مشاهدة الكل", - "active_cards": "البطاقات النشطة", - "delete_account": "حذف الحساب", - "cards": "البطاقات", - "active": "نشيط", - "redeemed": "استردت", - "gift_card_balance_note": "ستظهر هنا بطاقات الهدايا ذات الرصيد المتبقي", - "gift_card_redeemed_note": "ستظهر هنا بطاقات الهدايا التي استردت قيمتها", - "logout": "تسجيل خروج", - "add_tip": "أضف بقشيش", - "percentageOf": "من ${amount}", - "is_percentage": "يكون", - "search_category": "فئة البحث", - "mark_as_redeemed": "وضع علامة كمسترد", - "more_options": "المزيد من الخيارات", - "awaiting_payment_confirmation": "في انتظار تأكيد الدفع", - "transaction_sent_notice": "إذا لم تستمر الشاشة بعد دقيقة واحدة ، فتحقق من مستكشف البلوك والبريد الإلكتروني.", - "agree": "موافق", - "in_store": "في المتجر", - "generating_gift_card": "يتم توليد بطاقة هدية", - "payment_was_received": "تم استلام الدفع الخاص بك.", - "proceed_after_one_minute": "إذا لم تستمر الشاشة بعد دقيقة واحدة ، فتحقق من بريدك الإلكتروني.", - "order_id": "رقم التعريف الخاص بالطلب", - "gift_card_is_generated": "تم إنشاء بطاقة الهدايا", - "open_gift_card": "افتح بطاقة الهدية", - "contact_support": "اتصل بالدعم", - "gift_cards_unavailable": "تتوفر بطاقات الهدايا للشراء فقط باستخدام Monero و Bitcoin و Litecoin في الوقت الحالي", - "introducing_cake_pay": "نقدم لكم Cake Pay!", - "cake_pay_learn_more": "شراء واسترداد بطاقات الهدايا على الفور في التطبيق!\nاسحب من اليسار إلى اليمين لمعرفة المزيد.", + "authenticated": "تم المصادقة", + "authentication": "المصادقة", + "auto_generate_subaddresses": "تلقائي توليد subddresses", "automatic": "تلقائي", - "fixed_pair_not_supported": "هذا الزوج الثابت غير مدعوم في التبادلات المحددة", - "variable_pair_not_supported": "هذا الزوج المتغير غير مدعوم في التبادلات المحددة", - "none_of_selected_providers_can_exchange": "لا يمكن لأي من مقدمي الخدمة المختارين إجراء هذا التبادل", - "choose_one": "اختر واحدة", - "choose_from_available_options": "اختر من بين الخيارات المتاحة:", - "custom_redeem_amount": "مبلغ الاسترداد مخصص", - "add_custom_redemption": "إضافة استرداد مخصص", - "remaining": "متبقي", - "delete_wallet": "حذف المحفظة", - "delete_wallet_confirm_message": "هل أنت متأكد أنك تريد حذف محفظة ${wallet_name}؟", - "low_fee": "رسوم منخفضة", - "low_fee_alert": "أنت تستخدم حاليًا أولوية منخفضة لرسوم الشبكة. قد يتسبب هذا في فترات انتظار طويلة ، أو أسعار مختلفة ، أو إلغاء صفقات. نوصي بتحديد رسوم أعلى لتجربة أفضل.", - "ignor": "تجاهل", - "use_suggested": "استخدام المقترح", - "do_not_share_warning_text": "لا تشارك هذه مع أي شخص آخر ، بما في ذلك الدعم.\n\nيمكن أن تتم سرقة أموالك!", - "help": "مساعده", - "all_transactions": "كل التحركات المالية", - "all_trades": "جميع عمليات التداول", - "connection_sync": "الاتصال والمزامنة", - "security_and_backup": "الأمان والنسخ الاحتياطي", - "create_backup": "انشئ نسخة احتياطية", - "privacy_settings": "إعدادات الخصوصية", - "privacy": "خصوصية", - "display_settings": "اعدادات العرض", - "other_settings": "اعدادات اخرى", - "require_pin_after": "طلب PIN بعد", - "always": "دائماً", - "minutes_to_pin_code": "${minutes} دقيقة", - "disable_exchange": "تعطيل التبادل", - "advanced_settings": "إعدادات متقدمة", - "settings_can_be_changed_later": "يمكن تغيير هذه الإعدادات لاحقًا في إعدادات التطبيق", - "add_custom_node": "إضافة عقدة مخصصة جديدة", - "disable_fiat": "تعطيل fiat", - "fiat_api": "Fiat API", - "disabled": "معطلة", - "enabled": "ممكنة", - "tor_only": "Tor فقط", - "unmatched_currencies": "عملة محفظتك الحالية لا تتطابق مع عملة QR الممسوحة ضوئيًا", - "orbot_running_alert": "يرجى التأكد من تشغيل Orbot قبل الاتصال بهذه العقدة.", - "bitcoin_payments_require_1_confirmation": "تتطلب مدفوعات Bitcoin تأكيدًا واحدًا ، والذي قد يستغرق 20 دقيقة أو أكثر. شكرا لصبرك! سيتم إرسال بريد إلكتروني إليك عند تأكيد الدفع.", - "send_to_this_address": "أرسل ${currency} ${tag}إلى هذا العنوان", - "arrive_in_this_address": "سيصل ${currency} ${tag}إلى هذا العنوان", - "do_not_send": "لا ترسل", - "error_dialog_content": "عفوًا ، لقد حصلنا على بعض الخطأ.\n\nيرجى إرسال تقرير التعطل إلى فريق الدعم لدينا لتحسين التطبيق.", - "scan_qr_code": "امسح رمز QR ضوئيًا", - "cold_or_recover_wallet": "أضف محفظة باردة أو استعد محفظة ورقية", - "please_wait": "انتظر من فضلك", - "sweeping_wallet": "كنس المحفظة", - "sweeping_wallet_alert": "لن يستغرق هذا وقتًا طويلاً. لا تترك هذه الشاشة وإلا فقد يتم فقد أموال سويبت", - "decimal_places_error": "عدد كبير جدًا من المنازل العشرية", - "edit_node": "تحرير العقدة", - "invoice_details": "تفاصيل الفاتورة", - "donation_link_details": "تفاصيل رابط التبرع", - "anonpay_description": "توليد ${type}. يمكن للمستلم ${method} بأي عملة مشفرة مدعومة ، وستتلقى أموالاً في هذه", - "create_invoice": "إنشاء فاتورة", - "create_donation_link": "إنشاء رابط التبرع", - "optional_email_hint": "البريد الإلكتروني إخطار المدفوع لأمره الاختياري", - "optional_description": "وصف اختياري", - "optional_name": "اسم المستلم الاختياري", - "clearnet_link": "رابط Clearnet", - "onion_link": "رابط البصل", - "settings": "إعدادات", - "sell_monero_com_alert_content": "بيع Monero غير مدعوم حتى الآن", - "error_text_input_below_minimum_limit": " المبلغ أقل من الحد الأدنى", - "error_text_input_above_maximum_limit": "المبلغ أكبر من الحد الأقصى", - "show_market_place": "إظهار السوق", - "prevent_screenshots": "منع لقطات الشاشة وتسجيل الشاشة", - "profile": "حساب تعريفي", - "close": "يغلق", - "modify_2fa": "تعديل 2 عامل المصادقة", - "disable_cake_2fa": "تعطيل 2 عامل المصادقة", - "question_to_disable_2fa": "هل أنت متأكد أنك تريد تعطيل Cake 2FA؟ لن تكون هناك حاجة إلى رمز 2FA للوصول إلى المحفظة ووظائف معينة.", - "disable": "إبطال", - "setup_2fa": "تعيين 2 عامل المصادقة", - "verify_with_2fa": "تحقق مع Cake 2FA", - "totp_code": "كود TOTP", - "please_fill_totp": "يرجى ملء الرمز المكون من 8 أرقام الموجود على جهازك الآخر", - "totp_2fa_success": "نجاح! تم تمكين Cake 2FA لهذه المحفظة. تذكر حفظ بذرة ذاكري في حالة فقد الوصول إلى المحفظة.", - "totp_verification_success": "تم التحقق بنجاح!", - "totp_2fa_failure": "شفرة خاطئة. يرجى تجربة رمز مختلف أو إنشاء مفتاح سري جديد. استخدم تطبيق 2FA متوافقًا يدعم الرموز المكونة من 8 أرقام و SHA512.", - "enter_totp_code": "الرجاء إدخال رمز TOTP.", - "add_secret_code": " ﺔﻗﺩﺎﺼﻤﻟﺍ ﻖﻴﺒﻄﺗ ﻰﻟﺇ ﻱﺮﺴﻟﺍ ﺰﻣﺮﻟﺍ ﺍﺬﻫ ﻒﺿﺃ ﻭﺃ", - "totp_secret_code": "كود TOTP السري", - "setup_2fa_text": " .ﻲﻧﺎﺜﻟﺍ ﺔﻗﺩﺎﺼﻤﻟﺍ ﻞﻣﺎﻌﻛ TOTP ﻡﺍﺪﺨﺘﺳﺎﺑ Cake 2FA ﻞﻤﻌﻳ", - "setup_totp_recommended": " TOTP ﺩﺍﺪﻋﺇ", - "disable_buy": "تعطيل إجراء الشراء", - "disable_sell": "قم بتعطيل إجراء البيع", - "cake_2fa_preset": " كعكة 2FA مسبقا", - "narrow": "ضيق", - "normal": "طبيعي", - "aggressive": "عنيف", - "require_for_assessing_wallet": "تتطلب الوصول إلى المحفظة", - "require_for_sends_to_non_contacts": "تتطلب لارسال لغير جهات الاتصال", - "require_for_sends_to_contacts": "تتطلب لارسال جهات الاتصال", - "require_for_sends_to_internal_wallets": "تتطلب عمليات الإرسال إلى المحافظ الداخلية", - "require_for_exchanges_to_internal_wallets": "تتطلب عمليات التبادل إلى المحافظ الداخلية", - "require_for_adding_contacts": "تتطلب إضافة جهات اتصال", - "require_for_creating_new_wallets": "تتطلب إنشاء محافظ جديدة", - "require_for_all_security_and_backup_settings": "مطلوب لجميع إعدادات الأمان والنسخ الاحتياطي", + "available_balance": "الرصيد المتوفر", "available_balance_description": "الرصيد المتاح هو الرصيد الذي يمكنك إنفاقه أو تحويله إلى محفظة أخرى. يتم تجميد الرصيد المتاح للمعاملات الصادرة والمعاملات الواردة غير المؤكدة.", - "syncing_wallet_alert_title": "محفظتك تتم مزامنتها", - "syncing_wallet_alert_content": "قد لا يكتمل رصيدك وقائمة المعاملات الخاصة بك حتى تظهر عبارة “SYNCHRONIZED“ في الأعلى. انقر / اضغط لمعرفة المزيد.", - "home_screen_settings": "إعدادات الشاشة الرئيسية", - "sort_by": "ترتيب حسب", - "search_add_token": "بحث / إضافة رمز", - "edit_token": "تحرير الرمز المميز", - "warning": "تحذير", - "add_token_warning": "لا تقم بتحرير أو إضافة رموز وفقًا لتعليمات المحتالين.\nقم دائمًا بتأكيد عناوين الرموز مع مصادر حسنة السمعة!", - "add_token_disclaimer_check": "لقد قمت بتأكيد عنوان ومعلومات عقد الرمز المميز باستخدام مصدر حسن السمعة. يمكن أن تؤدي إضافة معلومات خبيثة أو غير صحيحة إلى خسارة الأموال.", - "token_contract_address": "عنوان عقد الرمز", - "token_name": "اسم الرمز ، على سبيل المثال: Tether", - "token_symbol": "رمز العملة ، على سبيل المثال: USDT", - "token_decimal": "رمز عشري", - "field_required": "هذه الخانة مطلوبه", - "pin_at_top": "تثبيت ${token} في الأعلى", - "invalid_input": "مدخل غير صالح", - "fiat_balance": "الرصيد فيات", - "gross_balance": "إجمالي الرصيد", - "alphabetical": "مرتب حسب الحروف الأبجدية", - "generate_name": "توليد الاسم", + "avg_savings": "متوسط مدخرات", + "awaitDAppProcessing": ".ﺔﺠﻟﺎﻌﻤﻟﺍ ﻦﻣ dApp ﻲﻬﺘﻨﻳ ﻰﺘﺣ ﺭﺎﻈﺘﻧﻻﺍ ﻰﺟﺮﻳ", + "awaiting_payment_confirmation": "في انتظار تأكيد الدفع", + "backup": "نسخ الاحتياطي", + "backup_file": "ملف النسخ الاحتياطي", + "backup_password": "كلمة مرور النسخ الاحتياطي", "balance_page": "صفحة التوازن", - "share": "يشارك", - "slidable": "قابل للانزلاق", - "monero_dark_theme": "موضوع مونيرو الظلام", + "bill_amount": "مبلغ الفاتورة", + "billing_address_info": "إذا طُلب منك عنوان إرسال فواتير ، فأدخل عنوان الشحن الخاص بك", + "biometric_auth_reason": "امسح بصمة إصبعك للمصادقة", "bitcoin_dark_theme": "موضوع البيتكوين الظلام", "bitcoin_light_theme": "موضوع البيتكوين الخفيفة", - "high_contrast_theme": "موضوع عالي التباين", - "matrix_green_dark_theme": "موضوع ماتريكس الأخضر الداكن", - "monero_light_theme": " ضوء مونيرو", - "etherscan_history": "Etherscan تاريخ", - "template_name": "اسم القالب", + "bitcoin_payments_require_1_confirmation": "تتطلب مدفوعات Bitcoin تأكيدًا واحدًا ، والذي قد يستغرق 20 دقيقة أو أكثر. شكرا لصبرك! سيتم إرسال بريد إلكتروني إليك عند تأكيد الدفع.", + "Blocks_remaining": "بلوك متبقي ${status}", + "bright_theme": "مشرق", + "buy": "اشتري", + "buy_alert_content": ".ﺎﻬﻴﻟﺇ ﻞﻳﺪﺒﺘﻟﺍ ﻭﺃ Monero ﻭﺃ Litecoin ﻭﺃ Ethereum ﻭﺃ Bitcoin ﺔﻈﻔﺤﻣ ءﺎﺸﻧﺇ ﻰﺟﺮﻳ .", + "buy_bitcoin": "شراء Bitcoin", + "buy_provider_unavailable": "مزود حاليا غير متوفر.", + "buy_with": "اشتر بواسطة", + "by_cake_pay": "عن طريق Cake Pay", + "cake_2fa_preset": " كعكة 2FA مسبقا", + "cake_pay_account_note": "قم بالتسجيل باستخدام عنوان بريد إلكتروني فقط لمشاهدة البطاقات وشرائها. حتى أن بعضها متوفر بسعر مخفض!", + "cake_pay_learn_more": "شراء واسترداد بطاقات الهدايا على الفور في التطبيق!\nاسحب من اليسار إلى اليمين لمعرفة المزيد.", + "cake_pay_subtitle": "شراء بطاقات هدايا مخفضة السعر (الولايات المتحدة فقط)", + "cake_pay_title": "بطاقات هدايا Cake Pay", + "cake_pay_web_cards_subtitle": "اشتري بطاقات مدفوعة مسبقا وبطاقات هدايا في جميع أنحاء العالم", + "cake_pay_web_cards_title": "بطاقات Cake Pay Web", + "cake_wallet": "Cake Wallet", + "cakepay_prepaid_card": "بطاقة ائتمان CakePay مسبقة الدفع", + "camera_consent": ".ﻞﻴﺻﺎﻔﺘﻟﺍ ﻰﻠﻋ ﻝﻮﺼﺤﻠﻟ ﻢﻬﺑ ﺔﺻﺎﺨﻟﺍ ﺔﻴﺻﻮﺼﺨﻟﺍ ﺔﺳﺎﻴﺳ ﻦﻣ ﻖﻘﺤﺘﻟﺍ ﻰﺟﺮﻳ .${provider} ﻝﻮﻠ", + "camera_permission_is_required": ".ﺍﺮﻴﻣﺎﻜﻟﺍ ﻥﺫﺇ ﺏﻮﻠﻄﻣ", + "cancel": "إلغاء", + "card_address": "العنوان:", + "cardholder_agreement": "اتفاقية حامل البطاقة", + "cards": "البطاقات", + "chains": "ﻞﺳﻼﺴﻟﺍ", + "change": "تغير", + "change_backup_password_alert": "لن تكون ملفات النسخ الاحتياطي السابقة متاحة للاستيراد بكلمة مرور نسخ احتياطي جديدة. سيتم استخدام كلمة مرور النسخ الاحتياطي الجديدة لملفات النسخ الاحتياطي الجديدة فقط. هل أنت متأكد أنك تريد تغيير كلمة المرور الاحتياطية؟", + "change_currency": "تغيير العملة", + "change_current_node": "هل أنت متأكد من تغيير العقدة الحالية إلى ${node}؟", + "change_current_node_title": "تغيير العقدة الحالية", + "change_exchange_provider": "تغيير مزود الصرف", + "change_language": "تغيير اللغة", + "change_language_to": "هل تريد تغيير اللغة إلى ${language}؟", + "change_password": "تغيير كلمة المرور", "change_rep": "ﺏﻭﺪﻨﻣ ﺮﻴﻴﻐﺗ", "change_rep_message": "؟ﻦﻴﻠﺜﻤﻤﻟﺍ ﺮﻴﻴﻐﺗ ﺪﻳﺮﺗ ﻚﻧﺃ ﺪﻛﺄﺘﻣ ﺖﻧﺃ ﻞﻫ", - "manage_nodes": "ﺪﻘﻌﻟﺍ ﺓﺭﺍﺩﺇ", - "unsupported_asset": ".ﻡﻮﻋﺪﻣ ﻞﺻﺃ ﻉﻮﻧ ﻦﻣ ﺔﻈﻔﺤﻣ ﻰﻟﺇ ﻞﻳﺪﺒﺘﻟﺍ ﻭﺃ ءﺎﺸﻧﺇ ﻰﺟﺮﻳ .ﻞﺻﻷﺍ ﺍﺬﻬﻟ ءﺍﺮﺟﻹﺍ ﺍﺬﻫ ﻢﻋﺪﻧ ﻻ ﻦﺤﻧ", - "manage_pow_nodes": "PoW ﻁﺎﻘﻧ ﺓﺭﺍﺩﺇ", - "support_title_live_chat": "الدعم المباشر", - "support_description_live_chat": "حرة وسريعة! ممثلو الدعم المدربين متاحون للمساعدة", - "support_title_guides": "أدلة محفظة كعكة", - "support_description_guides": "توثيق ودعم القضايا المشتركة", - "support_title_other_links": "روابط دعم أخرى", - "support_description_other_links": "انضم إلى مجتمعاتنا أو تصل إلينا شركائنا من خلال أساليب أخرى", + "change_rep_successful": "تم تغيير ممثل بنجاح", + "change_wallet_alert_content": "هل تريد تغيير المحفظة الحالية إلى ${wallet_name}؟", + "change_wallet_alert_title": "تغيير المحفظة الحالية", + "choose_account": "اختر حساب", + "choose_address": "\n\nالرجاء اختيار عنوان:", "choose_derivation": "اختر اشتقاق المحفظة", - "new_first_wallet_text": "حافظ بسهولة على أمان العملة المشفرة", - "select_destination": ".ﻲﻃﺎﻴﺘﺣﻻﺍ ﺦﺴﻨﻟﺍ ﻒﻠﻣ ﺔﻬﺟﻭ ﺪﻳﺪﺤﺗ ءﺎﺟﺮﻟﺍ", - "auto_generate_subaddresses": "تلقائي توليد subddresses", - "save_to_downloads": "ﺕﻼﻳﺰﻨﺘﻟﺍ ﻲﻓ ﻆﻔﺣ", - "select_buy_provider_notice": "حدد مزود شراء أعلاه. يمكنك تخطي هذه الشاشة عن طريق تعيين مزود شراء الافتراضي في إعدادات التطبيق.", - "onramper_option_description": "شراء بسرعة التشفير مع العديد من طرق الدفع. متوفر في معظم البلدان. ينتشر وتختلف الرسوم.", + "choose_from_available_options": "اختر من بين الخيارات المتاحة:", + "choose_one": "اختر واحدة", + "choose_relay": "ﻡﺍﺪﺨﺘﺳﻼﻟ ﻊﺑﺎﺘﺘﻟﺍ ﺭﺎﻴﺘﺧﺍ ءﺎﺟﺮﻟﺍ", + "choose_wallet_currency": "الرجاء اختيار عملة المحفظة:", + "clear": "مسح", + "clearnet_link": "رابط Clearnet", + "close": "يغلق", + "coin_control": "التحكم في العملة (اختياري)", + "cold_or_recover_wallet": "أضف محفظة باردة أو استعد محفظة ورقية", + "color_theme": "سمة اللون", + "commit_transaction_amount_fee": "تنفيذ الصفقة\nالمبلغ: ${amount}\nالرسوم: ${fee}", + "confirm": "تأكيد", + "confirm_delete_template": "سيؤدي هذا الإجراء إلى حذف هذا القالب. هل ترغب في الاستمرار؟", + "confirm_delete_wallet": "سيؤدي هذا الإجراء إلى حذف هذه المحفظة. هل ترغب في الاستمرار؟", + "confirm_sending": "تأكيد الإرسال", + "confirmations": "التأكيدات", + "confirmed": "رصيد مؤكد", + "confirmed_tx": "مؤكد", + "congratulations": "تهانينا!", + "connect_an_existing_yat": "توصيل Yat الحالي", + "connect_yats": "توصيل Yats", + "connection_sync": "الاتصال والمزامنة", + "connectWalletPrompt": "ﺕﻼﻣﺎﻌﻤﻟﺍ ءﺍﺮﺟﻹ WalletConnect ﻊﻣ ﻚﺘﻈﻔﺤﻣ ﻞﻴﺻﻮﺘﺑ ﻢﻗ", + "contact": "تواصل", + "contact_name": "اسم جهة الاتصال", + "contact_support": "اتصل بالدعم", + "continue_text": "التالي", + "contractName": "ﺪﻘﻌﻟﺍ ﻢﺳﺍ", + "contractSymbol": "ﺪﻘﻌﻟﺍ ﺰﻣﺭ", + "copied_key_to_clipboard": "تم نسخ ${key} إلى الحافظة", + "copied_to_clipboard": "نسخ إلى الحافظة", + "copy": "نسخ", + "copy_address": "نسخ العنوان", + "copy_id": "نسخ معرف العملية", + "copyWalletConnectLink": "ﺎﻨﻫ ﻪﻘﺼﻟﺍﻭ dApp ﻦﻣ WalletConnect ﻂﺑﺍﺭ ﺦﺴﻧﺍ", + "create_account": "إنشاء حساب", + "create_backup": "انشئ نسخة احتياطية", + "create_donation_link": "إنشاء رابط التبرع", + "create_invoice": "إنشاء فاتورة", + "create_new": "إنشاء محفظة جديدة", + "create_new_account": "انشاء حساب جديد", + "creating_new_wallet": "يتم إنشاء محفظة جديدة", + "creating_new_wallet_error": "خطأ: ${description}", + "creation_date": "تاريخ الإنشاء", + "custom": "مخصصة", + "custom_drag": "مخصص (عقد وسحب)", + "custom_redeem_amount": "مبلغ الاسترداد مخصص", + "dark_theme": "داكن", + "debit_card": "بطاقة ائتمان", + "debit_card_terms": "يخضع تخزين واستخدام رقم بطاقة الدفع الخاصة بك (وبيانات الاعتماد المقابلة لرقم بطاقة الدفع الخاصة بك) في هذه المحفظة الرقمية لشروط وأحكام اتفاقية حامل البطاقة المعمول بها مع جهة إصدار بطاقة الدفع ، كما هو معمول به من وقت لآخر.", + "decimal_places_error": "عدد كبير جدًا من المنازل العشرية", "default_buy_provider": "مزود شراء الافتراضي", - "ask_each_time": "اسأل في كل مرة", - "buy_provider_unavailable": "مزود حاليا غير متوفر.", - "signTransaction": " ﺔﻠﻣﺎﻌﻤﻟﺍ ﻊﻴﻗﻮﺗ", + "default_sell_provider": "ﻲﺿﺍﺮﺘﻓﻻﺍ ﻊﻴﺒﻟﺍ ﺩﻭﺰﻣ", + "delete": "حذف", + "delete_account": "حذف الحساب", + "delete_wallet": "حذف المحفظة", + "delete_wallet_confirm_message": "هل أنت متأكد أنك تريد حذف محفظة ${wallet_name}؟", + "deleteConnectionConfirmationPrompt": "ـﺑ ﻝﺎﺼﺗﻻﺍ ﻑﺬﺣ ﺪﻳﺮﺗ ﻚﻧﺃ ﺪﻛﺄﺘﻣ ﺖﻧﺃ ﻞﻫ", + "descending": "النزول", + "description": "ﻒﺻﻭ", + "destination_tag": "علامة الوجهة:", + "dfx_option_description": "ﺎﺑﻭﺭﻭﺃ ﻲﻓ ﺕﺎﻛﺮﺸﻟﺍﻭ ﺔﺋﺰﺠﺘﻟﺍ ءﻼﻤﻌﻟ .ﻲﻓﺎﺿﺇ KYC ﻥﻭﺪﺑ ﻭﺭﻮﻳ 990 ﻰﻟﺇ ﻞﺼﻳ ﺎﻣ .ﻱﺮﺴﻳﻮﺴﻟﺍ", + "didnt_get_code": "لم تحصل على رمز؟", + "digit_pin": "-رقم PIN", + "digital_and_physical_card": " بطاقة ائتمان رقمية ومادية مسبقة الدفع", + "disable": "إبطال", + "disable_buy": "تعطيل إجراء الشراء", + "disable_cake_2fa": "تعطيل 2 عامل المصادقة", + "disable_exchange": "تعطيل التبادل", + "disable_fiat": "تعطيل fiat", + "disable_sell": "قم بتعطيل إجراء البيع", + "disabled": "معطلة", + "discount": "وفر ${value}٪", + "display_settings": "اعدادات العرض", + "displayable": "قابل للعرض", + "do_not_have_enough_gas_asset": "ليس لديك ما يكفي من ${currency} لإجراء معاملة وفقًا لشروط شبكة blockchain الحالية. أنت بحاجة إلى المزيد من ${currency} لدفع رسوم شبكة blockchain، حتى لو كنت ترسل أصلًا مختلفًا.", + "do_not_send": "لا ترسل", + "do_not_share_warning_text": "لا تشارك هذه مع أي شخص آخر ، بما في ذلك الدعم.\n\nيمكن أن تتم سرقة أموالك!", + "do_not_show_me": "لا ترني هذا مجددا", + "domain_looks_up": "ﻝﺎﺠﻤﻟﺍ ﺚﺤﺑ ﺕﺎﻴﻠﻤﻋ", + "donation_link_details": "تفاصيل رابط التبرع", + "e_sign_consent": "الموافقة على التوقيع الإلكتروني", + "edit": "تعديل", + "edit_backup_password": "تعديل كلمة مرور النسخ الاحتياطي", + "edit_node": "تحرير العقدة", + "edit_token": "تحرير الرمز المميز", + "electrum_address_disclaimer": "نقوم بإنشاء عناوين جديدة في كل مرة تستخدم فيها عنوانًا ، لكن العناوين السابقة تستمر في العمل", + "email_address": "عنوان البريد الالكترونى", + "enabled": "ممكنة", + "enter_amount": "أدخل المبلغ", + "enter_backup_password": "أدخل كلمة المرور الاحتياطية هنا", + "enter_code": "ادخل الرمز", + "enter_seed_phrase": "أدخل عبارة البذور الخاصة بك", + "enter_totp_code": "الرجاء إدخال رمز TOTP.", + "enter_your_note": "أدخل ملاحظتك ...", + "enter_your_pin": "أدخل كود الرقم السري", + "enter_your_pin_again": "أدخل PIN الخاص بك مرة أخرى", + "enterTokenID": "ﺰﻴﻤﻤﻟﺍ ﺰﻣﺮﻟﺍ ﻑﺮﻌﻣ ﻞﺧﺩﺃ", + "enterWalletConnectURI": "WalletConnect ـﻟ URI ﻞﺧﺩﺃ", + "error": "خطأ", + "error_dialog_content": "عفوًا ، لقد حصلنا على بعض الخطأ.\n\nيرجى إرسال تقرير التعطل إلى فريق الدعم لدينا لتحسين التطبيق.", + "error_text_account_name": "يجب أن يحتوي اسم الحساب على أحرف وأرقام فقط\nويجب أن يتراوح بين حرف واحد و 15 حرفًا", + "error_text_address": "يجب أن يتوافق عنوان المحفظة مع نوع\nالعملة المشفرة", + "error_text_amount": "يجب أن يحتوي المبلغ على أرقام فقط", + "error_text_contact_name": "لا يمكن أن يحتوي اسم جهة الاتصال على الرموز ` , ' \"\nويجب أن يتراوح بين حرف و 32 حرفًا", + "error_text_crypto_currency": "عدد الكسور\nيجب أن تكون أقل من أو تساوي 12", + "error_text_fiat": "لا يمكن أن تتجاوز قيمة المبلغ الرصيد المتاح.\nيجب أن يكون عدد الكسور أقل أو يساوي 2", + "error_text_input_above_maximum_limit": "المبلغ أكبر من الحد الأقصى", + "error_text_input_below_minimum_limit": " المبلغ أقل من الحد الأدنى", + "error_text_keys": "يمكن أن تحتوي مفاتيح المحفظة على 64 حرفًا hex", + "error_text_limits_loading_failed": "لم يتم إنشاء الصفقة لـ ${provider}. فشل تحميل الحدود", + "error_text_maximum_limit": "لم يتم إنشاء الصفقة لـ ${provider}. المبلغ أكبر من الحد الأقصى: ${max} ${currency}", + "error_text_minimal_limit": "لم يتم إنشاء الصفقة لـ ${provider}. المبلغ أقل من الحد الأدنى: ${min} ${currency}", + "error_text_node_address": "الرجاء إدخال عنوان IPv4", + "error_text_node_port": "منفذ العقدة يمكن أن يحتوي فقط على أرقام بين 0 و 65535", + "error_text_node_proxy_address": "الرجاء إدخال <عنوان IPv4>: ، على سبيل المثال 127.0.0.1:9050", + "error_text_payment_id": "يمكن أن يحتوي معرّف الدفع فقط من 16 إلى 64 حرفًا hex", + "error_text_subaddress_name": "لا يمكن أن يحتوي اسم العنوان الفرعي على رموز ` , ' \"\nويجب أن يتراوح طولها بين حرف واحد و 20 حرفًا", + "error_text_template": "لا يمكن أن يحتوي اسم القالب وعنوانه على رموز ` , \"\nويجب أن يتراوح طولها بين 1 و 106 حرفًا", + "error_text_wallet_name": "يمكن أن يحتوي اسم المحفظة على أحرف وأرقام ورموز _ - فقط\nويجب أن يتراوح طولها بين حرف واحد و 33 حرفًا", + "error_text_xmr": "لا يمكن أن تتجاوز قيمة XMR الرصيد المتاح.\nيجب أن يكون عدد الكسور أقل من أو يساوي 12", "errorGettingCredentials": "ﺩﺎﻤﺘﻋﻻﺍ ﺕﺎﻧﺎﻴﺑ ﻰﻠﻋ ﻝﻮﺼﺤﻟﺍ ءﺎﻨﺛﺃ ﺄﻄﺧ ﺙﺪﺣ :ﻞﺸﻓ", "errorSigningTransaction": "ﺔﻠﻣﺎﻌﻤﻟﺍ ﻊﻴﻗﻮﺗ ءﺎﻨﺛﺃ ﺄﻄﺧ ﺙﺪﺣ", - "pairingInvalidEvent": "ﺢﻟﺎﺻ ﺮﻴﻏ ﺙﺪﺣ ﻥﺍﺮﻗﺇ", - "chains": "ﻞﺳﻼﺴﻟﺍ", - "methods": " ﻕﺮﻃُ", - "events": "ﺙﺍﺪﺣﻷﺍ", - "reject": "ﺾﻓﺮﻳ", - "approve": "ﺪﻤﺘﻌﻳ", - "expiresOn": "ﻲﻓ ﻪﺘﻴﺣﻼﺻ ﻲﻬﺘﻨﺗ", - "walletConnect": "WalletConnect", - "nullURIError": "ﻍﺭﺎﻓ (URI) ﻢﻈﺘﻨﻤﻟﺍ ﺩﺭﺍﻮﻤﻟﺍ ﻑﺮﻌﻣ", - "connectWalletPrompt": "ﺕﻼﻣﺎﻌﻤﻟﺍ ءﺍﺮﺟﻹ WalletConnect ﻊﻣ ﻚﺘﻈﻔﺤﻣ ﻞﻴﺻﻮﺘﺑ ﻢﻗ", - "newConnection": "ﺪﻳﺪﺟ ﻝﺎﺼﺗﺍ", - "activeConnectionsPrompt": "ﺎﻨﻫ ﺔﻄﺸﻨﻟﺍ ﺕﻻﺎﺼﺗﻻﺍ ﺮﻬﻈﺘﺳ", - "deleteConnectionConfirmationPrompt": "ـﺑ ﻝﺎﺼﺗﻻﺍ ﻑﺬﺣ ﺪﻳﺮﺗ ﻚﻧﺃ ﺪﻛﺄﺘﻣ ﺖﻧﺃ ﻞﻫ", + "estimated": "مُقدَّر", + "etherscan_history": "Etherscan تاريخ", "event": "ﺙﺪﺣ", - "successful": "ﺢﺟﺎﻧ", - "wouoldLikeToConnect": "ﻝﺎﺼﺗﻻﺍ ﻲﻓ ﺐﻏﺮﺗ", - "message": "ﺔﻟﺎﺳﺭ", - "do_not_have_enough_gas_asset": "ليس لديك ما يكفي من ${currency} لإجراء معاملة وفقًا لشروط شبكة blockchain الحالية. أنت بحاجة إلى المزيد من ${currency} لدفع رسوم شبكة blockchain، حتى لو كنت ترسل أصلًا مختلفًا.", - "totp_auth_url": "TOTP ﺔﻗﺩﺎﺼﻤﻟ URL ﻥﺍﻮﻨﻋ", - "awaitDAppProcessing": ".ﺔﺠﻟﺎﻌﻤﻟﺍ ﻦﻣ dApp ﻲﻬﺘﻨﻳ ﻰﺘﺣ ﺭﺎﻈﺘﻧﻻﺍ ﻰﺟﺮﻳ", - "copyWalletConnectLink": "ﺎﻨﻫ ﻪﻘﺼﻟﺍﻭ dApp ﻦﻣ WalletConnect ﻂﺑﺍﺭ ﺦﺴﻧﺍ", - "enterWalletConnectURI": "WalletConnect ـﻟ URI ﻞﺧﺩﺃ", - "seed_key": "مفتاح البذور", - "enter_seed_phrase": "أدخل عبارة البذور الخاصة بك", - "change_rep_successful": "تم تغيير ممثل بنجاح", - "add_contact": "ﻝﺎﺼﺗﺍ ﺔﻬﺟ ﺔﻓﺎﺿﺇ", + "events": "ﺙﺍﺪﺣﻷﺍ", + "exchange": "تبادل", + "exchange_incorrect_current_wallet_for_xmr": "إذا كنت ترغب في استبدال XMR من رصيد Cake Wallet Monero ، فيرجى التبديل إلى محفظة Monero أولاً.", + "exchange_new_template": "قالب جديد", "exchange_provider_unsupported": "${providerName} لم يعد مدعومًا!", - "domain_looks_up": "ﻝﺎﺠﻤﻟﺍ ﺚﺤﺑ ﺕﺎﻴﻠﻤﻋ", - "require_for_exchanges_to_external_wallets": "ﺔﻴﺟﺭﺎﺧ ﻆﻓﺎﺤﻣ ﻰﻟﺇ ﺕﻻﺩﺎﺒﺘﻟﺍ ﺐﻠﻄﺘﺗ", - "camera_permission_is_required": ".ﺍﺮﻴﻣﺎﻜﻟﺍ ﻥﺫﺇ ﺏﻮﻠﻄﻣ", - "switchToETHWallet": "ﻯﺮﺧﺃ ﺓﺮﻣ ﺔﻟﻭﺎﺤﻤﻟﺍﻭ Ethereum ﺔﻈﻔﺤﻣ ﻰﻟﺇ ﻞﻳﺪﺒﺘﻟﺍ ﻰﺟﺮﻳ", - "order_by": "ترتيب حسب", - "creation_date": "تاريخ الإنشاء", + "exchange_result_confirm": "بالضغط على تأكيد ، سترسل ${fetchingLabel} ${from} من محفظتك المسماة ${walletName} إلى العنوان الموضح أدناه. أو يمكنك الإرسال من محفظتك الخارجية إلى العنوان أدناه / QR.\n\nيرجى الضغط على تأكيد للمتابعة أو الرجوع لتغيير المبالغ.", + "exchange_result_description": "يجب عليك إرسال ما لا يقل عن ${fetchingLabel} ${from} إلى العنوان المعروض في الصفحة التالية. إذا أرسلت مبلغًا أقل من ${fetchingLabel} ${from} فقد لا يتم تحويله وقد لا يتم رده.", + "exchange_result_write_down_ID": "* يرجى نسخ أو كتابة معرف هويتك الأعلى لحفظة.", + "exchange_result_write_down_trade_id": "يرجى نسخ أو كتابة معرّف العملية للمتابعة.", + "exchange_sync_alert_content": "يرجى الانتظار حتى تتم مزامنة محفظتك", + "expired": "منتهي الصلاحية", + "expires": "تنتهي", + "expiresOn": "ﻲﻓ ﻪﺘﻴﺣﻼﺻ ﻲﻬﺘﻨﺗ", + "export_backup": "تصدير نسخة احتياطية", + "extra_id": "معرف إضافي:", + "extracted_address_content": "سوف ترسل الأموال إلى\n${recipient_name}", + "failed_authentication": "${state_error} فشل المصادقة.", + "faq": "الأسئلة الشائعة", + "fetching": "جار الجلب", + "fiat_api": "Fiat API", + "fiat_balance": "الرصيد فيات", + "field_required": "هذه الخانة مطلوبه", + "fill_code": "يرجى ملء رمز التحقق المرسل إلى بريدك الإلكتروني", + "filter_by": "تصفية حسب", + "first_wallet_text": "محفظة رائعة ل Monero, Bitcoin, Ethereum, Litecoin و Haven", + "fixed_pair_not_supported": "هذا الزوج الثابت غير مدعوم في التبادلات المحددة", + "fixed_rate": "السعر الثابت", + "fixed_rate_alert": "ستتمكن من إدخال مبلغ الاستلام عند تشغيل وضع السعر الثابت. هل تريد التبديل إلى وضع السعر الثابت؟", + "forgot_password": "هل نسيت كلمة السر", + "freeze": "تجميد", + "frequently_asked_questions": "الأسئلة الشائعة", + "frozen": "مجمدة", + "full_balance": "الرصيد الكامل", + "generate_name": "توليد الاسم", + "generating_gift_card": "يتم توليد بطاقة هدية", + "get_a": "احصل على", + "get_card_note": " يمكنك إعادة تحميلها بالعملات الرقمية. لا توجد معلومات إضافية مطلوبة!", + "get_your_yat": "احصل على Yat", + "gift_card_amount": "مبلغ بطاقة الهدايا", + "gift_card_balance_note": "ستظهر هنا بطاقات الهدايا ذات الرصيد المتبقي", + "gift_card_is_generated": "تم إنشاء بطاقة الهدايا", + "gift_card_number": "رقم بطاقة الهدية", + "gift_card_redeemed_note": "ستظهر هنا بطاقات الهدايا التي استردت قيمتها", + "gift_cards": "بطاقات الهدايا", + "gift_cards_unavailable": "تتوفر بطاقات الهدايا للشراء فقط باستخدام Monero و Bitcoin و Litecoin في الوقت الحالي", + "got_it": "فهمتك", + "gross_balance": "إجمالي الرصيد", "group_by_type": "مجموعة حسب النوع", - "importNFTs": "NFTs ﺩﺍﺮﻴﺘﺳﺍ", - "noNFTYet": "ﻥﻵﺍ ﻰﺘﺣ NFTs ﺪﺟﻮﻳ ﻻ", - "address": " ﻥﺍﻮﻨﻋ", - "enterTokenID": "ﺰﻴﻤﻤﻟﺍ ﺰﻣﺮﻟﺍ ﻑﺮﻌﻣ ﻞﺧﺩﺃ", - "tokenID": "ﻒﻳﺮﻌﺗ ﺔﻗﺎﻄﺑ", - "name": "ﻢﺳﺍ", - "symbol": "ﺰﻣﺭ", - "seed_phrase_length": "ﺭﻭﺬﺒﻟﺍ ﺓﺭﺎﺒﻌﻟﺍ ﻝﻮﻃ", - "unavailable_balance": "ﺮﻓﻮﺘﻣ ﺮﻴﻏ ﺪﻴﺻﺭ", - "unavailable_balance_description": ".ﺎﻫﺪﻴﻤﺠﺗ ءﺎﻐﻟﺇ ﺭﺮﻘﺗ ﻰﺘﺣ ﺕﻼﻣﺎﻌﻤﻠﻟ ﻝﻮﺻﻮﻠﻟ ﺔﻠﺑﺎﻗ ﺮﻴﻏ ﺓﺪﻤﺠﻤﻟﺍ ﺓﺪﺻﺭﻷﺍ ﻞﻈﺗ ﺎﻤﻨﻴﺑ ،ﺎﻬﺑ ﺔﺻﺎﺨﻟﺍ ﺕﻼﻣﺎﻌﻤﻟﺍ ﻝﺎﻤﺘﻛﺍ ﺩﺮﺠﻤﺑ ﺔﺣﺎﺘﻣ ﺔﻠﻔﻘﻤﻟﺍ ﺓﺪﺻﺭﻷﺍ ﺢﺒﺼﺘﺳ .ﻚﺑ ﺔﺻﺎﺨﻟﺍ ﺕﻼﻤﻌﻟﺍ ﻲﻓ ﻢﻜﺤﺘﻟﺍ ﺕﺍﺩﺍﺪﻋﺇ ﻲﻓ ﻂﺸﻧ ﻞﻜﺸﺑ ﺎﻫﺪﻴﻤﺠﺘﺑ ﺖﻤﻗ", - "unspent_change": "يتغير", - "setup_warning_2fa_text": ".ﺩﺭﺎﺒﻟﺍ ﻦﻳﺰﺨﺘﻟﺍ ﻞﺜﻣ ﺔﻨﻣﺁ ﺖﺴﻴﻟ ﺎﻬﻧﺇ .ﺔﻈﻔﺤﻤﻟﺍ ﻲﻓ ﺔﻨﻴﻌﻣ ﺕﺍءﺍﺮﺟﻹ ﺔﻴﻧﺎﺛ ﺔﻗﺩﺎﺼﻣ ﺔﺑﺎﺜ", - "scan_qr_on_device": " ﺮﺧﺁ ﺯﺎﻬﺟ ﻰﻠﻋ ﺎﻴًﺋﻮﺿ ﺍﺬﻫ ﺔﻌﻳﺮﺴﻟﺍ ﺔﺑﺎﺠﺘﺳﻻﺍ ﺰﻣﺭ ﺢﺴﻤﺑ ﻢﻗ", + "haven_app": "Haven بواسطة Cake Wallet", + "haven_app_wallet_text": "محفظة رائعة ل Haven", + "help": "مساعده", + "hidden_balance": "الميزان الخفي", + "hide_details": "أخف التفاصيل", + "high_contrast_theme": "موضوع عالي التباين", + "home_screen_settings": "إعدادات الشاشة الرئيسية", "how_to_use": " ﻞﻤﻌﺘﺴﺗ ﻒﻴﻛ", + "how_to_use_card": "كيفية استخدام هذه البطاقة", + "id": "رقم المعرف:", + "ignor": "تجاهل", + "import": "ﺩﺭﻮﺘﺴﻳ", + "importNFTs": "NFTs ﺩﺍﺮﻴﺘﺳﺍ", + "in_store": "في المتجر", + "incoming": "الواردة", + "incorrect_seed": "النص الذي تم إدخاله غير صالح.", + "introducing_cake_pay": "نقدم لكم Cake Pay!", + "invalid_input": "مدخل غير صالح", + "invoice_details": "تفاصيل الفاتورة", + "is_percentage": "يكون", + "last_30_days": "آخر 30 يومًا", + "learn_more": "اعرف المزيد", + "light_theme": "فاتح", + "loading_your_wallet": "يتم تحميل محفظتك", + "login": "تسجيل الدخول", + "logout": "تسجيل خروج", + "low_fee": "رسوم منخفضة", + "low_fee_alert": "أنت تستخدم حاليًا أولوية منخفضة لرسوم الشبكة. قد يتسبب هذا في فترات انتظار طويلة ، أو أسعار مختلفة ، أو إلغاء صفقات. نوصي بتحديد رسوم أعلى لتجربة أفضل.", + "manage_nodes": "ﺪﻘﻌﻟﺍ ﺓﺭﺍﺩﺇ", + "manage_pow_nodes": "PoW ﻁﺎﻘﻧ ﺓﺭﺍﺩﺇ", + "manage_yats": "إدارة Yats", + "mark_as_redeemed": "وضع علامة كمسترد", + "market_place": "منصة التجارة", + "matrix_green_dark_theme": "موضوع ماتريكس الأخضر الداكن", + "max_amount": "الحد الأقصى: ${value}", + "max_value": "الحد الأقصى: ${value} ${currency}", + "memo": "مذكرة:", + "message": "ﺔﻟﺎﺳﺭ", + "methods": " ﻕﺮﻃُ", + "min_amount": "الحد الأدنى: ${value}", + "min_value": "الحد الأدنى: ${value} ${currency}", + "minutes_to_pin_code": "${minutes} دقيقة", + "mm": "MM", + "modify_2fa": "تعديل 2 عامل المصادقة", + "monero_com": "Monero.com بواسطة Cake Wallet", + "monero_com_wallet_text": "محفظة رائعة ل Monero", + "monero_dark_theme": "موضوع مونيرو الظلام", + "monero_light_theme": " ضوء مونيرو", + "moonpay_alert_text": "يجب أن تكون قيمة المبلغ أكبر من أو تساوي ${minAmount} ${fiatCurrency}", + "more_options": "المزيد من الخيارات", + "name": "ﻢﺳﺍ", + "narrow": "ضيق", + "new_first_wallet_text": "حافظ بسهولة على أمان العملة المشفرة", + "new_node_testing": "تجربة العقدة الجديدة", + "new_subaddress_create": "إنشاء", + "new_subaddress_label_name": "تسمية", + "new_subaddress_title": "عنوان جديد", + "new_template": "قالب جديد", + "new_wallet": "إنشاء محفظة جديدة", + "newConnection": "ﺪﻳﺪﺟ ﻝﺎﺼﺗﺍ", + "no_id_needed": "لا حاجة لID!", + "no_id_required": "لا ID مطلوب. اشحن وانفق في أي مكان", + "no_relay_on_domain": ".ﻡﺍﺪﺨﺘﺳﻼﻟ ﻊﺑﺎﺘﺘﻟﺍ ﺭﺎﻴﺘﺧﺍ ءﺎﺟﺮﻟﺍ .ﺡﺎﺘﻣ ﺮﻴﻏ ﻞﻴﺣﺮﺘﻟﺍ ﻥﺃ ﻭﺃ ﻡﺪﺨﺘﺴﻤﻟﺍ ﻝﺎﺠﻤﻟ ﻞﻴﺣﺮﺗ ﺪ", + "no_relays": "ﺕﻼﺣﺮﻤﻟﺍ ﻻ", + "no_relays_message": ".ﻪﺑ ﺹﺎﺨﻟﺍ Nostr ﻞﺠﺳ ﻰﻟﺇ ﺕﻼﺣﺮﻤﻟﺍ ﺔﻓﺎﺿﻹ ﻢﻠﺘﺴﻤﻟﺍ ﺩﺎﺷﺭﺇ ﻰﺟﺮﻳ .ﺕﻼﺣﺮﻣ ﻱﺃ ﻰﻠﻋ ﻱﻮﺘﺤﻳ ﻻ", + "node_address": "عنوان العقدة", + "node_connection_failed": "فشل الاتصال", + "node_connection_successful": "تم الاتصال بنجاح", + "node_new": "عقدة جديدة", + "node_port": "منفذ العقدة", + "node_reset_settings_title": "اعادة الضبط", + "node_test": "تجربة", + "nodes": "العقد", + "nodes_list_reset_to_default_message": "هل أنت متأكد أنك تريد إعادة تعيين الإعدادات إلى الافتراضي؟", + "none_of_selected_providers_can_exchange": "لا يمكن لأي من مقدمي الخدمة المختارين إجراء هذا التبادل", + "noNFTYet": "ﻥﻵﺍ ﻰﺘﺣ NFTs ﺪﺟﻮﻳ ﻻ", + "normal": "طبيعي", + "note_optional": "ملاحظة (اختياري)", + "note_tap_to_change": "ملاحظة (انقر للتغيير)", + "nullURIError": "ﻍﺭﺎﻓ (URI) ﻢﻈﺘﻨﻤﻟﺍ ﺩﺭﺍﻮﻤﻟﺍ ﻑﺮﻌﻣ", + "offer_expires_in": "ينتهي العرض في:", + "offline": "غير متصل على الانترنت", + "ok": "حسناً", + "onion_link": "رابط البصل", + "online": "متصل", + "onramper_option_description": "شراء بسرعة التشفير مع العديد من طرق الدفع. متوفر في معظم البلدان. ينتشر وتختلف الرسوم.", + "open_gift_card": "افتح بطاقة الهدية", + "optional_description": "وصف اختياري", + "optional_email_hint": "البريد الإلكتروني إخطار المدفوع لأمره الاختياري", + "optional_name": "اسم المستلم الاختياري", + "optionally_order_card": "اختياريا اطلب بطاقة فعلية (مادية).", + "orbot_running_alert": "يرجى التأكد من تشغيل Orbot قبل الاتصال بهذه العقدة.", + "order_by": "ترتيب حسب", + "order_id": "رقم التعريف الخاص بالطلب", + "order_physical_card": "طلب البطاقة المادية", + "other_settings": "اعدادات اخرى", + "outdated_electrum_wallet_description": "محافظ Bitcoin الجديدة التي تم إنشاؤها في Cake الآن سييد مكونة من 24 كلمة. من الضروري أن تقوم بإنشاء محفظة Bitcoin جديدة وتحويل جميع أموالك إلى المحفظة الجديدة المكونة من 24 كلمة ، والتوقف عن استخدام محافظ سييد مكونة من 12 كلمة. يرجى القيام بذلك على الفور لتأمين أموالك.", + "outdated_electrum_wallet_receive_warning": "إذا كانت هذه المحفظة تحتوي على سييد مكونة من 12 كلمة وتم إنشاؤها في Cake ، فلا تقم بإيداع Bitcoin في هذه المحفظة. قد يتم فقد أي BTC تم تحويله إلى هذه المحفظة. قم بإنشاء محفظة جديدة مكونة من 24 كلمة (انقر فوق القائمة في الجزء العلوي الأيمن ، وحدد محافظ ، واختر إنشاء محفظة جديدة ، ثم حدد Bitcoin) وقم على الفور بنقل BTC الخاص بك هناك. محافظ BTC الجديدة (24 كلمة) من Cake آمنة", + "outgoing": "الصادره", + "overwrite_amount": "تغير المبلغ", + "pairingInvalidEvent": "ﺢﻟﺎﺻ ﺮﻴﻏ ﺙﺪﺣ ﻥﺍﺮﻗﺇ", + "password": "كلمة المرور", + "paste": "لصق", + "pause_wallet_creation": ".ﺎﻴًﻟﺎﺣ ﺎﺘًﻗﺆﻣ ﺔﻔﻗﻮﺘﻣ Haven Wallet ءﺎﺸﻧﺇ ﻰﻠﻋ ﺓﺭﺪﻘﻟﺍ", + "payment_id": "معرف الدفع:", + "payment_was_received": "تم استلام الدفع الخاص بك.", + "pending": " (في الإنتظار)", + "percentageOf": "من ${amount}", + "pin_at_top": "تثبيت ${token} في الأعلى", + "pin_is_incorrect": "رقم ال PIN غير صحيح", + "pin_number": "الرقم السري", + "placeholder_contacts": "سيتم عرض جهات الاتصال الخاصة بك هنا", + "placeholder_transactions": "سيتم عرض معاملاتك هنا", + "please_fill_totp": "يرجى ملء الرمز المكون من 8 أرقام الموجود على جهازك الآخر", + "please_make_selection": "يرجى الأختيار لإنشاء أو استعادة محفظتك.", + "please_reference_document": "يرجى الرجوع إلى الوثائق أدناه لمزيد من المعلومات.", + "please_select": "الرجاء الأختيار:", + "please_select_backup_file": "الرجاء تحديد ملف النسخ الاحتياطي وإدخال كلمة مرور النسخ الاحتياطي.", + "please_try_to_connect_to_another_node": "الرجاء محاولة الاتصال بعقدة أخرى", + "please_wait": "انتظر من فضلك", + "polygonscan_history": "ﻥﺎﻜﺴﻧﻮﺠﻴﻟﻮﺑ ﺦﻳﺭﺎﺗ", + "powered_by": "بدعم من ${title}", + "pre_seed_button_text": "انا أفهم. أرني سييد الخاص بي", + "pre_seed_description": "في الصفحة التالية ستشاهد سلسلة من الكلمات ${words}. هذه هي سييد الفريدة والخاصة بك وهي الطريقة الوحيدة لاسترداد محفظتك في حالة فقدها أو عطلها. تقع على عاتقك مسؤولية تدوينها وتخزينها في مكان آمن خارج تطبيق Cake Wallet.", + "pre_seed_title": "مهم", + "prevent_screenshots": "منع لقطات الشاشة وتسجيل الشاشة", + "privacy": "خصوصية", + "privacy_policy": "سياسة الخصوصية", + "privacy_settings": "إعدادات الخصوصية", + "private_key": "مفتاح خاص", + "proceed_after_one_minute": "إذا لم تستمر الشاشة بعد دقيقة واحدة ، فتحقق من بريدك الإلكتروني.", + "profile": "حساب تعريفي", + "provider_error": "خطأ ${provider}", + "public_key": "مفتاح عمومي", + "purchase_gift_card": "شراء بطاقة هدايا", + "qr_fullscreen": "انقر لفتح ال QR بملء الشاشة", + "qr_payment_amount": "يحتوي هذا ال QR على مبلغ الدفع. هل تريد تغير المبلغ فوق القيمة الحالية؟", + "question_to_disable_2fa": "هل أنت متأكد أنك تريد تعطيل Cake 2FA؟ لن تكون هناك حاجة إلى رمز 2FA للوصول إلى المحفظة ووظائف معينة.", + "receivable_balance": "التوازن القادم", + "receive": "استلام", + "receive_amount": "المقدار", + "received": "استلام", + "recipient_address": "عنوان المستلم", + "reconnect": "أعد الاتصال", + "reconnect_alert_text": "هل أنت متأكد من رغبتك في إعادة الاتصال؟", + "reconnection": "إعادة الاتصال", + "redeemed": "استردت", + "refund_address": "عنوان إعادة المال", + "reject": "ﺾﻓﺮﻳ", + "remaining": "متبقي", + "remove": "إزالة", + "remove_node": "إزالة العقدة", + "remove_node_message": "هل أنت متأكد أنك تريد إزالة العقدة المحددة؟", + "rename": "إعادة تسمية", + "require_for_adding_contacts": "تتطلب إضافة جهات اتصال", + "require_for_all_security_and_backup_settings": "مطلوب لجميع إعدادات الأمان والنسخ الاحتياطي", + "require_for_assessing_wallet": "تتطلب الوصول إلى المحفظة", + "require_for_creating_new_wallets": "تتطلب إنشاء محافظ جديدة", + "require_for_exchanges_to_external_wallets": "ﺔﻴﺟﺭﺎﺧ ﻆﻓﺎﺤﻣ ﻰﻟﺇ ﺕﻻﺩﺎﺒﺘﻟﺍ ﺐﻠﻄﺘﺗ", + "require_for_exchanges_to_internal_wallets": "تتطلب عمليات التبادل إلى المحافظ الداخلية", + "require_for_sends_to_contacts": "تتطلب لارسال جهات الاتصال", + "require_for_sends_to_internal_wallets": "تتطلب عمليات الإرسال إلى المحافظ الداخلية", + "require_for_sends_to_non_contacts": "تتطلب لارسال لغير جهات الاتصال", + "require_pin_after": "طلب PIN بعد", + "rescan": "إعادة الفحص", + "resend_code": "الرجاء إعادة إرسالها", + "reset": "إعادة", + "reset_password": "إعادة تعيين كلمة المرور", + "restore_active_seed": "السييد النشطة", + "restore_address": "العنوان", + "restore_bitcoin_description_from_keys": "قم باستعادة محفظتك من سلسلة WIF التي تم إنشاؤها من مفاتيحك الخاصة", + "restore_bitcoin_description_from_seed": "قم باستعادة محفظتك من كود مكون من 24 كلمة", + "restore_bitcoin_title_from_keys": "استعادة من WIF", + "restore_description_from_backup": "يمكنك استعادة تطبيق Cake Wallet بالكامل من ملف النسخ الاحتياطي", + "restore_description_from_keys": "قم باستعادة محفظتك من ضغطات المفاتيح المولدة المحفوظة من مفاتيحك الخاصة", + "restore_description_from_seed": "قم باستعادة محفظتك من الرمز المكون من 25 كلمة أو 13 كلمة", + "restore_description_from_seed_keys": "استرجع محفظتك من السييد / المفاتيح التي قمت بحفظها في مكان آمن", + "restore_from_date_or_blockheight": "الرجاء إدخال تاريخ قبل إنشاء هذه المحفظة ببضعة أيام. أو إذا كنت تعرف ارتفاع البلوك، فيرجى إدخاله بدلاً من ذلك", + "restore_from_seed_placeholder": "الرجاء إدخال أو لصق السييد الخاصة بك هنا", + "restore_new_seed": "سييد جديدة", + "restore_next": "التالي", + "restore_recover": "استعادة", + "restore_restore_wallet": "استعادة محفظة", + "restore_seed_keys_restore": "استعادة السييد / المفاتيح", + "restore_spend_key_private": "مفتاح الإنفاق (خاص)", + "restore_title_from_backup": "استعادة من النسخة الاحتياطية", + "restore_title_from_keys": "استعادة من المفاتيح", + "restore_title_from_seed": "استعادة من السييد", + "restore_title_from_seed_keys": "استعادة من السييد / المفاتيح", + "restore_view_key_private": "مفتاح العرض (خاص)", + "restore_wallet": "استعادة محفظة", + "restore_wallet_name": "اسم المحفظة", + "restore_wallet_restore_description": "وصف استعادة المحفظة", + "router_no_route": "لم يتم تحديد مسار لـ ${name}", + "save": "حفظ", + "save_backup_password": "يرجى التأكد من حفظ كلمة المرور الاحتياطية. لن تتمكن من استيراد ملفات النسخ الاحتياطي بدونها.", + "save_backup_password_alert": "حفظ كلمة المرور الاحتياطية", + "save_to_downloads": "ﺕﻼﻳﺰﻨﺘﻟﺍ ﻲﻓ ﻆﻔﺣ", + "saved_the_trade_id": "لقد تم حفظ معرف العملية", + "scan_qr_code": "امسح رمز QR ضوئيًا", + "scan_qr_code_to_get_address": "امسح ال QR للحصول على العنوان", + "scan_qr_on_device": " ﺮﺧﺁ ﺯﺎﻬﺟ ﻰﻠﻋ ﺎﻴًﺋﻮﺿ ﺍﺬﻫ ﺔﻌﻳﺮﺴﻟﺍ ﺔﺑﺎﺠﺘﺳﻻﺍ ﺰﻣﺭ ﺢﺴﻤﺑ ﻢﻗ", + "search": "بحث", + "search_add_token": "بحث / إضافة رمز", + "search_category": "فئة البحث", + "search_currency": "ابحث عن عملة", + "search_language": "ابحث عن لغة", + "second_intro_content": "Yat الخاص بك هو عنوان تعبيري فريد يحل محل جميع العناوين السداسية العشرية الطويلة لجميع عملاتك.", + "second_intro_title": "عنوان تعبيري ايموجي واحد يحكمهم جميعا!", + "security_and_backup": "الأمان والنسخ الاحتياطي", + "seed_alert_back": "العودة إلى الوراء", + "seed_alert_content": "السييد هي الطريقة الوحيدة لاسترداد محفظتك. هل كتبتها؟", + "seed_alert_title": "انتباه", + "seed_alert_yes": "نعم، فعلت ذلك", + "seed_choose": "اختر لغة السييد", "seed_hex_form": "بذور المحفظة (شكل عرافة)", - "tor_connection": "ﺭﻮﺗ ﻝﺎﺼﺗﺍ", + "seed_key": "مفتاح البذور", + "seed_language": "لغة البذور", + "seed_language_chinese": "صينى", + "seed_language_chinese_traditional": "تقاليد صينية)", + "seed_language_czech": "التشيكية", + "seed_language_dutch": "هولندي", + "seed_language_english": "إنجليزي", + "seed_language_french": "فرنسي", + "seed_language_german": "ألمانية", + "seed_language_italian": "إيطالي", + "seed_language_japanese": "اليابانية", + "seed_language_korean": "الكورية", + "seed_language_next": "التالي", + "seed_language_portuguese": "البرتغالية", + "seed_language_russian": "الروسية", + "seed_language_spanish": "الأسبانية", + "seed_phrase_length": "ﺭﻭﺬﺒﻟﺍ ﺓﺭﺎﺒﻌﻟﺍ ﻝﻮﻃ", + "seed_reminder": "يرجى تدوينها في حالة فقد هاتفك أو مسحه", + "seed_share": "شارك السييد", + "seed_title": "سييد", "seedtype": "البذور", "seedtype_legacy": "إرث (25 كلمة)", "seedtype_polyseed": "بوليسيد (16 كلمة)", - "seed_language_czech": "التشيكية", - "seed_language_korean": "الكورية", - "seed_language_chinese_traditional": "تقاليد صينية)", - "ascending": "تصاعدي", - "descending": "النزول", - "dfx_option_description": "ﺎﺑﻭﺭﻭﺃ ﻲﻓ ﺕﺎﻛﺮﺸﻟﺍﻭ ﺔﺋﺰﺠﺘﻟﺍ ءﻼﻤﻌﻟ .ﻲﻓﺎﺿﺇ KYC ﻥﻭﺪﺑ ﻭﺭﻮﻳ 990 ﻰﻟﺇ ﻞﺼﻳ ﺎﻣ .ﻱﺮﺴﻳﻮﺴﻟﺍ", - "polygonscan_history": "ﻥﺎﻜﺴﻧﻮﺠﻴﻟﻮﺑ ﺦﻳﺭﺎﺗ", - "wallet_seed_legacy": "بذرة محفظة قديمة", - "default_sell_provider": "ﻲﺿﺍﺮﺘﻓﻻﺍ ﻊﻴﺒﻟﺍ ﺩﻭﺰﻣ", + "select_backup_file": "حدد ملف النسخ الاحتياطي", + "select_buy_provider_notice": "حدد مزود شراء أعلاه. يمكنك تخطي هذه الشاشة عن طريق تعيين مزود شراء الافتراضي في إعدادات التطبيق.", + "select_destination": ".ﻲﻃﺎﻴﺘﺣﻻﺍ ﺦﺴﻨﻟﺍ ﻒﻠﻣ ﺔﻬﺟﻭ ﺪﻳﺪﺤﺗ ءﺎﺟﺮﻟﺍ", "select_sell_provider_notice": ".ﻖﻴﺒﻄﺘﻟﺍ ﺕﺍﺩﺍﺪﻋﺇ ﻲﻓ ﻚﺑ ﺹﺎﺨﻟﺍ ﻲﺿﺍﺮﺘﻓﻻﺍ ﻊﻴﺒﻟﺍ ﺩﻭﺰﻣ ﻦﻴﻴﻌﺗ ﻖﻳﺮﻃ ﻦﻋ ﺔﺷﺎﺸﻟﺍ ﻩﺬﻫ ﻲﻄﺨﺗ", - "custom_drag": "مخصص (عقد وسحب)", + "sell": "بيع", + "sell_alert_content": ".ﺎﻬﻴﻟﺇ ﻞﻳﺪﺒﺘﻟﺍ ﻭﺃ Litecoin ﻭﺃ Ethereum ﻭﺃ Bitcoin ﺔﻈﻔﺤﻣ ءﺎﺸﻧﺇ ﻰﺟﺮﻳ .Litecoin ﻭ", + "sell_monero_com_alert_content": "بيع Monero غير مدعوم حتى الآن", + "send": "إرسال", + "send_address": "عنوان ${cryptoCurrency}", + "send_amount": "مقدار:", + "send_creating_transaction": " يتم إنشاء المعاملة", + "send_error_currency": "العملة يجب أن تحتوي على أرقام فقط", + "send_error_minimum_value": "الحد الأدنى لقيمة المبلغ هو 0.01", + "send_estimated_fee": "الرسوم المقدرة:", + "send_fee": "الرسوم:", + "send_name": "الأسم", + "send_new": "جديد", + "send_payment_id": "معرف عملية الدفع (اختياري)", + "send_priority": "حاليًا ، تم تحديد الرسوم بأولوية ${transactionPriority}.\nيمكن تعديل أولوية المعاملة في الإعدادات", + "send_sending": "يتم الإرسال...", + "send_success": "تم إرسال ${crypto} الخاص بك بنجاح", + "send_templates": "القوالب", + "send_title": "إرسال", + "send_to_this_address": "أرسل ${currency} ${tag}إلى هذا العنوان", + "send_xmr": "أرسل XMR", + "send_your_wallet": "محفظتك", + "sending": "يتم الإرسال", + "sent": "تم الأرسال", + "settings": "إعدادات", + "settings_all": "الكل", + "settings_allow_biometrical_authentication": "السماح بالمصادقة البيومترية", + "settings_can_be_changed_later": "يمكن تغيير هذه الإعدادات لاحقًا في إعدادات التطبيق", + "settings_change_language": "تغيير اللغة", + "settings_change_pin": "تغيير PIN", + "settings_currency": "العملة", + "settings_current_node": "العقدة الحالية", + "settings_dark_mode": "الوضع الداكن", + "settings_display_balance": "عرض الرصيد", + "settings_display_on_dashboard_list": "عرض في قائمة لوحة المعلومات", + "settings_fee_priority": "رسوم الأولوية", + "settings_nodes": "العقد", + "settings_none": "لا شيء", + "settings_only_trades": "الصفقات فقط", + "settings_only_transactions": "المعاملات فقط", + "settings_personal": "شخصي", + "settings_save_recipient_address": "حفظ عنوان المستلم", + "settings_support": "الدعم", + "settings_terms_and_conditions": "الأحكام والشروط", + "settings_title": "إعدادات", + "settings_trades": "الصفقات", + "settings_transactions": "المبادلات", + "settings_wallets": "المحافظ", + "setup_2fa": "تعيين 2 عامل المصادقة", + "setup_2fa_text": " .ﻲﻧﺎﺜﻟﺍ ﺔﻗﺩﺎﺼﻤﻟﺍ ﻞﻣﺎﻌﻛ TOTP ﻡﺍﺪﺨﺘﺳﺎﺑ Cake 2FA ﻞﻤﻌﻳ", + "setup_pin": "تعيين PIN", + "setup_successful": "تم إعداد PIN الخاص بك بنجاح!", + "setup_totp_recommended": " TOTP ﺩﺍﺪﻋﺇ", + "setup_warning_2fa_text": ".ﺩﺭﺎﺒﻟﺍ ﻦﻳﺰﺨﺘﻟﺍ ﻞﺜﻣ ﺔﻨﻣﺁ ﺖﺴﻴﻟ ﺎﻬﻧﺇ .ﺔﻈﻔﺤﻤﻟﺍ ﻲﻓ ﺔﻨﻴﻌﻣ ﺕﺍءﺍﺮﺟﻹ ﺔﻴﻧﺎﺛ ﺔﻗﺩﺎﺼﻣ ﺔﺑﺎﺜ", + "setup_your_debit_card": "قم بإعداد بطاقة ائتمان الخاصة بك", + "share": "يشارك", + "share_address": "شارك العنوان", + "show_details": "اظهر التفاصيل", + "show_keys": "اظهار السييد / المفاتيح", + "show_market_place": "إظهار السوق", + "show_seed": "عرض السييد", + "sign_up": "اشتراك", + "signTransaction": " ﺔﻠﻣﺎﻌﻤﻟﺍ ﻊﻴﻗﻮﺗ", + "signup_for_card_accept_terms": "قم بالتسجيل للحصول على البطاقة وقبول الشروط.", + "slidable": "قابل للانزلاق", + "sort_by": "ترتيب حسب", + "spend_key_private": "مفتاح الإنفاق (خاص)", + "spend_key_public": "مفتاح الإنفاق (عام)", + "status": "الحالة:", + "subaddress_title": "قائمة العناوين الفرعية", + "subaddresses": "العناوين الفرعية", + "submit_request": "تقديم طلب", + "successful": "ﺢﺟﺎﻧ", + "support_description_guides": "توثيق ودعم القضايا المشتركة", + "support_description_live_chat": "حرة وسريعة! ممثلو الدعم المدربين متاحون للمساعدة", + "support_description_other_links": "انضم إلى مجتمعاتنا أو تصل إلينا شركائنا من خلال أساليب أخرى", + "support_title_guides": "أدلة محفظة كعكة", + "support_title_live_chat": "الدعم المباشر", + "support_title_other_links": "روابط دعم أخرى", + "sweeping_wallet": "كنس المحفظة", + "sweeping_wallet_alert": "لن يستغرق هذا وقتًا طويلاً. لا تترك هذه الشاشة وإلا فقد يتم فقد أموال سويبت", + "switchToETHWallet": "ﻯﺮﺧﺃ ﺓﺮﻣ ﺔﻟﻭﺎﺤﻤﻟﺍﻭ Ethereum ﺔﻈﻔﺤﻣ ﻰﻟﺇ ﻞﻳﺪﺒﺘﻟﺍ ﻰﺟﺮﻳ", "switchToEVMCompatibleWallet": " (Ethereum، Polygon) ﻯﺮﺧﺃ ﺓﺮﻣ ﺔﻟﻭﺎﺤﻤﻟﺍﻭ EVM ﻊﻣ ﺔﻘﻓﺍﻮﺘﻣ ﺔﻈﻔﺤﻣ ﻰﻟﺇ ﻞﻳﺪﺒﺘﻟﺍ ﻰﺟﺮﻳ", - "receivable_balance": "التوازن القادم", - "confirmed_tx": "مؤكد", + "symbol": "ﺰﻣﺭ", + "sync_status_attempting_sync": "جاري محاولة المزامنة", + "sync_status_connected": "متصل", + "sync_status_connecting": "يتم التوصيل", + "sync_status_failed_connect": "انقطع الاتصال", + "sync_status_not_connected": "غير متصل", + "sync_status_starting_sync": "بدء المزامنة", + "sync_status_syncronized": "متزامن", + "sync_status_syncronizing": "يتم المزامنة", + "syncing_wallet_alert_content": "قد لا يكتمل رصيدك وقائمة المعاملات الخاصة بك حتى تظهر عبارة “SYNCHRONIZED“ في الأعلى. انقر / اضغط لمعرفة المزيد.", + "syncing_wallet_alert_title": "محفظتك تتم مزامنتها", + "template": "قالب", + "template_name": "اسم القالب", + "third_intro_content": "يعيش Yats خارج Cake Wallet أيضًا. يمكن استبدال أي عنوان محفظة على وجه الأرض بـ Yat!", + "third_intro_title": "يتماشي Yat بلطف مع الآخرين", + "time": "${minutes}د ${seconds}س", + "tip": "بقشيش:", + "today": "اليوم", + "token_contract_address": "عنوان عقد الرمز", + "token_decimal": "رمز عشري", + "token_name": "اسم الرمز ، على سبيل المثال: Tether", + "token_symbol": "رمز العملة ، على سبيل المثال: USDT", + "tokenID": "ﻒﻳﺮﻌﺗ ﺔﻗﺎﻄﺑ", + "tor_connection": "ﺭﻮﺗ ﻝﺎﺼﺗﺍ", + "tor_only": "Tor فقط", + "total_saving": "إجمالي المدخرات", + "totp_2fa_failure": "شفرة خاطئة. يرجى تجربة رمز مختلف أو إنشاء مفتاح سري جديد. استخدم تطبيق 2FA متوافقًا يدعم الرموز المكونة من 8 أرقام و SHA512.", + "totp_2fa_success": "نجاح! تم تمكين Cake 2FA لهذه المحفظة. تذكر حفظ بذرة ذاكري في حالة فقد الوصول إلى المحفظة.", + "totp_auth_url": "TOTP ﺔﻗﺩﺎﺼﻤﻟ URL ﻥﺍﻮﻨﻋ", + "totp_code": "كود TOTP", + "totp_secret_code": "كود TOTP السري", + "totp_verification_success": "تم التحقق بنجاح!", + "trade_details_copied": "تم نسخ ${title} إلى الحافظة", + "trade_details_created_at": "أنشئت في", + "trade_details_fetching": "جار الجلب", + "trade_details_id": "معرف (ID)", + "trade_details_pair": "زوج", + "trade_details_provider": "مزود", + "trade_details_state": "الحالة", + "trade_details_title": "تفاصيل الصفقة", + "trade_for_not_created": "لم يتم إنشاء التداول للعنصر ${title}.", + "trade_history_title": "تاريخ الصفقه", + "trade_id": "معرف عملية التبادل:", + "trade_id_not_found": "تداول ${tradeId} من ${title} غير موجود.", + "trade_is_powered_by": "عملية التبادل مدعومة من ${provider}", + "trade_not_created": "التداول لم ينشأ", + "trade_not_found": "التداول غير موجودة.", + "trade_state_btc_sent": "تم أرسل Btc", + "trade_state_complete": "اكتمل", + "trade_state_confirming": "جاري التأكيد", + "trade_state_created": "تم الأنشاء", + "trade_state_finished": "تم", + "trade_state_paid": "مدفوع", + "trade_state_paid_unconfirmed": "دفع غير مؤكد", + "trade_state_pending": "قيد الانتظار", + "trade_state_timeout": "نفذ الوقت", + "trade_state_to_be_created": "ليتم انشائه", + "trade_state_traded": "تم التداول بنجاح", + "trade_state_trading": "يتم التداول", + "trade_state_underpaid": "أجر أقل من اللازم", + "trade_state_unpaid": "غير مدفوعة", + "trades": "عمليات التداول", + "transaction_details_amount": "مقدار", + "transaction_details_copied": "تم نسخ ${title} إلى الحافظة", + "transaction_details_date": "تاريخ", + "transaction_details_fee": "رسوم", + "transaction_details_height": "ارتفاع", + "transaction_details_recipient_address": "عناوين المستلم", "transaction_details_source_address": "عنوان المصدر", - "pause_wallet_creation": ".ﺎﻴًﻟﺎﺣ ﺎﺘًﻗﺆﻣ ﺔﻔﻗﻮﺘﻣ Haven Wallet ءﺎﺸﻧﺇ ﻰﻠﻋ ﺓﺭﺪﻘﻟﺍ", - "contractName": "ﺪﻘﻌﻟﺍ ﻢﺳﺍ", - "contractSymbol": "ﺪﻘﻌﻟﺍ ﺰﻣﺭ", - "description": "ﻒﺻﻭ", - "camera_consent": ".ﻞﻴﺻﺎﻔﺘﻟﺍ ﻰﻠﻋ ﻝﻮﺼﺤﻠﻟ ﻢﻬﺑ ﺔﺻﺎﺨﻟﺍ ﺔﻴﺻﻮﺼﺨﻟﺍ ﺔﺳﺎﻴﺳ ﻦﻣ ﻖﻘﺤﺘﻟﺍ ﻰﺟﺮﻳ .${provider} ﻝﻮﻠ", - "no_relays": "ﺕﻼﺣﺮﻤﻟﺍ ﻻ", - "choose_relay": "ﻡﺍﺪﺨﺘﺳﻼﻟ ﻊﺑﺎﺘﺘﻟﺍ ﺭﺎﻴﺘﺧﺍ ءﺎﺟﺮﻟﺍ", - "no_relays_message": ".ﻪﺑ ﺹﺎﺨﻟﺍ Nostr ﻞﺠﺳ ﻰﻟﺇ ﺕﻼﺣﺮﻤﻟﺍ ﺔﻓﺎﺿﻹ ﻢﻠﺘﺴﻤﻟﺍ ﺩﺎﺷﺭﺇ ﻰﺟﺮﻳ .ﺕﻼﺣﺮﻣ ﻱﺃ ﻰﻠﻋ ﻱﻮﺘﺤﻳ ﻻ", - "no_relay_on_domain": ".ﻡﺍﺪﺨﺘﺳﻼﻟ ﻊﺑﺎﺘﺘﻟﺍ ﺭﺎﻴﺘﺧﺍ ءﺎﺟﺮﻟﺍ .ﺡﺎﺘﻣ ﺮﻴﻏ ﻞﻴﺣﺮﺘﻟﺍ ﻥﺃ ﻭﺃ ﻡﺪﺨﺘﺴﻤﻟﺍ ﻝﺎﺠﻤﻟ ﻞﻴﺣﺮﺗ ﺪ" -} + "transaction_details_title": "تفاصيل المعاملة", + "transaction_details_transaction_id": "رقم المعاملة", + "transaction_key": "مفتاح العملية", + "transaction_priority_fast": "سريع", + "transaction_priority_fastest": "أسرع", + "transaction_priority_medium": "متوسط", + "transaction_priority_regular": "عادي", + "transaction_priority_slow": "بطيء", + "transaction_sent": "تم إرسال المعاملة!", + "transaction_sent_notice": "إذا لم تستمر الشاشة بعد دقيقة واحدة ، فتحقق من مستكشف البلوك والبريد الإلكتروني.", + "transactions": "المعاملات", + "transactions_by_date": "المعاملات حسب التاريخ", + "trusted": "موثوق به", + "unavailable_balance": "ﺮﻓﻮﺘﻣ ﺮﻴﻏ ﺪﻴﺻﺭ", + "unavailable_balance_description": ".ﺎﻫﺪﻴﻤﺠﺗ ءﺎﻐﻟﺇ ﺭﺮﻘﺗ ﻰﺘﺣ ﺕﻼﻣﺎﻌﻤﻠﻟ ﻝﻮﺻﻮﻠﻟ ﺔﻠﺑﺎﻗ ﺮﻴﻏ ﺓﺪﻤﺠﻤﻟﺍ ﺓﺪﺻﺭﻷﺍ ﻞﻈﺗ ﺎﻤﻨﻴﺑ ،ﺎﻬﺑ ﺔﺻﺎﺨﻟﺍ ﺕﻼﻣﺎﻌﻤﻟﺍ ﻝﺎﻤﺘﻛﺍ ﺩﺮﺠﻤﺑ ﺔﺣﺎﺘﻣ ﺔﻠﻔﻘﻤﻟﺍ ﺓﺪﺻﺭﻷﺍ ﺢﺒﺼﺘﺳ .ﻚﺑ ﺔﺻﺎﺨﻟﺍ ﺕﻼﻤﻌﻟﺍ ﻲﻓ ﻢﻜﺤﺘﻟﺍ ﺕﺍﺩﺍﺪﻋﺇ ﻲﻓ ﻂﺸﻧ ﻞﻜﺸﺑ ﺎﻫﺪﻴﻤﺠﺘﺑ ﺖﻤﻗ", + "unconfirmed": "رصيد غير مؤكد", + "understand": "لقد فهمت", + "unmatched_currencies": "عملة محفظتك الحالية لا تتطابق مع عملة QR الممسوحة ضوئيًا", + "unspent_change": "يتغير", + "unspent_coins_details_title": "تفاصيل العملات الغير المنفقة", + "unspent_coins_title": "العملات الغير المنفقة", + "unsupported_asset": ".ﻡﻮﻋﺪﻣ ﻞﺻﺃ ﻉﻮﻧ ﻦﻣ ﺔﻈﻔﺤﻣ ﻰﻟﺇ ﻞﻳﺪﺒﺘﻟﺍ ﻭﺃ ءﺎﺸﻧﺇ ﻰﺟﺮﻳ .ﻞﺻﻷﺍ ﺍﺬﻬﻟ ءﺍﺮﺟﻹﺍ ﺍﺬﻫ ﻢﻋﺪﻧ ﻻ ﻦﺤﻧ", + "upto": "حتى ${value}", + "use": "التبديل إلى", + "use_card_info_three": "استخدم البطاقة الرقمية عبر الإنترنت أو مع طرق الدفع غير التلامسية.", + "use_card_info_two": "يتم تحويل الأموال إلى الدولار الأمريكي عند الاحتفاظ بها في الحساب المدفوع مسبقًا ، وليس بالعملات الرقمية.", + "use_ssl": "استخدم SSL", + "use_suggested": "استخدام المقترح", + "variable_pair_not_supported": "هذا الزوج المتغير غير مدعوم في التبادلات المحددة", + "verification": "تَحَقّق", + "verify_with_2fa": "تحقق مع Cake 2FA", + "version": "الإصدار ${currentVersion}", + "view_all": "مشاهدة الكل", + "view_in_block_explorer": "عرض في Block Explorer", + "view_key_private": "مفتاح العرض (خاص)", + "view_key_public": "مفتاح العرض (عام)", + "view_transaction_on": "عرض العملية على", + "wallet_keys": "سييد المحفظة / المفاتيح", + "wallet_list_create_new_wallet": "إنشاء محفظة جديدة", + "wallet_list_edit_wallet": "تحرير المحفظة", + "wallet_list_failed_to_load": "فشل تحميل محفظة ${wallet_name}. ${error}", + "wallet_list_failed_to_remove": "فشلت إزالة محفظة ${wallet_name}. ${error}", + "wallet_list_load_wallet": "تحميل المحفظة", + "wallet_list_loading_wallet": "جار تحميل محفظة ${wallet_name}", + "wallet_list_removing_wallet": "يتم إزالة محفظة ${wallet_name}", + "wallet_list_restore_wallet": "استعادة المحفظة", + "wallet_list_title": "محفظة Monero", + "wallet_list_wallet_name": "اسم المحفظة", + "wallet_menu": "قائمة", + "wallet_name": "اسم المحفظة", + "wallet_name_exists": "توجد بالفعل محفظة بهذا الاسم. الرجاء اختيار اسم مختلف أو إعادة تسمية المحفظة الأخرى أولاً.", + "wallet_restoration_store_incorrect_seed_length": "طول السييد غير صحيح", + "wallet_seed": "سييد المحفظة", + "wallet_seed_legacy": "بذرة محفظة قديمة", + "wallet_store_monero_wallet": "محفظة Monero", + "walletConnect": "WalletConnect", + "wallets": "المحافظ", + "warning": "تحذير", + "welcome": "مرحبا بك في", + "welcome_to_cakepay": "مرحبا بكم في Cake Pay!", + "widgets_address": "عنوان", + "widgets_or": "أو", + "widgets_restore_from_blockheight": "استعادة من ارتفاع البلوك", + "widgets_restore_from_date": "استعادة من التاريخ", + "widgets_seed": "سييد", + "wouoldLikeToConnect": "ﻝﺎﺼﺗﻻﺍ ﻲﻓ ﺐﻏﺮﺗ", + "write_down_backup_password": "يرجى كتابة كلمة المرور الاحتياطية الخاصة بك ، والتي يتم استخدامها لاستيراد ملفات النسخ الاحتياطي الخاصة بك.", + "xlm_extra_info": "من فضلك لا تنس تحديد معرّف المذكرة أثناء إرسال معاملة XLM للتبادل", + "xmr_available_balance": "الرصيد المتوفر", + "xmr_full_balance": "الرصيد الكامل", + "xmr_hidden": "مختفي", + "xmr_to_error": "خطأ XMR.TO", + "xmr_to_error_description": "مبلغ غير صحيح. الحد الأقصى 8 أرقام بعد الفاصلة العشرية", + "xrp_extra_info": "من فضلك لا تنس تحديد علامة الوجهة أثناء إرسال معاملة XRP للتبادل", + "yat": "Yat", + "yat_address": "عنوان Yat", + "yat_alert_content": "يمكن لمستخدمي Cake Wallet الآن إرسال واستلام جميع عملاتهم المفضلة باستخدام اسم مستخدم فريد من نوعه قائم على الرموز التعبيرية.", + "yat_alert_title": "أرسل واستقبل العملات المشفرة بسهولة أكبر مع Yat", + "yat_error": "خطأ Yat", + "yat_error_content": "لا توجد عناوين مرتبطة بهذا Yat. جرب يات آخر", + "yat_popup_content": "يمكنك الآن إرسال واستلام العملات المشفرة في Cake Wallet باستخدام Yat - اسم مستخدم قصير يعتمد على الرموز التعبيرية. إدارة Yats في أي وقت على شاشة الإعدادات", + "yat_popup_title": "يمكن تحويل عنوان محفظتك إلى رموز تعبيرية.", + "yesterday": "الامس", + "you_now_have_debit_card": "لديك الآن بطاقة ائتمان", + "you_pay": "انت تدفع", + "you_will_get": "حول الى", + "you_will_send": "تحويل من", + "yy": "YY", + "zzzz": "ززز" +} \ No newline at end of file diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index 58c27d5e8..783f83d55 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -1,771 +1,772 @@ { - "welcome": "Добре дошли в", - "cake_wallet": "Cake Wallet", - "first_wallet_text": "Невероятен портфейл за Monero, Bitcoin, Ethereum, Litecoin и Haven", - "please_make_selection": "Моля, изберете отдолу за създаване или възстановяване на портфейл.", - "create_new": "Създаване на нов портфейл", - "restore_wallet": "Възстановяване на портфейл", - "monero_com": "Monero.com от Cake Wallet", - "monero_com_wallet_text": "Невероятен портфейл за Monero", - "haven_app": "Haven от Cake Wallet", - "haven_app_wallet_text": "Невероятен портфейл за Haven", - "accounts": "Профили", - "edit": "Промени", + "about_cake_pay": "Cake Pay Ви позволява лесно да купувате предплатени карти, които веднага могат да се използват с над 150,000 търговци на територията на САЩ.", "account": "Профил", + "accounts": "Профили", + "accounts_subaddresses": "Профили и подадреси", + "activate": "Активиране", + "active": "Активиране", + "active_cards": "Активни карти", + "activeConnectionsPrompt": "Тук ще се появят активни връзки", "add": "Добави", + "add_contact": "Добави контакт", + "add_custom_node": "Добавяне на нов персонализиран Node", + "add_custom_redemption": "Добавете персонализиран Redemption", + "add_fund_to_card": "Добавете предплатени средства в картите (до ${value})", + "add_new_node": "Добави нов node", + "add_new_word": "Добавяне на нова дума", + "add_receiver": "Добавяне на друг получател (не е задължително)", + "add_secret_code": "Или добавете този таен код към приложение за удостоверяване", + "add_tip": "Add Tip", + "add_token_disclaimer_check": "Потвърдих адреса и информацията за токен договора, използвайки надежден източник. Добавянето на злонамерена или неправилна информация може да доведе до загуба на средства.", + "add_token_warning": "Не редактирайте и не добавяйте токени според инструкциите на измамниците.\nВинаги потвърждавайте адресите на токени с надеждни източници!", + "add_value": "Добавяне на стойност", + "address": "Адрес", "address_book": "Адресна книга", - "contact": "Контакт", - "please_select": "Моля, изберете:", - "cancel": "Откажи", - "ok": "Ок", - "contact_name": "Име на контакт", - "reset": "Нулиране", - "save": "Запази", + "address_book_menu": "Адресна книга", + "address_detected": "Открит е адрес", + "address_from_domain": "Този адрес е от ${domain} на Unstoppable Domains", + "address_from_yat": "Този адрес е от ${emoji} в Yat", + "address_label": "Адресен label", "address_remove_contact": "Премахни контакт", "address_remove_content": "Сигурни ли сте, че искате да премахнете избрания контакт?", - "authenticated": "Удостоверено", - "authentication": "Удостоверяване", - "failed_authentication": "Неуспешно удостоверяване. ${state_error}", - "wallet_menu": "Меню", - "Blocks_remaining": "${status} оставащи блока", - "please_try_to_connect_to_another_node": "Моля, опитайте се да се свържете към друг node.", - "xmr_hidden": "Скрит", - "xmr_available_balance": "Наличен баланс", - "xmr_full_balance": "Пълен баланс", - "send": "Изпрати", - "receive": "Получи", - "transactions": "Транзакции", - "incoming": "Входящи", - "outgoing": "Изходящи", - "transactions_by_date": "Транзакции по дата", - "trades": "Trades", - "filter_by": "Филтрирай по", - "today": "Днес", - "yesterday": "Вчера", - "received": "Получени", - "sent": "Изпратени", - "pending": " (чакащи)", - "rescan": "Сканирай отново", - "reconnect": "Reconnect", - "wallets": "Портфейли", - "show_seed": "Покажи seed", - "show_keys": "Покажи seed/keys", - "address_book_menu": "Адресна книга", - "reconnection": "Свързване отново", - "reconnect_alert_text": "Сигурни ли сте, че искате да се свържете отново?", - "exchange": "Exchange", - "clear": "Изчисти", - "refund_address": "Refund address", - "change_exchange_provider": "Промяна на 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": "Смени валута", - "overwrite_amount": "Промени сума", - "qr_payment_amount": "Този QR код съдържа сума за плащане. Искате ли да промените стойността?", - "copy_id": "Копиране на ID", - "exchange_result_write_down_trade_id": "Моля, запишете trade ID-то, за да продължите.", - "trade_id": "Trade ID:", - "copied_to_clipboard": "Копирано", - "saved_the_trade_id": "Запазих trade ID-то", - "fetching": "Обработване", - "id": "ID: ", - "amount": "Сума: ", - "payment_id": "Payment ID: ", - "status": "Статус: ", - "offer_expires_in": "Предложението изтича след: ", - "trade_is_powered_by": "This trade is powered by ${provider}", - "copy_address": "Copy Address", - "exchange_result_confirm": "By pressing confirm, you will be sending ${fetchingLabel} ${from} from your wallet called ${walletName} to the address shown below. Or you can send from your external wallet to the below address/QR code.\n\nPlease press confirm to continue or go back to change the amounts.", - "exchange_result_description": "You must send a minimum of ${fetchingLabel} ${from} to the address shown on the next page. If you send an amount lower than ${fetchingLabel} ${from} it may not get converted and it may not be refunded.", - "exchange_result_write_down_ID": "*Please copy or write down your ID shown above.", - "confirm": "Потвърждаване", - "confirm_sending": "Потвърждаване на изпращането", - "commit_transaction_amount_fee": "Изпълняване на транзакция\nСума: ${amount}\nТакса: ${fee}", - "sending": "Изпращане", - "transaction_sent": "Сумата е изпратена!", - "expired": "Изтекло", - "time": "${minutes} мин ${seconds} сек", - "send_xmr": "Изпращане на XMR", - "exchange_new_template": "Нов шаблон", - "faq": "FAQ", - "enter_your_pin": "Въведете PIN", - "loading_your_wallet": "Зареждане на портфейл", - "new_wallet": "Нов портфейл", - "wallet_name": "Име на портфейл", - "continue_text": "Напред", - "choose_wallet_currency": "Изберете валута за портфейла:", - "node_new": "Нов Node", - "node_address": "Нов адрес", - "node_port": "Node порт", - "login": "Влизане", - "password": "Парола", - "nodes": "Nodes", - "node_reset_settings_title": "Възстановяване на настройки", - "nodes_list_reset_to_default_message": "Сигурни ли сте, че искате да възстановите фабричните настройки?", - "change_current_node": "Сигурни ли сте, че искате да промените сегашния node на ${node}?", - "change": "Промени", - "remove_node": "Премахни node", - "remove_node_message": "Сигурни ли сте, че искате да премахнете избрания node?", - "remove": "Премахни", - "delete": "Изтрий", - "add_new_node": "Добави нов node", - "change_current_node_title": "Промени сегашния node", - "node_test": "Тест", - "node_connection_successful": "Връзката бе установена успешно", - "node_connection_failed": "Връзката не можа да бъде установена", - "new_node_testing": "Тестване на нов node", - "use": "Смяна на ", - "digit_pin": "-цифрен PIN", - "share_address": "Сподели адрес", - "receive_amount": "Сума", - "subaddresses": "Подадреси", "addresses": "Адреси", - "scan_qr_code": "Сканирайте QR кода, за да получите адреса", - "qr_fullscreen": "Натиснете, за да отворите QR кода на цял екран", - "rename": "Промяна на името", - "choose_account": "Избиране на профил", - "create_new_account": "Създаване на нов профил", - "accounts_subaddresses": "Профили и подадреси", - "restore_restore_wallet": "Възстановяване на портфейл", - "restore_title_from_seed_keys": "Възстановяване от seed/keys", - "restore_description_from_seed_keys": "Възстановете своя портфейл от seed/keys, които сте съхранили на сигурно място", - "restore_next": "Next", - "restore_title_from_backup": "Възстановяване от резервно копие", - "restore_description_from_backup": "Можете да възстановите цялото приложение Cake Wallet от своя резервен файл", - "restore_seed_keys_restore": "Възстановяне от Seed/Keys", - "restore_title_from_seed": "Възстановяване от seed", - "restore_description_from_seed": "Възстановяване на портфейл от кода от 13 или 25 думи", - "restore_title_from_keys": "Възстановяване от keys", - "restore_description_from_keys": "Възстановяване на портфейл от генерираните от Вашите тайни ключове клавиши", - "restore_wallet_name": "Име на портфейл", - "restore_address": "Адреси", - "restore_view_key_private": "View key (таен)", - "restore_spend_key_private": "Spend key (публичен)", - "restore_recover": "Възстановяване", - "restore_wallet_restore_description": "Описание на възстановяване на портфейл", - "restore_new_seed": "Нов seed", - "restore_active_seed": "Активиране на seed", - "restore_bitcoin_description_from_seed": "Възстановяване на портфейл чрез код от 24 думи", - "restore_bitcoin_description_from_keys": "Възстановяване на портфейл чрез WIF, изведен от Вашите private keys", - "restore_bitcoin_title_from_keys": "Възстановяване от WIF", - "restore_from_date_or_blockheight": "Моля, въведете дата няколко дни преди създаването на този портфейл. Ако знаете blockheight-а, въведето него вместо това", - "seed_reminder": "Моля, запишете го в случай на загуба на устройството.", - "seed_title": "Seed", - "seed_share": "Споделяне на seed", - "copy": "Копиране", - "seed_language": "Език на семената", - "seed_choose": "Изберете език на seed-а", - "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": "Испански", - "seed_language_french": "Френски", - "seed_language_italian": "Италиански", - "send_title": "Изпращане", - "send_your_wallet": "Вашият портфейл", - "send_address": "${cryptoCurrency} адрес", - "send_payment_id": "Payment ID (не е задължително)", + "advanced_settings": "Разширени настройки", + "aggressive": "Прекалено усърден", + "agree": "Съгласен/а съм", + "agree_and_continue": "Съгласяване и продължаване", + "agree_to": "Чрез създаването на акаунт вие се съгласявате с ", "all": "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": "Име", - "got_it": "Готово", - "send_sending": "Изпращане...", - "send_success": "Вашите ${crypto} бяха успешно изпратени", - "settings_title": "Настройки", - "settings_nodes": "Nodes", - "settings_current_node": "Сегашен node", - "settings_wallets": "Портфейли", - "settings_display_balance": "Показване на баланс", - "settings_currency": "Валута", - "settings_fee_priority": "Таксова приоритетност", - "settings_save_recipient_address": "Запазване адрес на получател", - "settings_personal": "Лични", - "settings_change_pin": "Промяна на 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": "Seed/keys на портфейла", - "wallet_seed": "Seed на портфейла", - "private_key": "Таен ключ", - "public_key": "Публичен ключ", - "view_key_private": "View key (таен)", - "view_key_public": "View key (публичен)", - "spend_key_private": "Spend key (таен)", - "spend_key_public": "Spend key (публичен)", - "copied_key_to_clipboard": "Копиран ключ: ${key}", - "new_subaddress_title": "Нов адрес", - "new_subaddress_label_name": "Име на Label", - "new_subaddress_create": "Създаване", - "address_label": "Адресен label", - "subaddress_title": "Лист от подадреси", - "trade_details_title": "Подробности на сделката", - "trade_details_id": "ID", - "trade_details_state": "Статус", - "trade_details_fetching": "Обработка", - "trade_details_provider": "Provider", - "trade_details_created_at": "Създадено", - "trade_details_pair": "Pair", - "trade_details_copied": "${title} копирано", - "trade_history_title": "История на сделките", - "transaction_details_title": "Подробности на транзакцията", - "transaction_details_transaction_id": "Transaction ID", - "transaction_details_date": "Дата", - "transaction_details_height": "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_edit_wallet": "Редактиране на портфейла", - "wallet_list_wallet_name": "Име на портфейла", - "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": "Възстановяване от blockheight", - "widgets_restore_from_date": "Възстановяване от дата", - "widgets_or": "или", - "widgets_seed": "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": "Node port-ът е цяло число между 0 и 65535", - "error_text_node_proxy_address": "Моля, въведете :<порт>, например 127.0.0.1:9050", - "error_text_payment_id": "Payment ID-то може да съдържа само между 16 и 64 шестнайсетични символа", - "error_text_xmr": "XMR сумата не може да надхвърля наличния баланс.\nБроят на цифрите след десетичната запетая може да бъде най-много 12", - "error_text_fiat": "Сумата не може да надвишава наличния баланс.\nThe number of fraction digits must be less or equal to 2", - "error_text_subaddress_name": "Името на подадреса не може да съдържат символите ` , ' \" \n и трябва да е между 1 и 20 символа", - "error_text_amount": "Сумата може да съдържа само числа", - "error_text_wallet_name": "Името на портфейла може да съдържа само букви, цифри, и символите _ и - \n и трябва да е между 1 и 33 символа", - "error_text_keys": "Ключовете за портфейл може да съдържат само 64 шестнайсетични символа", - "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 символа.", + "all_trades": "Всички сделкки", + "all_transactions": "Всички транзакции", + "alphabetical": "Азбучен ред", + "already_have_account": "Вече имате профил?", + "always": "Винаги", + "amount": "Сума: ", + "amount_is_estimate": "Сумата за получаване е ", + "amount_is_guaranteed": "Сумата за получаване е гарантирана", + "and": "и", + "anonpay_description": "Генерирайте ${type}. Получателят може да ${method} с всяка поддържана криптовалута и вие ще получите средства в този портфейл.", + "apk_update": "APK ъпдейт", + "approve": "Одобряване", + "arrive_in_this_address": "${currency} ${tag}ще отидат на този адрес", + "ascending": "Възходящ", + "ask_each_time": "Питайте всеки път", "auth_store_ban_timeout": "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": "Грешна дължина на seed-а", - "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": "СВЪРЗВАНЕ", - "sync_status_attempting_sync": "ОПИТ ЗА СИНХРОНИЗАЦИЯ", - "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": "Trading", - "trade_state_traded": "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": "Btc изпратен", - "trade_state_timeout": "Време за изчакване", - "trade_state_created": "Създадено", - "trade_state_finished": "Завършено", - "change_language": "Смяна на езика", - "change_language_to": "Смяна на езика на ${language}?", - "paste": "Поставяне", - "restore_from_seed_placeholder": "Моля, въведете своя seed тук", - "add_new_word": "Добавяне на нова дума", - "incorrect_seed": "Въведеният текст е невалиден.", - "biometric_auth_reason": "Сканирайте своя пръстов отпечатък", - "version": "Версия ${currentVersion}", - "extracted_address_content": "Ще изпратите средства на \n${recipient_name}", - "card_address": "Адрес:", - "buy": "Купуване", - "sell": "Продаване", - "placeholder_transactions": "Вашите транзакции ще се покажат тук", - "placeholder_contacts": "Вашите контакти ще се покажат тук", - "template": "Шаблон", - "confirm_delete_template": "Този шаблон ще бъде изтрит. Искате ли да продължите?", - "confirm_delete_wallet": "Този портфейл ще бъде изтрит. Искате ли да продължите?", - "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-ът е единственият начин да възстановите портфейла си. Записахте ли го?", - "seed_alert_back": "Назад", - "seed_alert_yes": "Да", - "exchange_sync_alert_content": "Моля, изчакайте синхронизирането на Вашия портфейл", - "pre_seed_title": "ВАЖНО", - "pre_seed_description": "На следващата страница ще видите поредица от ${words} думи. Това е вашият таен личен seed и е единственият начин да възстановите портфейла си. Отговорността за съхранението му на сигурно място извън приложението на Cake Wallet е изцяло ВАША.", - "pre_seed_button_text": "Разбирам. Покажи seed", - "xmr_to_error": "XMR.TO грешка", - "xmr_to_error_description": "Невалидна сума - най-много 8 цифри след десетичната запетая", - "provider_error": "Грешка на ${provider} ", - "use_ssl": "Използване на SSL", - "trusted": "Надежден", - "color_theme": "Цвят", - "light_theme": "Светло", - "bright_theme": "Ярко", - "dark_theme": "Тъмно", - "enter_your_note": "Въвеждане на бележка…", - "note_optional": "Бележка (не е задължително)", - "note_tap_to_change": "Бележка (натиснете за промяна)", - "view_in_block_explorer": "Вижте в Block Explorer", - "view_transaction_on": "Вижте транзакция на ", - "transaction_key": "Transaction Key", - "confirmations": "потвърждения", - "recipient_address": "Адрес на получател", - "extra_id": "Допълнително ID:", - "destination_tag": "Destination 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": "Предишните резервни копия не могат да бъдат импортирани с новата парола. Те ще се използва само за нови такива. Are you sure that you want to change backup password?", - "enter_backup_password": "Въведете парола за възстановяване", - "select_backup_file": "Избор на резервно копие", - "import": "Импортиране", - "please_select_backup_file": "Моля, изберете резервно копие и въведете парола за възстановяване.", - "fixed_rate": "Постоянен обменен курс", - "fixed_rate_alert": "Ще можете да въведете сумата за получаване, когато е избранен постоянен обменен курс. Искате ли да изберете постоянен обменен курс?", - "xlm_extra_info": "Не забравяйте да дадете Memo ID-то, докато изпращате XLM транзакцията за обмена", - "xrp_extra_info": "Не забравяйте да дадете Destination Tag-а, когато изпращате XRP транзакцията за обмена", - "exchange_incorrect_current_wallet_for_xmr": "Ако искате да обмените XMR от своя Cake Wallet Monero баланс, първо изберете своя Monero портфейл.", - "confirmed": "Потвърден баланс", - "unconfirmed": "Непотвърден баланс", - "displayable": "Възможност за показване", - "submit_request": "изпращане на заявка", - "buy_alert_content": "В момента поддържаме само закупуването на Bitcoin, Ethereum, Litecoin и Monero. Моля, създайте или превключете към своя портфейл Bitcoin, Ethereum, Litecoin или Monero.", - "sell_alert_content": "В момента поддържаме само продажбата на Bitcoin, Ethereum и Litecoin. Моля, създайте или превключете към своя портфейл Bitcoin, Ethereum или Litecoin.", - "outdated_electrum_wallet_description": "Нови Bitcoin портфейли, създадени в Cake, сега имат seed от 24 думи. Трябва да създадете нов Bitcoin адрес и да прехвърлите всичките си средства в него и веднага да спрете използването на стари портфейли. Моля, напревете това незабавно, за да подсигурите средствата си.", - "understand": "Разбирам", - "apk_update": "APK ъпдейт", - "buy_bitcoin": "Купуване на Bitcoin", - "buy_with": "Купуване чрез", - "moonpay_alert_text": "Сумата трябва да бъде най-малко ${minAmount} ${fiatCurrency}", - "outdated_electrum_wallet_receive_warning": "Ако този адрес има seed от 12 думи и е създаден чрез Cake, НЕ добавяйте Bitcoin в него. Всякакъв Bitcoin, изпратен на този адрес, може да бъде загубен завинаги. Създайте нов портфейл от 24 думи (натиснете менюто горе, вдясно, изберете Портфейли, изберете Създаване на нов портфейл, след това изберете Bitcoin) и НЕЗАБАВНО преместете своя Bitcoin там. Нови (такива с 24 думи) Bitcoin портфейли от Cake са надеждни", - "do_not_show_me": "Не показвай повече това", - "unspent_coins_title": "Неизползвани монети", - "unspent_coins_details_title": "Подробности за неизползваните монети", - "freeze": "Замразяване", - "frozen": "Замразени", - "coin_control": "Управление на монетите (не е задължително)", - "address_detected": "Открит е адрес", - "address_from_domain": "Този адрес е от ${domain} на Unstoppable Domains", - "add_receiver": "Добавяне на друг получател (не е задължително)", - "manage_yats": "Управление на Yats", - "yat_alert_title": "Търгувайте с крипто много по-лесно чрез Yat", - "yat_alert_content": "Потребителите на Cake Wallet вече могат да изпращат и получават любимите си валути чрез неповторимо потребителско име от емоджита.", - "get_your_yat": "Получете своя Yat", - "connect_an_existing_yat": "Добавете съществуващ Yat", - "connect_yats": "Добавете Yats", - "yat_address": "Yat Адрес", - "yat": "Yat", - "address_from_yat": "Този адрес е от ${emoji} в Yat", - "yat_error": "Yat грешка", - "yat_error_content": "Няма адреси, свързани с този Yat. Опитайте с друг Yat", - "choose_address": "\n\nМоля, изберете адреса:", - "yat_popup_title": "Адресът на вашия портфейл може да съдържа емоджита.", - "yat_popup_content": "Вече можете да изпращате и да получавате крипто в Cake Wallet с вашия Yat - кратко потребителско име във формата на емоджи. Управлявайте своите Yats по всяко време в настройките", - "second_intro_title": "Един емоджи адрес, обединяващ всички останали.", - "second_intro_content": "Вашият Yat е уникален адрес във формата на емоджи, който играе ролята на всички Ваши дълги шестнайсетични портфейли за всяка валута.", - "third_intro_title": "Yat добре се сработва с други", - "third_intro_content": "Yats също живее извън Cake Wallet. Всеки адрес на портфейл може да бъде заменен с Yat!", - "learn_more": "Научете още", - "search": "Търсене", - "search_language": "Търсене на език", - "search_currency": "Търсене на валута", - "new_template": "Нов шаблон", - "electrum_address_disclaimer": "Нови адреси се генерират всеки път, когато използвате този, но и предишните продължават да работят", - "wallet_name_exists": "Вече има портфейл с това име. Моля, изберете друго име или преименувайте другия портфейл.", - "market_place": "Магазин", - "cake_pay_title": "Cake Pay Gift Карти", - "cake_pay_subtitle": "Купете гифткарти на намалени цени (само за САЩ)", - "cake_pay_web_cards_title": "Cake Pay Онлайн Карти", - "cake_pay_web_cards_subtitle": "Купете световно признати предплатени и гифт карти", - "about_cake_pay": "Cake Pay Ви позволява лесно да купувате предплатени карти, които веднага могат да се използват с над 150,000 търговци на територията на САЩ.", - "cake_pay_account_note": "Регистрайте се само с един имейл, за да виждате и купувате карти. За някои има дори и отстъпка!", - "already_have_account": "Вече имате профил?", - "create_account": "Създаване на профил", - "privacy_policy": "Политика за поверителността", - "welcome_to_cakepay": "Добре дошли в Cake Pay!", - "sign_up": "Регистрация", - "forgot_password": "Забравена парола", - "reset_password": "Нулиране на парола", - "gift_cards": "Gift Карти", - "setup_your_debit_card": "Настройте своята дебитна карта", - "no_id_required": "Без нужда от документ за самоличност. Използвайте навсякъде", - "how_to_use_card": "Как се ползва тази карта", - "purchase_gift_card": "Купуване на Gift Card", - "verification": "Потвърждаване", - "fill_code": "Моля, въведето кода за потвърждаване, изпратен на Вашия имейл", - "didnt_get_code": "Не получихте код?", - "resend_code": "Повторно изпращане", - "debit_card": "Дебитна карта", - "cakepay_prepaid_card": "CakePay предплатена дебитна карта", - "no_id_needed": "Без нужда от документ за самоличност!", - "frequently_asked_questions": "Често задавани въпроси", - "debit_card_terms": "Съхранението и използването на данните от вашата платежна карта в този дигитален портфейл подлежат на условията на съответното съгласие за картодържец от издателя на картата.", - "please_reference_document": "Моля, вижте документите по-долу за повече информация.", - "cardholder_agreement": "Съгласие за картодържец", - "e_sign_consent": "E-Sign съгласие", - "agree_and_continue": "Съгласяване и продължаване", - "email_address": "Имейл адрес", - "agree_to": "Чрез създаването на акаунт вие се съгласявате с ", - "and": "и", - "enter_code": "Въведете код", - "congratulations": "Поздравления!", - "you_now_have_debit_card": "Вече имате дебитна карта", - "min_amount": "Мин: ${value}", - "max_amount": "Макс: ${value}", - "enter_amount": "Въведете сума", - "billing_address_info": "Ако Ви попитат за билинг адрес, въведето своя адрес за доставка", - "order_physical_card": "Поръчка на физическа карта", - "add_value": "Добавяне на стойност", - "activate": "Активиране", - "get_a": "Вземете ", - "digital_and_physical_card": " дигитална или физическа предплатена дебитна карта", - "get_card_note": ", която можете да заредите с дигитална валута. Без нужда от допълнителна информация!", - "signup_for_card_accept_terms": "Регистрайте се за картата и приемете условията.", - "add_fund_to_card": "Добавете предплатени средства в картите (до ${value})", - "use_card_info_two": "Средствата се обръщат в USD, когато биват запазени в предплатената карта, а не в дигитална валута.", - "use_card_info_three": "Използвайте дигиталната карта онлайн или чрез безконтактен метод на плащане.", - "optionally_order_card": "По желание поръчайте и физическа карта.", - "hide_details": "Скриване на подробностите", - "show_details": "Показване на подробностите", - "upto": "до ${value}", - "discount": "Спестете ${value}%", - "gift_card_amount": "Сума в Gift Card", - "bill_amount": "Искана сума", - "you_pay": "Вие плащате", - "tip": "Tip:", - "custom": "персонализирано", - "by_cake_pay": "от Cake Pay", - "expires": "Изтича", - "mm": "мм", - "yy": "гг", - "online": "Онлайн", - "offline": "Офлайн", - "gift_card_number": "Номер на Gift Card", - "pin_number": "PIN код", - "total_saving": "Общо спестявания", - "last_30_days": "Последните 30 дни", - "avg_savings": "Средни спестявания", - "view_all": "Виж всички", - "active_cards": "Активни карти", - "delete_account": "Изтриване на акаунт", - "cards": "Карти", - "active": "Активиране", - "redeemed": "Използвани", - "gift_card_balance_note": "Гифткарти с наличен баланс ще се покажат тук", - "gift_card_redeemed_note": "Използваните гифткарти ще се покажат тук", - "logout": "Logout", - "add_tip": "Add Tip", - "percentageOf": "от ${amount}", - "is_percentage": "е", - "search_category": "Търсене в категория", - "mark_as_redeemed": "Отбележи като използван", - "more_options": "Още настройки", - "awaiting_payment_confirmation": "Чака се потвърждение на плащането", - "transaction_sent_notice": "Ако процесът продължи повече от 1 минута, проверете някой block explorer и своя имейл.", - "agree": "Съгласен/а съм", - "in_store": "In Store", - "generating_gift_card": "Създаване на Gift Card", - "payment_was_received": "Плащането бе получено.", - "proceed_after_one_minute": "Ако процесът продължи повече от 1 минута, проверете своя имейл.", - "order_id": "ID на поръчка", - "gift_card_is_generated": "Gift Card бе създадена", - "open_gift_card": "Отвори Gift Card", - "contact_support": "Свържи се с отдел поддръжка", - "gift_cards_unavailable": "В момента гифткарти могат да бъдат закупени само с Monero, Bitcoin и Litecoin", - "introducing_cake_pay": "Запознайте се с Cake Pay!", - "cake_pay_learn_more": "Купете и използвайте гифткарти директно в приложението!\nПлъзнете отляво надясно, за да научите още.", - "automatic": "Автоматично", - "fixed_pair_not_supported": "Този fixed pair не се поддържа от избраната борса", - "variable_pair_not_supported": "Този variable pair не се поддържа от избраната борса", - "none_of_selected_providers_can_exchange": "Нито един от избраните provider-ъри не може да направи този превод", - "choose_one": "Изберете едно", - "choose_from_available_options": "Изберете от следните опции:", - "custom_redeem_amount": "Персонализирана сума за използване", - "add_custom_redemption": "Добавете персонализиран Redemption", - "remaining": "оставащи", - "delete_wallet": "Изтриване на портфейл", - "delete_wallet_confirm_message": "Сигурни ли сте, че искате да изтриете протфейла ${wallet_name}?", - "low_fee": "Ниска такса", - "low_fee_alert": "Използвате ниска приоритетност в мрежата. Това може да доведе до дълго чакане, различни обменни курсове или отказани сделки. Препоръчваме използването на по-висока такса.", - "ignor": "Игнориране", - "use_suggested": "Използване на предложеното", - "do_not_share_warning_text": "Не споделяйте това с никого, дори и отдел поддръжка.\n\nПарите Ви могат и ще бъдат откраднати!", - "help": "Помощ", - "all_transactions": "Всички транзакции", - "all_trades": "Всички сделкки", - "connection_sync": "Свързване и синхронизиране", - "security_and_backup": "Сигурност и резервни копия", - "create_backup": "Създаване на резервно копие", - "privacy_settings": "Настройки за поверителност", - "privacy": "Поверителност", - "display_settings": "Настройки на екрана", - "other_settings": "Други настройки", - "require_pin_after": "Въведете PIN след", - "always": "Винаги", - "minutes_to_pin_code": "${minute} минути", - "disable_exchange": "Деактивиране на борса", - "advanced_settings": "Разширени настройки", - "settings_can_be_changed_later": "Тези настройки могат да бъдат променени по-късно от приложението", - "add_custom_node": "Добавяне на нов персонализиран Node", - "disable_fiat": "Деактивиране на fiat", - "fiat_api": "Fiat API", - "disabled": "Деактивирано", - "enabled": "Активирано", - "tor_only": "Само чрез Tor", - "unmatched_currencies": "Валутата на този портфейл не съвпада с тази от сканирания QR код", - "orbot_running_alert": "Моля, включете Orbot преди да свържете към този node.", - "contact_list_contacts": "Контакти", - "contact_list_wallets": "Моите портфейли", - "bitcoin_payments_require_1_confirmation": "Плащанията с Bitcoin изискват потвърждение, което може да отнеме 20 минути или повече. Благодарим за търпението! Ще получите имейл, когато плащането е потвърдено.", - "send_to_this_address": "Send ${currency} ${tag}to this address", - "arrive_in_this_address": "${currency} ${tag}ще отидат на този адрес", - "do_not_send": "Не изпращай", - "error_dialog_content": "Получихме грешка.\n\nМоля, изпратете доклада до нашия отдел поддръжка, за да подобрим приложението.", - "decimal_places_error": "Твърде много знаци след десетичната запетая", - "edit_node": "Редактиране на възел", - "invoice_details": "IДанни за фактура", - "donation_link_details": "Подробности за връзката за дарение", - "anonpay_description": "Генерирайте ${type}. Получателят може да ${method} с всяка поддържана криптовалута и вие ще получите средства в този портфейл.", - "create_invoice": "Създайте фактура", - "create_donation_link": "Създайте връзка за дарение", - "optional_email_hint": "Незадължителен имейл за уведомяване на получателя", - "optional_description": "Описание по избор", - "optional_name": "Незадължително име на получател", - "clearnet_link": "Clearnet връзка", - "onion_link": "Лукова връзка", - "sell_monero_com_alert_content": "Продажбата на Monero все още не се поддържа", - "error_text_input_below_minimum_limit": "Сумата е по-малко от минималната", - "error_text_input_above_maximum_limit": "Сумата надвишава максималната", - "show_market_place": "Покажи пазар", - "prevent_screenshots": "Предотвратете екранни снимки и запис на екрана", - "profile": "Профил", - "close": "затвори", - "modify_2fa": "Модифициране на тортата 2FA", - "disable_cake_2fa": "Деактивирайте Cake 2FA", - "question_to_disable_2fa": "Сигурни ли сте, че искате да деактивирате Cake 2FA? Вече няма да е необходим 2FA код за достъп до портфейла и определени функции.", - "disable": "Деактивиране", - "setup_2fa": "Настройка на Cake 2FA", - "verify_with_2fa": "Проверете с Cake 2FA", - "totp_code": "TOTP код", - "please_fill_totp": "Моля, попълнете 8-цифрения код на другото ви устройство", - "totp_2fa_success": "Успех! Cake 2FA е активиран за този портфейл. Не забравяйте да запазите мнемоничното начало, в случай че загубите достъп до портфейла.", - "totp_verification_success": "Проверката е успешна!", - "totp_2fa_failure": "Грешен код. Моля, опитайте с различен код или генерирайте нов таен ключ. Използвайте съвместимо 2FA приложение, което поддържа 8-цифрени кодове и SHA512.", - "enter_totp_code": "Моля, въведете TOTP кода.", - "add_secret_code": "Или добавете този таен код към приложение за удостоверяване", - "totp_secret_code": "TOTP таен код", - "setup_2fa_text": "Cake 2FA работи с помощта на TOTP като втори фактор за удостоверяване.\n\nTOTP на Cake 2FA изисква SHA-512 и поддръжка на 8 цифри; това осигурява повишена сигурност. Повече информация и поддържани приложения можете да намерите в ръководството.", - "setup_totp_recommended": "Настройка на TOTP", - "disable_buy": "Деактивирайте действието за покупка", - "disable_sell": "Деактивирайте действието за продажба", + "authenticated": "Удостоверено", + "authentication": "Удостоверяване", "auto_generate_subaddresses": "Автоматично генериране на подадреси", - "cake_2fa_preset": "Торта 2FA Preset", - "narrow": "Тесен", - "normal": "нормално", - "aggressive": "Прекалено усърден", - "require_for_assessing_wallet": "Изискване за достъп до портфейла", - "require_for_sends_to_non_contacts": "Изискване за изпращане до лица без контакт", - "require_for_sends_to_contacts": "Изискване за изпращане до контакти", - "require_for_sends_to_internal_wallets": "Изискване за изпращане до вътрешни портфейли", - "require_for_exchanges_to_internal_wallets": "Изискване за обмен към вътрешни портфейли", - "require_for_adding_contacts": "Изисква се за добавяне на контакти", - "require_for_creating_new_wallets": "Изискване за създаване на нови портфейли", - "require_for_all_security_and_backup_settings": "Изисква се за всички настройки за сигурност и архивиране", + "automatic": "Автоматично", + "available_balance": "Наличен баланс", "available_balance_description": "Това е балансът, който можете да използвате за покупка на криптовалути. Това не включва замразените средства.", - "syncing_wallet_alert_title": "Вашият портфейл се синхронизира", - "syncing_wallet_alert_content": "Списъкът ви с баланс и транзакции може да не е пълен, докато в горната част не пише „СИНХРОНИЗИРАН“. Кликнете/докоснете, за да научите повече.", - "home_screen_settings": "Настройки на началния екран", - "sort_by": "Сортирай по", - "search_add_token": "Търсене/Добавяне на токен", - "edit_token": "Редактиране на токена", - "warning": "Внимание", - "add_token_warning": "Не редактирайте и не добавяйте токени според инструкциите на измамниците.\nВинаги потвърждавайте адресите на токени с надеждни източници!", - "add_token_disclaimer_check": "Потвърдих адреса и информацията за токен договора, използвайки надежден източник. Добавянето на злонамерена или неправилна информация може да доведе до загуба на средства.", - "token_contract_address": "Адрес на токен договор", - "token_name": "Име на токена, напр.: Tether", - "token_symbol": "Символ на токена, напр.: USDT", - "token_decimal": "Токен десетичен", - "field_required": "Това поле е задължително", - "pin_at_top": "закачете ${token} отгоре", - "invalid_input": "Невалиден вход", - "fiat_balance": "Фиат Баланс", - "gross_balance": "Брутен баланс", - "alphabetical": "Азбучен ред", - "generate_name": "Генериране на име", + "avg_savings": "Средни спестявания", + "awaitDAppProcessing": "Моля, изчакайте dApp да завърши обработката.", + "awaiting_payment_confirmation": "Чака се потвърждение на плащането", + "backup": "Резервно копие", + "backup_file": "Резервно копие", + "backup_password": "Парола за възстановяване", "balance_page": "Страница за баланс", - "share": "Дял", - "slidable": "Плъзгащ се", - "monero_dark_theme": "Тъмна тема Monero", + "bill_amount": "Искана сума", + "billing_address_info": "Ако Ви попитат за билинг адрес, въведето своя адрес за доставка", + "biometric_auth_reason": "Сканирайте своя пръстов отпечатък", "bitcoin_dark_theme": "Тъмна тема за биткойн", "bitcoin_light_theme": "Лека биткойн тема", - "high_contrast_theme": "Тема с висок контраст", - "matrix_green_dark_theme": "Зелена тъмна тема Matrix", - "monero_light_theme": "Лека тема Monero", - "etherscan_history": "История на Etherscan", - "template_name": "Име на шаблон", + "bitcoin_payments_require_1_confirmation": "Плащанията с Bitcoin изискват потвърждение, което може да отнеме 20 минути или повече. Благодарим за търпението! Ще получите имейл, когато плащането е потвърдено.", + "Blocks_remaining": "${status} оставащи блока", + "bright_theme": "Ярко", + "buy": "Купуване", + "buy_alert_content": "В момента поддържаме само закупуването на Bitcoin, Ethereum, Litecoin и Monero. Моля, създайте или превключете към своя портфейл Bitcoin, Ethereum, Litecoin или Monero.", + "buy_bitcoin": "Купуване на Bitcoin", + "buy_provider_unavailable": "Понастоящем доставчик не е наличен.", + "buy_with": "Купуване чрез", + "by_cake_pay": "от Cake Pay", + "cake_2fa_preset": "Торта 2FA Preset", + "cake_pay_account_note": "Регистрайте се само с един имейл, за да виждате и купувате карти. За някои има дори и отстъпка!", + "cake_pay_learn_more": "Купете и използвайте гифткарти директно в приложението!\nПлъзнете отляво надясно, за да научите още.", + "cake_pay_subtitle": "Купете гифткарти на намалени цени (само за САЩ)", + "cake_pay_title": "Cake Pay Gift Карти", + "cake_pay_web_cards_subtitle": "Купете световно признати предплатени и гифт карти", + "cake_pay_web_cards_title": "Cake Pay Онлайн Карти", + "cake_wallet": "Cake Wallet", + "cakepay_prepaid_card": "CakePay предплатена дебитна карта", + "camera_consent": "Вашият фотоапарат ще бъде използван за заснемане на изображение с цел идентификация от ${provider}. Моля, проверете тяхната политика за поверителност за подробности.", + "camera_permission_is_required": "Изисква се разрешение за камерата.\nМоля, активирайте го от настройките на приложението.", + "cancel": "Откажи", + "card_address": "Адрес:", + "cardholder_agreement": "Съгласие за картодържец", + "cards": "Карти", + "chains": "Вериги", + "change": "Промени", + "change_backup_password_alert": "Предишните резервни копия не могат да бъдат импортирани с новата парола. Те ще се използва само за нови такива. Are you sure that you want to change backup password?", + "change_currency": "Смени валута", + "change_current_node": "Сигурни ли сте, че искате да промените сегашния node на ${node}?", + "change_current_node_title": "Промени сегашния node", + "change_exchange_provider": "Промяна на Exchange Provider", + "change_language": "Смяна на езика", + "change_language_to": "Смяна на езика на ${language}?", + "change_password": "Смяна на парола", "change_rep": "Смяна на представител", "change_rep_message": "Сигурни ли сте, че искате да смените представителите?", - "manage_nodes": "Управление на възли", - "unsupported_asset": "Не поддържаме това действие за този актив. Моля, създайте или преминете към портфейл от поддържан тип актив.", - "manage_pow_nodes": "Управление на PoW възли", - "support_title_live_chat": "Подкрепа на живо", - "support_description_live_chat": "Безплатно и бързо! Обучени представители на подкрепата са на разположение за подпомагане", - "support_title_guides": "Ръководства за портфейл за торта", - "support_description_guides": "Документация и подкрепа за общи проблеми", - "support_title_other_links": "Други връзки за поддръжка", - "support_description_other_links": "Присъединете се към нашите общности или се свържете с нас нашите партньори чрез други методи", + "change_rep_successful": "Успешно промени представител", + "change_wallet_alert_content": "Искате ли да смените сегашния портфейл на ${wallet_name}?", + "change_wallet_alert_title": "Смяна на сегашния портфейл", + "choose_account": "Избиране на профил", + "choose_address": "\n\nМоля, изберете адреса:", "choose_derivation": "Изберете производно на портфейла", - "new_first_wallet_text": "Лесно пазете криптовалутата си в безопасност", - "select_destination": "Моля, изберете дестинация за архивния файл.", - "save_to_downloads": "Запазване в Изтегляния", - "select_buy_provider_notice": "Изберете доставчик на покупка по -горе. Можете да пропуснете този екран, като зададете вашия доставчик по подразбиране по подразбиране в настройките на приложението.", - "onramper_option_description": "Бързо купувайте криптовалута с много методи за плащане. Предлага се в повечето страни. Разпространенията и таксите варират.", + "choose_from_available_options": "Изберете от следните опции:", + "choose_one": "Изберете едно", + "choose_relay": "Моля, изберете реле, което да използвате", + "choose_wallet_currency": "Изберете валута за портфейла:", + "clear": "Изчисти", + "clearnet_link": "Clearnet връзка", + "close": "затвори", + "coin_control": "Управление на монетите (не е задължително)", + "color_theme": "Цвят", + "commit_transaction_amount_fee": "Изпълняване на транзакция\nСума: ${amount}\nТакса: ${fee}", + "confirm": "Потвърждаване", + "confirm_delete_template": "Този шаблон ще бъде изтрит. Искате ли да продължите?", + "confirm_delete_wallet": "Този портфейл ще бъде изтрит. Искате ли да продължите?", + "confirm_sending": "Потвърждаване на изпращането", + "confirmations": "потвърждения", + "confirmed": "Потвърден баланс", + "confirmed_tx": "Потвърдено", + "congratulations": "Поздравления!", + "connect_an_existing_yat": "Добавете съществуващ Yat", + "connect_yats": "Добавете Yats", + "connection_sync": "Свързване и синхронизиране", + "connectWalletPrompt": "Свържете портфейла си с WalletConnect, за да извършвате транзакции", + "contact": "Контакт", + "contact_list_contacts": "Контакти", + "contact_list_wallets": "Моите портфейли", + "contact_name": "Име на контакт", + "contact_support": "Свържи се с отдел поддръжка", + "continue_text": "Напред", + "contractName": "Име на договора", + "contractSymbol": "Договор Символ", + "copied_key_to_clipboard": "Копиран ключ: ${key}", + "copied_to_clipboard": "Копирано", + "copy": "Копиране", + "copy_address": "Copy Address", + "copy_id": "Копиране на ID", + "copyWalletConnectLink": "Копирайте връзката WalletConnect от dApp и я поставете тук", + "create_account": "Създаване на профил", + "create_backup": "Създаване на резервно копие", + "create_donation_link": "Създайте връзка за дарение", + "create_invoice": "Създайте фактура", + "create_new": "Създаване на нов портфейл", + "create_new_account": "Създаване на нов профил", + "creating_new_wallet": "Създаване на нов портфейл", + "creating_new_wallet_error": "Грешка: ${description}", + "creation_date": "Дата на създаване", + "custom": "персонализирано", + "custom_drag": "Персонализиране (задръжте и плъзнете)", + "custom_redeem_amount": "Персонализирана сума за използване", + "dark_theme": "Тъмно", + "debit_card": "Дебитна карта", + "debit_card_terms": "Съхранението и използването на данните от вашата платежна карта в този дигитален портфейл подлежат на условията на съответното съгласие за картодържец от издателя на картата.", + "decimal_places_error": "Твърде много знаци след десетичната запетая", "default_buy_provider": "Доставчик по подразбиране купува", - "ask_each_time": "Питайте всеки път", - "buy_provider_unavailable": "Понастоящем доставчик не е наличен.", - "signTransaction": "Подпишете транзакция", + "default_sell_provider": "Доставчик за продажба по подразбиране", + "delete": "Изтрий", + "delete_account": "Изтриване на акаунт", + "delete_wallet": "Изтриване на портфейл", + "delete_wallet_confirm_message": "Сигурни ли сте, че искате да изтриете протфейла ${wallet_name}?", + "deleteConnectionConfirmationPrompt": "Сигурни ли сте, че искате да изтриете връзката към", + "descending": "Низходящ", + "description": "Описание", + "destination_tag": "Destination tag:", + "dfx_option_description": "Купете крипто с EUR и CHF. До 990 € без допълнителен KYC. За клиенти на дребно и корпоративни клиенти в Европа", + "didnt_get_code": "Не получихте код?", + "digit_pin": "-цифрен PIN", + "digital_and_physical_card": " дигитална или физическа предплатена дебитна карта", + "disable": "Деактивиране", + "disable_buy": "Деактивирайте действието за покупка", + "disable_cake_2fa": "Деактивирайте Cake 2FA", + "disable_exchange": "Деактивиране на борса", + "disable_fiat": "Деактивиране на fiat", + "disable_sell": "Деактивирайте действието за продажба", + "disabled": "Деактивирано", + "discount": "Спестете ${value}%", + "display_settings": "Настройки на екрана", + "displayable": "Възможност за показване", + "do_not_have_enough_gas_asset": "Нямате достатъчно ${currency}, за да извършите транзакция с текущите условия на блокчейн мрежата. Имате нужда от повече ${currency}, за да платите таксите за блокчейн мрежа, дори ако изпращате различен актив.", + "do_not_send": "Не изпращай", + "do_not_share_warning_text": "Не споделяйте това с никого, дори и отдел поддръжка.\n\nПарите Ви могат и ще бъдат откраднати!", + "do_not_show_me": "Не показвай повече това", + "domain_looks_up": "Търсене на домейни", + "donation_link_details": "Подробности за връзката за дарение", + "e_sign_consent": "E-Sign съгласие", + "edit": "Промени", + "edit_backup_password": "Промяна на паролата за възстановяване", + "edit_node": "Редактиране на възел", + "edit_token": "Редактиране на токена", + "electrum_address_disclaimer": "Нови адреси се генерират всеки път, когато използвате този, но и предишните продължават да работят", + "email_address": "Имейл адрес", + "enabled": "Активирано", + "enter_amount": "Въведете сума", + "enter_backup_password": "Въведете парола за възстановяване", + "enter_code": "Въведете код", + "enter_seed_phrase": "Въведете вашата фраза за семена", + "enter_totp_code": "Моля, въведете TOTP кода.", + "enter_your_note": "Въвеждане на бележка…", + "enter_your_pin": "Въведете PIN", + "enter_your_pin_again": "Въведете своя PIN отново", + "enterTokenID": "Въведете идентификатора на токена", + "enterWalletConnectURI": "Въведете URI на WalletConnect", + "error": "Грешка", + "error_dialog_content": "Получихме грешка.\n\nМоля, изпратете доклада до нашия отдел поддръжка, за да подобрим приложението.", + "error_text_account_name": "Името на профила може да съдържа само букви и числа \nи трябва да е между 1 и 15 символа", + "error_text_address": "Адресът на портфейла трябва да отговаря \n на вида криптовалута", + "error_text_amount": "Сумата може да съдържа само числа", + "error_text_contact_name": "Името на контакта не може да съдържа символите ` , ' \" \nи и трябва да е между 1 и 32 символа", + "error_text_crypto_currency": "Броят на цифрите след десетичната запетая\nможе да бъде най-много 12", + "error_text_fiat": "Сумата не може да надвишава наличния баланс.\nThe number of fraction digits must be less or equal to 2", + "error_text_input_above_maximum_limit": "Сумата надвишава максималната", + "error_text_input_below_minimum_limit": "Сумата е по-малко от минималната", + "error_text_keys": "Ключовете за портфейл може да съдържат само 64 шестнайсетични символа", + "error_text_limits_loading_failed": "Сделка за ${provider} не беше създадена. Неуспешно зареждане на лимити", + "error_text_maximum_limit": "Сделка за ${provider} не беше създадена. Сумата надвишава максималната: ${max} ${currency}", + "error_text_minimal_limit": "Сделка за ${provider} не беше създадена. Сумата е по-малко от минималната: ${min} ${currency}", + "error_text_node_address": "Моля, въведете iPv4 адрес", + "error_text_node_port": "Node port-ът е цяло число между 0 и 65535", + "error_text_node_proxy_address": "Моля, въведете :<порт>, например 127.0.0.1:9050", + "error_text_payment_id": "Payment ID-то може да съдържа само между 16 и 64 шестнайсетични символа", + "error_text_subaddress_name": "Името на подадреса не може да съдържат символите ` , ' \" \n и трябва да е между 1 и 20 символа", + "error_text_template": "Имената на шаблони и адреси не могат да съдържат ` , ' \" \nи трябва да са между 1 и 106 символа.", + "error_text_wallet_name": "Името на портфейла може да съдържа само букви, цифри, и символите _ и - \n и трябва да е между 1 и 33 символа", + "error_text_xmr": "XMR сумата не може да надхвърля наличния баланс.\nБроят на цифрите след десетичната запетая може да бъде най-много 12", "errorGettingCredentials": "Неуспешно: Грешка при получаване на идентификационни данни", "errorSigningTransaction": "Възникна грешка при подписване на транзакция", - "pairingInvalidEvent": "Невалидно събитие при сдвояване", - "chains": "Вериги", - "methods": "Методи", - "events": "събития", - "reject": "Отхвърляне", - "approve": "Одобряване", - "expiresOn": "Изтича на", - "walletConnect": "WalletConnect", - "nullURIError": "URI е нула", - "connectWalletPrompt": "Свържете портфейла си с WalletConnect, за да извършвате транзакции", - "newConnection": "Нова връзка", - "activeConnectionsPrompt": "Тук ще се появят активни връзки", - "deleteConnectionConfirmationPrompt": "Сигурни ли сте, че искате да изтриете връзката към", + "estimated": "Изчислено", + "etherscan_history": "История на Etherscan", "event": "Събитие", - "successful": "Успешен", - "wouoldLikeToConnect": "иска да се свърже", - "message": "Съобщение", - "do_not_have_enough_gas_asset": "Нямате достатъчно ${currency}, за да извършите транзакция с текущите условия на блокчейн мрежата. Имате нужда от повече ${currency}, за да платите таксите за блокчейн мрежа, дори ако изпращате различен актив.", - "totp_auth_url": "TOTP AUTH URL", - "awaitDAppProcessing": "Моля, изчакайте dApp да завърши обработката.", - "copyWalletConnectLink": "Копирайте връзката WalletConnect от dApp и я поставете тук", - "enterWalletConnectURI": "Въведете URI на WalletConnect", - "seed_key": "Ключ за семена", - "enter_seed_phrase": "Въведете вашата фраза за семена", - "change_rep_successful": "Успешно промени представител", - "add_contact": "Добави контакт", + "events": "събития", + "exchange": "Exchange", + "exchange_incorrect_current_wallet_for_xmr": "Ако искате да обмените XMR от своя Cake Wallet Monero баланс, първо изберете своя Monero портфейл.", + "exchange_new_template": "Нов шаблон", "exchange_provider_unsupported": "${providerName} вече не се поддържа!", - "domain_looks_up": "Търсене на домейни", - "require_for_exchanges_to_external_wallets": "Изискване за обмен към външни портфейли", - "camera_permission_is_required": "Изисква се разрешение за камерата.\nМоля, активирайте го от настройките на приложението.", - "switchToETHWallet": "Моля, преминете към портфейл Ethereum и опитайте отново", - "order_by": "Подредени по", - "creation_date": "Дата на създаване", + "exchange_result_confirm": "By pressing confirm, you will be sending ${fetchingLabel} ${from} from your wallet called ${walletName} to the address shown below. Or you can send from your external wallet to the below address/QR code.\n\nPlease press confirm to continue or go back to change the amounts.", + "exchange_result_description": "You must send a minimum of ${fetchingLabel} ${from} to the address shown on the next page. If you send an amount lower than ${fetchingLabel} ${from} it may not get converted and it may not be refunded.", + "exchange_result_write_down_ID": "*Please copy or write down your ID shown above.", + "exchange_result_write_down_trade_id": "Моля, запишете trade ID-то, за да продължите.", + "exchange_sync_alert_content": "Моля, изчакайте синхронизирането на Вашия портфейл", + "expired": "Изтекло", + "expires": "Изтича", + "expiresOn": "Изтича на", + "export_backup": "Експортиране на резервно копие", + "extra_id": "Допълнително ID:", + "extracted_address_content": "Ще изпратите средства на \n${recipient_name}", + "failed_authentication": "Неуспешно удостоверяване. ${state_error}", + "faq": "FAQ", + "fetching": "Обработване", + "fiat_api": "Fiat API", + "fiat_balance": "Фиат Баланс", + "field_required": "Това поле е задължително", + "fill_code": "Моля, въведето кода за потвърждаване, изпратен на Вашия имейл", + "filter_by": "Филтрирай по", + "first_wallet_text": "Невероятен портфейл за Monero, Bitcoin, Ethereum, Litecoin и Haven", + "fixed_pair_not_supported": "Този fixed pair не се поддържа от избраната борса", + "fixed_rate": "Постоянен обменен курс", + "fixed_rate_alert": "Ще можете да въведете сумата за получаване, когато е избранен постоянен обменен курс. Искате ли да изберете постоянен обменен курс?", + "forgot_password": "Забравена парола", + "freeze": "Замразяване", + "frequently_asked_questions": "Често задавани въпроси", + "frozen": "Замразени", + "full_balance": "Пълен баланс", + "generate_name": "Генериране на име", + "generating_gift_card": "Създаване на Gift Card", + "get_a": "Вземете ", + "get_card_note": ", която можете да заредите с дигитална валута. Без нужда от допълнителна информация!", + "get_your_yat": "Получете своя Yat", + "gift_card_amount": "Сума в Gift Card", + "gift_card_balance_note": "Гифткарти с наличен баланс ще се покажат тук", + "gift_card_is_generated": "Gift Card бе създадена", + "gift_card_number": "Номер на Gift Card", + "gift_card_redeemed_note": "Използваните гифткарти ще се покажат тук", + "gift_cards": "Gift Карти", + "gift_cards_unavailable": "В момента гифткарти могат да бъдат закупени само с Monero, Bitcoin и Litecoin", + "got_it": "Готово", + "gross_balance": "Брутен баланс", "group_by_type": "Група по вид", - "importNFTs": "Импортирайте NFT", - "noNFTYet": "Все още няма NFT", - "address": "Адрес", - "enterTokenID": "Въведете идентификатора на токена", - "tokenID": "документ за самоличност", - "name": "Име", - "symbol": "Символ", - "seed_phrase_length": "Дължина на началната фраза", - "unavailable_balance": "Неналично салдо", - "unavailable_balance_description": "Неналично салдо: Тази обща сума включва средства, които са заключени в чакащи транзакции и тези, които сте замразили активно в настройките за контрол на монетите. Заключените баланси ще станат достъпни, след като съответните им транзакции бъдат завършени, докато замразените баланси остават недостъпни за транзакции, докато не решите да ги размразите.", - "unspent_change": "Промяна", - "tor_connection": "Tor връзка", - "setup_warning_2fa_text": "Cake 2FA е второ удостоверяване за определени действия в портфейла. НЕ е толкова сигурно, колкото хладилното съхранение.\n\nАко загубите достъп до вашето 2FA приложение или TOTP ключове, ЩЕ загубите достъп до този портфейл. Ще трябва да възстановите портфейла си от мнемоничното семе.\n\nПоддръжката на Cake няма да може да ви помогне, ако загубите достъп до вашите 2FA или мнемонични семена.\nПреди да използвате Cake 2FA, препоръчваме да прочетете ръководството.", - "scan_qr_on_device": "Сканирайте този QR код на друго устройство", + "haven_app": "Haven от Cake Wallet", + "haven_app_wallet_text": "Невероятен портфейл за Haven", + "help": "Помощ", + "hidden_balance": "Скрит баланс", + "hide_details": "Скриване на подробностите", + "high_contrast_theme": "Тема с висок контраст", + "home_screen_settings": "Настройки на началния екран", "how_to_use": "Как да използвам", + "how_to_use_card": "Как се ползва тази карта", + "id": "ID: ", + "ignor": "Игнориране", + "import": "Импортиране", + "importNFTs": "Импортирайте NFT", + "in_store": "In Store", + "incoming": "Входящи", + "incorrect_seed": "Въведеният текст е невалиден.", + "introducing_cake_pay": "Запознайте се с Cake Pay!", + "invalid_input": "Невалиден вход", + "invoice_details": "IДанни за фактура", + "is_percentage": "е", + "last_30_days": "Последните 30 дни", + "learn_more": "Научете още", + "light_theme": "Светло", + "loading_your_wallet": "Зареждане на портфейл", + "login": "Влизане", + "logout": "Logout", + "low_fee": "Ниска такса", + "low_fee_alert": "Използвате ниска приоритетност в мрежата. Това може да доведе до дълго чакане, различни обменни курсове или отказани сделки. Препоръчваме използването на по-висока такса.", + "manage_nodes": "Управление на възли", + "manage_pow_nodes": "Управление на PoW възли", + "manage_yats": "Управление на Yats", + "mark_as_redeemed": "Отбележи като използван", + "market_place": "Магазин", + "matrix_green_dark_theme": "Зелена тъмна тема Matrix", + "max_amount": "Макс: ${value}", + "max_value": "Макс: ${value} ${currency}", + "memo": "Мемо:", + "message": "Съобщение", + "methods": "Методи", + "min_amount": "Мин: ${value}", + "min_value": "Мин: ${value} ${currency}", + "minutes_to_pin_code": "${minute} минути", + "mm": "мм", + "modify_2fa": "Модифициране на тортата 2FA", + "monero_com": "Monero.com от Cake Wallet", + "monero_com_wallet_text": "Невероятен портфейл за Monero", + "monero_dark_theme": "Тъмна тема Monero", + "monero_light_theme": "Лека тема Monero", + "moonpay_alert_text": "Сумата трябва да бъде най-малко ${minAmount} ${fiatCurrency}", + "more_options": "Още настройки", + "name": "Име", + "narrow": "Тесен", + "new_first_wallet_text": "Лесно пазете криптовалутата си в безопасност", + "new_node_testing": "Тестване на нов node", + "new_subaddress_create": "Създаване", + "new_subaddress_label_name": "Име на Label", + "new_subaddress_title": "Нов адрес", + "new_template": "Нов шаблон", + "new_wallet": "Нов портфейл", + "newConnection": "Нова връзка", + "no_id_needed": "Без нужда от документ за самоличност!", + "no_id_required": "Без нужда от документ за самоличност. Използвайте навсякъде", + "no_relay_on_domain": "Няма реле за домейна на потребителя или релето не е налично. Моля, изберете реле, което да използвате.", + "no_relays": "Без релета", + "no_relays_message": "Намерихме запис Nostr NIP-05 за този потребител, но той не съдържа релета. Моля, инструктирайте получателя да добави релета към своя Nostr запис.", + "node_address": "Нов адрес", + "node_connection_failed": "Връзката не можа да бъде установена", + "node_connection_successful": "Връзката бе установена успешно", + "node_new": "Нов Node", + "node_port": "Node порт", + "node_reset_settings_title": "Възстановяване на настройки", + "node_test": "Тест", + "nodes": "Nodes", + "nodes_list_reset_to_default_message": "Сигурни ли сте, че искате да възстановите фабричните настройки?", + "none_of_selected_providers_can_exchange": "Нито един от избраните provider-ъри не може да направи този превод", + "noNFTYet": "Все още няма NFT", + "normal": "нормално", + "note_optional": "Бележка (не е задължително)", + "note_tap_to_change": "Бележка (натиснете за промяна)", + "nullURIError": "URI е нула", + "offer_expires_in": "Предложението изтича след: ", + "offline": "Офлайн", + "ok": "Ок", + "onion_link": "Лукова връзка", + "online": "Онлайн", + "onramper_option_description": "Бързо купувайте криптовалута с много методи за плащане. Предлага се в повечето страни. Разпространенията и таксите варират.", + "open_gift_card": "Отвори Gift Card", + "optional_description": "Описание по избор", + "optional_email_hint": "Незадължителен имейл за уведомяване на получателя", + "optional_name": "Незадължително име на получател", + "optionally_order_card": "По желание поръчайте и физическа карта.", + "orbot_running_alert": "Моля, включете Orbot преди да свържете към този node.", + "order_by": "Подредени по", + "order_id": "ID на поръчка", + "order_physical_card": "Поръчка на физическа карта", + "other_settings": "Други настройки", + "outdated_electrum_wallet_description": "Нови Bitcoin портфейли, създадени в Cake, сега имат seed от 24 думи. Трябва да създадете нов Bitcoin адрес и да прехвърлите всичките си средства в него и веднага да спрете използването на стари портфейли. Моля, напревете това незабавно, за да подсигурите средствата си.", + "outdated_electrum_wallet_receive_warning": "Ако този адрес има seed от 12 думи и е създаден чрез Cake, НЕ добавяйте Bitcoin в него. Всякакъв Bitcoin, изпратен на този адрес, може да бъде загубен завинаги. Създайте нов портфейл от 24 думи (натиснете менюто горе, вдясно, изберете Портфейли, изберете Създаване на нов портфейл, след това изберете Bitcoin) и НЕЗАБАВНО преместете своя Bitcoin там. Нови (такива с 24 думи) Bitcoin портфейли от Cake са надеждни", + "outgoing": "Изходящи", + "overwrite_amount": "Промени сума", + "pairingInvalidEvent": "Невалидно събитие при сдвояване", + "password": "Парола", + "paste": "Поставяне", + "pause_wallet_creation": "Възможността за създаване на Haven Wallet в момента е на пауза.", + "payment_id": "Payment ID: ", + "payment_was_received": "Плащането бе получено.", + "pending": " (чакащи)", + "percentageOf": "от ${amount}", + "pin_at_top": "закачете ${token} отгоре", + "pin_is_incorrect": "Грешен PIN", + "pin_number": "PIN код", + "placeholder_contacts": "Вашите контакти ще се покажат тук", + "placeholder_transactions": "Вашите транзакции ще се покажат тук", + "please_fill_totp": "Моля, попълнете 8-цифрения код на другото ви устройство", + "please_make_selection": "Моля, изберете отдолу за създаване или възстановяване на портфейл.", + "please_reference_document": "Моля, вижте документите по-долу за повече информация.", + "please_select": "Моля, изберете:", + "please_select_backup_file": "Моля, изберете резервно копие и въведете парола за възстановяване.", + "please_try_to_connect_to_another_node": "Моля, опитайте се да се свържете към друг node.", + "polygonscan_history": "История на PolygonScan", + "powered_by": "Powered by ${title}", + "pre_seed_button_text": "Разбирам. Покажи seed", + "pre_seed_description": "На следващата страница ще видите поредица от ${words} думи. Това е вашият таен личен seed и е единственият начин да възстановите портфейла си. Отговорността за съхранението му на сигурно място извън приложението на Cake Wallet е изцяло ВАША.", + "pre_seed_title": "ВАЖНО", + "prevent_screenshots": "Предотвратете екранни снимки и запис на екрана", + "privacy": "Поверителност", + "privacy_policy": "Политика за поверителността", + "privacy_settings": "Настройки за поверителност", + "private_key": "Таен ключ", + "proceed_after_one_minute": "Ако процесът продължи повече от 1 минута, проверете своя имейл.", + "profile": "Профил", + "provider_error": "Грешка на ${provider} ", + "public_key": "Публичен ключ", + "purchase_gift_card": "Купуване на Gift Card", + "qr_fullscreen": "Натиснете, за да отворите QR кода на цял екран", + "qr_payment_amount": "Този QR код съдържа сума за плащане. Искате ли да промените стойността?", + "question_to_disable_2fa": "Сигурни ли сте, че искате да деактивирате Cake 2FA? Вече няма да е необходим 2FA код за достъп до портфейла и определени функции.", + "receivable_balance": "Баланс за вземания", + "receive": "Получи", + "receive_amount": "Сума", + "received": "Получени", + "recipient_address": "Адрес на получател", + "reconnect": "Reconnect", + "reconnect_alert_text": "Сигурни ли сте, че искате да се свържете отново?", + "reconnection": "Свързване отново", + "redeemed": "Използвани", + "refund_address": "Refund address", + "reject": "Отхвърляне", + "remaining": "оставащи", + "remove": "Премахни", + "remove_node": "Премахни node", + "remove_node_message": "Сигурни ли сте, че искате да премахнете избрания node?", + "rename": "Промяна на името", + "require_for_adding_contacts": "Изисква се за добавяне на контакти", + "require_for_all_security_and_backup_settings": "Изисква се за всички настройки за сигурност и архивиране", + "require_for_assessing_wallet": "Изискване за достъп до портфейла", + "require_for_creating_new_wallets": "Изискване за създаване на нови портфейли", + "require_for_exchanges_to_external_wallets": "Изискване за обмен към външни портфейли", + "require_for_exchanges_to_internal_wallets": "Изискване за обмен към вътрешни портфейли", + "require_for_sends_to_contacts": "Изискване за изпращане до контакти", + "require_for_sends_to_internal_wallets": "Изискване за изпращане до вътрешни портфейли", + "require_for_sends_to_non_contacts": "Изискване за изпращане до лица без контакт", + "require_pin_after": "Въведете PIN след", + "rescan": "Сканирай отново", + "resend_code": "Повторно изпращане", + "reset": "Нулиране", + "reset_password": "Нулиране на парола", + "restore_active_seed": "Активиране на seed", + "restore_address": "Адреси", + "restore_bitcoin_description_from_keys": "Възстановяване на портфейл чрез WIF, изведен от Вашите private keys", + "restore_bitcoin_description_from_seed": "Възстановяване на портфейл чрез код от 24 думи", + "restore_bitcoin_title_from_keys": "Възстановяване от WIF", + "restore_description_from_backup": "Можете да възстановите цялото приложение Cake Wallet от своя резервен файл", + "restore_description_from_keys": "Възстановяване на портфейл от генерираните от Вашите тайни ключове клавиши", + "restore_description_from_seed": "Възстановяване на портфейл от кода от 13 или 25 думи", + "restore_description_from_seed_keys": "Възстановете своя портфейл от seed/keys, които сте съхранили на сигурно място", + "restore_from_date_or_blockheight": "Моля, въведете дата няколко дни преди създаването на този портфейл. Ако знаете blockheight-а, въведето него вместо това", + "restore_from_seed_placeholder": "Моля, въведете своя seed тук", + "restore_new_seed": "Нов seed", + "restore_next": "Next", + "restore_recover": "Възстановяване", + "restore_restore_wallet": "Възстановяване на портфейл", + "restore_seed_keys_restore": "Възстановяне от Seed/Keys", + "restore_spend_key_private": "Spend key (публичен)", + "restore_title_from_backup": "Възстановяване от резервно копие", + "restore_title_from_keys": "Възстановяване от keys", + "restore_title_from_seed": "Възстановяване от seed", + "restore_title_from_seed_keys": "Възстановяване от seed/keys", + "restore_view_key_private": "View key (таен)", + "restore_wallet": "Възстановяване на портфейл", + "restore_wallet_name": "Име на портфейл", + "restore_wallet_restore_description": "Описание на възстановяване на портфейл", + "router_no_route": "Няма дефиниран път за ${name}", + "save": "Запази", + "save_backup_password": "Моля, запишете своята парола за възстановяване. Импортирането на резервни копия не е възможно без нея.", + "save_backup_password_alert": "Запазване на паролата за възстановяване", + "save_to_downloads": "Запазване в Изтегляния", + "saved_the_trade_id": "Запазих trade ID-то", + "scan_qr_code": "Сканирайте QR кода, за да получите адреса", + "scan_qr_on_device": "Сканирайте този QR код на друго устройство", + "search": "Търсене", + "search_add_token": "Търсене/Добавяне на токен", + "search_category": "Търсене в категория", + "search_currency": "Търсене на валута", + "search_language": "Търсене на език", + "second_intro_content": "Вашият Yat е уникален адрес във формата на емоджи, който играе ролята на всички Ваши дълги шестнайсетични портфейли за всяка валута.", + "second_intro_title": "Един емоджи адрес, обединяващ всички останали.", + "security_and_backup": "Сигурност и резервни копия", + "seed_alert_back": "Назад", + "seed_alert_content": "Seed-ът е единственият начин да възстановите портфейла си. Записахте ли го?", + "seed_alert_title": "Внимание", + "seed_alert_yes": "Да", + "seed_choose": "Изберете език на seed-а", "seed_hex_form": "Семена от портфейл (шестнадесетична форма)", + "seed_key": "Ключ за семена", + "seed_language": "Език на семената", + "seed_language_chinese": "Китайски", + "seed_language_chinese_traditional": "Традиционен китайски)", + "seed_language_czech": "Чех", + "seed_language_dutch": "Нидерландски", + "seed_language_english": "Английски", + "seed_language_french": "Френски", + "seed_language_german": "Немски", + "seed_language_italian": "Италиански", + "seed_language_japanese": "Японски", + "seed_language_korean": "Корейски", + "seed_language_next": "Следващ", + "seed_language_portuguese": "Португалски", + "seed_language_russian": "Руски", + "seed_language_spanish": "Испански", + "seed_phrase_length": "Дължина на началната фраза", + "seed_reminder": "Моля, запишете го в случай на загуба на устройството.", + "seed_share": "Споделяне на seed", + "seed_title": "Seed", "seedtype": "Семенна тип", "seedtype_legacy": "Наследство (25 думи)", "seedtype_polyseed": "Поли семе (16 думи)", - "seed_language_czech": "Чех", - "seed_language_korean": "Корейски", - "seed_language_chinese_traditional": "Традиционен китайски)", - "ascending": "Възходящ", - "descending": "Низходящ", - "dfx_option_description": "Купете крипто с EUR и CHF. До 990 € без допълнителен KYC. За клиенти на дребно и корпоративни клиенти в Европа", - "polygonscan_history": "История на PolygonScan", - "wallet_seed_legacy": "Наследено портфейл семе", - "default_sell_provider": "Доставчик за продажба по подразбиране", + "select_backup_file": "Избор на резервно копие", + "select_buy_provider_notice": "Изберете доставчик на покупка по -горе. Можете да пропуснете този екран, като зададете вашия доставчик по подразбиране по подразбиране в настройките на приложението.", + "select_destination": "Моля, изберете дестинация за архивния файл.", "select_sell_provider_notice": "Изберете доставчик на продажба по-горе. Можете да пропуснете този екран, като зададете своя доставчик на продажба по подразбиране в настройките на приложението.", - "custom_drag": "Персонализиране (задръжте и плъзнете)", + "sell": "Продаване", + "sell_alert_content": "В момента поддържаме само продажбата на Bitcoin, Ethereum и Litecoin. Моля, създайте или превключете към своя портфейл Bitcoin, Ethereum или Litecoin.", + "sell_monero_com_alert_content": "Продажбата на Monero все още не се поддържа", + "send": "Изпрати", + "send_address": "${cryptoCurrency} адрес", + "send_amount": "Сума:", + "send_creating_transaction": "Създаване на транзакция", + "send_error_currency": "Валутата може да съдържа само числа", + "send_error_minimum_value": "Минималната сума е 0.01", + "send_estimated_fee": "Изчислена такса:", + "send_fee": "Такса:", + "send_name": "Име", + "send_new": "Ново", + "send_payment_id": "Payment ID (не е задължително)", + "send_priority": "В момента таксата е на ${transactionPriority} приоритетност.\nПриоритетността на транзакцията може да бъде променена в настройките", + "send_sending": "Изпращане...", + "send_success": "Вашите ${crypto} бяха успешно изпратени", + "send_templates": "Шаблони", + "send_title": "Изпращане", + "send_to_this_address": "Send ${currency} ${tag}to this address", + "send_xmr": "Изпращане на XMR", + "send_your_wallet": "Вашият портфейл", + "sending": "Изпращане", + "sent": "Изпратени", + "settings_all": "Всичко", + "settings_allow_biometrical_authentication": "Позволяване на биометрично удостоверяване.", + "settings_can_be_changed_later": "Тези настройки могат да бъдат променени по-късно от приложението", + "settings_change_language": "Промяна на езика", + "settings_change_pin": "Промяна на PIN", + "settings_currency": "Валута", + "settings_current_node": "Сегашен node", + "settings_dark_mode": "Тъмен режим", + "settings_display_balance": "Показване на баланс", + "settings_display_on_dashboard_list": "Показване на таблото", + "settings_fee_priority": "Таксова приоритетност", + "settings_nodes": "Nodes", + "settings_none": "Липсва", + "settings_only_trades": "Само сделки", + "settings_only_transactions": "Само транзакции", + "settings_personal": "Лични", + "settings_save_recipient_address": "Запазване адрес на получател", + "settings_support": "Поддръжка", + "settings_terms_and_conditions": "Условия", + "settings_title": "Настройки", + "settings_trades": "Сделки", + "settings_transactions": "Транзакции", + "settings_wallets": "Портфейли", + "setup_2fa": "Настройка на Cake 2FA", + "setup_2fa_text": "Cake 2FA работи с помощта на TOTP като втори фактор за удостоверяване.\n\nTOTP на Cake 2FA изисква SHA-512 и поддръжка на 8 цифри; това осигурява повишена сигурност. Повече информация и поддържани приложения можете да намерите в ръководството.", + "setup_pin": "Настройване на PIN", + "setup_successful": "Вашият PIN бе успешно настроен!", + "setup_totp_recommended": "Настройка на TOTP", + "setup_warning_2fa_text": "Cake 2FA е второ удостоверяване за определени действия в портфейла. НЕ е толкова сигурно, колкото хладилното съхранение.\n\nАко загубите достъп до вашето 2FA приложение или TOTP ключове, ЩЕ загубите достъп до този портфейл. Ще трябва да възстановите портфейла си от мнемоничното семе.\n\nПоддръжката на Cake няма да може да ви помогне, ако загубите достъп до вашите 2FA или мнемонични семена.\nПреди да използвате Cake 2FA, препоръчваме да прочетете ръководството.", + "setup_your_debit_card": "Настройте своята дебитна карта", + "share": "Дял", + "share_address": "Сподели адрес", + "show_details": "Показване на подробностите", + "show_keys": "Покажи seed/keys", + "show_market_place": "Покажи пазар", + "show_seed": "Покажи seed", + "sign_up": "Регистрация", + "signTransaction": "Подпишете транзакция", + "signup_for_card_accept_terms": "Регистрайте се за картата и приемете условията.", + "slidable": "Плъзгащ се", + "sort_by": "Сортирай по", + "spend_key_private": "Spend key (таен)", + "spend_key_public": "Spend key (публичен)", + "status": "Статус: ", + "subaddress_title": "Лист от подадреси", + "subaddresses": "Подадреси", + "submit_request": "изпращане на заявка", + "successful": "Успешен", + "support_description_guides": "Документация и подкрепа за общи проблеми", + "support_description_live_chat": "Безплатно и бързо! Обучени представители на подкрепата са на разположение за подпомагане", + "support_description_other_links": "Присъединете се към нашите общности или се свържете с нас нашите партньори чрез други методи", + "support_title_guides": "Ръководства за портфейл за торта", + "support_title_live_chat": "Подкрепа на живо", + "support_title_other_links": "Други връзки за поддръжка", + "switchToETHWallet": "Моля, преминете към портфейл Ethereum и опитайте отново", "switchToEVMCompatibleWallet": "Моля, превключете към портфейл, съвместим с EVM, и опитайте отново (Ethereum, Polygon)", - "receivable_balance": "Баланс за вземания", - "confirmed_tx": "Потвърдено", + "symbol": "Символ", + "sync_status_attempting_sync": "ОПИТ ЗА СИНХРОНИЗАЦИЯ", + "sync_status_connected": "СВЪРЗВАНЕ", + "sync_status_connecting": "СВЪРЗВАНЕ", + "sync_status_failed_connect": "НЕУСПЕШНО СВЪРЗВАНЕ", + "sync_status_not_connected": "НЯМА ВРЪЗКА", + "sync_status_starting_sync": "ЗАПОЧВАНЕ НА СИНХРОНИЗАЦИЯ", + "sync_status_syncronized": "СИНХРОНИЗИРАНО", + "sync_status_syncronizing": "СИНХРОНИЗИРАНЕ", + "syncing_wallet_alert_content": "Списъкът ви с баланс и транзакции може да не е пълен, докато в горната част не пише „СИНХРОНИЗИРАН“. Кликнете/докоснете, за да научите повече.", + "syncing_wallet_alert_title": "Вашият портфейл се синхронизира", + "template": "Шаблон", + "template_name": "Име на шаблон", + "third_intro_content": "Yats също живее извън Cake Wallet. Всеки адрес на портфейл може да бъде заменен с Yat!", + "third_intro_title": "Yat добре се сработва с други", + "time": "${minutes} мин ${seconds} сек", + "tip": "Tip:", + "today": "Днес", + "token_contract_address": "Адрес на токен договор", + "token_decimal": "Токен десетичен", + "token_name": "Име на токена, напр.: Tether", + "token_symbol": "Символ на токена, напр.: USDT", + "tokenID": "документ за самоличност", + "tor_connection": "Tor връзка", + "tor_only": "Само чрез Tor", + "total_saving": "Общо спестявания", + "totp_2fa_failure": "Грешен код. Моля, опитайте с различен код или генерирайте нов таен ключ. Използвайте съвместимо 2FA приложение, което поддържа 8-цифрени кодове и SHA512.", + "totp_2fa_success": "Успех! Cake 2FA е активиран за този портфейл. Не забравяйте да запазите мнемоничното начало, в случай че загубите достъп до портфейла.", + "totp_auth_url": "TOTP AUTH URL", + "totp_code": "TOTP код", + "totp_secret_code": "TOTP таен код", + "totp_verification_success": "Проверката е успешна!", + "trade_details_copied": "${title} копирано", + "trade_details_created_at": "Създадено", + "trade_details_fetching": "Обработка", + "trade_details_id": "ID", + "trade_details_pair": "Pair", + "trade_details_provider": "Provider", + "trade_details_state": "Статус", + "trade_details_title": "Подробности на сделката", + "trade_for_not_created": "Сделка за ${title} не бе създадена.", + "trade_history_title": "История на сделките", + "trade_id": "Trade ID:", + "trade_id_not_found": "Сделка ${tradeId} на ${title} не бе намерена.", + "trade_is_powered_by": "This trade is powered by ${provider}", + "trade_not_created": "Сделка не бе създадена.", + "trade_not_found": "Сделката не бе намерена.", + "trade_state_btc_sent": "Btc изпратен", + "trade_state_complete": "Завършено", + "trade_state_confirming": "Потвърждава се", + "trade_state_created": "Създадено", + "trade_state_finished": "Завършено", + "trade_state_paid": "Платено", + "trade_state_paid_unconfirmed": "Непотвърдено плащане", + "trade_state_pending": "Изчаква се", + "trade_state_timeout": "Време за изчакване", + "trade_state_to_be_created": "Изчаква създаване", + "trade_state_traded": "Traded", + "trade_state_trading": "Trading", + "trade_state_underpaid": "Недостатъчно плащане", + "trade_state_unpaid": "Неплатено", + "trades": "Trades", + "transaction_details_amount": "Сума", + "transaction_details_copied": "${title} копирано", + "transaction_details_date": "Дата", + "transaction_details_fee": "Такса", + "transaction_details_height": "Height", + "transaction_details_recipient_address": "Адрес на получател", "transaction_details_source_address": "Адрес на източника", - "pause_wallet_creation": "Възможността за създаване на Haven Wallet в момента е на пауза.", - "contractName": "Име на договора", - "contractSymbol": "Договор Символ", - "description": "Описание", - "camera_consent": "Вашият фотоапарат ще бъде използван за заснемане на изображение с цел идентификация от ${provider}. Моля, проверете тяхната политика за поверителност за подробности.", - "no_relays": "Без релета", - "choose_relay": "Моля, изберете реле, което да използвате", - "no_relays_message": "Намерихме запис Nostr NIP-05 за този потребител, но той не съдържа релета. Моля, инструктирайте получателя да добави релета към своя Nostr запис.", - "no_relay_on_domain": "Няма реле за домейна на потребителя или релето не е налично. Моля, изберете реле, което да използвате." -} + "transaction_details_title": "Подробности на транзакцията", + "transaction_details_transaction_id": "Transaction ID", + "transaction_key": "Transaction Key", + "transaction_priority_fast": "Бързо", + "transaction_priority_fastest": "Най-бързо", + "transaction_priority_medium": "Средно", + "transaction_priority_regular": "Обичайно", + "transaction_priority_slow": "Бавно", + "transaction_sent": "Сумата е изпратена!", + "transaction_sent_notice": "Ако процесът продължи повече от 1 минута, проверете някой block explorer и своя имейл.", + "transactions": "Транзакции", + "transactions_by_date": "Транзакции по дата", + "trusted": "Надежден", + "unavailable_balance": "Неналично салдо", + "unavailable_balance_description": "Неналично салдо: Тази обща сума включва средства, които са заключени в чакащи транзакции и тези, които сте замразили активно в настройките за контрол на монетите. Заключените баланси ще станат достъпни, след като съответните им транзакции бъдат завършени, докато замразените баланси остават недостъпни за транзакции, докато не решите да ги размразите.", + "unconfirmed": "Непотвърден баланс", + "understand": "Разбирам", + "unmatched_currencies": "Валутата на този портфейл не съвпада с тази от сканирания QR код", + "unspent_change": "Промяна", + "unspent_coins_details_title": "Подробности за неизползваните монети", + "unspent_coins_title": "Неизползвани монети", + "unsupported_asset": "Не поддържаме това действие за този актив. Моля, създайте или преминете към портфейл от поддържан тип актив.", + "upto": "до ${value}", + "use": "Смяна на ", + "use_card_info_three": "Използвайте дигиталната карта онлайн или чрез безконтактен метод на плащане.", + "use_card_info_two": "Средствата се обръщат в USD, когато биват запазени в предплатената карта, а не в дигитална валута.", + "use_ssl": "Използване на SSL", + "use_suggested": "Използване на предложеното", + "variable_pair_not_supported": "Този variable pair не се поддържа от избраната борса", + "verification": "Потвърждаване", + "verify_with_2fa": "Проверете с Cake 2FA", + "version": "Версия ${currentVersion}", + "view_all": "Виж всички", + "view_in_block_explorer": "Вижте в Block Explorer", + "view_key_private": "View key (таен)", + "view_key_public": "View key (публичен)", + "view_transaction_on": "Вижте транзакция на ", + "wallet_keys": "Seed/keys на портфейла", + "wallet_list_create_new_wallet": "Създаване на нов портфейл", + "wallet_list_edit_wallet": "Редактиране на портфейла", + "wallet_list_failed_to_load": "Грешка при зареждането на портфейл ${wallet_name}. ${error}", + "wallet_list_failed_to_remove": "Грешка при премахването на портфейл${wallet_name}. ${error}", + "wallet_list_load_wallet": "Зареждане на портфейл", + "wallet_list_loading_wallet": "Зареждане на портфейл ${wallet_name}", + "wallet_list_removing_wallet": "Премахване на портфейл ${wallet_name}", + "wallet_list_restore_wallet": "Възстановяване на портфейл", + "wallet_list_title": "Monero портфейл", + "wallet_list_wallet_name": "Име на портфейла", + "wallet_menu": "Меню", + "wallet_name": "Име на портфейл", + "wallet_name_exists": "Вече има портфейл с това име. Моля, изберете друго име или преименувайте другия портфейл.", + "wallet_restoration_store_incorrect_seed_length": "Грешна дължина на seed-а", + "wallet_seed": "Seed на портфейла", + "wallet_seed_legacy": "Наследено портфейл семе", + "wallet_store_monero_wallet": "Monero портфейл", + "walletConnect": "WalletConnect", + "wallets": "Портфейли", + "warning": "Внимание", + "welcome": "Добре дошли в", + "welcome_to_cakepay": "Добре дошли в Cake Pay!", + "widgets_address": "Адрес", + "widgets_or": "или", + "widgets_restore_from_blockheight": "Възстановяване от blockheight", + "widgets_restore_from_date": "Възстановяване от дата", + "widgets_seed": "Seed", + "wouoldLikeToConnect": "иска да се свърже", + "write_down_backup_password": "Моля, запишете своята парола за възстановяване. Тя се използва за импортиране на резервни копия на Вашите файлове.", + "xlm_extra_info": "Не забравяйте да дадете Memo ID-то, докато изпращате XLM транзакцията за обмена", + "xmr_available_balance": "Наличен баланс", + "xmr_full_balance": "Пълен баланс", + "xmr_hidden": "Скрит", + "xmr_to_error": "XMR.TO грешка", + "xmr_to_error_description": "Невалидна сума - най-много 8 цифри след десетичната запетая", + "xrp_extra_info": "Не забравяйте да дадете Destination Tag-а, когато изпращате XRP транзакцията за обмена", + "yat": "Yat", + "yat_address": "Yat Адрес", + "yat_alert_content": "Потребителите на Cake Wallet вече могат да изпращат и получават любимите си валути чрез неповторимо потребителско име от емоджита.", + "yat_alert_title": "Търгувайте с крипто много по-лесно чрез Yat", + "yat_error": "Yat грешка", + "yat_error_content": "Няма адреси, свързани с този Yat. Опитайте с друг Yat", + "yat_popup_content": "Вече можете да изпращате и да получавате крипто в Cake Wallet с вашия Yat - кратко потребителско име във формата на емоджи. Управлявайте своите Yats по всяко време в настройките", + "yat_popup_title": "Адресът на вашия портфейл може да съдържа емоджита.", + "yesterday": "Вчера", + "you_now_have_debit_card": "Вече имате дебитна карта", + "you_pay": "Вие плащате", + "you_will_get": "Обръщане в", + "you_will_send": "Обръщане от", + "yy": "гг", + "zzzz": "zzzz" +} \ No newline at end of file diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 92874e315..3f38bd277 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -1,771 +1,772 @@ { - "welcome": "Vítejte v", - "cake_wallet": "Cake Wallet", - "first_wallet_text": "Úžasná peněženka pro Monero, Bitcoin, Ethereum, Litecoin a Haven", - "please_make_selection": "Prosím vyberte si níže, jestli chcete vytvořit, nebo obnovit peněženku.", - "create_new": "Vytvořit novou peněženku", - "restore_wallet": "Obnovit peněženku", - "monero_com": "Monero.com od Cake Wallet", - "monero_com_wallet_text": "Úžasná peněženka pro Monero", - "haven_app": "Haven od Cake Wallet", - "haven_app_wallet_text": "Úžasná peněženka pro Haven", - "accounts": "Účty", - "edit": "Upravit", + "about_cake_pay": "Cake Pay umožňuje jednoduše nakupovat dárkové karty pomocí virtuálních prostředků, které lze okamžitě uplatnit u více než 150 000 obchodníků ve Spojených státech.", "account": "Účet", + "accounts": "Účty", + "accounts_subaddresses": "Účty a subadresy", + "activate": "Aktivovat", + "active": "Aktivní", + "active_cards": "Aktivní karty", + "activeConnectionsPrompt": "Zde se zobrazí aktivní připojení", "add": "Přidat", + "add_contact": "Přidat kontakt", + "add_custom_node": "Přidat vlastní uzel", + "add_custom_redemption": "Přidat vlastní uplatnění", + "add_fund_to_card": "Všechny předplacené prostředky na kartě (až ${value})", + "add_new_node": "Přidat nový uzel", + "add_new_word": "Přidat nové slovo", + "add_receiver": "Přidat dalšího příjemce (nepovinné)", + "add_secret_code": "Nebo přidejte tento tajný kód do ověřovací aplikace", + "add_tip": "Přidat spropitné", + "add_token_disclaimer_check": "Potvrdil jsem adresu a informace smlouvy o tokenu pomocí důvěryhodného zdroje. Přidání škodlivých nebo nesprávných informací může vést ke ztrátě finančních prostředků.", + "add_token_warning": "Neupravujte ani nepřidávejte tokeny podle pokynů podvodníků.\nVždy potvrďte adresy tokenů s renomovanými zdroji!", + "add_value": "Přidat hodnotu", + "address": "Adresa", "address_book": "Adresář", - "contact": "Kontakt", - "please_select": "Zvolte si:", - "cancel": "Zrušit", - "ok": "OK", - "contact_name": "Jméno kontaktu", - "reset": "Vymazat", - "save": "Uložit", + "address_book_menu": "Adresář", + "address_detected": "Adresa detekována", + "address_from_domain": "Tato adresa je z ${domain} na Unstoppable Domains", + "address_from_yat": "Tato adresa je z ${emoji} na Yatu", + "address_label": "Popisek adresy", "address_remove_contact": "Smazat kontakt", "address_remove_content": "Opravdu chcete smazat označený kontakt?", - "authenticated": "Ověřeno", - "authentication": "Ověřování", - "failed_authentication": "Ověřování selhalo. ${state_error}", - "wallet_menu": "Menu", - "Blocks_remaining": "Zbývá ${status} bloků", - "please_try_to_connect_to_another_node": "Zkuste se prosím připojit k jinému uzlu", - "xmr_hidden": "Skryto", - "xmr_available_balance": "Zůstatek (dostupný)", - "xmr_full_balance": "Zůstatek (celkový)", - "send": "Poslat", - "receive": "Přijmout", - "transactions": "Transakce", - "incoming": "Příchozí", - "outgoing": "Odchozí", - "transactions_by_date": "Transakce podle data", - "trades": "Obchody", - "filter_by": "Filtrovat podle", - "today": "Dnes", - "yesterday": "Včera", - "received": "Přijato", - "sent": "Odesláno", - "pending": " (čeká)", - "rescan": "Znovu prohledat", - "reconnect": "Znovu připojit", - "wallets": "Peněženky", - "show_seed": "Zobrazit seed", - "show_keys": "Zobrazit seed/klíče", - "address_book_menu": "Adresář", - "reconnection": "Znovu připojit", - "reconnect_alert_text": "Opravdu se chcete znovu připojit?", - "exchange": "Směnit", - "clear": "Smazat", - "refund_address": "Adresa pro vrácení", - "change_exchange_provider": "Změnit směnárnu", - "you_will_send": "Směnit z", - "you_will_get": "Směnit na", - "amount_is_guaranteed": "Částka, kterou dostanete, je konečná", - "amount_is_estimate": "Částka, kterou dostanete, je jen odhad.", - "powered_by": "Zajišťuje ${title}", - "error": "Chyba", - "estimated": "Odhadováno", - "min_value": "Min: ${value} ${currency}", - "max_value": "Max: ${value} ${currency}", - "change_currency": "Změnit měnu", - "overwrite_amount": "Přepsat částku", - "qr_payment_amount": "Tento QR kód obsahuje i částku. Chcete přepsat současnou hodnotu?", - "copy_id": "Kopírovat ID", - "exchange_result_write_down_trade_id": "Prosím zkopírujte si, nebo zapište si ID transakce (trade ID) pro pokračování.", - "trade_id": "ID transakce (trade ID):", - "copied_to_clipboard": "Zkopírováno do schránky", - "saved_the_trade_id": "Uložil jsem si ID transakce (trade ID)", - "fetching": "Načítá se", - "id": "ID: ", - "amount": "Částka: ", - "payment_id": "ID platby: ", - "status": "Status: ", - "offer_expires_in": "Nabídka vyprší: ", - "trade_is_powered_by": "Tento obchod zajišťuje ${provider}", - "copy_address": "Zkopírovat adresu", - "exchange_result_confirm": "Po stisknutí Potvrdit odešlete ${fetchingLabel} ${from} ze své peněženky s názvem ${walletName} na adresu uvedenou níže. Nebo můžete prostředky poslat ze své externí peněženky na níže uvedenou adresu/QR kód.\n\nProsím stiskněte Potvrdit pro pokračování, nebo se vraťte zpět pro změnu částky.", - "exchange_result_description": "Musíte poslat minimálně ${fetchingLabel} ${from} na adresu uvedenou na následující stránce. Pokud pošlete nižší částku než ${fetchingLabel} ${from} nemusí dojít ke směně, ani k jejímu vrácení.", - "exchange_result_write_down_ID": "*Prosím zkopírujte si, nebo zapište si výše uvedené ID.", - "confirm": "Potvrdit", - "confirm_sending": "Potvrdit odeslání", - "commit_transaction_amount_fee": "Odeslat transakci\nČástka: ${amount}\nPoplatek: ${fee}", - "sending": "Odesílání", - "transaction_sent": "Transakce odeslána!", - "expired": "Vypršelo", - "time": "${minutes}m ${seconds}s", - "send_xmr": "Odeslat XMR", - "exchange_new_template": "Nová šablona", - "faq": "FAQ", - "enter_your_pin": "Zadejte svůj PIN", - "loading_your_wallet": "Načítám peněženku", - "new_wallet": "Nová peněženka", - "wallet_name": "Název peněženky", - "continue_text": "Pokračovat", - "choose_wallet_currency": "Prosím zvolte si měnu pro peněženku:", - "node_new": "Nový uzel", - "node_address": "Adresa uzlu", - "node_port": "Port uzlu", - "login": "Login", - "password": "Heslo", - "nodes": "Uzly", - "node_reset_settings_title": "Zrušit nastavení", - "nodes_list_reset_to_default_message": "Opravdu chcete zrušit nastavení a vrátit výchozí hodnotu?", - "change_current_node": "Opravdu chcete změnit současný uzel na ${node}?", - "change": "Změnit", - "remove_node": "Odstranit uzel", - "remove_node_message": "Opravdu chcete odstranit označený uzel?", - "remove": "Odstranit", - "delete": "Smazat", - "add_new_node": "Přidat nový uzel", - "change_current_node_title": "Změnit současný uzel", - "node_test": "Otestovat", - "node_connection_successful": "Připojení bylo úspěšné", - "node_connection_failed": "Připojení selhalo", - "new_node_testing": "Testování nového uzlu", - "use": "Přepnout na ", - "digit_pin": "-číselný PIN", - "share_address": "Sdílet adresu", - "receive_amount": "Částka", - "subaddresses": "Subadresy", "addresses": "Adresy", - "scan_qr_code": "Naskenujte QR kód pro získání adresy", - "qr_fullscreen": "Poklepáním otevřete QR kód na celé obrazovce", - "rename": "Přejmenovat", - "choose_account": "Zvolte částku", - "create_new_account": "Vytvořit nový účet", - "accounts_subaddresses": "Účty a subadresy", - "restore_restore_wallet": "Obnovit peněženku", - "restore_title_from_seed_keys": "Obnovit ze seedu/klíčů", - "restore_description_from_seed_keys": "Obnovte svou peněženku ze seedu/klíčů, které jste si uložili na bezpečném místě", - "restore_next": "Další", - "restore_title_from_backup": "Obnovit ze zálohy", - "restore_description_from_backup": "Můžete obnovit celou Cake Wallet aplikaci ze souboru se zálohou", - "restore_seed_keys_restore": "Obnovit ze seedu/klíčů", - "restore_title_from_seed": "Obnovit ze seedu", - "restore_description_from_seed": "Obnovte svou peněženku pomocí kombinace 25, nebo 13 slov", - "restore_title_from_keys": "Obnovit z klíčů", - "restore_description_from_keys": "Obnovte svou peněženku pomocí generovaných stisků kláves uložených z vašich soukromých klíčů", - "restore_wallet_name": "Jméno peněženky", - "restore_address": "Adresa", - "restore_view_key_private": "Klíč pro zobrazení (soukromý)", - "restore_spend_key_private": "Klíč pro platby (soukromý)", - "restore_recover": "Obnovit", - "restore_wallet_restore_description": "Popis obnovení peněženky", - "restore_new_seed": "Nový seed", - "restore_active_seed": "Aktivní seed", - "restore_bitcoin_description_from_seed": "Obnovte svou peněženku pomocí kombinace 24 slov", - "restore_bitcoin_description_from_keys": "Obnovte svou peněženku pomocí vygenerovaného WIF řetězce z vašich soukromých klíčů", - "restore_bitcoin_title_from_keys": "Obnovit z WIF", - "restore_from_date_or_blockheight": "Prosím zadejte datum z doby několik dnů před tím, než jste si zakládali tuto peněženku. Nebo místo toho zadejte výšku bloku, pokud ji znáte.", - "seed_reminder": "Prosím zapište si toto pro případ ztráty, nebo poškození telefonu", - "seed_title": "Seed", - "seed_share": "Sdílet seed", - "copy": "Kopírovat", - "seed_language": "Jazyk semen", - "seed_choose": "Zvolte si jazyk seedu", - "seed_language_next": "Další", - "seed_language_english": "Angličtina", - "seed_language_chinese": "Čínština", - "seed_language_dutch": "Nizozemština", - "seed_language_german": "Němčina", - "seed_language_japanese": "Japonština", - "seed_language_portuguese": "Portugalština", - "seed_language_russian": "Ruština", - "seed_language_spanish": "Španělština", - "seed_language_french": "Francouzština", - "seed_language_italian": "Italština", - "send_title": "Poslat", - "send_your_wallet": "Vaše peněženka", - "send_address": "${cryptoCurrency} adresa", - "send_payment_id": "ID platby (nepovinné)", + "advanced_settings": "Pokročilé nastavení", + "aggressive": "Agresivní", + "agree": "Souhlasím", + "agree_and_continue": "Souhlasím & pokračovat", + "agree_to": "Vytvořením účtu souhlasíte s ", "all": "VŠE", - "send_error_minimum_value": "Minimální částka je 0,01", - "send_error_currency": "Měna může obsahovat pouze čísla", - "send_estimated_fee": "Odhadovaný poplatek:", - "send_priority": "Momentálně je poplatek nastaven na prioritu: ${transactionPriority}.\nPriorita transakce může být upravena v nastavení.", - "send_creating_transaction": "Vytváření transakce", - "send_templates": "Šablony", - "send_new": "Nová", - "send_amount": "Částka:", - "send_fee": "Poplatek:", - "send_name": "Název", - "got_it": "Rozumím", - "send_sending": "Odesílání...", - "send_success": "Vaše ${crypto} bylo úspěšně odesláno", - "settings_title": "Nastavení", - "settings_nodes": "Uzly", - "settings_current_node": "Aktuální uzel", - "settings_wallets": "Peněženky", - "settings_display_balance": "Zobrazovat zůstatek", - "settings_currency": "Měna", - "settings_fee_priority": "Priorita (poplatky)", - "settings_save_recipient_address": "Ukládat adresu příjemce", - "settings_personal": "Osobní", - "settings_change_pin": "Změnit PIN", - "settings_change_language": "Změnit jazyk", - "settings_allow_biometrical_authentication": "Povolit biometrické ověření", - "settings_dark_mode": "Tmavý režim", - "settings_transactions": "Transakce", - "settings_trades": "Obchody", - "settings_display_on_dashboard_list": "Zobrazit na seznamu na dashboardu", - "settings_all": "VŠE", - "settings_only_trades": "Pouze obchody", - "settings_only_transactions": "Pouze transakce", - "settings_none": "Žádný", - "settings_support": "Podpora", - "settings_terms_and_conditions": "Obchodní podmínky", - "pin_is_incorrect": "PIN není správný", - "setup_pin": "Nastavit PIN", - "enter_your_pin_again": "Zadejte znovu svůj PIN", - "setup_successful": "Váš PIN byl úspěšně nastaven!", - "wallet_keys": "Seed/klíče peněženky", - "wallet_seed": "Seed peněženky", - "private_key": "Soukromý klíč", - "public_key": "Veřejný klíč", - "view_key_private": "Klíč pro zobrazení (soukromý)", - "view_key_public": "Klíč pro zobrazení (veřejný)", - "spend_key_private": "Klíč pro platby (soukromý)", - "spend_key_public": "Klíč pro platby (veřejný)", - "copied_key_to_clipboard": "Zkopírován ${key} do schránky", - "new_subaddress_title": "Nová adresa", - "new_subaddress_label_name": "Popisek", - "new_subaddress_create": "Vytvořit", - "address_label": "Popisek adresy", - "subaddress_title": "Seznam subadres", - "trade_details_title": "Podrobnosti k obchodu", - "trade_details_id": "ID", - "trade_details_state": "Stav", - "trade_details_fetching": "Získávám", - "trade_details_provider": "Poskytovatel", - "trade_details_created_at": "Vytvořeno v", - "trade_details_pair": "Pár", - "trade_details_copied": "${title} zkopírováno do schránky", - "trade_history_title": "Historie obchodů", - "transaction_details_title": "Podrobnosti o transakci", - "transaction_details_transaction_id": "ID transakce", - "transaction_details_date": "Datum", - "transaction_details_height": "Výška", - "transaction_details_amount": "Částka", - "transaction_details_fee": "Poplatek", - "transaction_details_copied": "${title} zkopírováno do schránky", - "transaction_details_recipient_address": "Adresa příjemce", - "wallet_list_title": "Monero Wallet", - "wallet_list_create_new_wallet": "Vytvořit novou peněženku", - "wallet_list_edit_wallet": "Upravit peněženku", - "wallet_list_wallet_name": "Název peněženky", - "wallet_list_restore_wallet": "Obnovit peněženku", - "wallet_list_load_wallet": "Načíst peněženku", - "wallet_list_loading_wallet": "Načítám ${wallet_name} peněženku", - "wallet_list_failed_to_load": "Chyba při načítání ${wallet_name} peněženky. ${error}", - "wallet_list_removing_wallet": "Odstraňuji ${wallet_name} peněženku", - "wallet_list_failed_to_remove": "Chyba při odstraňování ${wallet_name} peněženky. ${error}", - "widgets_address": "Adresa", - "widgets_restore_from_blockheight": "Obnovit z výšky bloku", - "widgets_restore_from_date": "Obnovit z data", - "widgets_or": "nebo", - "widgets_seed": "Seed", - "router_no_route": "Pro ${name} není definována žádná cesta", - "error_text_account_name": "Název účtu může obsahovat jen písmena a čísla\na musí mít délku 1 až 15 znaků", - "error_text_contact_name": "Jméno kontaktu nemůže obsahovat symboly ` , ' \" \na musí mít délku 1 až 32 znaků", - "error_text_address": "Adresa peněženky musí odpovídat typu\nkryptoměny", - "error_text_node_address": "prosím zadejte IPv4 adresu", - "error_text_node_port": "Port uzlu musí být číslo mezi 0 a 65535", - "error_text_node_proxy_address": "Zadejte prosím :, například 127.0.0.1:9050", - "error_text_payment_id": "ID platby se musí skládat z 16 až 64 hexadecimálních znaků", - "error_text_xmr": "Hodnota XMR nemůže překročit dostupný zůstatek.\nPočet desetinných míst musí být menší, nebo roven 12", - "error_text_fiat": "Částka nemůže překročit dostupný zůstatek.\nPočet desetinných míst musí být menší, nebo roven 2", - "error_text_subaddress_name": "Subadresa nemůže obsahovat symboly ` , ' \" \na musí mít délku 1 až 20 znaků", - "error_text_amount": "Částka může obsahovat pouze čísla", - "error_text_wallet_name": "Jméno peněženky může obsahovat pouze písmena, čísla, symbol _ \na musí mít délku 1 až 33 znaků", - "error_text_keys": "Klíče peněženky musí obsahovat 64 hexadecimálních znaků", - "error_text_crypto_currency": "Počet desetinných míst\nmusí být menší, nebo roven 12", - "error_text_minimal_limit": "Obchod pro ${provider} nebyl vytvořen. Částka je menší než minimální hodnota: ${min} ${currency}", - "error_text_maximum_limit": "Obchod pro ${provider} nebyl vytvořen. Částka je větší než maximální hodnota: ${max} ${currency}", - "error_text_limits_loading_failed": "Obchod pro ${provider} nebyl vytvořen. Selhalo načítání limitů", - "error_text_template": "Jméno šablony a adresa nemohou obsahovat symboly ` , ' \" \na musí mít délku 1 až 106 znaků", + "all_trades": "Všechny obchody", + "all_transactions": "Všechny transakce", + "alphabetical": "Abecední", + "already_have_account": "Máte už účet?", + "always": "Vždy", + "amount": "Částka: ", + "amount_is_estimate": "Částka, kterou dostanete, je jen odhad.", + "amount_is_guaranteed": "Částka, kterou dostanete, je konečná", + "and": "a", + "anonpay_description": "Vygenerujte ${type}. Příjemce může ${method} s jakoukoli podporovanou kryptoměnou a vy obdržíte prostředky v této peněžence.", + "apk_update": "aktualizace APK", + "approve": "Schvalovat", + "arrive_in_this_address": "${currency} ${tag}přijde na tuto adresu", + "ascending": "Vzestupné", + "ask_each_time": "Zeptejte se pokaždé", "auth_store_ban_timeout": "ban_timeout", "auth_store_banned_for": "Zablokován na ", "auth_store_banned_minutes": " minut", "auth_store_incorrect_password": "Nesprávný PIN", - "wallet_store_monero_wallet": "Monero Wallet", - "wallet_restoration_store_incorrect_seed_length": "Nesprávná délka seedu", - "full_balance": "Celkový zůstatek", - "available_balance": "Dostupný zůstatek", - "hidden_balance": "Skrytý zůstatek", - "sync_status_syncronizing": "SYNCHRONIZUJI", - "sync_status_syncronized": "SYNCHRONIZOVÁNO", - "sync_status_not_connected": "NEPŘIPOJENO", - "sync_status_starting_sync": "SPOUŠTĚNÍ SYNCHRONIZACE", - "sync_status_failed_connect": "ODPOJENO", - "sync_status_connecting": "PŘIPOJOVÁNÍ", - "sync_status_connected": "PŘIPOJENO", - "sync_status_attempting_sync": "ZAHAJUJI SYNCHR.", - "transaction_priority_slow": "Pomalá", - "transaction_priority_regular": "Běžná", - "transaction_priority_medium": "Střední", - "transaction_priority_fast": "Rychlá", - "transaction_priority_fastest": "Nejrychlejší", - "trade_for_not_created": "Obchod pro ${title} nebyl vytvořen.", - "trade_not_created": "Obchod nebyl vytvořen", - "trade_id_not_found": "Obchod ${tradeId} z ${title} nenalezen.", - "trade_not_found": "Obchod nenalezen.", - "trade_state_pending": "Čekající", - "trade_state_confirming": "Ověřování", - "trade_state_trading": "Obchoduji", - "trade_state_traded": "Zobchodováno", - "trade_state_complete": "Kompletní", - "trade_state_to_be_created": "Bude vytvořen", - "trade_state_unpaid": "Nezaplaceno", - "trade_state_underpaid": "Zaplaceno méně", - "trade_state_paid_unconfirmed": "Nepotvrzeně zaplaceno", - "trade_state_paid": "Zaplaceno", - "trade_state_btc_sent": "BTC odesláno", - "trade_state_timeout": "Vypršel časový limit", - "trade_state_created": "Vytvořeno", - "trade_state_finished": "Hotovo", - "change_language": "Změnit jazyk", - "change_language_to": "Změnit jazyk na ${language}?", - "paste": "Vložit", - "restore_from_seed_placeholder": "Prosím zadejte, nebo vložte ze schránky svůj seed.", - "add_new_word": "Přidat nové slovo", - "incorrect_seed": "Zadaný text není správný.", - "biometric_auth_reason": "Naskenujte otisk prstu pro ověření", - "version": "Verze ${currentVersion}", - "extracted_address_content": "Prostředky budete posílat na\n${recipient_name}", - "card_address": "Adresa:", - "buy": "Koupit", - "sell": "Prodat", - "placeholder_transactions": "Vaše transakce budou zobrazeny zde", - "placeholder_contacts": "Vaše kontakty budou zobrazeny zde", - "template": "Šablona", - "confirm_delete_template": "Tato akce smaže tuto šablonu. Přejete si pokračovat?", - "confirm_delete_wallet": "Tato akce smaže tuto peněženku. Přejete si pokračovat?", - "change_wallet_alert_title": "Přepnout peněženku", - "change_wallet_alert_content": "Opravdu chcete změnit aktivní peněženku na ${wallet_name}?", - "creating_new_wallet": "Vytvářím novou peněženku", - "creating_new_wallet_error": "Chyba: ${description}", - "seed_alert_title": "Pozor", - "seed_alert_content": "Tento seed představuje jedinou možnost, jak obnovit peněženku. Zapsali jste si ho?", - "seed_alert_back": "Zpět", - "seed_alert_yes": "Ano", - "exchange_sync_alert_content": "Prosím počkejte, dokud nebude vaše peněženka synchronizována", - "pre_seed_title": "DŮLEŽITÉ", - "pre_seed_description": "Na následující stránce uvidíte sérii ${words} slov. Je to váš tzv. seed a je to JEDINÁ možnost, jak můžete později obnovit svou peněženku v případě ztráty nebo poruchy. Je VAŠÍ zodpovědností zapsat si ho a uložit si ho na bezpečném místě mimo aplikaci Cake Wallet.", - "pre_seed_button_text": "Rozumím. Ukaž mi můj seed.", - "xmr_to_error": "XMR.TO chyba", - "xmr_to_error_description": "Neplatná částka. Maximálně lze použít 8 desetinných míst", - "provider_error": "${provider} chyba", - "use_ssl": "Použít SSL", - "trusted": "Důvěřovat", - "color_theme": "Barevný motiv", - "light_theme": "Světlý", - "bright_theme": "Jasný", - "dark_theme": "Tmavý", - "enter_your_note": "Zadejte poznámku…", - "note_optional": "Poznámka (nepovinné)", - "note_tap_to_change": "Poznámka (poklepáním upravit)", - "view_in_block_explorer": "Zobrazit v Block Exploreru", - "view_transaction_on": "Zobrazit transakci na ", - "transaction_key": "Klíč transakce", - "confirmations": "Potvrzení", - "recipient_address": "Adresa příjemce", - "extra_id": "Extra ID:", - "destination_tag": "Destination Tag:", - "memo": "Memo:", - "backup": "Záloha", - "change_password": "Změnit heslo", - "backup_password": "Heslo pro zálohy", - "write_down_backup_password": "Prosím zapište si své heslo pro zálohy, které se používá pro import vašich souborů se zálohami.", - "export_backup": "Exportovat zálohu", - "save_backup_password": "Prosím ujistěte se, že máte uschováno heslo pro zálohy. Bez něj nebudete moci naimportovat soubory se zálohami.", - "backup_file": "Soubor se zálohou", - "edit_backup_password": "Upravit heslo pro zálohy", - "save_backup_password_alert": "Uložit heslo pro zálohy", - "change_backup_password_alert": "Vaše předchozí soubory se zálohami nebude možné naimportovat s novým heslem. Nové heslo bude použito pouze pro nové zálohy. Opravdu chcete změnit heslo pro zálohy?", - "enter_backup_password": "Zde zadejte své heslo pro zálohy", - "select_backup_file": "Vybrat soubor se zálohou", - "import": "Import", - "please_select_backup_file": "Prosím vyberte soubor se zálohou a zadejte heslo pro zálohy.", - "fixed_rate": "Pevný kurz", - "fixed_rate_alert": "Když je zvolený pevný kurz, můžete zadat konkrétní částku, kterou chcete dostat. Chcete se přepnout do režimu s pevným kurzem?", - "xlm_extra_info": "Prosím nezapomeňte zadat Memo ID, když posíláte XLM transakce ke směně", - "xrp_extra_info": "Prosím nezapomeňte zadat Destination Tag, když posíláte XRP transakce ke směně", - "exchange_incorrect_current_wallet_for_xmr": "Pokud chcete směnit XMR z Monero částky v Cake Wallet, prosím přepněte se nejprve do své Monero peněženky.", - "confirmed": "Potvrzený zůstatek", - "unconfirmed": "Nepotvrzený zůstatek", - "displayable": "Zobrazitelné", - "submit_request": "odeslat požadavek", - "buy_alert_content": "V současné době podporujeme pouze nákup bitcoinů, etherea, litecoinů a monero. Vytvořte nebo přepněte na svou peněženku bitcoinů, etherea, litecoinů nebo monero.", - "sell_alert_content": "V současné době podporujeme pouze prodej bitcoinů, etherea a litecoinů. Vytvořte nebo přepněte na svou bitcoinovou, ethereum nebo litecoinovou peněženku.", - "outdated_electrum_wallet_description": "Nové Bitcoinové peněženky vytvořené v Cake mají nyní seed se 24 slovy. Je třeba si vytvořit novou Bitcoinovou peněženku se 24 slovy, převést na ni všechny prostředky a přestat používat seed se 12 slovy. Prosím udělejte to hned pro zabezpečení svých prostředků.", - "understand": "Rozumím", - "apk_update": "aktualizace APK", - "buy_bitcoin": "Nakoupit Bitcoin", - "buy_with": "Nakoupit pomocí", - "moonpay_alert_text": "Částka musí být větší nebo rovna ${minAmount} ${fiatCurrency}", - "outdated_electrum_wallet_receive_warning": "Tato peněženka má seed se 12 slovy a byla vytvořena pomocí Cake, NEUKLÁDEJTE Bitcoin na tuto peněženku. Jakékoliv BTC převedené na tuto peněženku může být ztraceno. Vytvořte si novou peněženku s 24 slovy (otevřete menu vpravo nahoře, vyberte Peněženky, zvolte Vytvořit novou peněženku a pak zvolte Bitcoin) a IHNED tam přesuňte své BTC. Nové (24-slovní) BTC peněženky z Cake jsou bezpečné", - "do_not_show_me": "Příště nezobrazovat", - "unspent_coins_title": "Neutracené mince", - "unspent_coins_details_title": "Podrobnosti o neutracených mincích", - "freeze": "Zmrazit", - "frozen": "Zmraženo", - "coin_control": "Volba mincí (nepovinné)", - "address_detected": "Adresa detekována", - "address_from_domain": "Tato adresa je z ${domain} na Unstoppable Domains", - "add_receiver": "Přidat dalšího příjemce (nepovinné)", - "manage_yats": "Spravovat Yaty", - "yat_alert_title": "Posílejte a přijímejte crypto jednodušeji s Yat", - "yat_alert_content": "Uživatelé Cake Wallet mohou nyní posílat a přijímat všechny své oblíbené měny pomocí něco jako uživatelského jména tvořeného emoji.", - "get_your_yat": "Získat Yat", - "connect_an_existing_yat": "Připojit existující Yat", - "connect_yats": "Připojit Yaty", - "yat_address": "Yat adresa", - "yat": "Yat", - "address_from_yat": "Tato adresa je z ${emoji} na Yatu", - "yat_error": "Yat chyba", - "yat_error_content": "Žádná adresa není spojena s tímto Yatem. Zkuste jiný Yat", - "choose_address": "\n\nProsím vyberte adresu:", - "yat_popup_title": "Adresa Vaší peněženky může být emojifikována.", - "yat_popup_content": "Nyní můžete posílat a přijímat crypto v Cake Wallet se svým Yatem - krátkým uživatelským jménem složeným z emoji. Spravujte kdykoliv Yaty na stránce s nastavením", - "second_intro_title": "Jedna emoji adresa vládne všem", - "second_intro_content": "Váš Yat je jediná unikátní emoji adresa, která nahrazuje všechny Vaše dlouhé hexadecimální adresy pro všechny Vaše měny.", - "third_intro_title": "Yat dobře spolupracuje s ostatními", - "third_intro_content": "Yat existuje i mimo Cake Wallet. Jakákoliv adresa peněženky na světě může být nahrazena Yatem!", - "learn_more": "Zjistit více", - "search": "Hledat", - "search_language": "Hledat jazyk", - "search_currency": "Hledat měnu", - "new_template": "Nová šablona", - "electrum_address_disclaimer": "Po každém použití je generována nová adresa, ale předchozí adresy také stále fungují", - "wallet_name_exists": "Peněženka s tímto názvem už existuje. Prosím zvolte si jiný název, nebo nejprve přejmenujte nejprve druhou peněženku.", - "market_place": "Obchod", - "cake_pay_title": "Cake Pay dárkové karty", - "cake_pay_subtitle": "Kupte si zlevněné dárkové karty (pouze USA)", - "cake_pay_web_cards_title": "Cake Pay webové karty", - "cake_pay_web_cards_subtitle": "Kupte si celosvětové předplacené a dárkové karty", - "about_cake_pay": "Cake Pay umožňuje jednoduše nakupovat dárkové karty pomocí virtuálních prostředků, které lze okamžitě uplatnit u více než 150 000 obchodníků ve Spojených státech.", - "cake_pay_account_note": "Přihlaste se svou e-mailovou adresou pro zobrazení a nákup karet. Některé jsou dostupné ve slevě!", - "already_have_account": "Máte už účet?", - "create_account": "Vytvořit účet", - "privacy_policy": "Zásady ochrany soukromí", - "welcome_to_cakepay": "Vítejte v Cake Pay!", - "sign_up": "Registrovat se", - "forgot_password": "Zapomenuté heslo", - "reset_password": "Resetovat heslo", - "gift_cards": "Dárkové karty", - "setup_your_debit_card": "Nastavit debetní kartu", - "no_id_required": "Žádní ID není potřeba. Dobijte si a utrácejte kdekoliv", - "how_to_use_card": "Jak použít tuto kartu", - "purchase_gift_card": "Objednat dárkovou kartu", - "verification": "Ověření", - "fill_code": "Prosím vyplňte ověřovací kód zaslaný na Váš e-mail", - "didnt_get_code": "Nepřišel Vám kód?", - "resend_code": "Prosím poslat znovu", - "debit_card": "Debetní karta", - "cakepay_prepaid_card": "CakePay předplacená debetní karta", - "no_id_needed": "Žádné ID není potřeba!", - "frequently_asked_questions": "Často kladené otázky", - "debit_card_terms": "Uložení a použití vašeho čísla platební karty (a přihlašovací údaje k vašemu číslu karty) v této digitální peněžence se řídí Obchodními podmínkami smlouvy příslušného držitele karty s vydavatelem karty (v jejich nejaktuálnější verzi).", - "please_reference_document": "Více informací naleznete v dokumentu níže.", - "cardholder_agreement": "Smlouva držitele karty", - "e_sign_consent": "E-Sign souhlas", - "agree_and_continue": "Souhlasím & pokračovat", - "email_address": "E-mailová adresa", - "agree_to": "Vytvořením účtu souhlasíte s ", - "and": "a", - "enter_code": "Zadejte kód", - "congratulations": "Gratulujeme!", - "you_now_have_debit_card": "Nyní máte debetní kartu", - "min_amount": "Min: ${value}", - "max_amount": "Max: ${value}", - "enter_amount": "Zadejte částku", - "billing_address_info": "Při dotazu na fakturační adresu, zadejte svou doručovací adresu", - "order_physical_card": "Objednat fyzickou kartu", - "add_value": "Přidat hodnotu", - "activate": "Aktivovat", - "get_a": "Získejte ", - "digital_and_physical_card": " digitální a fyzické předplacené debetní karty,", - "get_card_note": " které můžete nabít digitální měnou. Žádné další informace nejsou vyžadovány!", - "signup_for_card_accept_terms": "Zaregistrujte se pro kartu a souhlaste s podmínkami.", - "add_fund_to_card": "Všechny předplacené prostředky na kartě (až ${value})", - "use_card_info_two": "Prostředky jsou převedeny na USD, když jsou drženy na předplaceném účtu, nikoliv na digitální měnu.", - "use_card_info_three": "Použijte tuto digitální kartu online nebo bezkontaktními platebními metodami.", - "optionally_order_card": "Volitelně objednat fyzickou kartu.", - "hide_details": "Skrýt detaily", - "show_details": "Zobrazit detaily", - "upto": "až ${value}", - "discount": "Ušetříte ${value}%", - "gift_card_amount": "Hodnota dárkové karty", - "bill_amount": "Účtovaná částka", - "you_pay": "Zaplatíte", - "tip": "Spropitné:", - "custom": "vlastní", - "by_cake_pay": "od Cake Pay", - "expires": "Vyprší", - "mm": "MM", - "yy": "YY", - "online": "Online", - "offline": "Offline", - "gift_card_number": "Číslo dárkové karty", - "pin_number": "Číslo PIN", - "total_saving": "Celkem ušetřeno", - "last_30_days": "Posledních 30 dnů", - "avg_savings": "Prům. ušetřeno", - "view_all": "Zobrazit vše", - "active_cards": "Aktivní karty", - "delete_account": "Smazat účet", - "cards": "Karty", - "active": "Aktivní", - "redeemed": "Uplatněné", - "gift_card_balance_note": "Dárkové karty se zbývající částkou se zobrazí zde", - "gift_card_redeemed_note": "Dárkové karty, které jste uplatnili, se zobrazí zde", - "logout": "Odhlásit", - "add_tip": "Přidat spropitné", - "percentageOf": "z ${amount}", - "is_percentage": "je", - "search_category": "Hledat kategorii", - "mark_as_redeemed": "Označit jako uplatněný", - "more_options": "Více možností", - "awaiting_payment_confirmation": "Čeká se na potvrzení platby", - "transaction_sent_notice": "Pokud proces nepokročí během 1 minuty, zkontrolujte block explorer a svůj e-mail.", - "agree": "Souhlasím", - "in_store": "V obchodě", - "generating_gift_card": "Generuji dárkovou kartu", - "payment_was_received": "Vaše platba byla přijata.", - "proceed_after_one_minute": "Pokud proces nepokročí během 1 minuty, zkontrolujte svůj e-mail.", - "order_id": "ID objednávky", - "gift_card_is_generated": "Generuje se dárková karta", - "open_gift_card": "Otevřít dárkovou kartu", - "contact_support": "Kontaktovat podporu", - "gift_cards_unavailable": "Dárkové karty jsou v tuto chvíli dostupné pro zakoupení pouze pomocí Monera, Bitcoinu a Litecoinu.", - "introducing_cake_pay": "Představujeme Cake Pay!", - "cake_pay_learn_more": "Okamžitý nákup a uplatnění dárkových karet v aplikaci!\nPřejeďte prstem zleva doprava pro další informace.", - "automatic": "Automatický", - "fixed_pair_not_supported": "Tento pár s pevným kurzem není ve zvolené směnárně podporován", - "variable_pair_not_supported": "Tento pár s tržním kurzem není ve zvolené směnárně podporován", - "none_of_selected_providers_can_exchange": "Žádný ze zvolených poskytovatelů nemůže provést tuto směnu", - "choose_one": "Zvolte si", - "choose_from_available_options": "Zvolte si z dostupných možností:", - "custom_redeem_amount": "Vlastní částka pro uplatnění", - "add_custom_redemption": "Přidat vlastní uplatnění", - "remaining": "zbývá", - "delete_wallet": "Smazat peněženku", - "delete_wallet_confirm_message": "Opravdu chcete smazat ${wallet_name} peněženku?", - "low_fee": "Nízký poplatek", - "low_fee_alert": "Momentálně máte nastavené nízké poplatky pro transakce. To může způsobovat dlouhé čekání, změnu směnného kurzu, nebo zrušení směny. Doporučujeme nastavit vyšší poplatek.", - "ignor": "Ignorovat", - "use_suggested": "Použít doporučený", - "do_not_share_warning_text": "Toto nesdílejte s nikým jiným, ani s podporou.\n\nJinak mohou být Vaše prostředky ukradeny!", - "help": "pomoc", - "all_transactions": "Všechny transakce", - "all_trades": "Všechny obchody", - "connection_sync": "Připojení a synch.", - "security_and_backup": "Bezpečnost a zálohy", - "create_backup": "Vytvořit zálohu", - "privacy_settings": "Nastavení soukromí", - "privacy": "Soukromí", - "display_settings": "Nastavení zobrazení", - "other_settings": "Další nastavení", - "require_pin_after": "Vyžadovat PIN po", - "always": "Vždy", - "minutes_to_pin_code": "${minute} minutách", - "disable_exchange": "Zakázat směnárny", - "advanced_settings": "Pokročilé nastavení", - "settings_can_be_changed_later": "Tato nastavení mohou být změněna později v nastavení v této aplikaci", - "add_custom_node": "Přidat vlastní uzel", - "disable_fiat": "Zakázat fiat", - "fiat_api": "Fiat API", - "disabled": "Zakázáno", - "enabled": "Povoleno", - "tor_only": "Pouze Tor", - "unmatched_currencies": "Měna vaší současné peněženky neodpovídá té v naskenovaném QR kódu", - "orbot_running_alert": "Prosím ujistěte se, že je Orbot spuštěný, před tím, než se připojíte k tomuto uzlu.", - "contact_list_contacts": "Kontakty", - "contact_list_wallets": "Moje peněženky", - "bitcoin_payments_require_1_confirmation": "U plateb Bitcoinem je vyžadováno alespoň 1 potvrzení, což může trvat 20 minut i déle. Děkujeme za vaši trpělivost! Až bude platba potvrzena, budete informováni e-mailem.", - "send_to_this_address": "Poslat ${currency} ${tag}na tuto adresu", - "arrive_in_this_address": "${currency} ${tag}přijde na tuto adresu", - "do_not_send": "Neodesílat", - "error_dialog_content": "Nastala chyba.\n\nProsím odešlete zprávu o chybě naší podpoře, aby mohli zajistit opravu.", - "decimal_places_error": "Příliš mnoho desetinných míst", - "edit_node": "Upravit uzel", - "invoice_details": "detaily faktury", - "donation_link_details": "Podrobnosti odkazu na darování", - "anonpay_description": "Vygenerujte ${type}. Příjemce může ${method} s jakoukoli podporovanou kryptoměnou a vy obdržíte prostředky v této peněžence.", - "create_invoice": "Vytvořit fakturu", - "create_donation_link": "Vytvořit odkaz na darování", - "optional_email_hint": "Volitelný e-mail s upozorněním na příjemce platby", - "optional_description": "Volitelný popis", - "optional_name": "Volitelné jméno příjemce", - "clearnet_link": "Odkaz na Clearnet", - "onion_link": "Cibulový odkaz", - "sell_monero_com_alert_content": "Prodej Monero zatím není podporován", - "error_text_input_below_minimum_limit": "Částka je menší než minimální hodnota", - "error_text_input_above_maximum_limit": "Částka je větší než maximální hodnota", - "show_market_place": "Zobrazit trh", - "prevent_screenshots": "Zabránit vytváření snímků obrazovky a nahrávání obrazovky", - "profile": "Profil", - "close": "zavřít", - "modify_2fa": "Upravte Cake 2FA", - "disable_cake_2fa": "Zakázat Cake 2FA", - "question_to_disable_2fa": "Opravdu chcete deaktivovat Cake 2FA? Pro přístup k peněžence a některým funkcím již nebude potřeba kód 2FA.", - "disable": "Zakázat", - "setup_2fa": "Nastavení Cake 2FA", - "verify_with_2fa": "Ověřte pomocí Cake 2FA", - "totp_code": "Kód TOTP", - "please_fill_totp": "Vyplňte prosím 8místný kód na vašem druhém zařízení", - "totp_2fa_success": "Úspěch! Pro tuto peněženku povolen Cake 2FA. Nezapomeňte si uložit mnemotechnický klíč pro případ, že ztratíte přístup k peněžence.", - "totp_verification_success": "Ověření proběhlo úspěšně!", - "totp_2fa_failure": "Nesprávný kód. Zkuste prosím jiný kód nebo vygenerujte nový tajný klíč. Použijte kompatibilní aplikaci 2FA, která podporuje 8místné kódy a SHA512.", - "enter_totp_code": "Zadejte kód TOTP.", - "add_secret_code": "Nebo přidejte tento tajný kód do ověřovací aplikace", - "totp_secret_code": "Tajný kód TOTP", - "setup_2fa_text": "Cake 2FA pracuje s použitím TOTP jako druhého autentizačního faktoru.\n\nTOTP Cake 2FA vyžaduje SHA-512 a podporu 8 číslic; to poskytuje zvýšenou bezpečnost. Další informace a podporované aplikace naleznete v průvodci.", - "setup_totp_recommended": "Nastavení TOTP", - "disable_buy": "Zakázat akci nákupu", - "disable_sell": "Zakázat akci prodeje", + "authenticated": "Ověřeno", + "authentication": "Ověřování", "auto_generate_subaddresses": "Automaticky generovat podadresy", - "cake_2fa_preset": "Předvolba Cake 2FA", - "narrow": "Úzký", - "normal": "Normální", - "aggressive": "Agresivní", - "require_for_assessing_wallet": "Vyžadovat pro přístup k peněžence", - "require_for_sends_to_non_contacts": "Vyžadovat pro odesílání nekontaktním osobám", - "require_for_sends_to_contacts": "Vyžadovat pro odeslání kontaktům", - "require_for_sends_to_internal_wallets": "Vyžadovat pro odesílání do interních peněženek", - "require_for_exchanges_to_internal_wallets": "Vyžadovat pro výměny do interních peněženek", - "require_for_adding_contacts": "Vyžadovat pro přidání kontaktů", - "require_for_creating_new_wallets": "Vyžadovat pro vytváření nových peněženek", - "require_for_all_security_and_backup_settings": "Vyžadovat všechna nastavení zabezpečení a zálohování", + "automatic": "Automatický", + "available_balance": "Dostupný zůstatek", "available_balance_description": "Dostupná částka je částka, kterou můžete okamžitě utratit. Zmrazená částka je částka, která ještě není k dispozici, protože ještě nebyla potvrzena síťovým protokolem.", - "syncing_wallet_alert_title": "Vaše peněženka se synchronizuje", - "syncing_wallet_alert_content": "Váš seznam zůstatků a transakcí nemusí být úplný, dokud nebude nahoře uvedeno „SYNCHRONIZOVANÉ“. Kliknutím/klepnutím se dozvíte více.", - "home_screen_settings": "Nastavení domovské obrazovky", - "sort_by": "Seřazeno podle", - "search_add_token": "Hledat / Přidat token", - "edit_token": "Upravit token", - "warning": "Varování", - "add_token_warning": "Neupravujte ani nepřidávejte tokeny podle pokynů podvodníků.\nVždy potvrďte adresy tokenů s renomovanými zdroji!", - "add_token_disclaimer_check": "Potvrdil jsem adresu a informace smlouvy o tokenu pomocí důvěryhodného zdroje. Přidání škodlivých nebo nesprávných informací může vést ke ztrátě finančních prostředků.", - "token_contract_address": "Adresa tokenové smlouvy", - "token_name": "Název tokenu např.: Tether", - "token_symbol": "Symbol tokenu, např.: USDT", - "token_decimal": "Token v desítkové soustavě", - "field_required": "Toto pole je povinné", - "pin_at_top": "špendlík ${token} nahoře", - "invalid_input": "Neplatný vstup", - "fiat_balance": "Fiat Balance", - "gross_balance": "Hrubý zůstatek", - "alphabetical": "Abecední", - "generate_name": "Generovat jméno", + "avg_savings": "Prům. ušetřeno", + "awaitDAppProcessing": "Počkejte, až dApp dokončí zpracování.", + "awaiting_payment_confirmation": "Čeká se na potvrzení platby", + "backup": "Záloha", + "backup_file": "Soubor se zálohou", + "backup_password": "Heslo pro zálohy", "balance_page": "Stránka zůstatku", - "share": "Podíl", - "slidable": "Posuvné", - "monero_dark_theme": "Tmavé téma Monero", + "bill_amount": "Účtovaná částka", + "billing_address_info": "Při dotazu na fakturační adresu, zadejte svou doručovací adresu", + "biometric_auth_reason": "Naskenujte otisk prstu pro ověření", "bitcoin_dark_theme": "Tmavé téma bitcoinů", "bitcoin_light_theme": "Světlé téma bitcoinů", - "high_contrast_theme": "Téma s vysokým kontrastem", - "matrix_green_dark_theme": "Tmavé téma Matrix Green", - "monero_light_theme": "Světlé téma Monero", - "manage_nodes": "Spravovat uzly", - "etherscan_history": "Historie Etherscanu", - "template_name": "Název šablony", + "bitcoin_payments_require_1_confirmation": "U plateb Bitcoinem je vyžadováno alespoň 1 potvrzení, což může trvat 20 minut i déle. Děkujeme za vaši trpělivost! Až bude platba potvrzena, budete informováni e-mailem.", + "Blocks_remaining": "Zbývá ${status} bloků", + "bright_theme": "Jasný", + "buy": "Koupit", + "buy_alert_content": "V současné době podporujeme pouze nákup bitcoinů, etherea, litecoinů a monero. Vytvořte nebo přepněte na svou peněženku bitcoinů, etherea, litecoinů nebo monero.", + "buy_bitcoin": "Nakoupit Bitcoin", + "buy_provider_unavailable": "Poskytovatel aktuálně nedostupný.", + "buy_with": "Nakoupit pomocí", + "by_cake_pay": "od Cake Pay", + "cake_2fa_preset": "Předvolba Cake 2FA", + "cake_pay_account_note": "Přihlaste se svou e-mailovou adresou pro zobrazení a nákup karet. Některé jsou dostupné ve slevě!", + "cake_pay_learn_more": "Okamžitý nákup a uplatnění dárkových karet v aplikaci!\nPřejeďte prstem zleva doprava pro další informace.", + "cake_pay_subtitle": "Kupte si zlevněné dárkové karty (pouze USA)", + "cake_pay_title": "Cake Pay dárkové karty", + "cake_pay_web_cards_subtitle": "Kupte si celosvětové předplacené a dárkové karty", + "cake_pay_web_cards_title": "Cake Pay webové karty", + "cake_wallet": "Cake Wallet", + "cakepay_prepaid_card": "CakePay předplacená debetní karta", + "camera_consent": "Váš fotoaparát použije k pořízení snímku pro účely identifikace ${provider}. Podrobnosti najdete v jejich Zásadách ochrany osobních údajů.", + "camera_permission_is_required": "Vyžaduje se povolení fotoaparátu.\nPovolte jej v nastavení aplikace.", + "cancel": "Zrušit", + "card_address": "Adresa:", + "cardholder_agreement": "Smlouva držitele karty", + "cards": "Karty", + "chains": "Řetězy", + "change": "Změnit", + "change_backup_password_alert": "Vaše předchozí soubory se zálohami nebude možné naimportovat s novým heslem. Nové heslo bude použito pouze pro nové zálohy. Opravdu chcete změnit heslo pro zálohy?", + "change_currency": "Změnit měnu", + "change_current_node": "Opravdu chcete změnit současný uzel na ${node}?", + "change_current_node_title": "Změnit současný uzel", + "change_exchange_provider": "Změnit směnárnu", + "change_language": "Změnit jazyk", + "change_language_to": "Změnit jazyk na ${language}?", + "change_password": "Změnit heslo", "change_rep": "Změna zástupce", "change_rep_message": "Jste si jisti, že chcete změnit zástupce?", - "unsupported_asset": "Tuto akci u tohoto díla nepodporujeme. Vytvořte nebo přepněte na peněženku podporovaného typu aktiv.", - "manage_pow_nodes": "Správa uzlů PoW", - "support_title_live_chat": "Živá podpora", - "support_description_live_chat": "Zdarma a rychle! K dispozici jsou zástupci vyškolených podpůrných podpory", - "support_title_guides": "Průvodce peněženkami dortu", - "support_description_guides": "Dokumentace a podpora běžných otázek", - "support_title_other_links": "Další odkazy na podporu", - "support_description_other_links": "Připojte se k našim komunitám nebo se k nám oslovte další metody", + "change_rep_successful": "Úspěšně změnil zástupce", + "change_wallet_alert_content": "Opravdu chcete změnit aktivní peněženku na ${wallet_name}?", + "change_wallet_alert_title": "Přepnout peněženku", + "choose_account": "Zvolte částku", + "choose_address": "\n\nProsím vyberte adresu:", "choose_derivation": "Vyberte derivaci peněženky", - "new_first_wallet_text": "Snadno udržujte svou kryptoměnu v bezpečí", - "select_destination": "Vyberte cíl pro záložní soubor.", - "save_to_downloads": "Uložit do Stažených souborů", - "select_buy_provider_notice": "Vyberte výše uvedeného poskytovatele nákupu. Tuto obrazovku můžete přeskočit nastavením výchozího poskytovatele nákupu v nastavení aplikace.", - "onramper_option_description": "Rychle si koupte krypto s mnoha metodami plateb. K dispozici ve většině zemí. Rozpětí a poplatky se liší.", + "choose_from_available_options": "Zvolte si z dostupných možností:", + "choose_one": "Zvolte si", + "choose_relay": "Vyberte relé, které chcete použít", + "choose_wallet_currency": "Prosím zvolte si měnu pro peněženku:", + "clear": "Smazat", + "clearnet_link": "Odkaz na Clearnet", + "close": "zavřít", + "coin_control": "Volba mincí (nepovinné)", + "color_theme": "Barevný motiv", + "commit_transaction_amount_fee": "Odeslat transakci\nČástka: ${amount}\nPoplatek: ${fee}", + "confirm": "Potvrdit", + "confirm_delete_template": "Tato akce smaže tuto šablonu. Přejete si pokračovat?", + "confirm_delete_wallet": "Tato akce smaže tuto peněženku. Přejete si pokračovat?", + "confirm_sending": "Potvrdit odeslání", + "confirmations": "Potvrzení", + "confirmed": "Potvrzený zůstatek", + "confirmed_tx": "Potvrzeno", + "congratulations": "Gratulujeme!", + "connect_an_existing_yat": "Připojit existující Yat", + "connect_yats": "Připojit Yaty", + "connection_sync": "Připojení a synch.", + "connectWalletPrompt": "Propojte svou peněženku s WalletConnect a provádějte transakce", + "contact": "Kontakt", + "contact_list_contacts": "Kontakty", + "contact_list_wallets": "Moje peněženky", + "contact_name": "Jméno kontaktu", + "contact_support": "Kontaktovat podporu", + "continue_text": "Pokračovat", + "contractName": "Název smlouvy", + "contractSymbol": "Symbol smlouvy", + "copied_key_to_clipboard": "Zkopírován ${key} do schránky", + "copied_to_clipboard": "Zkopírováno do schránky", + "copy": "Kopírovat", + "copy_address": "Zkopírovat adresu", + "copy_id": "Kopírovat ID", + "copyWalletConnectLink": "Zkopírujte odkaz WalletConnect z dApp a vložte jej sem", + "create_account": "Vytvořit účet", + "create_backup": "Vytvořit zálohu", + "create_donation_link": "Vytvořit odkaz na darování", + "create_invoice": "Vytvořit fakturu", + "create_new": "Vytvořit novou peněženku", + "create_new_account": "Vytvořit nový účet", + "creating_new_wallet": "Vytvářím novou peněženku", + "creating_new_wallet_error": "Chyba: ${description}", + "creation_date": "Datum vzniku", + "custom": "vlastní", + "custom_drag": "Custom (Hold and Drag)", + "custom_redeem_amount": "Vlastní částka pro uplatnění", + "dark_theme": "Tmavý", + "debit_card": "Debetní karta", + "debit_card_terms": "Uložení a použití vašeho čísla platební karty (a přihlašovací údaje k vašemu číslu karty) v této digitální peněžence se řídí Obchodními podmínkami smlouvy příslušného držitele karty s vydavatelem karty (v jejich nejaktuálnější verzi).", + "decimal_places_error": "Příliš mnoho desetinných míst", "default_buy_provider": "Výchozí poskytovatel nákupu", - "ask_each_time": "Zeptejte se pokaždé", - "buy_provider_unavailable": "Poskytovatel aktuálně nedostupný.", - "signTransaction": "Podepsat transakci", + "default_sell_provider": "Výchozí poskytovatel prodeje", + "delete": "Smazat", + "delete_account": "Smazat účet", + "delete_wallet": "Smazat peněženku", + "delete_wallet_confirm_message": "Opravdu chcete smazat ${wallet_name} peněženku?", + "deleteConnectionConfirmationPrompt": "Jste si jisti, že chcete smazat připojení k?", + "descending": "Klesající", + "description": "Popis", + "destination_tag": "Destination Tag:", + "dfx_option_description": "Nakupujte kryptoměny za EUR a CHF. Až 990 € bez dalších KYC. Pro maloobchodní a firemní zákazníky v Evropě", + "didnt_get_code": "Nepřišel Vám kód?", + "digit_pin": "-číselný PIN", + "digital_and_physical_card": " digitální a fyzické předplacené debetní karty,", + "disable": "Zakázat", + "disable_buy": "Zakázat akci nákupu", + "disable_cake_2fa": "Zakázat Cake 2FA", + "disable_exchange": "Zakázat směnárny", + "disable_fiat": "Zakázat fiat", + "disable_sell": "Zakázat akci prodeje", + "disabled": "Zakázáno", + "discount": "Ušetříte ${value}%", + "display_settings": "Nastavení zobrazení", + "displayable": "Zobrazitelné", + "do_not_have_enough_gas_asset": "Nemáte dostatek ${currency} k provedení transakce s aktuálními podmínkami blockchainové sítě. K placení poplatků za blockchainovou síť potřebujete více ${currency}, i když posíláte jiné aktivum.", + "do_not_send": "Neodesílat", + "do_not_share_warning_text": "Toto nesdílejte s nikým jiným, ani s podporou.\n\nJinak mohou být Vaše prostředky ukradeny!", + "do_not_show_me": "Příště nezobrazovat", + "domain_looks_up": "Vyhledávání domén", + "donation_link_details": "Podrobnosti odkazu na darování", + "e_sign_consent": "E-Sign souhlas", + "edit": "Upravit", + "edit_backup_password": "Upravit heslo pro zálohy", + "edit_node": "Upravit uzel", + "edit_token": "Upravit token", + "electrum_address_disclaimer": "Po každém použití je generována nová adresa, ale předchozí adresy také stále fungují", + "email_address": "E-mailová adresa", + "enabled": "Povoleno", + "enter_amount": "Zadejte částku", + "enter_backup_password": "Zde zadejte své heslo pro zálohy", + "enter_code": "Zadejte kód", + "enter_seed_phrase": "Zadejte svou frázi semen", + "enter_totp_code": "Zadejte kód TOTP.", + "enter_your_note": "Zadejte poznámku…", + "enter_your_pin": "Zadejte svůj PIN", + "enter_your_pin_again": "Zadejte znovu svůj PIN", + "enterTokenID": "Zadejte ID tokenu", + "enterWalletConnectURI": "Zadejte identifikátor URI WalletConnect", + "error": "Chyba", + "error_dialog_content": "Nastala chyba.\n\nProsím odešlete zprávu o chybě naší podpoře, aby mohli zajistit opravu.", + "error_text_account_name": "Název účtu může obsahovat jen písmena a čísla\na musí mít délku 1 až 15 znaků", + "error_text_address": "Adresa peněženky musí odpovídat typu\nkryptoměny", + "error_text_amount": "Částka může obsahovat pouze čísla", + "error_text_contact_name": "Jméno kontaktu nemůže obsahovat symboly ` , ' \" \na musí mít délku 1 až 32 znaků", + "error_text_crypto_currency": "Počet desetinných míst\nmusí být menší, nebo roven 12", + "error_text_fiat": "Částka nemůže překročit dostupný zůstatek.\nPočet desetinných míst musí být menší, nebo roven 2", + "error_text_input_above_maximum_limit": "Částka je větší než maximální hodnota", + "error_text_input_below_minimum_limit": "Částka je menší než minimální hodnota", + "error_text_keys": "Klíče peněženky musí obsahovat 64 hexadecimálních znaků", + "error_text_limits_loading_failed": "Obchod pro ${provider} nebyl vytvořen. Selhalo načítání limitů", + "error_text_maximum_limit": "Obchod pro ${provider} nebyl vytvořen. Částka je větší než maximální hodnota: ${max} ${currency}", + "error_text_minimal_limit": "Obchod pro ${provider} nebyl vytvořen. Částka je menší než minimální hodnota: ${min} ${currency}", + "error_text_node_address": "prosím zadejte IPv4 adresu", + "error_text_node_port": "Port uzlu musí být číslo mezi 0 a 65535", + "error_text_node_proxy_address": "Zadejte prosím :, například 127.0.0.1:9050", + "error_text_payment_id": "ID platby se musí skládat z 16 až 64 hexadecimálních znaků", + "error_text_subaddress_name": "Subadresa nemůže obsahovat symboly ` , ' \" \na musí mít délku 1 až 20 znaků", + "error_text_template": "Jméno šablony a adresa nemohou obsahovat symboly ` , ' \" \na musí mít délku 1 až 106 znaků", + "error_text_wallet_name": "Jméno peněženky může obsahovat pouze písmena, čísla, symbol _ \na musí mít délku 1 až 33 znaků", + "error_text_xmr": "Hodnota XMR nemůže překročit dostupný zůstatek.\nPočet desetinných míst musí být menší, nebo roven 12", "errorGettingCredentials": "Selhalo: Chyba při získávání přihlašovacích údajů", "errorSigningTransaction": "Při podepisování transakce došlo k chybě", - "pairingInvalidEvent": "Neplatná událost párování", - "chains": "Řetězy", - "methods": "Metody", - "events": "Události", - "reject": "Odmítnout", - "approve": "Schvalovat", - "expiresOn": "Vyprší dne", - "walletConnect": "WalletConnect", - "nullURIError": "URI je nulové", - "connectWalletPrompt": "Propojte svou peněženku s WalletConnect a provádějte transakce", - "newConnection": "Nové připojení", - "activeConnectionsPrompt": "Zde se zobrazí aktivní připojení", - "deleteConnectionConfirmationPrompt": "Jste si jisti, že chcete smazat připojení k?", + "estimated": "Odhadováno", + "etherscan_history": "Historie Etherscanu", "event": "událost", - "successful": "Úspěšný", - "wouoldLikeToConnect": "by se chtělo připojit", - "message": "Zpráva", - "do_not_have_enough_gas_asset": "Nemáte dostatek ${currency} k provedení transakce s aktuálními podmínkami blockchainové sítě. K placení poplatků za blockchainovou síť potřebujete více ${currency}, i když posíláte jiné aktivum.", - "totp_auth_url": "URL AUTH TOTP", - "awaitDAppProcessing": "Počkejte, až dApp dokončí zpracování.", - "copyWalletConnectLink": "Zkopírujte odkaz WalletConnect z dApp a vložte jej sem", - "enterWalletConnectURI": "Zadejte identifikátor URI WalletConnect", - "seed_key": "Klíč semen", - "enter_seed_phrase": "Zadejte svou frázi semen", - "change_rep_successful": "Úspěšně změnil zástupce", - "add_contact": "Přidat kontakt", + "events": "Události", + "exchange": "Směnit", + "exchange_incorrect_current_wallet_for_xmr": "Pokud chcete směnit XMR z Monero částky v Cake Wallet, prosím přepněte se nejprve do své Monero peněženky.", + "exchange_new_template": "Nová šablona", "exchange_provider_unsupported": "${providerName} již není podporováno!", - "domain_looks_up": "Vyhledávání domén", - "require_for_exchanges_to_external_wallets": "Vyžadovat pro výměny do externích peněženek", - "camera_permission_is_required": "Vyžaduje se povolení fotoaparátu.\nPovolte jej v nastavení aplikace.", - "switchToETHWallet": "Přejděte na peněženku Ethereum a zkuste to znovu", - "order_by": "Seřadit podle", - "creation_date": "Datum vzniku", + "exchange_result_confirm": "Po stisknutí Potvrdit odešlete ${fetchingLabel} ${from} ze své peněženky s názvem ${walletName} na adresu uvedenou níže. Nebo můžete prostředky poslat ze své externí peněženky na níže uvedenou adresu/QR kód.\n\nProsím stiskněte Potvrdit pro pokračování, nebo se vraťte zpět pro změnu částky.", + "exchange_result_description": "Musíte poslat minimálně ${fetchingLabel} ${from} na adresu uvedenou na následující stránce. Pokud pošlete nižší částku než ${fetchingLabel} ${from} nemusí dojít ke směně, ani k jejímu vrácení.", + "exchange_result_write_down_ID": "*Prosím zkopírujte si, nebo zapište si výše uvedené ID.", + "exchange_result_write_down_trade_id": "Prosím zkopírujte si, nebo zapište si ID transakce (trade ID) pro pokračování.", + "exchange_sync_alert_content": "Prosím počkejte, dokud nebude vaše peněženka synchronizována", + "expired": "Vypršelo", + "expires": "Vyprší", + "expiresOn": "Vyprší dne", + "export_backup": "Exportovat zálohu", + "extra_id": "Extra ID:", + "extracted_address_content": "Prostředky budete posílat na\n${recipient_name}", + "failed_authentication": "Ověřování selhalo. ${state_error}", + "faq": "FAQ", + "fetching": "Načítá se", + "fiat_api": "Fiat API", + "fiat_balance": "Fiat Balance", + "field_required": "Toto pole je povinné", + "fill_code": "Prosím vyplňte ověřovací kód zaslaný na Váš e-mail", + "filter_by": "Filtrovat podle", + "first_wallet_text": "Úžasná peněženka pro Monero, Bitcoin, Ethereum, Litecoin a Haven", + "fixed_pair_not_supported": "Tento pár s pevným kurzem není ve zvolené směnárně podporován", + "fixed_rate": "Pevný kurz", + "fixed_rate_alert": "Když je zvolený pevný kurz, můžete zadat konkrétní částku, kterou chcete dostat. Chcete se přepnout do režimu s pevným kurzem?", + "forgot_password": "Zapomenuté heslo", + "freeze": "Zmrazit", + "frequently_asked_questions": "Často kladené otázky", + "frozen": "Zmraženo", + "full_balance": "Celkový zůstatek", + "generate_name": "Generovat jméno", + "generating_gift_card": "Generuji dárkovou kartu", + "get_a": "Získejte ", + "get_card_note": " které můžete nabít digitální měnou. Žádné další informace nejsou vyžadovány!", + "get_your_yat": "Získat Yat", + "gift_card_amount": "Hodnota dárkové karty", + "gift_card_balance_note": "Dárkové karty se zbývající částkou se zobrazí zde", + "gift_card_is_generated": "Generuje se dárková karta", + "gift_card_number": "Číslo dárkové karty", + "gift_card_redeemed_note": "Dárkové karty, které jste uplatnili, se zobrazí zde", + "gift_cards": "Dárkové karty", + "gift_cards_unavailable": "Dárkové karty jsou v tuto chvíli dostupné pro zakoupení pouze pomocí Monera, Bitcoinu a Litecoinu.", + "got_it": "Rozumím", + "gross_balance": "Hrubý zůstatek", "group_by_type": "Skupina podle typu", - "importNFTs": "Importujte NFT", - "noNFTYet": "Zatím žádné NFT", - "address": "Adresa", - "enterTokenID": "Zadejte ID tokenu", - "tokenID": "ID", - "name": "název", - "symbol": "Symbol", - "seed_phrase_length": "Délka fráze semene", - "unavailable_balance": "Nedostupný zůstatek", - "unavailable_balance_description": "Nedostupný zůstatek: Tento součet zahrnuje prostředky, které jsou uzamčeny v nevyřízených transakcích a ty, které jste aktivně zmrazili v nastavení kontroly mincí. Uzamčené zůstatky budou k dispozici po dokončení příslušných transakcí, zatímco zmrazené zůstatky zůstanou pro transakce nepřístupné, dokud se nerozhodnete je uvolnit.", - "unspent_change": "Změna", - "tor_connection": "Připojení Tor", - "setup_warning_2fa_text": "Budete muset obnovit svou peněženku z mnemotechnického semínka.\n\nPodpora dortů vám nebude schopna pomoci, pokud ztratíte přístup ke svým 2FA nebo mnemotechnickým semenům.\nCake 2FA je druhá autentizace pro určité akce v peněžence. Před použitím Cake 2FA doporučujeme přečíst si průvodce.NENÍ tak bezpečný jako skladování v chladu.\n\nPokud ztratíte přístup ke své aplikaci 2FA nebo klíčům TOTP, ztratíte přístup k této peněžence. ", - "scan_qr_on_device": "Naskenujte tento QR kód na jiném zařízení", + "haven_app": "Haven od Cake Wallet", + "haven_app_wallet_text": "Úžasná peněženka pro Haven", + "help": "pomoc", + "hidden_balance": "Skrytý zůstatek", + "hide_details": "Skrýt detaily", + "high_contrast_theme": "Téma s vysokým kontrastem", + "home_screen_settings": "Nastavení domovské obrazovky", "how_to_use": "Jak používat", + "how_to_use_card": "Jak použít tuto kartu", + "id": "ID: ", + "ignor": "Ignorovat", + "import": "Import", + "importNFTs": "Importujte NFT", + "in_store": "V obchodě", + "incoming": "Příchozí", + "incorrect_seed": "Zadaný text není správný.", + "introducing_cake_pay": "Představujeme Cake Pay!", + "invalid_input": "Neplatný vstup", + "invoice_details": "detaily faktury", + "is_percentage": "je", + "last_30_days": "Posledních 30 dnů", + "learn_more": "Zjistit více", + "light_theme": "Světlý", + "loading_your_wallet": "Načítám peněženku", + "login": "Login", + "logout": "Odhlásit", + "low_fee": "Nízký poplatek", + "low_fee_alert": "Momentálně máte nastavené nízké poplatky pro transakce. To může způsobovat dlouhé čekání, změnu směnného kurzu, nebo zrušení směny. Doporučujeme nastavit vyšší poplatek.", + "manage_nodes": "Spravovat uzly", + "manage_pow_nodes": "Správa uzlů PoW", + "manage_yats": "Spravovat Yaty", + "mark_as_redeemed": "Označit jako uplatněný", + "market_place": "Obchod", + "matrix_green_dark_theme": "Tmavé téma Matrix Green", + "max_amount": "Max: ${value}", + "max_value": "Max: ${value} ${currency}", + "memo": "Memo:", + "message": "Zpráva", + "methods": "Metody", + "min_amount": "Min: ${value}", + "min_value": "Min: ${value} ${currency}", + "minutes_to_pin_code": "${minute} minutách", + "mm": "MM", + "modify_2fa": "Upravte Cake 2FA", + "monero_com": "Monero.com od Cake Wallet", + "monero_com_wallet_text": "Úžasná peněženka pro Monero", + "monero_dark_theme": "Tmavé téma Monero", + "monero_light_theme": "Světlé téma Monero", + "moonpay_alert_text": "Částka musí být větší nebo rovna ${minAmount} ${fiatCurrency}", + "more_options": "Více možností", + "name": "název", + "narrow": "Úzký", + "new_first_wallet_text": "Snadno udržujte svou kryptoměnu v bezpečí", + "new_node_testing": "Testování nového uzlu", + "new_subaddress_create": "Vytvořit", + "new_subaddress_label_name": "Popisek", + "new_subaddress_title": "Nová adresa", + "new_template": "Nová šablona", + "new_wallet": "Nová peněženka", + "newConnection": "Nové připojení", + "no_id_needed": "Žádné ID není potřeba!", + "no_id_required": "Žádní ID není potřeba. Dobijte si a utrácejte kdekoliv", + "no_relay_on_domain": "Pro doménu uživatele neexistuje přenos nebo je přenos nedostupný. Vyberte relé, které chcete použít.", + "no_relays": "Žádná relé", + "no_relays_message": "Pro tohoto uživatele jsme našli záznam Nostr NIP-05, který však neobsahuje žádná relé. Požádejte příjemce, aby přidal přenosy do svého záznamu Nostr.", + "node_address": "Adresa uzlu", + "node_connection_failed": "Připojení selhalo", + "node_connection_successful": "Připojení bylo úspěšné", + "node_new": "Nový uzel", + "node_port": "Port uzlu", + "node_reset_settings_title": "Zrušit nastavení", + "node_test": "Otestovat", + "nodes": "Uzly", + "nodes_list_reset_to_default_message": "Opravdu chcete zrušit nastavení a vrátit výchozí hodnotu?", + "none_of_selected_providers_can_exchange": "Žádný ze zvolených poskytovatelů nemůže provést tuto směnu", + "noNFTYet": "Zatím žádné NFT", + "normal": "Normální", + "note_optional": "Poznámka (nepovinné)", + "note_tap_to_change": "Poznámka (poklepáním upravit)", + "nullURIError": "URI je nulové", + "offer_expires_in": "Nabídka vyprší: ", + "offline": "Offline", + "ok": "OK", + "onion_link": "Cibulový odkaz", + "online": "Online", + "onramper_option_description": "Rychle si koupte krypto s mnoha metodami plateb. K dispozici ve většině zemí. Rozpětí a poplatky se liší.", + "open_gift_card": "Otevřít dárkovou kartu", + "optional_description": "Volitelný popis", + "optional_email_hint": "Volitelný e-mail s upozorněním na příjemce platby", + "optional_name": "Volitelné jméno příjemce", + "optionally_order_card": "Volitelně objednat fyzickou kartu.", + "orbot_running_alert": "Prosím ujistěte se, že je Orbot spuštěný, před tím, než se připojíte k tomuto uzlu.", + "order_by": "Seřadit podle", + "order_id": "ID objednávky", + "order_physical_card": "Objednat fyzickou kartu", + "other_settings": "Další nastavení", + "outdated_electrum_wallet_description": "Nové Bitcoinové peněženky vytvořené v Cake mají nyní seed se 24 slovy. Je třeba si vytvořit novou Bitcoinovou peněženku se 24 slovy, převést na ni všechny prostředky a přestat používat seed se 12 slovy. Prosím udělejte to hned pro zabezpečení svých prostředků.", + "outdated_electrum_wallet_receive_warning": "Tato peněženka má seed se 12 slovy a byla vytvořena pomocí Cake, NEUKLÁDEJTE Bitcoin na tuto peněženku. Jakékoliv BTC převedené na tuto peněženku může být ztraceno. Vytvořte si novou peněženku s 24 slovy (otevřete menu vpravo nahoře, vyberte Peněženky, zvolte Vytvořit novou peněženku a pak zvolte Bitcoin) a IHNED tam přesuňte své BTC. Nové (24-slovní) BTC peněženky z Cake jsou bezpečné", + "outgoing": "Odchozí", + "overwrite_amount": "Přepsat částku", + "pairingInvalidEvent": "Neplatná událost párování", + "password": "Heslo", + "paste": "Vložit", + "pause_wallet_creation": "Možnost vytvářet Haven Wallet je momentálně pozastavena.", + "payment_id": "ID platby: ", + "payment_was_received": "Vaše platba byla přijata.", + "pending": " (čeká)", + "percentageOf": "z ${amount}", + "pin_at_top": "špendlík ${token} nahoře", + "pin_is_incorrect": "PIN není správný", + "pin_number": "Číslo PIN", + "placeholder_contacts": "Vaše kontakty budou zobrazeny zde", + "placeholder_transactions": "Vaše transakce budou zobrazeny zde", + "please_fill_totp": "Vyplňte prosím 8místný kód na vašem druhém zařízení", + "please_make_selection": "Prosím vyberte si níže, jestli chcete vytvořit, nebo obnovit peněženku.", + "please_reference_document": "Více informací naleznete v dokumentu níže.", + "please_select": "Zvolte si:", + "please_select_backup_file": "Prosím vyberte soubor se zálohou a zadejte heslo pro zálohy.", + "please_try_to_connect_to_another_node": "Zkuste se prosím připojit k jinému uzlu", + "polygonscan_history": "Historie PolygonScan", + "powered_by": "Zajišťuje ${title}", + "pre_seed_button_text": "Rozumím. Ukaž mi můj seed.", + "pre_seed_description": "Na následující stránce uvidíte sérii ${words} slov. Je to váš tzv. seed a je to JEDINÁ možnost, jak můžete později obnovit svou peněženku v případě ztráty nebo poruchy. Je VAŠÍ zodpovědností zapsat si ho a uložit si ho na bezpečném místě mimo aplikaci Cake Wallet.", + "pre_seed_title": "DŮLEŽITÉ", + "prevent_screenshots": "Zabránit vytváření snímků obrazovky a nahrávání obrazovky", + "privacy": "Soukromí", + "privacy_policy": "Zásady ochrany soukromí", + "privacy_settings": "Nastavení soukromí", + "private_key": "Soukromý klíč", + "proceed_after_one_minute": "Pokud proces nepokročí během 1 minuty, zkontrolujte svůj e-mail.", + "profile": "Profil", + "provider_error": "${provider} chyba", + "public_key": "Veřejný klíč", + "purchase_gift_card": "Objednat dárkovou kartu", + "qr_fullscreen": "Poklepáním otevřete QR kód na celé obrazovce", + "qr_payment_amount": "Tento QR kód obsahuje i částku. Chcete přepsat současnou hodnotu?", + "question_to_disable_2fa": "Opravdu chcete deaktivovat Cake 2FA? Pro přístup k peněžence a některým funkcím již nebude potřeba kód 2FA.", + "receivable_balance": "Zůstatek pohledávek", + "receive": "Přijmout", + "receive_amount": "Částka", + "received": "Přijato", + "recipient_address": "Adresa příjemce", + "reconnect": "Znovu připojit", + "reconnect_alert_text": "Opravdu se chcete znovu připojit?", + "reconnection": "Znovu připojit", + "redeemed": "Uplatněné", + "refund_address": "Adresa pro vrácení", + "reject": "Odmítnout", + "remaining": "zbývá", + "remove": "Odstranit", + "remove_node": "Odstranit uzel", + "remove_node_message": "Opravdu chcete odstranit označený uzel?", + "rename": "Přejmenovat", + "require_for_adding_contacts": "Vyžadovat pro přidání kontaktů", + "require_for_all_security_and_backup_settings": "Vyžadovat všechna nastavení zabezpečení a zálohování", + "require_for_assessing_wallet": "Vyžadovat pro přístup k peněžence", + "require_for_creating_new_wallets": "Vyžadovat pro vytváření nových peněženek", + "require_for_exchanges_to_external_wallets": "Vyžadovat pro výměny do externích peněženek", + "require_for_exchanges_to_internal_wallets": "Vyžadovat pro výměny do interních peněženek", + "require_for_sends_to_contacts": "Vyžadovat pro odeslání kontaktům", + "require_for_sends_to_internal_wallets": "Vyžadovat pro odesílání do interních peněženek", + "require_for_sends_to_non_contacts": "Vyžadovat pro odesílání nekontaktním osobám", + "require_pin_after": "Vyžadovat PIN po", + "rescan": "Znovu prohledat", + "resend_code": "Prosím poslat znovu", + "reset": "Vymazat", + "reset_password": "Resetovat heslo", + "restore_active_seed": "Aktivní seed", + "restore_address": "Adresa", + "restore_bitcoin_description_from_keys": "Obnovte svou peněženku pomocí vygenerovaného WIF řetězce z vašich soukromých klíčů", + "restore_bitcoin_description_from_seed": "Obnovte svou peněženku pomocí kombinace 24 slov", + "restore_bitcoin_title_from_keys": "Obnovit z WIF", + "restore_description_from_backup": "Můžete obnovit celou Cake Wallet aplikaci ze souboru se zálohou", + "restore_description_from_keys": "Obnovte svou peněženku pomocí generovaných stisků kláves uložených z vašich soukromých klíčů", + "restore_description_from_seed": "Obnovte svou peněženku pomocí kombinace 25, nebo 13 slov", + "restore_description_from_seed_keys": "Obnovte svou peněženku ze seedu/klíčů, které jste si uložili na bezpečném místě", + "restore_from_date_or_blockheight": "Prosím zadejte datum z doby několik dnů před tím, než jste si zakládali tuto peněženku. Nebo místo toho zadejte výšku bloku, pokud ji znáte.", + "restore_from_seed_placeholder": "Prosím zadejte, nebo vložte ze schránky svůj seed.", + "restore_new_seed": "Nový seed", + "restore_next": "Další", + "restore_recover": "Obnovit", + "restore_restore_wallet": "Obnovit peněženku", + "restore_seed_keys_restore": "Obnovit ze seedu/klíčů", + "restore_spend_key_private": "Klíč pro platby (soukromý)", + "restore_title_from_backup": "Obnovit ze zálohy", + "restore_title_from_keys": "Obnovit z klíčů", + "restore_title_from_seed": "Obnovit ze seedu", + "restore_title_from_seed_keys": "Obnovit ze seedu/klíčů", + "restore_view_key_private": "Klíč pro zobrazení (soukromý)", + "restore_wallet": "Obnovit peněženku", + "restore_wallet_name": "Jméno peněženky", + "restore_wallet_restore_description": "Popis obnovení peněženky", + "router_no_route": "Pro ${name} není definována žádná cesta", + "save": "Uložit", + "save_backup_password": "Prosím ujistěte se, že máte uschováno heslo pro zálohy. Bez něj nebudete moci naimportovat soubory se zálohami.", + "save_backup_password_alert": "Uložit heslo pro zálohy", + "save_to_downloads": "Uložit do Stažených souborů", + "saved_the_trade_id": "Uložil jsem si ID transakce (trade ID)", + "scan_qr_code": "Naskenujte QR kód pro získání adresy", + "scan_qr_on_device": "Naskenujte tento QR kód na jiném zařízení", + "search": "Hledat", + "search_add_token": "Hledat / Přidat token", + "search_category": "Hledat kategorii", + "search_currency": "Hledat měnu", + "search_language": "Hledat jazyk", + "second_intro_content": "Váš Yat je jediná unikátní emoji adresa, která nahrazuje všechny Vaše dlouhé hexadecimální adresy pro všechny Vaše měny.", + "second_intro_title": "Jedna emoji adresa vládne všem", + "security_and_backup": "Bezpečnost a zálohy", + "seed_alert_back": "Zpět", + "seed_alert_content": "Tento seed představuje jedinou možnost, jak obnovit peněženku. Zapsali jste si ho?", + "seed_alert_title": "Pozor", + "seed_alert_yes": "Ano", + "seed_choose": "Zvolte si jazyk seedu", "seed_hex_form": "Semeno peněženky (hex formulář)", + "seed_key": "Klíč semen", + "seed_language": "Jazyk semen", + "seed_language_chinese": "Čínština", + "seed_language_chinese_traditional": "Číňan (tradiční)", + "seed_language_czech": "čeština", + "seed_language_dutch": "Nizozemština", + "seed_language_english": "Angličtina", + "seed_language_french": "Francouzština", + "seed_language_german": "Němčina", + "seed_language_italian": "Italština", + "seed_language_japanese": "Japonština", + "seed_language_korean": "korejština", + "seed_language_next": "Další", + "seed_language_portuguese": "Portugalština", + "seed_language_russian": "Ruština", + "seed_language_spanish": "Španělština", + "seed_phrase_length": "Délka fráze semene", + "seed_reminder": "Prosím zapište si toto pro případ ztráty, nebo poškození telefonu", + "seed_share": "Sdílet seed", + "seed_title": "Seed", "seedtype": "SeedType", "seedtype_legacy": "Legacy (25 slov)", "seedtype_polyseed": "Polyseed (16 slov)", - "seed_language_czech": "čeština", - "seed_language_korean": "korejština", - "seed_language_chinese_traditional": "Číňan (tradiční)", - "ascending": "Vzestupné", - "descending": "Klesající", - "dfx_option_description": "Nakupujte kryptoměny za EUR a CHF. Až 990 € bez dalších KYC. Pro maloobchodní a firemní zákazníky v Evropě", - "polygonscan_history": "Historie PolygonScan", - "wallet_seed_legacy": "Starší semeno peněženky", - "default_sell_provider": "Výchozí poskytovatel prodeje", + "select_backup_file": "Vybrat soubor se zálohou", + "select_buy_provider_notice": "Vyberte výše uvedeného poskytovatele nákupu. Tuto obrazovku můžete přeskočit nastavením výchozího poskytovatele nákupu v nastavení aplikace.", + "select_destination": "Vyberte cíl pro záložní soubor.", "select_sell_provider_notice": "Výše vyberte poskytovatele prodeje. Tuto obrazovku můžete přeskočit nastavením výchozího poskytovatele prodeje v nastavení aplikace.", - "custom_drag": "Custom (Hold and Drag)", + "sell": "Prodat", + "sell_alert_content": "V současné době podporujeme pouze prodej bitcoinů, etherea a litecoinů. Vytvořte nebo přepněte na svou bitcoinovou, ethereum nebo litecoinovou peněženku.", + "sell_monero_com_alert_content": "Prodej Monero zatím není podporován", + "send": "Poslat", + "send_address": "${cryptoCurrency} adresa", + "send_amount": "Částka:", + "send_creating_transaction": "Vytváření transakce", + "send_error_currency": "Měna může obsahovat pouze čísla", + "send_error_minimum_value": "Minimální částka je 0,01", + "send_estimated_fee": "Odhadovaný poplatek:", + "send_fee": "Poplatek:", + "send_name": "Název", + "send_new": "Nová", + "send_payment_id": "ID platby (nepovinné)", + "send_priority": "Momentálně je poplatek nastaven na prioritu: ${transactionPriority}.\nPriorita transakce může být upravena v nastavení.", + "send_sending": "Odesílání...", + "send_success": "Vaše ${crypto} bylo úspěšně odesláno", + "send_templates": "Šablony", + "send_title": "Poslat", + "send_to_this_address": "Poslat ${currency} ${tag}na tuto adresu", + "send_xmr": "Odeslat XMR", + "send_your_wallet": "Vaše peněženka", + "sending": "Odesílání", + "sent": "Odesláno", + "settings_all": "VŠE", + "settings_allow_biometrical_authentication": "Povolit biometrické ověření", + "settings_can_be_changed_later": "Tato nastavení mohou být změněna později v nastavení v této aplikaci", + "settings_change_language": "Změnit jazyk", + "settings_change_pin": "Změnit PIN", + "settings_currency": "Měna", + "settings_current_node": "Aktuální uzel", + "settings_dark_mode": "Tmavý režim", + "settings_display_balance": "Zobrazovat zůstatek", + "settings_display_on_dashboard_list": "Zobrazit na seznamu na dashboardu", + "settings_fee_priority": "Priorita (poplatky)", + "settings_nodes": "Uzly", + "settings_none": "Žádný", + "settings_only_trades": "Pouze obchody", + "settings_only_transactions": "Pouze transakce", + "settings_personal": "Osobní", + "settings_save_recipient_address": "Ukládat adresu příjemce", + "settings_support": "Podpora", + "settings_terms_and_conditions": "Obchodní podmínky", + "settings_title": "Nastavení", + "settings_trades": "Obchody", + "settings_transactions": "Transakce", + "settings_wallets": "Peněženky", + "setup_2fa": "Nastavení Cake 2FA", + "setup_2fa_text": "Cake 2FA pracuje s použitím TOTP jako druhého autentizačního faktoru.\n\nTOTP Cake 2FA vyžaduje SHA-512 a podporu 8 číslic; to poskytuje zvýšenou bezpečnost. Další informace a podporované aplikace naleznete v průvodci.", + "setup_pin": "Nastavit PIN", + "setup_successful": "Váš PIN byl úspěšně nastaven!", + "setup_totp_recommended": "Nastavení TOTP", + "setup_warning_2fa_text": "Budete muset obnovit svou peněženku z mnemotechnického semínka.\n\nPodpora dortů vám nebude schopna pomoci, pokud ztratíte přístup ke svým 2FA nebo mnemotechnickým semenům.\nCake 2FA je druhá autentizace pro určité akce v peněžence. Před použitím Cake 2FA doporučujeme přečíst si průvodce.NENÍ tak bezpečný jako skladování v chladu.\n\nPokud ztratíte přístup ke své aplikaci 2FA nebo klíčům TOTP, ztratíte přístup k této peněžence. ", + "setup_your_debit_card": "Nastavit debetní kartu", + "share": "Podíl", + "share_address": "Sdílet adresu", + "show_details": "Zobrazit detaily", + "show_keys": "Zobrazit seed/klíče", + "show_market_place": "Zobrazit trh", + "show_seed": "Zobrazit seed", + "sign_up": "Registrovat se", + "signTransaction": "Podepsat transakci", + "signup_for_card_accept_terms": "Zaregistrujte se pro kartu a souhlaste s podmínkami.", + "slidable": "Posuvné", + "sort_by": "Seřazeno podle", + "spend_key_private": "Klíč pro platby (soukromý)", + "spend_key_public": "Klíč pro platby (veřejný)", + "status": "Status: ", + "subaddress_title": "Seznam subadres", + "subaddresses": "Subadresy", + "submit_request": "odeslat požadavek", + "successful": "Úspěšný", + "support_description_guides": "Dokumentace a podpora běžných otázek", + "support_description_live_chat": "Zdarma a rychle! K dispozici jsou zástupci vyškolených podpůrných podpory", + "support_description_other_links": "Připojte se k našim komunitám nebo se k nám oslovte další metody", + "support_title_guides": "Průvodce peněženkami dortu", + "support_title_live_chat": "Živá podpora", + "support_title_other_links": "Další odkazy na podporu", + "switchToETHWallet": "Přejděte na peněženku Ethereum a zkuste to znovu", "switchToEVMCompatibleWallet": "Přepněte na peněženku kompatibilní s EVM a zkuste to znovu (Ethereum, Polygon)", - "receivable_balance": "Zůstatek pohledávek", - "confirmed_tx": "Potvrzeno", + "symbol": "Symbol", + "sync_status_attempting_sync": "ZAHAJUJI SYNCHR.", + "sync_status_connected": "PŘIPOJENO", + "sync_status_connecting": "PŘIPOJOVÁNÍ", + "sync_status_failed_connect": "ODPOJENO", + "sync_status_not_connected": "NEPŘIPOJENO", + "sync_status_starting_sync": "SPOUŠTĚNÍ SYNCHRONIZACE", + "sync_status_syncronized": "SYNCHRONIZOVÁNO", + "sync_status_syncronizing": "SYNCHRONIZUJI", + "syncing_wallet_alert_content": "Váš seznam zůstatků a transakcí nemusí být úplný, dokud nebude nahoře uvedeno „SYNCHRONIZOVANÉ“. Kliknutím/klepnutím se dozvíte více.", + "syncing_wallet_alert_title": "Vaše peněženka se synchronizuje", + "template": "Šablona", + "template_name": "Název šablony", + "third_intro_content": "Yat existuje i mimo Cake Wallet. Jakákoliv adresa peněženky na světě může být nahrazena Yatem!", + "third_intro_title": "Yat dobře spolupracuje s ostatními", + "time": "${minutes}m ${seconds}s", + "tip": "Spropitné:", + "today": "Dnes", + "token_contract_address": "Adresa tokenové smlouvy", + "token_decimal": "Token v desítkové soustavě", + "token_name": "Název tokenu např.: Tether", + "token_symbol": "Symbol tokenu, např.: USDT", + "tokenID": "ID", + "tor_connection": "Připojení Tor", + "tor_only": "Pouze Tor", + "total_saving": "Celkem ušetřeno", + "totp_2fa_failure": "Nesprávný kód. Zkuste prosím jiný kód nebo vygenerujte nový tajný klíč. Použijte kompatibilní aplikaci 2FA, která podporuje 8místné kódy a SHA512.", + "totp_2fa_success": "Úspěch! Pro tuto peněženku povolen Cake 2FA. Nezapomeňte si uložit mnemotechnický klíč pro případ, že ztratíte přístup k peněžence.", + "totp_auth_url": "URL AUTH TOTP", + "totp_code": "Kód TOTP", + "totp_secret_code": "Tajný kód TOTP", + "totp_verification_success": "Ověření proběhlo úspěšně!", + "trade_details_copied": "${title} zkopírováno do schránky", + "trade_details_created_at": "Vytvořeno v", + "trade_details_fetching": "Získávám", + "trade_details_id": "ID", + "trade_details_pair": "Pár", + "trade_details_provider": "Poskytovatel", + "trade_details_state": "Stav", + "trade_details_title": "Podrobnosti k obchodu", + "trade_for_not_created": "Obchod pro ${title} nebyl vytvořen.", + "trade_history_title": "Historie obchodů", + "trade_id": "ID transakce (trade ID):", + "trade_id_not_found": "Obchod ${tradeId} z ${title} nenalezen.", + "trade_is_powered_by": "Tento obchod zajišťuje ${provider}", + "trade_not_created": "Obchod nebyl vytvořen", + "trade_not_found": "Obchod nenalezen.", + "trade_state_btc_sent": "BTC odesláno", + "trade_state_complete": "Kompletní", + "trade_state_confirming": "Ověřování", + "trade_state_created": "Vytvořeno", + "trade_state_finished": "Hotovo", + "trade_state_paid": "Zaplaceno", + "trade_state_paid_unconfirmed": "Nepotvrzeně zaplaceno", + "trade_state_pending": "Čekající", + "trade_state_timeout": "Vypršel časový limit", + "trade_state_to_be_created": "Bude vytvořen", + "trade_state_traded": "Zobchodováno", + "trade_state_trading": "Obchoduji", + "trade_state_underpaid": "Zaplaceno méně", + "trade_state_unpaid": "Nezaplaceno", + "trades": "Obchody", + "transaction_details_amount": "Částka", + "transaction_details_copied": "${title} zkopírováno do schránky", + "transaction_details_date": "Datum", + "transaction_details_fee": "Poplatek", + "transaction_details_height": "Výška", + "transaction_details_recipient_address": "Adresa příjemce", "transaction_details_source_address": "Zdrojová adresa", - "pause_wallet_creation": "Možnost vytvářet Haven Wallet je momentálně pozastavena.", - "contractName": "Název smlouvy", - "contractSymbol": "Symbol smlouvy", - "description": "Popis", - "camera_consent": "Váš fotoaparát použije k pořízení snímku pro účely identifikace ${provider}. Podrobnosti najdete v jejich Zásadách ochrany osobních údajů.", - "no_relays": "Žádná relé", - "choose_relay": "Vyberte relé, které chcete použít", - "no_relays_message": "Pro tohoto uživatele jsme našli záznam Nostr NIP-05, který však neobsahuje žádná relé. Požádejte příjemce, aby přidal přenosy do svého záznamu Nostr.", - "no_relay_on_domain": "Pro doménu uživatele neexistuje přenos nebo je přenos nedostupný. Vyberte relé, které chcete použít." -} + "transaction_details_title": "Podrobnosti o transakci", + "transaction_details_transaction_id": "ID transakce", + "transaction_key": "Klíč transakce", + "transaction_priority_fast": "Rychlá", + "transaction_priority_fastest": "Nejrychlejší", + "transaction_priority_medium": "Střední", + "transaction_priority_regular": "Běžná", + "transaction_priority_slow": "Pomalá", + "transaction_sent": "Transakce odeslána!", + "transaction_sent_notice": "Pokud proces nepokročí během 1 minuty, zkontrolujte block explorer a svůj e-mail.", + "transactions": "Transakce", + "transactions_by_date": "Transakce podle data", + "trusted": "Důvěřovat", + "unavailable_balance": "Nedostupný zůstatek", + "unavailable_balance_description": "Nedostupný zůstatek: Tento součet zahrnuje prostředky, které jsou uzamčeny v nevyřízených transakcích a ty, které jste aktivně zmrazili v nastavení kontroly mincí. Uzamčené zůstatky budou k dispozici po dokončení příslušných transakcí, zatímco zmrazené zůstatky zůstanou pro transakce nepřístupné, dokud se nerozhodnete je uvolnit.", + "unconfirmed": "Nepotvrzený zůstatek", + "understand": "Rozumím", + "unmatched_currencies": "Měna vaší současné peněženky neodpovídá té v naskenovaném QR kódu", + "unspent_change": "Změna", + "unspent_coins_details_title": "Podrobnosti o neutracených mincích", + "unspent_coins_title": "Neutracené mince", + "unsupported_asset": "Tuto akci u tohoto díla nepodporujeme. Vytvořte nebo přepněte na peněženku podporovaného typu aktiv.", + "upto": "až ${value}", + "use": "Přepnout na ", + "use_card_info_three": "Použijte tuto digitální kartu online nebo bezkontaktními platebními metodami.", + "use_card_info_two": "Prostředky jsou převedeny na USD, když jsou drženy na předplaceném účtu, nikoliv na digitální měnu.", + "use_ssl": "Použít SSL", + "use_suggested": "Použít doporučený", + "variable_pair_not_supported": "Tento pár s tržním kurzem není ve zvolené směnárně podporován", + "verification": "Ověření", + "verify_with_2fa": "Ověřte pomocí Cake 2FA", + "version": "Verze ${currentVersion}", + "view_all": "Zobrazit vše", + "view_in_block_explorer": "Zobrazit v Block Exploreru", + "view_key_private": "Klíč pro zobrazení (soukromý)", + "view_key_public": "Klíč pro zobrazení (veřejný)", + "view_transaction_on": "Zobrazit transakci na ", + "wallet_keys": "Seed/klíče peněženky", + "wallet_list_create_new_wallet": "Vytvořit novou peněženku", + "wallet_list_edit_wallet": "Upravit peněženku", + "wallet_list_failed_to_load": "Chyba při načítání ${wallet_name} peněženky. ${error}", + "wallet_list_failed_to_remove": "Chyba při odstraňování ${wallet_name} peněženky. ${error}", + "wallet_list_load_wallet": "Načíst peněženku", + "wallet_list_loading_wallet": "Načítám ${wallet_name} peněženku", + "wallet_list_removing_wallet": "Odstraňuji ${wallet_name} peněženku", + "wallet_list_restore_wallet": "Obnovit peněženku", + "wallet_list_title": "Monero Wallet", + "wallet_list_wallet_name": "Název peněženky", + "wallet_menu": "Menu", + "wallet_name": "Název peněženky", + "wallet_name_exists": "Peněženka s tímto názvem už existuje. Prosím zvolte si jiný název, nebo nejprve přejmenujte nejprve druhou peněženku.", + "wallet_restoration_store_incorrect_seed_length": "Nesprávná délka seedu", + "wallet_seed": "Seed peněženky", + "wallet_seed_legacy": "Starší semeno peněženky", + "wallet_store_monero_wallet": "Monero Wallet", + "walletConnect": "WalletConnect", + "wallets": "Peněženky", + "warning": "Varování", + "welcome": "Vítejte v", + "welcome_to_cakepay": "Vítejte v Cake Pay!", + "widgets_address": "Adresa", + "widgets_or": "nebo", + "widgets_restore_from_blockheight": "Obnovit z výšky bloku", + "widgets_restore_from_date": "Obnovit z data", + "widgets_seed": "Seed", + "wouoldLikeToConnect": "by se chtělo připojit", + "write_down_backup_password": "Prosím zapište si své heslo pro zálohy, které se používá pro import vašich souborů se zálohami.", + "xlm_extra_info": "Prosím nezapomeňte zadat Memo ID, když posíláte XLM transakce ke směně", + "xmr_available_balance": "Zůstatek (dostupný)", + "xmr_full_balance": "Zůstatek (celkový)", + "xmr_hidden": "Skryto", + "xmr_to_error": "XMR.TO chyba", + "xmr_to_error_description": "Neplatná částka. Maximálně lze použít 8 desetinných míst", + "xrp_extra_info": "Prosím nezapomeňte zadat Destination Tag, když posíláte XRP transakce ke směně", + "yat": "Yat", + "yat_address": "Yat adresa", + "yat_alert_content": "Uživatelé Cake Wallet mohou nyní posílat a přijímat všechny své oblíbené měny pomocí něco jako uživatelského jména tvořeného emoji.", + "yat_alert_title": "Posílejte a přijímejte crypto jednodušeji s Yat", + "yat_error": "Yat chyba", + "yat_error_content": "Žádná adresa není spojena s tímto Yatem. Zkuste jiný Yat", + "yat_popup_content": "Nyní můžete posílat a přijímat crypto v Cake Wallet se svým Yatem - krátkým uživatelským jménem složeným z emoji. Spravujte kdykoliv Yaty na stránce s nastavením", + "yat_popup_title": "Adresa Vaší peněženky může být emojifikována.", + "yesterday": "Včera", + "you_now_have_debit_card": "Nyní máte debetní kartu", + "you_pay": "Zaplatíte", + "you_will_get": "Směnit na", + "you_will_send": "Směnit z", + "yy": "YY", + "zzzz": "Zzzz" +} \ No newline at end of file diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 9aca5ba28..8369cc5b7 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -1,779 +1,780 @@ { - "welcome": "Willkommen bei", - "cake_wallet": "Cake Wallet", - "first_wallet_text": "Eine großartige Wallet für Monero, Bitcoin, Ethereum, Litecoin, und Haven", - "please_make_selection": "Bitte treffen Sie unten eine Auswahl zum Erstellen oder Wiederherstellen Ihrer Wallet.", - "create_new": "Neue Wallet erstellen", - "restore_wallet": "Wallet wiederherstellen", - "monero_com": "Monero.com von Cake Wallet", - "monero_com_wallet_text": "Eine großartige Wallet für Monero", - "haven_app": "Haven von Cake Wallet", - "haven_app_wallet_text": "Eine großartige Wallet für Haven", - "accounts": "Konten", - "edit": "Bearbeiten", + "about_cake_pay": "Mit Cake Pay können Sie ganz einfach Geschenkkarten mit virtuellen Vermögenswerten kaufen, die Sie sofort bei über 150.000 Händlern in den Vereinigten Staaten ausgeben können.", "account": "Konto", + "accounts": "Konten", + "accounts_subaddresses": "Konten und Unteradressen", + "activate": "aktivieren", + "active": "Aktiv", + "active_cards": "Aktive Karten", + "activeConnectionsPrompt": "Hier werden aktive Verbindungen angezeigt", "add": "Hinzufügen", + "add_contact": "Kontakt hinzufügen", + "add_custom_node": "Neuen benutzerdefinierten Knoten hinzufügen", + "add_custom_redemption": "Benutzerdefinierte Einlösung hinzufügen", + "add_fund_to_card": "Prepaid-Guthaben zu den Karten hinzufügen (bis zu ${value})", + "add_new_node": "Neuen Knoten hinzufügen", + "add_new_word": "Neues Wort hinzufügen", + "add_receiver": "Fügen Sie einen weiteren Empfänger hinzu (optional)", + "add_secret_code": "Oder fügen Sie diesen Geheimcode einer Authentifizierungs-App hinzu", + "add_tip": "Tipp hinzufügen", + "add_token_disclaimer_check": "Ich habe die Adresse und Informationen zum Token-Vertrag anhand einer seriösen Quelle bestätigt. Das Hinzufügen böswilliger oder falscher Informationen kann zu einem Verlust von Geldern führen.", + "add_token_warning": "Bearbeiten oder fügen Sie Token nicht gemäß den Anweisungen von Betrügern hinzu.\nBestätigen Sie Token-Adressen immer mit seriösen Quellen!", + "add_value": "Wert hinzufügen", + "address": "Adresse", "address_book": "Adressbuch", - "contact": "Kontakt", - "please_select": "Bitte auswählen:", - "cancel": "Abbrechen", - "ok": "OK", - "contact_name": "Name des Kontakts", - "reset": "Zurücksetzen", - "save": "Speichern", + "address_book_menu": "Adressbuch", + "address_detected": "Adresse erkannt", + "address_from_domain": "Diese Adresse ist von ${domain} auf Unstoppable Domains", + "address_from_yat": "Diese Adresse ist von ${emoji} auf Yat", + "address_label": "Address label", "address_remove_contact": "Kontakt entfernen", "address_remove_content": "Sind Sie sicher, dass Sie den ausgewählten Kontakt entfernen möchten?", - "authenticated": "Authentifiziert", - "authentication": "Authentifizierung", - "failed_authentication": "Authentifizierung fehlgeschlagen. ${state_error}", - "wallet_menu": "Wallet-Menü", - "Blocks_remaining": "${status} verbleibende Blöcke", - "please_try_to_connect_to_another_node": "Bitte versuchen Sie, sich mit einem anderen Knoten zu verbinden", - "xmr_hidden": "Versteckt", - "xmr_available_balance": "Verfügbares Guthaben", - "xmr_full_balance": "Gesamtguthaben", - "send": "Senden", - "receive": "Empfangen", - "transactions": "Transaktionen", - "incoming": "Eingehend", - "outgoing": "Ausgehend", - "transactions_by_date": "Transaktionen nach Datum", - "trades": "Börsen", - "filter_by": "Filtern nach", - "today": "Heute", - "yesterday": "Gestern", - "received": "Empfangen", - "sent": "Versendet", - "pending": " (ausstehend)", - "rescan": "Erneut scannen", - "reconnect": "Erneut verbinden", - "wallets": "Wallets", - "show_seed": "Seed zeigen", - "show_keys": "Seed/Schlüssel anzeigen", - "address_book_menu": "Adressbuch", - "reconnection": "Neu verbinden", - "reconnect_alert_text": "Sind Sie sicher, dass Sie sich neu verbinden möchten?", - "exchange": "Umwechseln", - "clear": "Zurücksetzen", - "refund_address": "Rückerstattungsadresse", - "change_exchange_provider": "Exchange-Anbieter ändern", - "you_will_send": "Konvertieren von", - "you_will_get": "Konvertieren zu", - "amount_is_guaranteed": "Der Empfangsbetrag ist garantiert", - "amount_is_estimate": "Der empfangene Betrag ist eine Schätzung", - "powered_by": "Ermöglicht durch ${title}", - "error": "Fehler", - "estimated": "Geschätzt", - "min_value": "Min: ${value} ${currency}", - "max_value": "Max: ${value} ${currency}", - "change_currency": "Währung ändern", - "overwrite_amount": "Overwrite amount", - "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", - "copy_id": "ID kopieren", - "exchange_result_write_down_trade_id": "Bitte kopieren oder notieren Sie die Handels-ID, um fortzufahren.", - "trade_id": "Handels-ID:", - "copied_to_clipboard": "In die Zwischenablage kopiert", - "saved_the_trade_id": "Ich habe die Handels-ID gespeichert", - "fetching": "Frage ab", - "id": "ID: ", - "amount": "Betrag: ", - "payment_id": "Zahlungs-ID: ", - "status": "Status: ", - "offer_expires_in": "Angebot läuft ab in: ", - "trade_is_powered_by": "Dieser Handel wird angeboten von ${provider}", - "copy_address": "Adresse kopieren", - "exchange_result_confirm": "Durch Drücken von \"Bestätigen\" wird ${fetchingLabel} ${from} von Ihrer Wallet namens ${walletName} an die unten angegebene Adresse gesendet. Alternativ können Sie von einer externen Wallet an die unten angegebene Adresse / QR-Code senden.\n\nBitte bestätigen Sie, um fortzufahren, oder gehen Sie zurück, um die Beträge zu ändern.", - "exchange_result_description": "Sie müssen mindestens ${fetchingLabel} ${from} an die auf der nächsten Seite angegebene Adresse senden. Wenn Sie einen Betrag unter ${fetchingLabel} ${from} senden, wird dieser möglicherweise nicht konvertiert und möglicherweise nicht erstattet.", - "exchange_result_write_down_ID": "*Bitte kopieren oder notieren Sie sich die oben gezeigte ID.", - "confirm": "Bestätigen", - "confirm_sending": "Senden bestätigen", - "commit_transaction_amount_fee": "Transaktion absenden\nBetrag: ${amount}\nGebühr: ${fee}", - "sending": "Senden", - "transaction_sent": "Transaktion gesendet!", - "expired": "Abgelaufen", - "time": "${minutes}m ${seconds}s", - "send_xmr": "XMR senden", - "exchange_new_template": "Neue Vorlage", - "faq": "Häufig gestellte Fragen", - "enter_your_pin": "PIN eingeben", - "loading_your_wallet": "Wallet wird geladen", - "new_wallet": "Neue Wallet", - "wallet_name": "Walletname", - "continue_text": "Weiter", - "choose_wallet_currency": "Bitte wählen Sie die Währung der Wallet:", - "node_new": "Neuer Knoten", - "node_address": "Knotenadresse", - "node_port": "Knotenport", - "login": "Einloggen", - "password": "Passwort", - "nodes": "Knoten", - "node_reset_settings_title": "Einstellungen zurücksetzen", - "nodes_list_reset_to_default_message": "Möchten Sie wirklich die Standardeinstellungen wiederherstellen?", - "change_current_node": "Möchten Sie den aktuellen Knoten wirklich zu ${node}? ändern?", - "change": "Ändern", - "remove_node": "Knoten entfernen", - "remove_node_message": "Möchten Sie den ausgewählten Knoten wirklich entfernen?", - "remove": "Entfernen", - "delete": "Löschen", - "add_new_node": "Neuen Knoten hinzufügen", - "change_current_node_title": "Aktuellen Knoten ändern", - "node_test": "Test", - "node_connection_successful": "Die Verbindung war erfolgreich", - "node_connection_failed": "Verbindung fehlgeschlagen", - "new_node_testing": "Neuen Knoten testen", - "use": "Wechsel zu ", - "digit_pin": "-stellige PIN", - "share_address": "Adresse teilen ", - "receive_amount": "Betrag", - "subaddresses": "Unteradressen", "addresses": "Adressen", - "scan_qr_code_to_get_address": "Scannen Sie den QR-Code, um die Adresse zu erhalten", - "qr_fullscreen": "Tippen Sie hier, um den QR-Code im Vollbildmodus zu öffnen", - "rename": "Umbenennen", - "choose_account": "Konto auswählen", - "create_new_account": "Neues Konto erstellen", - "accounts_subaddresses": "Konten und Unteradressen", - "restore_restore_wallet": "Wallet wiederherstellen", - "restore_title_from_seed_keys": "Aus Seed/Schlüssel wiederherstellen", - "restore_description_from_seed_keys": "Stellen Sie Ihr Wallet aus Seed/Schlüsseln wieder her, die Sie sicher aufbewahrt haben", - "restore_next": "Weiter", - "restore_title_from_backup": "Aus einer Sicherungsdatei wiederherstellen", - "restore_description_from_backup": "Sie können die gesamte Cake Wallet-App aus Ihrer Sicherungsdatei wiederherstellen", - "restore_seed_keys_restore": "Seed/Schlüssel wiederherstellen", - "restore_title_from_seed": "Aus Seed wiederherstellen", - "restore_description_from_seed": "Stellen Sie Ihre Wallet aus den 25 Wörtern oder dem 13-Wort-Kombinationscode wieder her", - "restore_title_from_keys": "Aus Schlüsseln wiederherstellen", - "restore_description_from_keys": "Stellen Sie Ihr Wallet aus generierten Tastenanschlägen her, die von Ihren privaten Schlüsseln gespeichert wurden", - "restore_wallet_name": "Walletname", - "restore_address": "Adresse", - "restore_view_key_private": "View Key (geheim)", - "restore_spend_key_private": "Spend Key (geheim)", - "restore_recover": "Wiederherstellen", - "restore_wallet_restore_description": "Beschreibung zur Wallet-Wiederherstellung", - "restore_new_seed": "Neuer Seed", - "restore_active_seed": "Aktiver Seed", - "restore_bitcoin_description_from_seed": "Stellen Sie Ihre Wallet aus dem 24-Wort-Kombinationscode wieder her", - "restore_bitcoin_description_from_keys": "Stellen Sie Ihre Wallet aus der generierten WIF-Zeichenfolge aus Ihren privaten Schlüsseln wieder her", - "restore_bitcoin_title_from_keys": "Aus WIF wiederherstellen", - "restore_from_date_or_blockheight": "Bitte geben Sie ein Datum ein, das einige Tage vor dem Erstellen dieser Wallet liegt. Oder wenn Sie die Blockhöhe kennen, geben Sie stattdessen diese ein", - "seed_reminder": "Bitte notieren Sie diese für den Fall, dass Sie Ihr Telefon verlieren oder es kaputtgeht", - "seed_title": "Seed", - "seed_share": "Seed teilen", - "copy": "Kopieren", - "seed_language": "Seed-Sprache", - "seed_choose": "Seed-Sprache auswählen", - "seed_language_next": "Weiter", - "seed_language_english": "Englisch", - "seed_language_chinese": "Chinesisch", - "seed_language_dutch": "Niederländisch", - "seed_language_german": "Deutsch", - "seed_language_japanese": "Japanisch", - "seed_language_portuguese": "Portugiesisch", - "seed_language_russian": "Russisch", - "seed_language_spanish": "Spanisch", - "seed_language_french": "Französisch", - "seed_language_italian": "Italiana/Italiano", - "send_title": "Senden", - "send_your_wallet": "Ihre Wallet", - "send_address": "${cryptoCurrency}-Adresse", - "send_payment_id": "Zahlungs-ID (optional)", + "advanced_settings": "Erweiterte Einstellungen", + "aggressive": "Übereifrig", + "agree": "stimme zu", + "agree_and_continue": "Zustimmen & fortfahren", + "agree_to": "Indem Sie ein Konto erstellen, stimmen Sie den ", "all": "ALLES", - "send_error_minimum_value": "Der Mindestbetrag ist 0,01", - "send_error_currency": "Die Währung darf nur Zahlen enthalten", - "send_estimated_fee": "Geschätzte Gebühr:", - "send_priority": "Derzeit ist ${transactionPriority} als Gebührenpriorität eingestellt.\nDie Transaktionspriorität kann in den Einstellungen angepasst werden", - "send_creating_transaction": "Erstelle Transaktion", - "send_templates": "Vorlagen", - "send_new": "Neu", - "send_amount": "Betrag:", - "send_fee": "Gebühr:", - "send_name": "Name", - "got_it": "Verstanden", - "send_sending": "Senden...", - "send_success": "Ihr ${crypto} wurde erfolgreich versendet", - "settings_title": "Einstellungen", - "settings_nodes": "Knoten", - "settings_current_node": "Aktueller Knoten", - "settings_wallets": "Wallets", - "settings_display_balance": "Kontostand anzeigen", - "settings_currency": "Währung", - "settings_fee_priority": "Gebührenpriorität", - "settings_save_recipient_address": "Empfängeradresse speichern", - "settings_personal": "Persönlich", - "settings_change_pin": "PIN ändern", - "settings_change_language": "Sprache ändern", - "settings_allow_biometrical_authentication": "Biometrische Authentifizierung zulassen", - "settings_dark_mode": "Dunkler Modus", - "settings_transactions": "Transaktionen", - "settings_trades": "Handel", - "settings_display_on_dashboard_list": "Anzeige in der Dashboard-Liste", - "settings_all": "ALLE", - "settings_only_trades": "Nur Handel", - "settings_only_transactions": "Nur Transaktionen", - "settings_none": "Keiner", - "settings_support": "Hilfe", - "settings_terms_and_conditions": "Geschäftsbedingungen", - "pin_is_incorrect": "PIN ist falsch", - "setup_pin": "PIN einrichten", - "enter_your_pin_again": "Geben Sie Ihre PIN erneut ein", - "setup_successful": "Ihre PIN wurde erfolgreich eingerichtet!", - "wallet_keys": "Wallet-Seed/-Schlüssel", - "wallet_seed": "Wallet-Seed", - "private_key": "Privater Schlüssel", - "public_key": "Öffentlicher Schlüssel", - "view_key_private": "View Key (geheim)", - "view_key_public": "View Key (öffentlich)", - "spend_key_private": "Spend Key (geheim)", - "spend_key_public": "Spend Key (öffentlich)", - "copied_key_to_clipboard": "${key} in Zwischenablage kopiert", - "new_subaddress_title": "Neue Adresse", - "new_subaddress_label_name": "Bezeichnung", - "new_subaddress_create": "Erstellen", - "address_label": "Address label", - "subaddress_title": "Unteradressenliste", - "trade_details_title": "Handelsdetails", - "trade_details_id": "ID", - "trade_details_state": "Status", - "trade_details_fetching": "Wird ermittelt", - "trade_details_provider": "Anbieter", - "trade_details_created_at": "Erzeugt am", - "trade_details_pair": "Paar", - "trade_details_copied": "${title} in die Zwischenablage kopiert", - "trade_history_title": "Handelsverlauf", - "transaction_details_title": "Transaktionsdetails", - "transaction_details_transaction_id": "Transaktions-ID", - "transaction_details_date": "Datum", - "transaction_details_height": "Höhe", - "transaction_details_amount": "Betrag", - "transaction_details_fee": "Gebühr", - "transaction_details_copied": "${title} in die Zwischenablage kopiert", - "transaction_details_recipient_address": "Empfängeradressen", - "wallet_list_title": "Monero-Wallet", - "wallet_list_create_new_wallet": "Neue Wallet erstellen", - "wallet_list_edit_wallet": "Wallet bearbeiten", - "wallet_list_wallet_name": "Wallet namen", - "wallet_list_restore_wallet": "Wallet wiederherstellen", - "wallet_list_load_wallet": "Wallet laden", - "wallet_list_loading_wallet": "Wallet ${wallet_name} wird geladen", - "wallet_list_failed_to_load": "Laden der Wallet ${wallet_name} fehlgeschlagen. ${error}", - "wallet_list_removing_wallet": "Wallet ${wallet_name} wird entfernt", - "wallet_list_failed_to_remove": "Fehler beim Entfernen der Wallet ${wallet_name}. ${error}", - "widgets_address": "Adresse", - "widgets_restore_from_blockheight": "Ab Blockhöhe wiederherstellen", - "widgets_restore_from_date": "Ab Datum wiederherstellen", - "widgets_or": "oder", - "widgets_seed": "Seed", - "router_no_route": "Keine Route definiert für ${name}", - "error_text_account_name": "Der Kontoname darf nur Buchstaben und Zahlen enthalten\nund muss zwischen 1 und 15 Zeichen lang sein", - "error_text_contact_name": "Kontaktname darf nicht die Zeichen ` , ' \" enthalten\nund muss zwischen 1 und 32 Zeichen lang sein", - "error_text_address": "Die Walletadresse muss dem Typ der Kryptowährung\nentsprechen", - "error_text_node_address": "Bitte geben Sie eine iPv4-Adresse ein", - "error_text_node_port": "Der Knotenport darf nur Nummern zwischen 0 und 65535 enthalten", - "error_text_node_proxy_address": "Bitte geben Sie : ein, zum Beispiel 127.0.0.1:9050", - "error_text_payment_id": "Die Zahlungs-ID darf nur 16 bis 64 hexadezimale Zeichen enthalten", - "error_text_xmr": "Der XMR-Wert darf das verfügbare Guthaben nicht überschreiten.\nDie Anzahl der Nachkommastellen muss kleiner oder gleich 12 sein", - "error_text_fiat": "Der Wert des Betrags darf den verfügbaren Kontostand nicht überschreiten.\nDie Anzahl der Nachkommastellen muss kleiner oder gleich 2 sein", - "error_text_subaddress_name": "Der Name der Unteradresse darf nicht die Zeichen ` , ' \" enthalten\nund muss zwischen 1 und 20 Zeichen lang sein", - "error_text_amount": "Betrag darf nur Zahlen enthalten", - "error_text_wallet_name": "Der Wallet-Name darf nur Buchstaben, Zahlen und _- Symbole enthalten\nund muss zwischen 1 und 33 Zeichen lang sein", - "error_text_keys": "Walletschlüssel können nur 64 hexadezimale Zeichen enthalten", - "error_text_crypto_currency": "Die Anzahl der Nachkommastellen\nmuss kleiner oder gleich 12 sein.", - "error_text_minimal_limit": "Handel für ${provider} wird nicht erstellt. Menge ist unter dem Minimum: ${min} ${currency}", - "error_text_maximum_limit": "Handel für ${provider} wird nicht erstellt. Menge ist über dem Maximum: ${max} ${currency}", - "error_text_limits_loading_failed": "Handel für ${provider} wird nicht erstellt. Das Laden der Limits ist fehlgeschlagen", - "error_text_template": "Vorlagenname und Adresse dürfen nicht die Zeichen ` , ' \" enthalten\nund müssen zwischen 1 und 106 Zeichen lang sein", + "all_trades": "Alle Trades", + "all_transactions": "Alle Transaktionen", + "alphabetical": "Alphabetisch", + "already_have_account": "Sie haben bereits ein Konto?", + "always": "immer", + "amount": "Betrag: ", + "amount_is_estimate": "Der empfangene Betrag ist eine Schätzung", + "amount_is_guaranteed": "Der Empfangsbetrag ist garantiert", + "anonpay_description": "Generieren Sie ${type}. Der Empfänger kann ${method} mit jeder unterstützten Kryptowährung verwenden, und Sie erhalten Geld in dieser Wallet.", + "apk_update": "APK-Update", + "approve": "Genehmigen", + "arrive_in_this_address": "${currency} ${tag}wird an dieser Adresse ankommen", + "ascending": "Aufsteigend", + "ask_each_time": "Jedes Mal fragen", "auth_store_ban_timeout": "ban_timeout", "auth_store_banned_for": "Gebannt für ", "auth_store_banned_minutes": " Minuten", "auth_store_incorrect_password": "Falsche PIN", - "wallet_store_monero_wallet": "Monero-Wallet", - "wallet_restoration_store_incorrect_seed_length": "Falsche Seed-Länge", - "full_balance": "Gesamtguthaben", - "available_balance": "Verfügbares Guthaben", - "hidden_balance": "Verstecktes Guthaben", - "sync_status_syncronizing": "SYNCHRONISIERE", - "sync_status_syncronized": "SYNCHRONISIERT", - "sync_status_not_connected": "NICHT VERBUNDEN", - "sync_status_starting_sync": "STARTE SYNCHRONISIERUNG", - "sync_status_failed_connect": "GETRENNT", - "sync_status_connecting": "VERBINDEN", - "sync_status_connected": "VERBUNDEN", - "sync_status_attempting_sync": "SYNC VERSUCHEN", - "transaction_priority_slow": "Langsam", - "transaction_priority_regular": "Normal", - "transaction_priority_medium": "Mittel", - "transaction_priority_fast": "Schnell", - "transaction_priority_fastest": "Am schnellsten", - "trade_for_not_created": "Handel für ${title} wird nicht erstellt.", - "trade_not_created": "Handel nicht erstellt", - "trade_id_not_found": "Handel ${tradeId} von ${title} nicht gefunden.", - "trade_not_found": "Handel nicht gefunden.", - "trade_state_pending": "Steht aus", - "trade_state_confirming": "Bestätigung", - "trade_state_trading": "Handel", - "trade_state_traded": "Gehandelt", - "trade_state_complete": "Abgeschlossen", - "trade_state_to_be_created": "Noch nicht erstellt", - "trade_state_unpaid": "Unbezahlt", - "trade_state_underpaid": "Unterbezahlt", - "trade_state_paid_unconfirmed": "Unbestätigt bezahlt", - "trade_state_paid": "Bezahlt", - "trade_state_btc_sent": "Btc gesendet", - "trade_state_timeout": "Timeout", - "trade_state_created": "Erstellt", - "trade_state_finished": "Fertig", - "change_language": "Sprache ändern", - "change_language_to": "Sprache zu ${language} ändern?", - "paste": "Einfügen", - "restore_from_seed_placeholder": "Seed bitte hier eingeben oder einfügen", - "add_new_word": "Neues Wort hinzufügen", - "incorrect_seed": "Der eingegebene Text ist ungültig.", - "biometric_auth_reason": "Scannen Sie Ihren Fingerabdruck zur Authentifizierung", - "version": "Version ${currentVersion}", - "extracted_address_content": "Sie senden Geld an\n${recipient_name}", - "card_address": "Adresse:", - "buy": "Kaufen", - "sell": "Verkaufen", - "placeholder_transactions": "Ihre Transaktionen werden hier angezeigt", - "placeholder_contacts": "Ihre Kontakte werden hier angezeigt", - "template": "Vorlage", - "confirm_delete_template": "Diese Aktion löscht diese Vorlage. Möchten Sie fortfahren?", - "confirm_delete_wallet": "Diese Aktion löscht diese Wallet. Möchten Sie fortfahren?", - "change_wallet_alert_title": "Aktuelle Wallet ändern", - "change_wallet_alert_content": "Möchten Sie die aktuelle Wallet zu ${wallet_name} ändern?", - "creating_new_wallet": "Neue Wallet erstellen", - "creating_new_wallet_error": "Fehler: ${description}", - "seed_alert_title": "Achtung", - "seed_alert_content": "Der Seed ist der einzige Weg, Ihre Wallet wiederherzustellen. Haben Sie ihn aufgeschrieben?", - "seed_alert_back": "Zurückgehen", - "seed_alert_yes": "Ja, habe ich", - "exchange_sync_alert_content": "Bitte warten Sie, bis Ihre Wallet synchronisiert ist", - "pre_seed_title": "WICHTIG", - "pre_seed_description": "Auf der nächsten Seite sehen Sie eine Reihe von ${words} Wörtern. Dies ist Ihr einzigartiger und privater Seed und der EINZIGE Weg, um Ihre Wallet im Falle eines Verlusts oder einer Fehlfunktion wiederherzustellen. Es liegt in IHRER Verantwortung, ihn aufzuschreiben und an einem sicheren Ort außerhalb der Cake Wallet-App aufzubewahren.", - "pre_seed_button_text": "Verstanden. Zeig mir meinen Seed", - "xmr_to_error": "XMR.TO-Fehler", - "xmr_to_error_description": "Ungültiger Betrag. Höchstgrenze 8 Stellen nach dem Dezimalpunkt", - "provider_error": "${provider}-Fehler", - "use_ssl": "SSL verwenden", - "trusted": "Vertrauenswürdige", - "color_theme": "Farbthema", - "light_theme": "Hell", - "bright_theme": "Strahlend hell", - "dark_theme": "Dunkel", - "enter_your_note": "Geben Sie Ihre Bemerkung ein…", - "note_optional": "Bemerkung (optional)", - "note_tap_to_change": "Bemerkung (zum Ändern tippen)", - "view_in_block_explorer": "In Block Explorer anzeigen", - "view_transaction_on": "Anzeigen der Transaktion auf ", - "transaction_key": "Transaktionsschlüssel", - "confirmations": "Bestätigungen", - "recipient_address": "Empfängeradresse", - "extra_id": "Extra ID:", - "destination_tag": "Ziel-Tag:", - "memo": "Memo:", - "backup": "Sicherung", - "change_password": "Passwort ändern", - "backup_password": "Passwort sichern", - "write_down_backup_password": "Bitte notieren Sie sich Ihr Sicherungskennwort, das für den Import Ihrer Sicherungsdateien gebraucht wird.", - "export_backup": "Sicherung exportieren", - "save_backup_password": "Bitte stellen Sie sicher, dass Sie Ihr Sicherungskennwort gespeichert haben. Ohne dieses können Sie Ihre Sicherungsdateien nicht importieren.", - "backup_file": "Sicherungsdatei", - "edit_backup_password": "Sicherungskennwort bearbeiten", - "save_backup_password_alert": "Sicherungskennwort speichern", - "change_backup_password_alert": "Ihre vorherigen Sicherungsdateien können nicht mit einem neuen Sicherungskennwort importiert werden. Das neue Sicherungskennwort wird nur für neue Sicherungsdateien verwendet. Sind Sie sicher, dass Sie das Sicherungskennwort ändern möchten?", - "enter_backup_password": "Sicherungskennwort hier eingeben", - "select_backup_file": "Sicherungsdatei auswählen", - "import": "Importieren", - "please_select_backup_file": "Bitte wählen Sie die Sicherungsdatei und geben Sie das Sicherungskennwort ein.", - "fixed_rate": "Feste Rate", - "fixed_rate_alert": "Sie können den Empfangsbetrag eingeben, wenn der Festratenmodus aktiviert ist. Möchten Sie in den Festratenmodus wechseln?", - "xlm_extra_info": "Bitte vergessen Sie nicht, die Memo-ID anzugeben, während Sie die XLM-Transaktion für den Austausch senden", - "xrp_extra_info": "Bitte vergessen Sie nicht, das Ziel-Tag anzugeben, während Sie die XRP-Transaktion für den Austausch senden", - "exchange_incorrect_current_wallet_for_xmr": "Wenn Sie XMR von Ihrem Cake Wallet Monero-Guthaben umtauschen möchten, wechseln Sie bitte zuerst zu Ihrer Monero-Wallet.", - "confirmed": "Bestätigter Saldo", - "unconfirmed": "Unbestätigter Saldo", - "displayable": "Anzeigebar", - "submit_request": "Eine Anfrage stellen", - "buy_alert_content": "Derzeit unterstützen wir nur den Kauf von Bitcoin, Ethereum, Litecoin und Monero. Bitte erstellen Sie Ihr Bitcoin-, Ethereum-, Litecoin- oder Monero-Wallet oder wechseln Sie zu diesem.", - "sell_alert_content": "Wir unterstützen derzeit nur den Verkauf von Bitcoin, Ethereum und Litecoin. Bitte erstellen Sie Ihr Bitcoin-, Ethereum- oder Litecoin-Wallet oder wechseln Sie zu diesem.", - "outdated_electrum_wallet_description": "Neue Bitcoin-Wallets, die in Cake erstellt wurden, haben jetzt einen 24-Wort-Seed. Sie müssen eine neue Bitcoin-Wallet erstellen, Ihr gesamtes Geld in die neue 24-Wort-Wallet überweisen und keine Wallet mit einem 12-Wort-Seed mehr verwenden. Bitte tun Sie dies sofort, um Ihr Geld zu sichern.", - "understand": "Ich verstehe", - "apk_update": "APK-Update", - "buy_bitcoin": "Bitcoin kaufen", - "buy_with": "Kaufen mit", - "moonpay_alert_text": "Der Wert des Betrags muss größer oder gleich ${minAmount} ${fiatCurrency} sein", - "outdated_electrum_wallet_receive_warning": "Wenn diese Wallet einen 12-Wort-Seed hat und in Cake erstellt wurde, zahlen Sie KEINE Bitcoins in diese Wallet ein. Alle auf diese Wallet übertragenen BTC können verloren gehen. Erstellen Sie eine neue 24-Wort-Wallet (tippen Sie auf das Menü oben rechts, wählen Sie Wallets, wählen Sie Neue Wallet erstellen und dann Bitcoin) und verschieben Sie Ihre BTC SOFORT dorthin. Neue (24-Wort-)BTC-Wallets von Cake sind sicher", - "do_not_show_me": "Zeig mir das nicht noch einmal", - "unspent_coins_title": "Nicht ausgegebene Coins", - "unspent_coins_details_title": "Details zu nicht ausgegebenen Coins", - "freeze": "Einfrieren", - "frozen": "Gefroren", - "coin_control": "Coin Control (optional)", - "address_detected": "Adresse erkannt", - "address_from_domain": "Diese Adresse ist von ${domain} auf Unstoppable Domains", - "add_receiver": "Fügen Sie einen weiteren Empfänger hinzu (optional)", - "manage_yats": "Yats verwalten", - "yat_alert_title": "Senden und Empfangen von Krypto leichter mit Yat", - "yat_alert_content": "Cake Wallet-Benutzer können jetzt alle ihre Lieblingswährungen mit einem einzigartigen Emoji-basierten Benutzernamen senden und empfangen.", - "get_your_yat": "Holen Sie sich Ihre Yat", - "connect_an_existing_yat": "Verbinden Sie ein vorhandenes Yat", - "connect_yats": "Yats verbinden", - "yat_address": "Yat-Adresse", - "yat": "Yat", - "address_from_yat": "Diese Adresse ist von ${emoji} auf Yat", - "yat_error": "Yat-Fehler", - "yat_error_content": "Keine Adressen mit diesem Yat verknüpft. Versuchen Sie es mit einem anderen Yat", - "choose_address": "\n\nBitte wählen Sie die Adresse:", - "yat_popup_title": "Ihre Wallet-Adresse kann emojifiziert werden.", - "yat_popup_content": "Sie können jetzt Krypto in Cake Wallet mit Ihrem Yat senden und empfangen - einem kurzen, Emoji-basierten Benutzernamen. Verwalten Sie Yats jederzeit auf dem Einstellungsbildschirm", - "second_intro_title": "Eine Emoji-Adresse, um sie alle zu beherrschen", - "second_intro_content": "Ihr Yat ist eine einzige eindeutige Emoji-Adresse, die alle Ihre langen hexadezimalen Adressen für alle Ihre Währungen ersetzt.", - "third_intro_title": "Yat spielt gut mit anderen", - "third_intro_content": "Yats leben auch außerhalb von Cake Wallet. Jede Wallet-Adresse auf der Welt kann durch ein Yat ersetzt werden!", - "learn_more": "Erfahren Sie mehr", - "search": "Suche", - "search_language": "Sprache suchen", - "search_currency": "Währung suchen", - "new_template": "neue Vorlage", - "electrum_address_disclaimer": "Wir generieren jedes Mal neue Adressen, wenn Sie eine verwenden, aber vorherige Adressen funktionieren weiterhin", - "wallet_name_exists": "Wallet mit diesem Namen existiert bereits", - "market_place": "Marktplatz", - "cake_pay_title": "Cake Pay-Geschenkkarten", - "cake_pay_subtitle": "Kaufen Sie ermäßigte Geschenkkarten (nur USA)", - "cake_pay_web_cards_title": "Cake Pay-Webkarten", - "cake_pay_web_cards_subtitle": "Kaufen Sie weltweit Prepaid-Karten und Geschenkkarten", - "about_cake_pay": "Mit Cake Pay können Sie ganz einfach Geschenkkarten mit virtuellen Vermögenswerten kaufen, die Sie sofort bei über 150.000 Händlern in den Vereinigten Staaten ausgeben können.", - "cake_pay_account_note": "Melden Sie sich nur mit einer E-Mail-Adresse an, um Karten anzuzeigen und zu kaufen. Einige sind sogar mit Rabatt erhältlich!", - "already_have_account": "Sie haben bereits ein Konto?", - "create_account": "Konto erstellen", - "privacy_policy": "Datenschutzrichtlinie", - "welcome_to_cakepay": "Willkommen bei Cake Pay!", - "sign_up": "Anmelden", - "forgot_password": "Passwort vergessen", - "reset_password": "Passwort zurücksetzen", - "gift_cards": "Geschenkkarten", - "setup_your_debit_card": "Richten Sie Ihre Debitkarte ein", - "no_id_required": "Keine ID erforderlich. Upgraden und überall ausgeben", - "how_to_use_card": "Wie man diese Karte benutzt", - "purchase_gift_card": "Geschenkkarte kaufen", - "verification": "Verifizierung", - "fill_code": "Geben Sie den Bestätigungscode ein, den Sie per E-Mail erhalten haben", - "didnt_get_code": "Kein Code?", - "resend_code": "Bitte erneut senden", - "debit_card": "Debitkarte", - "cakepay_prepaid_card": "CakePay-Prepaid-Debitkarte", - "no_id_needed": "Keine ID erforderlich!", - "frequently_asked_questions": "Häufig gestellte Fragen", - "debit_card_terms": "Die Speicherung und Nutzung Ihrer Zahlungskartennummer (und Ihrer Zahlungskartennummer entsprechenden Anmeldeinformationen) in dieser digitalen Geldbörse unterliegt den Allgemeinen Geschäftsbedingungen des geltenden Karteninhabervertrags mit dem Zahlungskartenaussteller, gültig ab von Zeit zu Zeit.", - "Please_reference_document": "Weitere Informationen finden Sie in den Dokumenten unten.", - "cardholder_agreement": "Karteninhabervertrag", - "e_sign_consent": "E-Sign-Zustimmung", - "agree_and_continue": "Zustimmen & fortfahren", - "email_address": "E-Mail-Adresse", - "agree_to": "Indem Sie ein Konto erstellen, stimmen Sie den ", - "und": "und", - "enter_code": "Code eingeben", - "congratulations": "Glückwunsch!", - "you_now_have_debit_card": "Sie haben jetzt eine Debitkarte", - "min_amount": "Min: ${value}", - "max_amount": "Max: ${value}", - "enter_amount": "Betrag eingeben", - "billing_address_info": "Wenn Sie nach einer Rechnungsadresse gefragt werden, geben Sie bitte Ihre Lieferadresse an", - "order_physical_card": "Physische Karte bestellen", - "add_value": "Wert hinzufügen", - "activate": "aktivieren", - "get_a": "Hole ein", - "digital_and_physical_card": "digitale und physische Prepaid-Debitkarte", - "get_card_note": " die Sie mit digitaler Währung aufladen können. Keine zusätzlichen Informationen erforderlich!", - "signup_for_card_accept_terms": "Melden Sie sich für die Karte an und akzeptieren Sie die Bedingungen.", - "add_fund_to_card": "Prepaid-Guthaben zu den Karten hinzufügen (bis zu ${value})", - "use_card_info_two": "Guthaben werden auf dem Prepaid-Konto in USD umgerechnet, nicht in digitale Währung.", - "use_card_info_three": "Verwenden Sie die digitale Karte online oder mit kontaktlosen Zahlungsmethoden.", - "optionally_order_card": "Optional eine physische Karte bestellen.", - "hide_details": "Details ausblenden", - "show_details": "Details anzeigen", - "upto": "bis zu ${value}", - "discount": "${value} % sparen", - "gift_card_amount": "Gutscheinbetrag", - "bill_amount": "Rechnungsbetrag", - "you_pay": "Sie bezahlen", - "tip": "Hinweis:", - "custom": "benutzerdefiniert", - "by_cake_pay": "von Cake Pay", - "expires": "Läuft ab", - "mm": "MM", - "yy": "YY", - "online": "online", - "offline": "offline", - "gift_card_number": "Geschenkkartennummer", - "pin_number": "PIN-Nummer", - "total_saving": "Gesamteinsparungen", - "last_30_days": "Letzte 30 Tage", - "avg_savings": "Durchschn. Einsparungen", - "view_all": "Alle anzeigen", - "active_cards": "Aktive Karten", - "delete_account": "Konto löschen", - "cards": "Karten", - "active": "Aktiv", - "redeemed": "Versilbert", - "gift_card_balance_note": "Geschenkkarten mit Restguthaben erscheinen hier", - "gift_card_redeemed_note": "Gutscheine, die Sie eingelöst haben, werden hier angezeigt", - "logout": "Abmelden", - "add_tip": "Tipp hinzufügen", - "percentageOf": "von ${amount}", - "is_percentage": "ist", - "search_category": "Suchkategorie", - "mark_as_redeemed": "Als eingelöst markieren", - "more_options": "Weitere Optionen", - "waiting_payment_confirmation": "Warte auf Zahlungsbestätigung", - "transaction_sent_notice": "Wenn der Bildschirm nach 1 Minute nicht weitergeht, überprüfen Sie einen Block-Explorer und Ihre E-Mail.", - "agree": "stimme zu", - "in_store": "Im Geschäft", - "generating_gift_card": "Geschenkkarte wird erstellt", - "payment_was_received": "Ihre Zahlung ist eingegangen.", - "proceed_after_one_minute": "Wenn der Bildschirm nach 1 Minute nicht weitergeht, überprüfen Sie bitte Ihre E-Mail.", - "order_id": "Bestell-ID", - "gift_card_is_generated": "Geschenkkarte wird generiert", - "open_gift_card": "Geschenkkarte öffnen", - "contact_support": "Support kontaktieren", - "gift_cards_unavailable": "Geschenkkarten können derzeit nur über Monero, Bitcoin und Litecoin erworben werden", - "background_sync_mode": "Hintergrundsynchronisierungsmodus", - "sync_all_wallets": "Alle Wallets synchronisieren", - "introducing_cake_pay": "Einführung von Cake Pay!", - "cake_pay_learn_more": "Kaufen und lösen Sie Geschenkkarten sofort in der App ein!\nWischen Sie von links nach rechts, um mehr zu erfahren.", + "authenticated": "Authentifiziert", + "authentication": "Authentifizierung", + "auto_generate_subaddresses": "Unteradressen automatisch generieren", "automatic": "Automatisch", - "fixed_pair_not_supported": "Dieses feste Paar wird von den ausgewählten Vermittlungsstellen nicht unterstützt", - "variable_pair_not_supported": "Dieses Variablenpaar wird von den ausgewählten Börsen nicht unterstützt", - "none_of_selected_providers_can_exchange": "Keiner der ausgewählten Anbieter kann diesen Austausch vornehmen", - "choose_one": "Wähle ein", - "choose_from_available_options": "Wähle aus verfügbaren Optionen:", - "custom_redeem_amount": "Benutzerdefinierter Einlösungsbetrag", - "add_custom_redemption": "Benutzerdefinierte Einlösung hinzufügen", - "remaining": "Rest", - "delete_wallet": "Wallet löschen", - "delete_wallet_confirm_message": "Sind Sie sicher, dass Sie das ${wallet_name} Wallet löschen möchten?", - "low_fee": "Niedrige Gebühr", - "low_fee_alert": "Sie verwenden derzeit eine niedrige Netzwerkgebührenpriorität. Dies kann zu langen Wartezeiten, unterschiedlichen Kursen oder stornierten Trades führen. Wir empfehlen, für ein besseres Erlebnis eine höhere Gebühr festzulegen.", - "ignor": "Ignorieren", - "use_suggested": "Vorgeschlagen verwenden", - "do_not_share_warning_text": "Teilen Sie diese nicht mit anderen, einschließlich Support.\n\nIhr Geld kann und wird gestohlen werden!", - "help": "hilfe", - "all_transactions": "Alle Transaktionen", - "all_trades": "Alle Trades", - "connection_sync": "Verbindung und Synchronisierung", - "security_and_backup": "Sicherheit und Datensicherung", - "create_backup": "Backup erstellen", - "privacy_settings": "Datenschutzeinstellungen", - "privacy": "Datenschutz", - "display_settings": "Anzeigeeinstellungen", - "other_settings": "Andere Einstellungen", - "require_pin_after": "PIN anfordern nach", - "always": "immer", - "minutes_to_pin_code": "${minute} Minuten", - "disable_exchange": "Exchange deaktivieren", - "advanced_settings": "Erweiterte Einstellungen", - "settings_can_be_changed_later": "Diese Einstellungen können später in den App-Einstellungen geändert werden", - "add_custom_node": "Neuen benutzerdefinierten Knoten hinzufügen", - "disable_fiat": "Fiat deaktivieren", - "fiat_api": "Fiat API", - "disabled": "Deaktiviert", - "enabled": "Ermöglicht", - "tor_only": "Nur Tor", - "unmatched_currencies": "Die Währung Ihres aktuellen Wallets stimmt nicht mit der des gescannten QR überein", - "orbot_running_alert": "Bitte stellen Sie sicher, dass Orbot läuft, bevor Sie sich mit diesem Knoten verbinden.", - "contact_list_contacts": "Kontakte", - "contact_list_wallets": "Meine Wallets", - "bitcoin_payments_require_1_confirmation": "Bitcoin-Zahlungen erfordern 1 Bestätigung, was 20 Minuten oder länger dauern kann. Danke für Ihre Geduld! Sie erhalten eine E-Mail, wenn die Zahlung bestätigt ist.", - "send_to_this_address": "Senden Sie ${currency} ${tag}an diese Adresse", - "arrive_in_this_address": "${currency} ${tag}wird an dieser Adresse ankommen", - "do_not_send": "Nicht senden", - "error_dialog_content": "Hoppla, wir haben einen Fehler.\n\nBitte senden Sie den Absturzbericht an unser Support-Team, um die Anwendung zu verbessern.", - "scan_qr_code": "QR-Code scannen", - "cold_or_recover_wallet": "Fügen Sie eine Cold Wallet hinzu oder stellen Sie eine Paper Wallet wieder her", - "please_wait": "Warten Sie mal", - "sweeping_wallet": "Wallet leeren", - "sweeping_wallet_alert": "Das sollte nicht lange dauern. VERLASSEN SIE DIESEN BILDSCHIRM NICHT, ANDERNFALLS KÖNNEN DIE GELDER VERLOREN GEHEN", - "decimal_places_error": "Zu viele Nachkommastellen", - "edit_node": "Knoten bearbeiten", - "invoice_details": "Rechnungs-Details", - "donation_link_details": "Details zum Spendenlink", - "anonpay_description": "Generieren Sie ${type}. Der Empfänger kann ${method} mit jeder unterstützten Kryptowährung verwenden, und Sie erhalten Geld in dieser Wallet.", - "create_invoice": "Rechnung erstellen", - "create_donation_link": "Spendenlink erstellen", - "optional_email_hint": "Optionale Benachrichtigungs-E-Mail für den Zahlungsempfänger", - "optional_description": "Optionale Beschreibung", - "optional_name": "Optionaler Empfängername", - "clearnet_link": "Clearnet-Link", - "onion_link": "Zwiebel-Link", - "settings": "Einstellungen", - "sell_monero_com_alert_content": "Der Verkauf von Monero wird noch nicht unterstützt", - "error_text_input_below_minimum_limit": "Menge ist unter dem Minimum", - "error_text_input_above_maximum_limit": "Menge ist über dem Maximum", - "show_market_place": "Marktplatz anzeigen", - "prevent_screenshots": "Verhindern Sie Screenshots und Bildschirmaufzeichnungen", - "profile": "Profil", - "close": "Schließen", - "modify_2fa": "Cake 2FA ändern", - "disable_cake_2fa": "Cake 2FA deaktivieren", - "question_to_disable_2fa": "Sind Sie sicher, dass Sie Cake 2FA deaktivieren möchten? Für den Zugriff auf die Wallet und bestimmte Funktionen wird kein 2FA-Code mehr benötigt.", - "disable": "Deaktivieren", - "setup_2fa": "Setup-Cake 2FA", - "verify_with_2fa": "Verifizieren Sie mit Cake 2FA", - "totp_code": "TOTP-Code", - "please_fill_totp": "Bitte geben Sie den 8-stelligen Code ein, der auf Ihrem anderen Gerät vorhanden ist", - "totp_2fa_success": "Erfolg! Cake 2FA für dieses Wallet aktiviert. Denken Sie daran, Ihren mnemonischen Seed zu speichern, falls Sie den Zugriff auf die Wallet verlieren.", - "totp_verification_success": "Verifizierung erfolgreich!", - "totp_2fa_failure": "Falscher Code. Bitte versuchen Sie es mit einem anderen Code oder generieren Sie einen neuen geheimen Schlüssel. Verwenden Sie eine kompatible 2FA-App, die 8-stellige Codes und SHA512 unterstützt.", - "enter_totp_code": "Bitte geben Sie den TOTP-Code ein.", - "add_secret_code": "Oder fügen Sie diesen Geheimcode einer Authentifizierungs-App hinzu", - "totp_secret_code": "TOTP-Geheimcode", - "setup_2fa_text": "Cake 2FA verwendet TOTP als zweiten Authentifizierungsfaktor.\n\nDas TOTP von Cake 2FA erfordert SHA-512 und 8-stellige Unterstützung; Dies sorgt für erhöhte Sicherheit. Weitere Informationen und unterstützte Apps finden Sie im Leitfaden.", - "setup_totp_recommended": "TOTP einrichten", - "disable_buy": "Kaufaktion deaktivieren", - "disable_sell": "Verkaufsaktion deaktivieren", - "cake_2fa_preset": "Kuchen 2FA-Voreinstellung", - "monero_dark_theme": "Dunkles Monero-Thema", + "available_balance": "Verfügbares Guthaben", + "available_balance_description": "Verfügbarer Saldo ist der Betrag, den Sie sofort ausgeben können. Dieser Betrag kann sich ändern, wenn Sie eine Transaktion senden oder empfangen.", + "avg_savings": "Durchschn. Einsparungen", + "awaitDAppProcessing": "Bitte warten Sie, bis die dApp die Verarbeitung abgeschlossen hat.", + "background_sync_mode": "Hintergrundsynchronisierungsmodus", + "backup": "Sicherung", + "backup_file": "Sicherungsdatei", + "backup_password": "Passwort sichern", + "balance_page": "Balance-Seite", + "bill_amount": "Rechnungsbetrag", + "billing_address_info": "Wenn Sie nach einer Rechnungsadresse gefragt werden, geben Sie bitte Ihre Lieferadresse an", + "biometric_auth_reason": "Scannen Sie Ihren Fingerabdruck zur Authentifizierung", "bitcoin_dark_theme": "Dunkles Bitcoin-Thema", "bitcoin_light_theme": "Bitcoin Light-Thema", - "high_contrast_theme": "Kontrastreiches Thema", - "matrix_green_dark_theme": "Matrix Green Dark Theme", - "monero_light_theme": "Monero Light-Thema", - "auto_generate_subaddresses": "Unteradressen automatisch generieren", - "narrow": "Eng", - "normal": "Normal", - "aggressive": "Übereifrig", - "require_for_assessing_wallet": "Für den Zugriff auf die Wallet erforderlich", - "require_for_sends_to_non_contacts": "Erforderlich für Versendungen an Nichtkontakte", - "require_for_sends_to_contacts": "Erforderlich für Versendungen an Kontakte", - "require_for_sends_to_internal_wallets": "Erforderlich für Sendungen an interne Wallets", - "require_for_exchanges_to_internal_wallets": "Erforderlich für den Umtausch in interne Wallets", - "require_for_adding_contacts": "Erforderlich zum Hinzufügen von Kontakten", - "require_for_creating_new_wallets": "Erforderlich zum Erstellen neuer Wallets", - "require_for_all_security_and_backup_settings": "Für alle Sicherheits- und Sicherungseinstellungen erforderlich", - "available_balance_description": "Verfügbarer Saldo ist der Betrag, den Sie sofort ausgeben können. Dieser Betrag kann sich ändern, wenn Sie eine Transaktion senden oder empfangen.", - "syncing_wallet_alert_title": "Ihr Wallet wird synchronisiert", - "syncing_wallet_alert_content": "Ihr Kontostand und Ihre Transaktionsliste sind möglicherweise erst vollständig, wenn oben „SYNCHRONISIERT“ steht. Klicken/tippen Sie, um mehr zu erfahren.", - "home_screen_settings": "Einstellungen für den Startbildschirm", - "sort_by": "Sortiere nach", - "search_add_token": "Token suchen / hinzufügen", - "edit_token": "Token bearbeiten", - "warning": "Warnung", - "add_token_warning": "Bearbeiten oder fügen Sie Token nicht gemäß den Anweisungen von Betrügern hinzu.\nBestätigen Sie Token-Adressen immer mit seriösen Quellen!", - "add_token_disclaimer_check": "Ich habe die Adresse und Informationen zum Token-Vertrag anhand einer seriösen Quelle bestätigt. Das Hinzufügen böswilliger oder falscher Informationen kann zu einem Verlust von Geldern führen.", - "token_contract_address": "Token-Vertragsadresse", - "token_name": "Token-Name, z. B.: Tether", - "token_symbol": "Token-Symbol, z. B.: USDT", - "token_decimal": "Token-Dezimalzahl", - "field_required": "Dieses Feld ist erforderlich", - "pin_at_top": "Stecken Sie ${token} oben fest", - "invalid_input": "Ungültige Eingabe", - "fiat_balance": "Fiat Balance", - "gross_balance": "Bruttosaldo", - "alphabetical": "Alphabetisch", - "generate_name": "Namen generieren", - "balance_page": "Balance-Seite", - "share": "Teilen", - "slidable": "Verschiebbar", - "manage_nodes": "Knoten verwalten", - "etherscan_history": "Etherscan-Geschichte", - "template_name": "Vorlagenname", + "bitcoin_payments_require_1_confirmation": "Bitcoin-Zahlungen erfordern 1 Bestätigung, was 20 Minuten oder länger dauern kann. Danke für Ihre Geduld! Sie erhalten eine E-Mail, wenn die Zahlung bestätigt ist.", + "Blocks_remaining": "${status} verbleibende Blöcke", + "bright_theme": "Strahlend hell", + "buy": "Kaufen", + "buy_alert_content": "Derzeit unterstützen wir nur den Kauf von Bitcoin, Ethereum, Litecoin und Monero. Bitte erstellen Sie Ihr Bitcoin-, Ethereum-, Litecoin- oder Monero-Wallet oder wechseln Sie zu diesem.", + "buy_bitcoin": "Bitcoin kaufen", + "buy_provider_unavailable": "Anbieter derzeit nicht verfügbar.", + "buy_with": "Kaufen mit", + "by_cake_pay": "von Cake Pay", + "cake_2fa_preset": "Kuchen 2FA-Voreinstellung", + "cake_pay_account_note": "Melden Sie sich nur mit einer E-Mail-Adresse an, um Karten anzuzeigen und zu kaufen. Einige sind sogar mit Rabatt erhältlich!", + "cake_pay_learn_more": "Kaufen und lösen Sie Geschenkkarten sofort in der App ein!\nWischen Sie von links nach rechts, um mehr zu erfahren.", + "cake_pay_subtitle": "Kaufen Sie ermäßigte Geschenkkarten (nur USA)", + "cake_pay_title": "Cake Pay-Geschenkkarten", + "cake_pay_web_cards_subtitle": "Kaufen Sie weltweit Prepaid-Karten und Geschenkkarten", + "cake_pay_web_cards_title": "Cake Pay-Webkarten", + "cake_wallet": "Cake Wallet", + "cakepay_prepaid_card": "CakePay-Prepaid-Debitkarte", + "camera_consent": "Mit Ihrer Kamera wird bis zum ${provider} ein Bild zur Identifizierung aufgenommen. Weitere Informationen finden Sie in deren Datenschutzbestimmungen.", + "camera_permission_is_required": "Eine Kameraerlaubnis ist erforderlich.\nBitte aktivieren Sie es in den App-Einstellungen.", + "cancel": "Abbrechen", + "card_address": "Adresse:", + "cardholder_agreement": "Karteninhabervertrag", + "cards": "Karten", + "chains": "Ketten", + "change": "Ändern", + "change_backup_password_alert": "Ihre vorherigen Sicherungsdateien können nicht mit einem neuen Sicherungskennwort importiert werden. Das neue Sicherungskennwort wird nur für neue Sicherungsdateien verwendet. Sind Sie sicher, dass Sie das Sicherungskennwort ändern möchten?", + "change_currency": "Währung ändern", + "change_current_node": "Möchten Sie den aktuellen Knoten wirklich zu ${node}? ändern?", + "change_current_node_title": "Aktuellen Knoten ändern", + "change_exchange_provider": "Exchange-Anbieter ändern", + "change_language": "Sprache ändern", + "change_language_to": "Sprache zu ${language} ändern?", + "change_password": "Passwort ändern", "change_rep": "Change-Beauftragter", "change_rep_message": "Sind Sie sicher, dass Sie den Vertreter wechseln möchten?", - "unsupported_asset": "Wir unterstützen diese Aktion für dieses Asset nicht. Bitte erstellen Sie eine Wallet eines unterstützten Asset-Typs oder wechseln Sie zu einer Wallet.", - "manage_pow_nodes": "PoW-Knoten verwalten", - "support_title_live_chat": "Live Support", - "support_description_live_chat": "Kostenlos und schnell! Ausgebildete Mitarbeiter stehen zur Unterstützung bereit, um zu helfen", - "support_title_guides": "Cake Wallet Guides", - "support_description_guides": "Dokumentation und Hilfe für bekannte Probleme", - "support_title_other_links": "Andere Support-Links", - "support_description_other_links": "Treten Sie unseren Communities bei oder erreichen Sie uns oder unsere Partner über andere Methoden", + "change_rep_successful": "Vertreter erfolgreich gerändert", + "change_wallet_alert_content": "Möchten Sie die aktuelle Wallet zu ${wallet_name} ändern?", + "change_wallet_alert_title": "Aktuelle Wallet ändern", + "choose_account": "Konto auswählen", + "choose_address": "\n\nBitte wählen Sie die Adresse:", "choose_derivation": "Wählen Sie Brieftaschenableitung", - "new_first_wallet_text": "Bewahren Sie Ihre Kryptowährung einfach sicher auf", - "select_destination": "Bitte wählen Sie das Ziel für die Sicherungsdatei aus.", - "save_to_downloads": "Unter „Downloads“ speichern", - "select_buy_provider_notice": "Wählen Sie oben einen Anbieter kaufen. Sie können diese Seite überspringen, indem Sie Ihren Standard-Kaufanbieter in den App-Einstellungen festlegen.", - "onramper_option_description": "Kaufen Sie schnell Krypto mit vielen Zahlungsmethoden. In den meisten Ländern erhältlich. Spreads und Gebühren variieren.", + "choose_from_available_options": "Wähle aus verfügbaren Optionen:", + "choose_one": "Wähle ein", + "choose_relay": "Bitte wählen Sie ein zu verwendendes Relais aus", + "choose_wallet_currency": "Bitte wählen Sie die Währung der Wallet:", + "clear": "Zurücksetzen", + "clearnet_link": "Clearnet-Link", + "close": "Schließen", + "coin_control": "Coin Control (optional)", + "cold_or_recover_wallet": "Fügen Sie eine Cold Wallet hinzu oder stellen Sie eine Paper Wallet wieder her", + "color_theme": "Farbthema", + "commit_transaction_amount_fee": "Transaktion absenden\nBetrag: ${amount}\nGebühr: ${fee}", + "confirm": "Bestätigen", + "confirm_delete_template": "Diese Aktion löscht diese Vorlage. Möchten Sie fortfahren?", + "confirm_delete_wallet": "Diese Aktion löscht diese Wallet. Möchten Sie fortfahren?", + "confirm_sending": "Senden bestätigen", + "confirmations": "Bestätigungen", + "confirmed": "Bestätigter Saldo", + "confirmed_tx": "Bestätigt", + "congratulations": "Glückwunsch!", + "connect_an_existing_yat": "Verbinden Sie ein vorhandenes Yat", + "connect_yats": "Yats verbinden", + "connection_sync": "Verbindung und Synchronisierung", + "connectWalletPrompt": "Verbinden Sie Ihr Wallet mit WalletConnect, um Transaktionen durchzuführen", + "contact": "Kontakt", + "contact_list_contacts": "Kontakte", + "contact_list_wallets": "Meine Wallets", + "contact_name": "Name des Kontakts", + "contact_support": "Support kontaktieren", + "continue_text": "Weiter", + "contractName": "Vertragsname", + "contractSymbol": "Vertragssymbol", + "copied_key_to_clipboard": "${key} in Zwischenablage kopiert", + "copied_to_clipboard": "In die Zwischenablage kopiert", + "copy": "Kopieren", + "copy_address": "Adresse kopieren", + "copy_id": "ID kopieren", + "copyWalletConnectLink": "Kopieren Sie den WalletConnect-Link von dApp und fügen Sie ihn hier ein", + "create_account": "Konto erstellen", + "create_backup": "Backup erstellen", + "create_donation_link": "Spendenlink erstellen", + "create_invoice": "Rechnung erstellen", + "create_new": "Neue Wallet erstellen", + "create_new_account": "Neues Konto erstellen", + "creating_new_wallet": "Neue Wallet erstellen", + "creating_new_wallet_error": "Fehler: ${description}", + "creation_date": "Erstellungsdatum", + "custom": "benutzerdefiniert", + "custom_drag": "Custom (Hold and Drag)", + "custom_redeem_amount": "Benutzerdefinierter Einlösungsbetrag", + "dark_theme": "Dunkel", + "debit_card": "Debitkarte", + "debit_card_terms": "Die Speicherung und Nutzung Ihrer Zahlungskartennummer (und Ihrer Zahlungskartennummer entsprechenden Anmeldeinformationen) in dieser digitalen Geldbörse unterliegt den Allgemeinen Geschäftsbedingungen des geltenden Karteninhabervertrags mit dem Zahlungskartenaussteller, gültig ab von Zeit zu Zeit.", + "decimal_places_error": "Zu viele Nachkommastellen", "default_buy_provider": "Standard-Kaufanbieter", - "ask_each_time": "Jedes Mal fragen", - "buy_provider_unavailable": "Anbieter derzeit nicht verfügbar.", - "signTransaction": "Transaktion unterzeichnen", + "default_sell_provider": "Standard-Verkaufsanbieter", + "delete": "Löschen", + "delete_account": "Konto löschen", + "delete_wallet": "Wallet löschen", + "delete_wallet_confirm_message": "Sind Sie sicher, dass Sie das ${wallet_name} Wallet löschen möchten?", + "deleteConnectionConfirmationPrompt": "Sind Sie sicher, dass Sie die Verbindung zu löschen möchten?", + "descending": "Absteigend", + "description": "Beschreibung", + "destination_tag": "Ziel-Tag:", + "dfx_option_description": "Krypto mit EUR und CHF kaufen. Bis zu 990€ ohne zusätzliches KYC. Für Privat- und Firmenkunden in Europa", + "didnt_get_code": "Kein Code?", + "digit_pin": "-stellige PIN", + "digital_and_physical_card": "digitale und physische Prepaid-Debitkarte", + "disable": "Deaktivieren", + "disable_buy": "Kaufaktion deaktivieren", + "disable_cake_2fa": "Cake 2FA deaktivieren", + "disable_exchange": "Exchange deaktivieren", + "disable_fiat": "Fiat deaktivieren", + "disable_sell": "Verkaufsaktion deaktivieren", + "disabled": "Deaktiviert", + "discount": "${value} % sparen", + "display_settings": "Anzeigeeinstellungen", + "displayable": "Anzeigebar", + "do_not_have_enough_gas_asset": "Sie verfügen nicht über genügend ${currency}, um eine Transaktion unter den aktuellen Bedingungen des Blockchain-Netzwerks durchzuführen. Sie benötigen mehr ${currency}, um die Gebühren für das Blockchain-Netzwerk zu bezahlen, auch wenn Sie einen anderen Vermögenswert senden.", + "do_not_send": "Nicht senden", + "do_not_share_warning_text": "Teilen Sie diese nicht mit anderen, einschließlich Support.\n\nIhr Geld kann und wird gestohlen werden!", + "do_not_show_me": "Zeig mir das nicht noch einmal", + "domain_looks_up": "Domain-Suchen", + "donation_link_details": "Details zum Spendenlink", + "e_sign_consent": "E-Sign-Zustimmung", + "edit": "Bearbeiten", + "edit_backup_password": "Sicherungskennwort bearbeiten", + "edit_node": "Knoten bearbeiten", + "edit_token": "Token bearbeiten", + "electrum_address_disclaimer": "Wir generieren jedes Mal neue Adressen, wenn Sie eine verwenden, aber vorherige Adressen funktionieren weiterhin", + "email_address": "E-Mail-Adresse", + "enabled": "Ermöglicht", + "enter_amount": "Betrag eingeben", + "enter_backup_password": "Sicherungskennwort hier eingeben", + "enter_code": "Code eingeben", + "enter_seed_phrase": "Geben Sie Ihre Seed-Phrase ein", + "enter_totp_code": "Bitte geben Sie den TOTP-Code ein.", + "enter_your_note": "Geben Sie Ihre Bemerkung ein…", + "enter_your_pin": "PIN eingeben", + "enter_your_pin_again": "Geben Sie Ihre PIN erneut ein", + "enterTokenID": "Geben Sie die Token-ID ein", + "enterWalletConnectURI": "Geben Sie den WalletConnect-URI ein", + "error": "Fehler", + "error_dialog_content": "Hoppla, wir haben einen Fehler.\n\nBitte senden Sie den Absturzbericht an unser Support-Team, um die Anwendung zu verbessern.", + "error_text_account_name": "Der Kontoname darf nur Buchstaben und Zahlen enthalten\nund muss zwischen 1 und 15 Zeichen lang sein", + "error_text_address": "Die Walletadresse muss dem Typ der Kryptowährung\nentsprechen", + "error_text_amount": "Betrag darf nur Zahlen enthalten", + "error_text_contact_name": "Kontaktname darf nicht die Zeichen ` , ' \" enthalten\nund muss zwischen 1 und 32 Zeichen lang sein", + "error_text_crypto_currency": "Die Anzahl der Nachkommastellen\nmuss kleiner oder gleich 12 sein.", + "error_text_fiat": "Der Wert des Betrags darf den verfügbaren Kontostand nicht überschreiten.\nDie Anzahl der Nachkommastellen muss kleiner oder gleich 2 sein", + "error_text_input_above_maximum_limit": "Menge ist über dem Maximum", + "error_text_input_below_minimum_limit": "Menge ist unter dem Minimum", + "error_text_keys": "Walletschlüssel können nur 64 hexadezimale Zeichen enthalten", + "error_text_limits_loading_failed": "Handel für ${provider} wird nicht erstellt. Das Laden der Limits ist fehlgeschlagen", + "error_text_maximum_limit": "Handel für ${provider} wird nicht erstellt. Menge ist über dem Maximum: ${max} ${currency}", + "error_text_minimal_limit": "Handel für ${provider} wird nicht erstellt. Menge ist unter dem Minimum: ${min} ${currency}", + "error_text_node_address": "Bitte geben Sie eine iPv4-Adresse ein", + "error_text_node_port": "Der Knotenport darf nur Nummern zwischen 0 und 65535 enthalten", + "error_text_node_proxy_address": "Bitte geben Sie : ein, zum Beispiel 127.0.0.1:9050", + "error_text_payment_id": "Die Zahlungs-ID darf nur 16 bis 64 hexadezimale Zeichen enthalten", + "error_text_subaddress_name": "Der Name der Unteradresse darf nicht die Zeichen ` , ' \" enthalten\nund muss zwischen 1 und 20 Zeichen lang sein", + "error_text_template": "Vorlagenname und Adresse dürfen nicht die Zeichen ` , ' \" enthalten\nund müssen zwischen 1 und 106 Zeichen lang sein", + "error_text_wallet_name": "Der Wallet-Name darf nur Buchstaben, Zahlen und _- Symbole enthalten\nund muss zwischen 1 und 33 Zeichen lang sein", + "error_text_xmr": "Der XMR-Wert darf das verfügbare Guthaben nicht überschreiten.\nDie Anzahl der Nachkommastellen muss kleiner oder gleich 12 sein", "errorGettingCredentials": "Fehlgeschlagen: Fehler beim Abrufen der Anmeldeinformationen", "errorSigningTransaction": "Beim Signieren der Transaktion ist ein Fehler aufgetreten", - "pairingInvalidEvent": "Paarung ungültiges Ereignis", - "chains": "Ketten", - "methods": "Methoden", - "events": "Veranstaltungen", - "reject": "Ablehnen", - "approve": "Genehmigen", - "expiresOn": "Läuft aus am", - "walletConnect": "WalletConnect", - "nullURIError": "URI ist null", - "connectWalletPrompt": "Verbinden Sie Ihr Wallet mit WalletConnect, um Transaktionen durchzuführen", - "newConnection": "Neue Verbindung", - "activeConnectionsPrompt": "Hier werden aktive Verbindungen angezeigt", - "deleteConnectionConfirmationPrompt": "Sind Sie sicher, dass Sie die Verbindung zu löschen möchten?", + "estimated": "Geschätzt", + "etherscan_history": "Etherscan-Geschichte", "event": "Ereignis", - "successful": "Erfolgreich", - "wouoldLikeToConnect": "möchte mich gerne vernetzen", - "message": "Nachricht", - "do_not_have_enough_gas_asset": "Sie verfügen nicht über genügend ${currency}, um eine Transaktion unter den aktuellen Bedingungen des Blockchain-Netzwerks durchzuführen. Sie benötigen mehr ${currency}, um die Gebühren für das Blockchain-Netzwerk zu bezahlen, auch wenn Sie einen anderen Vermögenswert senden.", - "totp_auth_url": "TOTP-Auth-URL", - "awaitDAppProcessing": "Bitte warten Sie, bis die dApp die Verarbeitung abgeschlossen hat.", - "copyWalletConnectLink": "Kopieren Sie den WalletConnect-Link von dApp und fügen Sie ihn hier ein", - "enterWalletConnectURI": "Geben Sie den WalletConnect-URI ein", - "seed_key": "Seed-Schlüssel", - "enter_seed_phrase": "Geben Sie Ihre Seed-Phrase ein", - "change_rep_successful": "Vertreter erfolgreich gerändert", - "add_contact": "Kontakt hinzufügen", + "events": "Veranstaltungen", + "exchange": "Umwechseln", + "exchange_incorrect_current_wallet_for_xmr": "Wenn Sie XMR von Ihrem Cake Wallet Monero-Guthaben umtauschen möchten, wechseln Sie bitte zuerst zu Ihrer Monero-Wallet.", + "exchange_new_template": "Neue Vorlage", "exchange_provider_unsupported": "${providerName} wird nicht mehr unterstützt!", - "domain_looks_up": "Domain-Suchen", - "require_for_exchanges_to_external_wallets": "Erforderlich für den Umtausch in externe Wallets", - "camera_permission_is_required": "Eine Kameraerlaubnis ist erforderlich.\nBitte aktivieren Sie es in den App-Einstellungen.", - "switchToETHWallet": "Bitte wechseln Sie zu einem Ethereum-Wallet und versuchen Sie es erneut", - "order_by": "Sortieren nach", - "creation_date": "Erstellungsdatum", + "exchange_result_confirm": "Durch Drücken von \"Bestätigen\" wird ${fetchingLabel} ${from} von Ihrer Wallet namens ${walletName} an die unten angegebene Adresse gesendet. Alternativ können Sie von einer externen Wallet an die unten angegebene Adresse / QR-Code senden.\n\nBitte bestätigen Sie, um fortzufahren, oder gehen Sie zurück, um die Beträge zu ändern.", + "exchange_result_description": "Sie müssen mindestens ${fetchingLabel} ${from} an die auf der nächsten Seite angegebene Adresse senden. Wenn Sie einen Betrag unter ${fetchingLabel} ${from} senden, wird dieser möglicherweise nicht konvertiert und möglicherweise nicht erstattet.", + "exchange_result_write_down_ID": "*Bitte kopieren oder notieren Sie sich die oben gezeigte ID.", + "exchange_result_write_down_trade_id": "Bitte kopieren oder notieren Sie die Handels-ID, um fortzufahren.", + "exchange_sync_alert_content": "Bitte warten Sie, bis Ihre Wallet synchronisiert ist", + "expired": "Abgelaufen", + "expires": "Läuft ab", + "expiresOn": "Läuft aus am", + "export_backup": "Sicherung exportieren", + "extra_id": "Extra ID:", + "extracted_address_content": "Sie senden Geld an\n${recipient_name}", + "failed_authentication": "Authentifizierung fehlgeschlagen. ${state_error}", + "faq": "Häufig gestellte Fragen", + "fetching": "Frage ab", + "fiat_api": "Fiat API", + "fiat_balance": "Fiat Balance", + "field_required": "Dieses Feld ist erforderlich", + "fill_code": "Geben Sie den Bestätigungscode ein, den Sie per E-Mail erhalten haben", + "filter_by": "Filtern nach", + "first_wallet_text": "Eine großartige Wallet für Monero, Bitcoin, Ethereum, Litecoin, und Haven", + "fixed_pair_not_supported": "Dieses feste Paar wird von den ausgewählten Vermittlungsstellen nicht unterstützt", + "fixed_rate": "Feste Rate", + "fixed_rate_alert": "Sie können den Empfangsbetrag eingeben, wenn der Festratenmodus aktiviert ist. Möchten Sie in den Festratenmodus wechseln?", + "forgot_password": "Passwort vergessen", + "freeze": "Einfrieren", + "frequently_asked_questions": "Häufig gestellte Fragen", + "frozen": "Gefroren", + "full_balance": "Gesamtguthaben", + "generate_name": "Namen generieren", + "generating_gift_card": "Geschenkkarte wird erstellt", + "get_a": "Hole ein", + "get_card_note": " die Sie mit digitaler Währung aufladen können. Keine zusätzlichen Informationen erforderlich!", + "get_your_yat": "Holen Sie sich Ihre Yat", + "gift_card_amount": "Gutscheinbetrag", + "gift_card_balance_note": "Geschenkkarten mit Restguthaben erscheinen hier", + "gift_card_is_generated": "Geschenkkarte wird generiert", + "gift_card_number": "Geschenkkartennummer", + "gift_card_redeemed_note": "Gutscheine, die Sie eingelöst haben, werden hier angezeigt", + "gift_cards": "Geschenkkarten", + "gift_cards_unavailable": "Geschenkkarten können derzeit nur über Monero, Bitcoin und Litecoin erworben werden", + "got_it": "Verstanden", + "gross_balance": "Bruttosaldo", "group_by_type": "Gruppe nach Typ", - "importNFTs": "NFTs importieren", - "noNFTYet": "Noch keine NFTs", - "address": "Adresse", - "enterTokenID": "Geben Sie die Token-ID ein", - "tokenID": "AUSWEIS", - "name": "Name", - "symbol": "Symbol", - "seed_phrase_length": "Länge der Seed-Phrase", - "unavailable_balance": "Nicht verfügbares Guthaben", - "unavailable_balance_description": "Nicht verfügbares Guthaben: Diese Summe umfasst Gelder, die in ausstehenden Transaktionen gesperrt sind, und solche, die Sie in Ihren Münzkontrolleinstellungen aktiv eingefroren haben. Gesperrte Guthaben werden verfügbar, sobald die entsprechenden Transaktionen abgeschlossen sind, während eingefrorene Guthaben für Transaktionen nicht zugänglich bleiben, bis Sie sich dazu entschließen, sie wieder freizugeben.", - "unspent_change": "Wechselgeld", - "tor_connection": "Tor-Verbindung", - "setup_warning_2fa_text": "Sie müssen Ihr Wallet aus dem mnemonischen Seed wiederherstellen.\n\nDer Cake-Support kann Ihnen nicht weiterhelfen, wenn Sie den Zugriff auf Ihre 2FA- oder Mnemonik-Seeds verlieren.\nCake 2FA ist eine zweite Authentifizierung für bestimmte Aktionen im Wallet. Bevor Sie Cake 2FA verwenden, empfehlen wir Ihnen, die Anleitung durchzulesen.Es ist NICHT so sicher wie eine Kühllagerung.\n\nWenn Sie den Zugriff auf Ihre 2FA-App oder Ihre TOTP-Schlüssel verlieren, verlieren Sie auch den Zugriff auf dieses Wallet. ", - "scan_qr_on_device": "Scannen Sie diesen QR-Code auf einem anderen Gerät", + "haven_app": "Haven von Cake Wallet", + "haven_app_wallet_text": "Eine großartige Wallet für Haven", + "help": "hilfe", + "hidden_balance": "Verstecktes Guthaben", + "hide_details": "Details ausblenden", + "high_contrast_theme": "Kontrastreiches Thema", + "home_screen_settings": "Einstellungen für den Startbildschirm", "how_to_use": "Wie benutzt man", + "how_to_use_card": "Wie man diese Karte benutzt", + "id": "ID: ", + "ignor": "Ignorieren", + "import": "Importieren", + "importNFTs": "NFTs importieren", + "in_store": "Im Geschäft", + "incoming": "Eingehend", + "incorrect_seed": "Der eingegebene Text ist ungültig.", + "introducing_cake_pay": "Einführung von Cake Pay!", + "invalid_input": "Ungültige Eingabe", + "invoice_details": "Rechnungs-Details", + "is_percentage": "ist", + "last_30_days": "Letzte 30 Tage", + "learn_more": "Erfahren Sie mehr", + "light_theme": "Hell", + "loading_your_wallet": "Wallet wird geladen", + "login": "Einloggen", + "logout": "Abmelden", + "low_fee": "Niedrige Gebühr", + "low_fee_alert": "Sie verwenden derzeit eine niedrige Netzwerkgebührenpriorität. Dies kann zu langen Wartezeiten, unterschiedlichen Kursen oder stornierten Trades führen. Wir empfehlen, für ein besseres Erlebnis eine höhere Gebühr festzulegen.", + "manage_nodes": "Knoten verwalten", + "manage_pow_nodes": "PoW-Knoten verwalten", + "manage_yats": "Yats verwalten", + "mark_as_redeemed": "Als eingelöst markieren", + "market_place": "Marktplatz", + "matrix_green_dark_theme": "Matrix Green Dark Theme", + "max_amount": "Max: ${value}", + "max_value": "Max: ${value} ${currency}", + "memo": "Memo:", + "message": "Nachricht", + "methods": "Methoden", + "min_amount": "Min: ${value}", + "min_value": "Min: ${value} ${currency}", + "minutes_to_pin_code": "${minute} Minuten", + "mm": "MM", + "modify_2fa": "Cake 2FA ändern", + "monero_com": "Monero.com von Cake Wallet", + "monero_com_wallet_text": "Eine großartige Wallet für Monero", + "monero_dark_theme": "Dunkles Monero-Thema", + "monero_light_theme": "Monero Light-Thema", + "moonpay_alert_text": "Der Wert des Betrags muss größer oder gleich ${minAmount} ${fiatCurrency} sein", + "more_options": "Weitere Optionen", + "name": "Name", + "narrow": "Eng", + "new_first_wallet_text": "Bewahren Sie Ihre Kryptowährung einfach sicher auf", + "new_node_testing": "Neuen Knoten testen", + "new_subaddress_create": "Erstellen", + "new_subaddress_label_name": "Bezeichnung", + "new_subaddress_title": "Neue Adresse", + "new_template": "neue Vorlage", + "new_wallet": "Neue Wallet", + "newConnection": "Neue Verbindung", + "no_id_needed": "Keine ID erforderlich!", + "no_id_required": "Keine ID erforderlich. Upgraden und überall ausgeben", + "no_relay_on_domain": "Es gibt kein Relay für die Domäne des Benutzers oder das Relay ist nicht verfügbar. Bitte wählen Sie ein zu verwendendes Relais aus.", + "no_relays": "Keine Relais", + "no_relays_message": "Wir haben einen Nostr NIP-05-Eintrag für diesen Benutzer gefunden, der jedoch keine Relays enthält. Bitte weisen Sie den Empfänger an, Relays zu seinem Nostr-Datensatz hinzuzufügen.", + "node_address": "Knotenadresse", + "node_connection_failed": "Verbindung fehlgeschlagen", + "node_connection_successful": "Die Verbindung war erfolgreich", + "node_new": "Neuer Knoten", + "node_port": "Knotenport", + "node_reset_settings_title": "Einstellungen zurücksetzen", + "node_test": "Test", + "nodes": "Knoten", + "nodes_list_reset_to_default_message": "Möchten Sie wirklich die Standardeinstellungen wiederherstellen?", + "none_of_selected_providers_can_exchange": "Keiner der ausgewählten Anbieter kann diesen Austausch vornehmen", + "noNFTYet": "Noch keine NFTs", + "normal": "Normal", + "note_optional": "Bemerkung (optional)", + "note_tap_to_change": "Bemerkung (zum Ändern tippen)", + "nullURIError": "URI ist null", + "offer_expires_in": "Angebot läuft ab in: ", + "offline": "offline", + "ok": "OK", + "onion_link": "Zwiebel-Link", + "online": "online", + "onramper_option_description": "Kaufen Sie schnell Krypto mit vielen Zahlungsmethoden. In den meisten Ländern erhältlich. Spreads und Gebühren variieren.", + "open_gift_card": "Geschenkkarte öffnen", + "optional_description": "Optionale Beschreibung", + "optional_email_hint": "Optionale Benachrichtigungs-E-Mail für den Zahlungsempfänger", + "optional_name": "Optionaler Empfängername", + "optionally_order_card": "Optional eine physische Karte bestellen.", + "orbot_running_alert": "Bitte stellen Sie sicher, dass Orbot läuft, bevor Sie sich mit diesem Knoten verbinden.", + "order_by": "Sortieren nach", + "order_id": "Bestell-ID", + "order_physical_card": "Physische Karte bestellen", + "other_settings": "Andere Einstellungen", + "outdated_electrum_wallet_description": "Neue Bitcoin-Wallets, die in Cake erstellt wurden, haben jetzt einen 24-Wort-Seed. Sie müssen eine neue Bitcoin-Wallet erstellen, Ihr gesamtes Geld in die neue 24-Wort-Wallet überweisen und keine Wallet mit einem 12-Wort-Seed mehr verwenden. Bitte tun Sie dies sofort, um Ihr Geld zu sichern.", + "outdated_electrum_wallet_receive_warning": "Wenn diese Wallet einen 12-Wort-Seed hat und in Cake erstellt wurde, zahlen Sie KEINE Bitcoins in diese Wallet ein. Alle auf diese Wallet übertragenen BTC können verloren gehen. Erstellen Sie eine neue 24-Wort-Wallet (tippen Sie auf das Menü oben rechts, wählen Sie Wallets, wählen Sie Neue Wallet erstellen und dann Bitcoin) und verschieben Sie Ihre BTC SOFORT dorthin. Neue (24-Wort-)BTC-Wallets von Cake sind sicher", + "outgoing": "Ausgehend", + "overwrite_amount": "Overwrite amount", + "pairingInvalidEvent": "Paarung ungültiges Ereignis", + "password": "Passwort", + "paste": "Einfügen", + "pause_wallet_creation": "Die Möglichkeit, Haven Wallet zu erstellen, ist derzeit pausiert.", + "payment_id": "Zahlungs-ID: ", + "payment_was_received": "Ihre Zahlung ist eingegangen.", + "pending": " (ausstehend)", + "percentageOf": "von ${amount}", + "pin_at_top": "Stecken Sie ${token} oben fest", + "pin_is_incorrect": "PIN ist falsch", + "pin_number": "PIN-Nummer", + "placeholder_contacts": "Ihre Kontakte werden hier angezeigt", + "placeholder_transactions": "Ihre Transaktionen werden hier angezeigt", + "please_fill_totp": "Bitte geben Sie den 8-stelligen Code ein, der auf Ihrem anderen Gerät vorhanden ist", + "please_make_selection": "Bitte treffen Sie unten eine Auswahl zum Erstellen oder Wiederherstellen Ihrer Wallet.", + "Please_reference_document": "Weitere Informationen finden Sie in den Dokumenten unten.", + "please_select": "Bitte auswählen:", + "please_select_backup_file": "Bitte wählen Sie die Sicherungsdatei und geben Sie das Sicherungskennwort ein.", + "please_try_to_connect_to_another_node": "Bitte versuchen Sie, sich mit einem anderen Knoten zu verbinden", + "please_wait": "Warten Sie mal", + "polygonscan_history": "PolygonScan-Verlauf", + "powered_by": "Ermöglicht durch ${title}", + "pre_seed_button_text": "Verstanden. Zeig mir meinen Seed", + "pre_seed_description": "Auf der nächsten Seite sehen Sie eine Reihe von ${words} Wörtern. Dies ist Ihr einzigartiger und privater Seed und der EINZIGE Weg, um Ihre Wallet im Falle eines Verlusts oder einer Fehlfunktion wiederherzustellen. Es liegt in IHRER Verantwortung, ihn aufzuschreiben und an einem sicheren Ort außerhalb der Cake Wallet-App aufzubewahren.", + "pre_seed_title": "WICHTIG", + "prevent_screenshots": "Verhindern Sie Screenshots und Bildschirmaufzeichnungen", + "privacy": "Datenschutz", + "privacy_policy": "Datenschutzrichtlinie", + "privacy_settings": "Datenschutzeinstellungen", + "private_key": "Privater Schlüssel", + "proceed_after_one_minute": "Wenn der Bildschirm nach 1 Minute nicht weitergeht, überprüfen Sie bitte Ihre E-Mail.", + "profile": "Profil", + "provider_error": "${provider}-Fehler", + "public_key": "Öffentlicher Schlüssel", + "purchase_gift_card": "Geschenkkarte kaufen", + "qr_fullscreen": "Tippen Sie hier, um den QR-Code im Vollbildmodus zu öffnen", + "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", + "question_to_disable_2fa": "Sind Sie sicher, dass Sie Cake 2FA deaktivieren möchten? Für den Zugriff auf die Wallet und bestimmte Funktionen wird kein 2FA-Code mehr benötigt.", + "receivable_balance": "Forderungsbilanz", + "receive": "Empfangen", + "receive_amount": "Betrag", + "received": "Empfangen", + "recipient_address": "Empfängeradresse", + "reconnect": "Erneut verbinden", + "reconnect_alert_text": "Sind Sie sicher, dass Sie sich neu verbinden möchten?", + "reconnection": "Neu verbinden", + "redeemed": "Versilbert", + "refund_address": "Rückerstattungsadresse", + "reject": "Ablehnen", + "remaining": "Rest", + "remove": "Entfernen", + "remove_node": "Knoten entfernen", + "remove_node_message": "Möchten Sie den ausgewählten Knoten wirklich entfernen?", + "rename": "Umbenennen", + "require_for_adding_contacts": "Erforderlich zum Hinzufügen von Kontakten", + "require_for_all_security_and_backup_settings": "Für alle Sicherheits- und Sicherungseinstellungen erforderlich", + "require_for_assessing_wallet": "Für den Zugriff auf die Wallet erforderlich", + "require_for_creating_new_wallets": "Erforderlich zum Erstellen neuer Wallets", + "require_for_exchanges_to_external_wallets": "Erforderlich für den Umtausch in externe Wallets", + "require_for_exchanges_to_internal_wallets": "Erforderlich für den Umtausch in interne Wallets", + "require_for_sends_to_contacts": "Erforderlich für Versendungen an Kontakte", + "require_for_sends_to_internal_wallets": "Erforderlich für Sendungen an interne Wallets", + "require_for_sends_to_non_contacts": "Erforderlich für Versendungen an Nichtkontakte", + "require_pin_after": "PIN anfordern nach", + "rescan": "Erneut scannen", + "resend_code": "Bitte erneut senden", + "reset": "Zurücksetzen", + "reset_password": "Passwort zurücksetzen", + "restore_active_seed": "Aktiver Seed", + "restore_address": "Adresse", + "restore_bitcoin_description_from_keys": "Stellen Sie Ihre Wallet aus der generierten WIF-Zeichenfolge aus Ihren privaten Schlüsseln wieder her", + "restore_bitcoin_description_from_seed": "Stellen Sie Ihre Wallet aus dem 24-Wort-Kombinationscode wieder her", + "restore_bitcoin_title_from_keys": "Aus WIF wiederherstellen", + "restore_description_from_backup": "Sie können die gesamte Cake Wallet-App aus Ihrer Sicherungsdatei wiederherstellen", + "restore_description_from_keys": "Stellen Sie Ihr Wallet aus generierten Tastenanschlägen her, die von Ihren privaten Schlüsseln gespeichert wurden", + "restore_description_from_seed": "Stellen Sie Ihre Wallet aus den 25 Wörtern oder dem 13-Wort-Kombinationscode wieder her", + "restore_description_from_seed_keys": "Stellen Sie Ihr Wallet aus Seed/Schlüsseln wieder her, die Sie sicher aufbewahrt haben", + "restore_from_date_or_blockheight": "Bitte geben Sie ein Datum ein, das einige Tage vor dem Erstellen dieser Wallet liegt. Oder wenn Sie die Blockhöhe kennen, geben Sie stattdessen diese ein", + "restore_from_seed_placeholder": "Seed bitte hier eingeben oder einfügen", + "restore_new_seed": "Neuer Seed", + "restore_next": "Weiter", + "restore_recover": "Wiederherstellen", + "restore_restore_wallet": "Wallet wiederherstellen", + "restore_seed_keys_restore": "Seed/Schlüssel wiederherstellen", + "restore_spend_key_private": "Spend Key (geheim)", + "restore_title_from_backup": "Aus einer Sicherungsdatei wiederherstellen", + "restore_title_from_keys": "Aus Schlüsseln wiederherstellen", + "restore_title_from_seed": "Aus Seed wiederherstellen", + "restore_title_from_seed_keys": "Aus Seed/Schlüssel wiederherstellen", + "restore_view_key_private": "View Key (geheim)", + "restore_wallet": "Wallet wiederherstellen", + "restore_wallet_name": "Walletname", + "restore_wallet_restore_description": "Beschreibung zur Wallet-Wiederherstellung", + "router_no_route": "Keine Route definiert für ${name}", + "save": "Speichern", + "save_backup_password": "Bitte stellen Sie sicher, dass Sie Ihr Sicherungskennwort gespeichert haben. Ohne dieses können Sie Ihre Sicherungsdateien nicht importieren.", + "save_backup_password_alert": "Sicherungskennwort speichern", + "save_to_downloads": "Unter „Downloads“ speichern", + "saved_the_trade_id": "Ich habe die Handels-ID gespeichert", + "scan_qr_code": "QR-Code scannen", + "scan_qr_code_to_get_address": "Scannen Sie den QR-Code, um die Adresse zu erhalten", + "scan_qr_on_device": "Scannen Sie diesen QR-Code auf einem anderen Gerät", + "search": "Suche", + "search_add_token": "Token suchen / hinzufügen", + "search_category": "Suchkategorie", + "search_currency": "Währung suchen", + "search_language": "Sprache suchen", + "second_intro_content": "Ihr Yat ist eine einzige eindeutige Emoji-Adresse, die alle Ihre langen hexadezimalen Adressen für alle Ihre Währungen ersetzt.", + "second_intro_title": "Eine Emoji-Adresse, um sie alle zu beherrschen", + "security_and_backup": "Sicherheit und Datensicherung", + "seed_alert_back": "Zurückgehen", + "seed_alert_content": "Der Seed ist der einzige Weg, Ihre Wallet wiederherzustellen. Haben Sie ihn aufgeschrieben?", + "seed_alert_title": "Achtung", + "seed_alert_yes": "Ja, habe ich", + "seed_choose": "Seed-Sprache auswählen", "seed_hex_form": "Brieftaschensamen (Sechskantform)", + "seed_key": "Seed-Schlüssel", + "seed_language": "Seed-Sprache", + "seed_language_chinese": "Chinesisch", + "seed_language_chinese_traditional": "Chinesisch (Traditionell)", + "seed_language_czech": "Tschechisch", + "seed_language_dutch": "Niederländisch", + "seed_language_english": "Englisch", + "seed_language_french": "Französisch", + "seed_language_german": "Deutsch", + "seed_language_italian": "Italiana/Italiano", + "seed_language_japanese": "Japanisch", + "seed_language_korean": "Koreanisch", + "seed_language_next": "Weiter", + "seed_language_portuguese": "Portugiesisch", + "seed_language_russian": "Russisch", + "seed_language_spanish": "Spanisch", + "seed_phrase_length": "Länge der Seed-Phrase", + "seed_reminder": "Bitte notieren Sie diese für den Fall, dass Sie Ihr Telefon verlieren oder es kaputtgeht", + "seed_share": "Seed teilen", + "seed_title": "Seed", "seedtype": "Seedtyp", "seedtype_legacy": "Veraltet (25 Wörter)", "seedtype_polyseed": "Polyseed (16 Wörter)", - "seed_language_czech": "Tschechisch", - "seed_language_korean": "Koreanisch", - "seed_language_chinese_traditional": "Chinesisch (Traditionell)", - "ascending": "Aufsteigend", - "descending": "Absteigend", - "dfx_option_description": "Krypto mit EUR und CHF kaufen. Bis zu 990€ ohne zusätzliches KYC. Für Privat- und Firmenkunden in Europa", - "polygonscan_history": "PolygonScan-Verlauf", - "wallet_seed_legacy": "Legacy Wallet Seed", - "default_sell_provider": "Standard-Verkaufsanbieter", + "select_backup_file": "Sicherungsdatei auswählen", + "select_buy_provider_notice": "Wählen Sie oben einen Anbieter kaufen. Sie können diese Seite überspringen, indem Sie Ihren Standard-Kaufanbieter in den App-Einstellungen festlegen.", + "select_destination": "Bitte wählen Sie das Ziel für die Sicherungsdatei aus.", "select_sell_provider_notice": "Wählen Sie oben einen Verkaufsanbieter aus. Sie können diesen Bildschirm überspringen, indem Sie in den App-Einstellungen Ihren Standard-Verkaufsanbieter festlegen.", - "custom_drag": "Custom (Hold and Drag)", + "sell": "Verkaufen", + "sell_alert_content": "Wir unterstützen derzeit nur den Verkauf von Bitcoin, Ethereum und Litecoin. Bitte erstellen Sie Ihr Bitcoin-, Ethereum- oder Litecoin-Wallet oder wechseln Sie zu diesem.", + "sell_monero_com_alert_content": "Der Verkauf von Monero wird noch nicht unterstützt", + "send": "Senden", + "send_address": "${cryptoCurrency}-Adresse", + "send_amount": "Betrag:", + "send_creating_transaction": "Erstelle Transaktion", + "send_error_currency": "Die Währung darf nur Zahlen enthalten", + "send_error_minimum_value": "Der Mindestbetrag ist 0,01", + "send_estimated_fee": "Geschätzte Gebühr:", + "send_fee": "Gebühr:", + "send_name": "Name", + "send_new": "Neu", + "send_payment_id": "Zahlungs-ID (optional)", + "send_priority": "Derzeit ist ${transactionPriority} als Gebührenpriorität eingestellt.\nDie Transaktionspriorität kann in den Einstellungen angepasst werden", + "send_sending": "Senden...", + "send_success": "Ihr ${crypto} wurde erfolgreich versendet", + "send_templates": "Vorlagen", + "send_title": "Senden", + "send_to_this_address": "Senden Sie ${currency} ${tag}an diese Adresse", + "send_xmr": "XMR senden", + "send_your_wallet": "Ihre Wallet", + "sending": "Senden", + "sent": "Versendet", + "settings": "Einstellungen", + "settings_all": "ALLE", + "settings_allow_biometrical_authentication": "Biometrische Authentifizierung zulassen", + "settings_can_be_changed_later": "Diese Einstellungen können später in den App-Einstellungen geändert werden", + "settings_change_language": "Sprache ändern", + "settings_change_pin": "PIN ändern", + "settings_currency": "Währung", + "settings_current_node": "Aktueller Knoten", + "settings_dark_mode": "Dunkler Modus", + "settings_display_balance": "Kontostand anzeigen", + "settings_display_on_dashboard_list": "Anzeige in der Dashboard-Liste", + "settings_fee_priority": "Gebührenpriorität", + "settings_nodes": "Knoten", + "settings_none": "Keiner", + "settings_only_trades": "Nur Handel", + "settings_only_transactions": "Nur Transaktionen", + "settings_personal": "Persönlich", + "settings_save_recipient_address": "Empfängeradresse speichern", + "settings_support": "Hilfe", + "settings_terms_and_conditions": "Geschäftsbedingungen", + "settings_title": "Einstellungen", + "settings_trades": "Handel", + "settings_transactions": "Transaktionen", + "settings_wallets": "Wallets", + "setup_2fa": "Setup-Cake 2FA", + "setup_2fa_text": "Cake 2FA verwendet TOTP als zweiten Authentifizierungsfaktor.\n\nDas TOTP von Cake 2FA erfordert SHA-512 und 8-stellige Unterstützung; Dies sorgt für erhöhte Sicherheit. Weitere Informationen und unterstützte Apps finden Sie im Leitfaden.", + "setup_pin": "PIN einrichten", + "setup_successful": "Ihre PIN wurde erfolgreich eingerichtet!", + "setup_totp_recommended": "TOTP einrichten", + "setup_warning_2fa_text": "Sie müssen Ihr Wallet aus dem mnemonischen Seed wiederherstellen.\n\nDer Cake-Support kann Ihnen nicht weiterhelfen, wenn Sie den Zugriff auf Ihre 2FA- oder Mnemonik-Seeds verlieren.\nCake 2FA ist eine zweite Authentifizierung für bestimmte Aktionen im Wallet. Bevor Sie Cake 2FA verwenden, empfehlen wir Ihnen, die Anleitung durchzulesen.Es ist NICHT so sicher wie eine Kühllagerung.\n\nWenn Sie den Zugriff auf Ihre 2FA-App oder Ihre TOTP-Schlüssel verlieren, verlieren Sie auch den Zugriff auf dieses Wallet. ", + "setup_your_debit_card": "Richten Sie Ihre Debitkarte ein", + "share": "Teilen", + "share_address": "Adresse teilen ", + "show_details": "Details anzeigen", + "show_keys": "Seed/Schlüssel anzeigen", + "show_market_place": "Marktplatz anzeigen", + "show_seed": "Seed zeigen", + "sign_up": "Anmelden", + "signTransaction": "Transaktion unterzeichnen", + "signup_for_card_accept_terms": "Melden Sie sich für die Karte an und akzeptieren Sie die Bedingungen.", + "slidable": "Verschiebbar", + "sort_by": "Sortiere nach", + "spend_key_private": "Spend Key (geheim)", + "spend_key_public": "Spend Key (öffentlich)", + "status": "Status: ", + "subaddress_title": "Unteradressenliste", + "subaddresses": "Unteradressen", + "submit_request": "Eine Anfrage stellen", + "successful": "Erfolgreich", + "support_description_guides": "Dokumentation und Hilfe für bekannte Probleme", + "support_description_live_chat": "Kostenlos und schnell! Ausgebildete Mitarbeiter stehen zur Unterstützung bereit, um zu helfen", + "support_description_other_links": "Treten Sie unseren Communities bei oder erreichen Sie uns oder unsere Partner über andere Methoden", + "support_title_guides": "Cake Wallet Guides", + "support_title_live_chat": "Live Support", + "support_title_other_links": "Andere Support-Links", + "sweeping_wallet": "Wallet leeren", + "sweeping_wallet_alert": "Das sollte nicht lange dauern. VERLASSEN SIE DIESEN BILDSCHIRM NICHT, ANDERNFALLS KÖNNEN DIE GELDER VERLOREN GEHEN", + "switchToETHWallet": "Bitte wechseln Sie zu einem Ethereum-Wallet und versuchen Sie es erneut", "switchToEVMCompatibleWallet": "Bitte wechseln Sie zu einem EVM-kompatiblen Wallet und versuchen Sie es erneut (Ethereum, Polygon)", - "receivable_balance": "Forderungsbilanz", - "confirmed_tx": "Bestätigt", + "symbol": "Symbol", + "sync_all_wallets": "Alle Wallets synchronisieren", + "sync_status_attempting_sync": "SYNC VERSUCHEN", + "sync_status_connected": "VERBUNDEN", + "sync_status_connecting": "VERBINDEN", + "sync_status_failed_connect": "GETRENNT", + "sync_status_not_connected": "NICHT VERBUNDEN", + "sync_status_starting_sync": "STARTE SYNCHRONISIERUNG", + "sync_status_syncronized": "SYNCHRONISIERT", + "sync_status_syncronizing": "SYNCHRONISIERE", + "syncing_wallet_alert_content": "Ihr Kontostand und Ihre Transaktionsliste sind möglicherweise erst vollständig, wenn oben „SYNCHRONISIERT“ steht. Klicken/tippen Sie, um mehr zu erfahren.", + "syncing_wallet_alert_title": "Ihr Wallet wird synchronisiert", + "template": "Vorlage", + "template_name": "Vorlagenname", + "third_intro_content": "Yats leben auch außerhalb von Cake Wallet. Jede Wallet-Adresse auf der Welt kann durch ein Yat ersetzt werden!", + "third_intro_title": "Yat spielt gut mit anderen", + "time": "${minutes}m ${seconds}s", + "tip": "Hinweis:", + "today": "Heute", + "token_contract_address": "Token-Vertragsadresse", + "token_decimal": "Token-Dezimalzahl", + "token_name": "Token-Name, z. B.: Tether", + "token_symbol": "Token-Symbol, z. B.: USDT", + "tokenID": "AUSWEIS", + "tor_connection": "Tor-Verbindung", + "tor_only": "Nur Tor", + "total_saving": "Gesamteinsparungen", + "totp_2fa_failure": "Falscher Code. Bitte versuchen Sie es mit einem anderen Code oder generieren Sie einen neuen geheimen Schlüssel. Verwenden Sie eine kompatible 2FA-App, die 8-stellige Codes und SHA512 unterstützt.", + "totp_2fa_success": "Erfolg! Cake 2FA für dieses Wallet aktiviert. Denken Sie daran, Ihren mnemonischen Seed zu speichern, falls Sie den Zugriff auf die Wallet verlieren.", + "totp_auth_url": "TOTP-Auth-URL", + "totp_code": "TOTP-Code", + "totp_secret_code": "TOTP-Geheimcode", + "totp_verification_success": "Verifizierung erfolgreich!", + "trade_details_copied": "${title} in die Zwischenablage kopiert", + "trade_details_created_at": "Erzeugt am", + "trade_details_fetching": "Wird ermittelt", + "trade_details_id": "ID", + "trade_details_pair": "Paar", + "trade_details_provider": "Anbieter", + "trade_details_state": "Status", + "trade_details_title": "Handelsdetails", + "trade_for_not_created": "Handel für ${title} wird nicht erstellt.", + "trade_history_title": "Handelsverlauf", + "trade_id": "Handels-ID:", + "trade_id_not_found": "Handel ${tradeId} von ${title} nicht gefunden.", + "trade_is_powered_by": "Dieser Handel wird angeboten von ${provider}", + "trade_not_created": "Handel nicht erstellt", + "trade_not_found": "Handel nicht gefunden.", + "trade_state_btc_sent": "Btc gesendet", + "trade_state_complete": "Abgeschlossen", + "trade_state_confirming": "Bestätigung", + "trade_state_created": "Erstellt", + "trade_state_finished": "Fertig", + "trade_state_paid": "Bezahlt", + "trade_state_paid_unconfirmed": "Unbestätigt bezahlt", + "trade_state_pending": "Steht aus", + "trade_state_timeout": "Timeout", + "trade_state_to_be_created": "Noch nicht erstellt", + "trade_state_traded": "Gehandelt", + "trade_state_trading": "Handel", + "trade_state_underpaid": "Unterbezahlt", + "trade_state_unpaid": "Unbezahlt", + "trades": "Börsen", + "transaction_details_amount": "Betrag", + "transaction_details_copied": "${title} in die Zwischenablage kopiert", + "transaction_details_date": "Datum", + "transaction_details_fee": "Gebühr", + "transaction_details_height": "Höhe", + "transaction_details_recipient_address": "Empfängeradressen", "transaction_details_source_address": "Quelladresse", - "pause_wallet_creation": "Die Möglichkeit, Haven Wallet zu erstellen, ist derzeit pausiert.", - "contractName": "Vertragsname", - "contractSymbol": "Vertragssymbol", - "description": "Beschreibung", - "camera_consent": "Mit Ihrer Kamera wird bis zum ${provider} ein Bild zur Identifizierung aufgenommen. Weitere Informationen finden Sie in deren Datenschutzbestimmungen.", - "no_relays": "Keine Relais", - "choose_relay": "Bitte wählen Sie ein zu verwendendes Relais aus", - "no_relays_message": "Wir haben einen Nostr NIP-05-Eintrag für diesen Benutzer gefunden, der jedoch keine Relays enthält. Bitte weisen Sie den Empfänger an, Relays zu seinem Nostr-Datensatz hinzuzufügen.", - "no_relay_on_domain": "Es gibt kein Relay für die Domäne des Benutzers oder das Relay ist nicht verfügbar. Bitte wählen Sie ein zu verwendendes Relais aus." -} + "transaction_details_title": "Transaktionsdetails", + "transaction_details_transaction_id": "Transaktions-ID", + "transaction_key": "Transaktionsschlüssel", + "transaction_priority_fast": "Schnell", + "transaction_priority_fastest": "Am schnellsten", + "transaction_priority_medium": "Mittel", + "transaction_priority_regular": "Normal", + "transaction_priority_slow": "Langsam", + "transaction_sent": "Transaktion gesendet!", + "transaction_sent_notice": "Wenn der Bildschirm nach 1 Minute nicht weitergeht, überprüfen Sie einen Block-Explorer und Ihre E-Mail.", + "transactions": "Transaktionen", + "transactions_by_date": "Transaktionen nach Datum", + "trusted": "Vertrauenswürdige", + "unavailable_balance": "Nicht verfügbares Guthaben", + "unavailable_balance_description": "Nicht verfügbares Guthaben: Diese Summe umfasst Gelder, die in ausstehenden Transaktionen gesperrt sind, und solche, die Sie in Ihren Münzkontrolleinstellungen aktiv eingefroren haben. Gesperrte Guthaben werden verfügbar, sobald die entsprechenden Transaktionen abgeschlossen sind, während eingefrorene Guthaben für Transaktionen nicht zugänglich bleiben, bis Sie sich dazu entschließen, sie wieder freizugeben.", + "unconfirmed": "Unbestätigter Saldo", + "und": "und", + "understand": "Ich verstehe", + "unmatched_currencies": "Die Währung Ihres aktuellen Wallets stimmt nicht mit der des gescannten QR überein", + "unspent_change": "Wechselgeld", + "unspent_coins_details_title": "Details zu nicht ausgegebenen Coins", + "unspent_coins_title": "Nicht ausgegebene Coins", + "unsupported_asset": "Wir unterstützen diese Aktion für dieses Asset nicht. Bitte erstellen Sie eine Wallet eines unterstützten Asset-Typs oder wechseln Sie zu einer Wallet.", + "upto": "bis zu ${value}", + "use": "Wechsel zu ", + "use_card_info_three": "Verwenden Sie die digitale Karte online oder mit kontaktlosen Zahlungsmethoden.", + "use_card_info_two": "Guthaben werden auf dem Prepaid-Konto in USD umgerechnet, nicht in digitale Währung.", + "use_ssl": "SSL verwenden", + "use_suggested": "Vorgeschlagen verwenden", + "variable_pair_not_supported": "Dieses Variablenpaar wird von den ausgewählten Börsen nicht unterstützt", + "verification": "Verifizierung", + "verify_with_2fa": "Verifizieren Sie mit Cake 2FA", + "version": "Version ${currentVersion}", + "view_all": "Alle anzeigen", + "view_in_block_explorer": "In Block Explorer anzeigen", + "view_key_private": "View Key (geheim)", + "view_key_public": "View Key (öffentlich)", + "view_transaction_on": "Anzeigen der Transaktion auf ", + "waiting_payment_confirmation": "Warte auf Zahlungsbestätigung", + "wallet_keys": "Wallet-Seed/-Schlüssel", + "wallet_list_create_new_wallet": "Neue Wallet erstellen", + "wallet_list_edit_wallet": "Wallet bearbeiten", + "wallet_list_failed_to_load": "Laden der Wallet ${wallet_name} fehlgeschlagen. ${error}", + "wallet_list_failed_to_remove": "Fehler beim Entfernen der Wallet ${wallet_name}. ${error}", + "wallet_list_load_wallet": "Wallet laden", + "wallet_list_loading_wallet": "Wallet ${wallet_name} wird geladen", + "wallet_list_removing_wallet": "Wallet ${wallet_name} wird entfernt", + "wallet_list_restore_wallet": "Wallet wiederherstellen", + "wallet_list_title": "Monero-Wallet", + "wallet_list_wallet_name": "Wallet namen", + "wallet_menu": "Wallet-Menü", + "wallet_name": "Walletname", + "wallet_name_exists": "Wallet mit diesem Namen existiert bereits", + "wallet_restoration_store_incorrect_seed_length": "Falsche Seed-Länge", + "wallet_seed": "Wallet-Seed", + "wallet_seed_legacy": "Legacy Wallet Seed", + "wallet_store_monero_wallet": "Monero-Wallet", + "walletConnect": "WalletConnect", + "wallets": "Wallets", + "warning": "Warnung", + "welcome": "Willkommen bei", + "welcome_to_cakepay": "Willkommen bei Cake Pay!", + "widgets_address": "Adresse", + "widgets_or": "oder", + "widgets_restore_from_blockheight": "Ab Blockhöhe wiederherstellen", + "widgets_restore_from_date": "Ab Datum wiederherstellen", + "widgets_seed": "Seed", + "wouoldLikeToConnect": "möchte mich gerne vernetzen", + "write_down_backup_password": "Bitte notieren Sie sich Ihr Sicherungskennwort, das für den Import Ihrer Sicherungsdateien gebraucht wird.", + "xlm_extra_info": "Bitte vergessen Sie nicht, die Memo-ID anzugeben, während Sie die XLM-Transaktion für den Austausch senden", + "xmr_available_balance": "Verfügbares Guthaben", + "xmr_full_balance": "Gesamtguthaben", + "xmr_hidden": "Versteckt", + "xmr_to_error": "XMR.TO-Fehler", + "xmr_to_error_description": "Ungültiger Betrag. Höchstgrenze 8 Stellen nach dem Dezimalpunkt", + "xrp_extra_info": "Bitte vergessen Sie nicht, das Ziel-Tag anzugeben, während Sie die XRP-Transaktion für den Austausch senden", + "yat": "Yat", + "yat_address": "Yat-Adresse", + "yat_alert_content": "Cake Wallet-Benutzer können jetzt alle ihre Lieblingswährungen mit einem einzigartigen Emoji-basierten Benutzernamen senden und empfangen.", + "yat_alert_title": "Senden und Empfangen von Krypto leichter mit Yat", + "yat_error": "Yat-Fehler", + "yat_error_content": "Keine Adressen mit diesem Yat verknüpft. Versuchen Sie es mit einem anderen Yat", + "yat_popup_content": "Sie können jetzt Krypto in Cake Wallet mit Ihrem Yat senden und empfangen - einem kurzen, Emoji-basierten Benutzernamen. Verwalten Sie Yats jederzeit auf dem Einstellungsbildschirm", + "yat_popup_title": "Ihre Wallet-Adresse kann emojifiziert werden.", + "yesterday": "Gestern", + "you_now_have_debit_card": "Sie haben jetzt eine Debitkarte", + "you_pay": "Sie bezahlen", + "you_will_get": "Konvertieren zu", + "you_will_send": "Konvertieren von", + "yy": "YY", + "zzzz": "Zzzz" +} \ No newline at end of file diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index d54b7baa4..c596cde10 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -1,780 +1,781 @@ { - "welcome": "Welcome to", - "cake_wallet": "Cake Wallet", - "first_wallet_text": "Awesome wallet for Monero, Bitcoin, Ethereum, Litecoin, and Haven", - "please_make_selection": "Please make a selection below to create or recover your wallet.", - "create_new": "Create New Wallet", - "restore_wallet": "Restore Wallet", - "monero_com": "Monero.com by Cake Wallet", - "monero_com_wallet_text": "Awesome wallet for Monero", - "haven_app": "Haven by Cake Wallet", - "haven_app_wallet_text": "Awesome wallet for Haven", - "accounts": "Accounts", - "edit": "Edit", + "about_cake_pay": "Cake Pay allows you to easily buy gift cards with virtual assets, spendable instantly at over 150,000 merchants in the United States.", "account": "Account", + "accounts": "Accounts", + "accounts_subaddresses": "Accounts and subaddresses", + "activate": "Activate", + "active": "Active", + "active_cards": "Active cards", + "activeConnectionsPrompt": "Active connections will appear here", "add": "Add", + "add_contact": "Add contact", + "add_custom_node": "Add New Custom Node", + "add_custom_redemption": "Add Custom Redemption", + "add_fund_to_card": "Add prepaid funds to the cards (up to ${value})", + "add_new_node": "Add new node", + "add_new_word": "Add new word", + "add_receiver": "Add another receiver (optional)", + "add_secret_code": "Or, add this secret code to an authenticator app", + "add_tip": "Add Tip", + "add_token_disclaimer_check": "I have confirmed the token contract address and information using a reputable source. Adding malicious or incorrect information can result in a loss of funds.", + "add_token_warning": "Do not edit or add tokens as instructed by scammers.\nAlways confirm token addresses with reputable sources!", + "add_value": "Add value", + "address": "Address", "address_book": "Address Book", - "contact": "Contact", - "please_select": "Please select:", - "cancel": "Cancel", - "ok": "OK", - "contact_name": "Contact Name", - "reset": "Reset", - "save": "Save", + "address_book_menu": "Address book", + "address_detected": "Address detected", + "address_from_domain": "This address is from ${domain} on Unstoppable Domains", + "address_from_yat": "This address is from ${emoji} on Yat", + "address_label": "Address label", "address_remove_contact": "Remove contact", "address_remove_content": "Are you sure that you want to remove selected contact?", - "authenticated": "Authenticated", - "authentication": "Authentication", - "failed_authentication": "Failed authentication. ${state_error}", - "wallet_menu": "Menu", - "Blocks_remaining": "${status} Blocks Remaining", - "please_try_to_connect_to_another_node": "Please try to connect to another node", - "xmr_hidden": "Hidden", - "xmr_available_balance": "Available Balance", - "xmr_full_balance": "Full Balance", - "send": "Send", - "receive": "Receive", - "transactions": "Transactions", - "incoming": "Incoming", - "outgoing": "Outgoing", - "transactions_by_date": "Transactions by date", - "trades": "Trades", - "filter_by": "Filter by", - "today": "Today", - "yesterday": "Yesterday", - "received": "Received", - "sent": "Sent", - "pending": " (pending)", - "rescan": "Rescan", - "reconnect": "Reconnect", - "wallets": "Wallets", - "show_seed": "Show seed", - "show_keys": "Show seed/keys", - "address_book_menu": "Address book", - "reconnection": "Reconnection", - "reconnect_alert_text": "Are you sure you want to reconnect?", - "exchange": "Exchange", - "clear": "Clear", - "refund_address": "Refund address", - "change_exchange_provider": "Change Exchange Provider", - "you_will_send": "Convert from", - "you_will_get": "Convert to", - "amount_is_guaranteed": "The receive amount is guaranteed", - "amount_is_estimate": "The receive amount is an estimate", - "powered_by": "Powered by ${title}", - "error": "Error", - "estimated": "Estimated", - "min_value": "Min: ${value} ${currency}", - "max_value": "Max: ${value} ${currency}", - "change_currency": "Change Currency", - "overwrite_amount": "Overwrite amount", - "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", - "copy_id": "Copy ID", - "exchange_result_write_down_trade_id": "Please copy or write down the trade ID to continue.", - "trade_id": "Trade ID:", - "copied_to_clipboard": "Copied to Clipboard", - "saved_the_trade_id": "I've saved the trade ID", - "fetching": "Fetching", - "id": "ID: ", - "amount": "Amount: ", - "payment_id": "Payment ID: ", - "status": "Status: ", - "offer_expires_in": "Offer expires in: ", - "trade_is_powered_by": "This trade is powered by ${provider}", - "copy_address": "Copy Address", - "exchange_result_confirm": "By pressing confirm, you will be sending ${fetchingLabel} ${from} from your wallet called ${walletName} to the address shown below. Or you can send from your external wallet to the below address/QR code.\n\nPlease press confirm to continue or go back to change the amounts.", - "exchange_result_description": "You must send a minimum of ${fetchingLabel} ${from} to the address shown on the next page. If you send an amount lower than ${fetchingLabel} ${from} it may not get converted and it may not be refunded.", - "exchange_result_write_down_ID": "*Please copy or write down your ID shown above.", - "confirm": "Confirm", - "confirm_sending": "Confirm sending", - "commit_transaction_amount_fee": "Commit transaction\nAmount: ${amount}\nFee: ${fee}", - "sending": "Sending", - "transaction_sent": "Transaction sent!", - "expired": "Expired", - "time": "${minutes}m ${seconds}s", - "send_xmr": "Send XMR", - "exchange_new_template": "New template", - "faq": "FAQ", - "enter_your_pin": "Enter your PIN", - "loading_your_wallet": "Loading your wallet", - "new_wallet": "New Wallet", - "wallet_name": "Wallet name", - "continue_text": "Continue", - "choose_wallet_currency": "Please choose wallet currency:", - "node_new": "New Node", - "node_address": "Node Address", - "node_port": "Node port", - "login": "Login", - "password": "Password", - "nodes": "Nodes", - "node_reset_settings_title": "Reset settings", - "nodes_list_reset_to_default_message": "Are you sure that you want to reset settings to default?", - "change_current_node": "Are you sure to change current node to ${node}?", - "change": "Change", - "remove_node": "Remove node", - "remove_node_message": "Are you sure that you want to remove selected node?", - "remove": "Remove", - "delete": "Delete", - "add_new_node": "Add new node", - "change_current_node_title": "Change current node", - "node_test": "Test", - "node_connection_successful": "Connection was successful", - "node_connection_failed": "Connection was failed", - "new_node_testing": "New node testing", - "use": "Switch to ", - "digit_pin": "-digit PIN", - "share_address": "Share address", - "receive_amount": "Amount", - "subaddresses": "Subaddresses", "addresses": "Addresses", - "scan_qr_code_to_get_address": "Scan the QR code to get the address", - "qr_fullscreen": "Tap to open full screen QR code", - "rename": "Rename", - "choose_account": "Choose account", - "create_new_account": "Create new account", - "accounts_subaddresses": "Accounts and subaddresses", - "restore_restore_wallet": "Restore Wallet", - "restore_title_from_seed_keys": "Restore from seed/keys", - "restore_description_from_seed_keys": "Get back your wallet from seed/keys that you've saved to secure place", - "restore_next": "Next", - "restore_title_from_backup": "Restore from backup", - "restore_description_from_backup": "You can restore the whole Cake Wallet app from your back-up file", - "restore_seed_keys_restore": "Seed/Keys Restore", - "restore_title_from_seed": "Restore from seed", - "restore_description_from_seed": "Restore your wallet from either the 25 word or 13 word combination code", - "restore_title_from_keys": "Restore from keys", - "restore_description_from_keys": "Restore your wallet from generated keystrokes saved from your private keys", - "restore_wallet_name": "Wallet name", - "restore_address": "Address", - "restore_view_key_private": "View key (private)", - "restore_spend_key_private": "Spend key (private)", - "restore_recover": "Restore", - "restore_wallet_restore_description": "Wallet restore description", - "restore_new_seed": "New seed", - "restore_active_seed": "Active seed", - "restore_bitcoin_description_from_seed": "Restore your wallet from 24 word combination code", - "restore_bitcoin_description_from_keys": "Restore your wallet from generated WIF string from your private keys", - "restore_bitcoin_title_from_keys": "Restore from WIF", - "restore_from_date_or_blockheight": "Please enter a date a few days before you created this wallet. Or if you know the blockheight, please enter it instead", - "seed_reminder": "Please write these down in case you lose or wipe your phone", - "seed_title": "Seed", - "seed_share": "Share seed", - "copy": "Copy", - "seed_language": "Seed language", - "seed_choose": "Choose seed language", - "seed_language_next": "Next", - "seed_language_english": "English", - "seed_language_chinese": "Chinese", - "seed_language_dutch": "Dutch", - "seed_language_german": "German", - "seed_language_japanese": "Japanese", - "seed_language_portuguese": "Portuguese", - "seed_language_russian": "Russian", - "seed_language_spanish": "Spanish", - "seed_language_french": "French", - "seed_language_italian": "Italian", - "send_title": "Send", - "send_your_wallet": "Your wallet", - "send_address": "${cryptoCurrency} address", - "send_payment_id": "Payment ID (optional)", + "advanced_settings": "Advanced Settings", + "aggressive": "Aggressive", + "agree": "Agree", + "agree_and_continue": "Agree & Continue", + "agree_to": "By creating account you agree to the ", "all": "ALL", - "send_error_minimum_value": "Minimum value of amount is 0.01", - "send_error_currency": "Currency can only contain numbers", - "send_estimated_fee": "Estimated fee:", - "send_priority": "Currently the fee is set at ${transactionPriority} priority.\nTransaction priority can be adjusted in the settings", - "send_creating_transaction": "Creating transaction", - "send_templates": "Templates", - "send_new": "New", - "send_amount": "Amount:", - "send_fee": "Fee:", - "send_name": "Name", - "got_it": "Got it", - "send_sending": "Sending...", - "send_success": "Your ${crypto} was successfully sent", - "settings_title": "Settings", - "settings_nodes": "Nodes", - "settings_current_node": "Current node", - "settings_wallets": "Wallets", - "settings_display_balance": "Display balance", - "settings_currency": "Currency", - "settings_fee_priority": "Fee priority", - "settings_save_recipient_address": "Save recipient address", - "settings_personal": "Personal", - "settings_change_pin": "Change PIN", - "settings_change_language": "Change language", - "settings_allow_biometrical_authentication": "Allow biometrical authentication", - "settings_dark_mode": "Dark mode", - "settings_transactions": "Transactions", - "settings_trades": "Trades", - "settings_display_on_dashboard_list": "Display on dashboard list", - "settings_all": "ALL", - "settings_only_trades": "Only trades", - "settings_only_transactions": "Only transactions", - "settings_none": "None", - "settings_support": "Support", - "settings_terms_and_conditions": "Terms and Conditions", - "pin_is_incorrect": "PIN is incorrect", - "setup_pin": "Setup PIN", - "enter_your_pin_again": "Enter your pin again", - "setup_successful": "Your PIN has been set up successfully!", - "wallet_keys": "Wallet seed/keys", - "wallet_seed": "Wallet seed", - "private_key": "Private key", - "public_key": "Public key", - "view_key_private": "View key (private)", - "view_key_public": "View key (public)", - "spend_key_private": "Spend key (private)", - "spend_key_public": "Spend key (public)", - "copied_key_to_clipboard": "Copied ${key} to Clipboard", - "new_subaddress_title": "New address", - "new_subaddress_label_name": "Label name", - "new_subaddress_create": "Create", - "address_label": "Address label", - "subaddress_title": "Subaddress list", - "trade_details_title": "Trade Details", - "trade_details_id": "ID", - "trade_details_state": "Status", - "trade_details_fetching": "Fetching", - "trade_details_provider": "Provider", - "trade_details_created_at": "Created at", - "trade_details_pair": "Pair", - "trade_details_copied": "${title} copied to Clipboard", - "trade_history_title": "Trade history", - "transaction_details_title": "Transaction Details", - "transaction_details_transaction_id": "Transaction ID", - "transaction_details_date": "Date", - "transaction_details_height": "Height", - "transaction_details_amount": "Amount", - "transaction_details_fee": "Fee", - "transaction_details_copied": "${title} copied to Clipboard", - "transaction_details_recipient_address": "Recipient addresses", - "wallet_list_title": "Monero Wallet", - "wallet_list_create_new_wallet": "Create New Wallet", - "wallet_list_edit_wallet": "Edit wallet", - "wallet_list_wallet_name": "Wallet name", - "wallet_list_restore_wallet": "Restore Wallet", - "wallet_list_load_wallet": "Load wallet", - "wallet_list_loading_wallet": "Loading ${wallet_name} wallet", - "wallet_list_failed_to_load": "Failed to load ${wallet_name} wallet. ${error}", - "wallet_list_removing_wallet": "Removing ${wallet_name} wallet", - "wallet_list_failed_to_remove": "Failed to remove ${wallet_name} wallet. ${error}", - "widgets_address": "Address", - "widgets_restore_from_blockheight": "Restore from blockheight", - "widgets_restore_from_date": "Restore from date", - "widgets_or": "or", - "widgets_seed": "Seed", - "router_no_route": "No route defined for ${name}", - "error_text_account_name": "Account name can only contain letters, numbers\nand must be between 1 and 15 characters long", - "error_text_contact_name": "Contact name can't contain ` , ' \" symbols\nand must be between 1 and 32 characters long", - "error_text_address": "Wallet address must correspond to the type\nof cryptocurrency", - "error_text_node_address": "Please enter a iPv4 address", - "error_text_node_port": "Node port can only contain numbers between 0 and 65535", - "error_text_node_proxy_address": "Please enter :, for example 127.0.0.1:9050", - "error_text_payment_id": "Payment ID can only contain from 16 to 64 chars in hex", - "error_text_xmr": "XMR value can't exceed available balance.\nThe number of fraction digits must be less or equal to 12", - "error_text_fiat": "Value of amount can't exceed available balance.\nThe number of fraction digits must be less or equal to 2", - "error_text_subaddress_name": "Subaddress name can't contain ` , ' \" symbols\nand must be between 1 and 20 characters long", - "error_text_amount": "Amount can only contain numbers", - "error_text_wallet_name": "Wallet name can only contain letters, numbers, _ - symbols \nand must be between 1 and 33 characters long", - "error_text_keys": "Wallet keys can only contain 64 chars in hex", - "error_text_crypto_currency": "The number of fraction digits\nmust be less or equal to 12", - "error_text_minimal_limit": "Trade for ${provider} is not created. Amount is less then minimal: ${min} ${currency}", - "error_text_maximum_limit": "Trade for ${provider} is not created. Amount is more then maximum: ${max} ${currency}", - "error_text_limits_loading_failed": "Trade for ${provider} is not created. Limits loading failed", - "error_text_template": "Template name and address can't contain ` , ' \" symbols\nand must be between 1 and 106 characters long", + "all_trades": "All trades", + "all_transactions": "All transactions", + "alphabetical": "Alphabetical", + "already_have_account": "Already have an account?", + "always": "Always", + "amount": "Amount: ", + "amount_is_estimate": "The receive amount is an estimate", + "amount_is_guaranteed": "The receive amount is guaranteed", + "and": "and", + "anonpay_description": "Generate ${type}. The recipient can ${method} with any supported cryptocurrency, and you will receive funds in this wallet.", + "apk_update": "APK update", + "approve": "Approve", + "arrive_in_this_address": "${currency} ${tag}will arrive in this address", + "ascending": "Ascending", + "ask_each_time": "Ask each time", "auth_store_ban_timeout": "ban_timeout", "auth_store_banned_for": "Banned for ", "auth_store_banned_minutes": " minutes", "auth_store_incorrect_password": "Wrong PIN", - "wallet_store_monero_wallet": "Monero Wallet", - "wallet_restoration_store_incorrect_seed_length": "Incorrect seed length", - "full_balance": "Full Balance", - "available_balance": "Available Balance", - "hidden_balance": "Hidden Balance", - "sync_status_syncronizing": "SYNCHRONIZING", - "sync_status_syncronized": "SYNCHRONIZED", - "sync_status_not_connected": "NOT CONNECTED", - "sync_status_starting_sync": "STARTING SYNC", - "sync_status_failed_connect": "DISCONNECTED", - "sync_status_connecting": "CONNECTING", - "sync_status_connected": "CONNECTED", - "sync_status_attempting_sync": "ATTEMPTING SYNC", - "transaction_priority_slow": "Slow", - "transaction_priority_regular": "Regular", - "transaction_priority_medium": "Medium", - "transaction_priority_fast": "Fast", - "transaction_priority_fastest": "Fastest", - "trade_for_not_created": "Trade for ${title} is not created.", - "trade_not_created": "Trade not created", - "trade_id_not_found": "Trade ${tradeId} of ${title} not found.", - "trade_not_found": "Trade not found.", - "trade_state_pending": "Pending", - "trade_state_confirming": "Confirming", - "trade_state_trading": "Trading", - "trade_state_traded": "Traded", - "trade_state_complete": "Complete", - "trade_state_to_be_created": "To be created", - "trade_state_unpaid": "Unpaid", - "trade_state_underpaid": "Underpaid", - "trade_state_paid_unconfirmed": "Paid unconfirmed", - "trade_state_paid": "Paid", - "trade_state_btc_sent": "Btc sent", - "trade_state_timeout": "Timeout", - "trade_state_created": "Created", - "trade_state_finished": "Finished", - "change_language": "Change language", - "change_language_to": "Change language to ${language}?", - "paste": "Paste", - "restore_from_seed_placeholder": "Please enter or paste your seed here", - "add_new_word": "Add new word", - "incorrect_seed": "The text entered is not valid.", - "biometric_auth_reason": "Scan your fingerprint to authenticate", - "version": "Version ${currentVersion}", - "extracted_address_content": "You will be sending funds to\n${recipient_name}", - "card_address": "Address:", - "buy": "Buy", - "sell": "Sell", - "placeholder_transactions": "Your transactions will be displayed here", - "placeholder_contacts": "Your contacts will be displayed here", - "template": "Template", - "confirm_delete_template": "This action will delete this template. Do you wish to continue?", - "confirm_delete_wallet": "This action will delete this wallet. Do you wish to continue?", - "change_wallet_alert_title": "Change current wallet", - "change_wallet_alert_content": "Do you want to change current wallet to ${wallet_name}?", - "creating_new_wallet": "Creating new wallet", - "creating_new_wallet_error": "Error: ${description}", - "seed_alert_title": "Attention", - "seed_alert_content": "The seed is the only way to recover your wallet. Have you written it down?", - "seed_alert_back": "Go back", - "seed_alert_yes": "Yes, I have", - "exchange_sync_alert_content": "Please wait until your wallet is synchronized", - "pre_seed_title": "IMPORTANT", - "pre_seed_description": "On the next page you will see a series of ${words} words. This is your unique and private seed and it is the ONLY way to recover your wallet in case of loss or malfunction. It is YOUR responsibility to write it down and store it in a safe place outside of the Cake Wallet app.", - "pre_seed_button_text": "I understand. Show me my seed", - "xmr_to_error": "XMR.TO error", - "xmr_to_error_description": "Invalid amount. Maximum limit 8 digits after the decimal point", - "provider_error": "${provider} error", - "use_ssl": "Use SSL", - "trusted": "Trusted", - "color_theme": "Color theme", - "light_theme": "Light", - "bright_theme": "Bright", - "dark_theme": "Dark", - "enter_your_note": "Enter your note…", - "note_optional": "Note (optional)", - "note_tap_to_change": "Note (tap to change)", - "view_in_block_explorer": "View in Block Explorer", - "view_transaction_on": "View Transaction on ", - "transaction_key": "Transaction Key", - "confirmations": "Confirmations", - "recipient_address": "Recipient address", - "extra_id": "Extra ID:", - "destination_tag": "Destination tag:", - "memo": "Memo:", - "backup": "Backup", - "change_password": "Change password", - "backup_password": "Backup password", - "write_down_backup_password": "Please write down your backup password, which is used for the import of your backup files.", - "export_backup": "Export backup", - "save_backup_password": "Please make sure that you have saved your backup password. You will not be able to import your backup files without it.", - "backup_file": "Backup file", - "edit_backup_password": "Edit Backup Password", - "save_backup_password_alert": "Save backup password", - "change_backup_password_alert": "Your previous backup files will be not available to import with new backup password. New backup password will be used only for new backup files. Are you sure that you want to change backup password?", - "enter_backup_password": "Enter backup password here", - "select_backup_file": "Select backup file", - "import": "Import", - "please_select_backup_file": "Please select backup file and enter backup password.", - "fixed_rate": "Fixed rate", - "fixed_rate_alert": "You will be able to enter receive amount when fixed rate mode is checked. Do you want to switch to fixed rate mode?", - "xlm_extra_info": "Please don’t forget to specify the Memo ID while sending the XLM transaction for the exchange", - "xrp_extra_info": "Please don’t forget to specify the Destination Tag while sending the XRP transaction for the exchange", - "exchange_incorrect_current_wallet_for_xmr": "If you want to exchange XMR from your Cake Wallet Monero balance, please switch to your Monero wallet first.", - "confirmed": "Confirmed Balance", - "unconfirmed": "Unconfirmed Balance", - "displayable": "Displayable", - "submit_request": "submit a request", - "buy_alert_content": "Currently we only support the purchase of Bitcoin, Ethereum, Litecoin, and Monero. Please create or switch to your Bitcoin, Ethereum, Litecoin, or Monero wallet.", - "sell_alert_content": "We currently only support the sale of Bitcoin, Ethereum and Litecoin. Please create or switch to your Bitcoin, Ethereum or Litecoin wallet.", - "outdated_electrum_wallet_description": "New Bitcoin wallets created in Cake now have a 24-word seed. It is mandatory that you create a new Bitcoin wallet and transfer all of your funds to the new 24-word wallet, and stop using wallets with a 12-word seed. Please do this immediately to secure your funds.", - "understand": "I understand", - "apk_update": "APK update", - "buy_bitcoin": "Buy Bitcoin", - "buy_with": "Buy with", - "moonpay_alert_text": "Value of the amount must be more or equal to ${minAmount} ${fiatCurrency}", - "outdated_electrum_wallet_receive_warning": "If this wallet has a 12-word seed and was created in Cake, DO NOT deposit Bitcoin into this wallet. Any BTC transferred to this wallet may be lost. Create a new 24-word wallet (tap the menu at the top right, select Wallets, choose Create New Wallet, then select Bitcoin) and IMMEDIATELY move your BTC there. New (24-word) BTC wallets from Cake are secure", - "do_not_show_me": "Do not show me this again", - "unspent_coins_title": "Unspent coins", - "unspent_coins_details_title": "Unspent coins details", - "freeze": "Freeze", - "frozen": "Frozen", - "coin_control": "Coin control (optional)", - "address_detected": "Address detected", - "address_from_domain": "This address is from ${domain} on Unstoppable Domains", - "add_receiver": "Add another receiver (optional)", - "manage_yats": "Manage Yats", - "yat_alert_title": "Send and receive crypto more easily with Yat", - "yat_alert_content": "Cake Wallet users can now send and receive all their favorite currencies with a one-of-a-kind emoji-based username.", - "get_your_yat": "Get your Yat", - "connect_an_existing_yat": "Connect an existing Yat", - "connect_yats": "Connect Yats", - "yat_address": "Yat Address", - "yat": "Yat", - "address_from_yat": "This address is from ${emoji} on Yat", - "yat_error": "Yat error", - "yat_error_content": "No addresses linked with this Yat. Try another Yat", - "choose_address": "\n\nPlease choose the address:", - "yat_popup_title": "Your wallet address can be emojified.", - "yat_popup_content": "You can now send and receive crypto in Cake Wallet with your Yat - a short, emoji-based username. Manage Yats at any time on the settings screen", - "second_intro_title": "One emoji address to rule them all", - "second_intro_content": "Your Yat is a single unique emoji address that replaces all of your long hexadecimal addresses for all of your currencies.", - "third_intro_title": "Yat plays nicely with others", - "third_intro_content": "Yats live outside of Cake Wallet, too. Any wallet address on earth can be replaced with a Yat!", - "learn_more": "Learn More", - "search": "Search", - "search_language": "Search language", - "search_currency": "Search currency", - "new_template": "New Template", - "electrum_address_disclaimer": "We generate new addresses each time you use one, but previous addresses continue to work", - "wallet_name_exists": "A wallet with that name already exists. Please choose a different name or rename the other wallet first.", - "market_place": "Marketplace", - "cake_pay_title": "Cake Pay Gift Cards", - "cake_pay_subtitle": "Buy discounted gift cards (USA only)", - "cake_pay_web_cards_title": "Cake Pay Web Cards", - "cake_pay_web_cards_subtitle": "Buy worldwide prepaid cards and gift cards", - "about_cake_pay": "Cake Pay allows you to easily buy gift cards with virtual assets, spendable instantly at over 150,000 merchants in the United States.", - "cake_pay_account_note": "Sign up with just an email address to see and purchase cards. Some are even available at a discount!", - "already_have_account": "Already have an account?", - "create_account": "Create Account", - "privacy_policy": "Privacy Policy", - "welcome_to_cakepay": "Welcome to Cake Pay!", - "sign_up": "Sign Up", - "forgot_password": "Forgot Password", - "reset_password": "Reset Password", - "gift_cards": "Gift Cards", - "setup_your_debit_card": "Set up your debit card", - "no_id_required": "No ID required. Top up and spend anywhere", - "how_to_use_card": "How to use this card", - "purchase_gift_card": "Purchase Gift Card", - "verification": "Verification", - "fill_code": "Please fill in the verification code provided to your email", - "didnt_get_code": "Didn't get code?", - "resend_code": "Please resend it", - "debit_card": "Debit Card", - "cakepay_prepaid_card": "CakePay Prepaid Debit Card", - "no_id_needed": "No ID needed!", - "frequently_asked_questions": "Frequently asked questions", - "debit_card_terms": "The storage and usage of your payment card number (and credentials corresponding to your payment card number) in this digital wallet are subject to the Terms and Conditions of the applicable cardholder agreement with the payment card issuer, as in effect from time to time.", - "please_reference_document": "Please reference the documents below for more information.", - "cardholder_agreement": "Cardholder Agreement", - "e_sign_consent": "E-Sign Consent", - "agree_and_continue": "Agree & Continue", - "email_address": "Email Address", - "agree_to": "By creating account you agree to the ", - "and": "and", - "enter_code": "Enter code", - "congratulations": "Congratulations!", - "you_now_have_debit_card": "You now have a debit card", - "min_amount": "Min: ${value}", - "max_amount": "Max: ${value}", - "enter_amount": "Enter Amount", - "billing_address_info": "If asked for a billing address, provide your shipping address", - "order_physical_card": "Order Physical Card", - "add_value": "Add value", - "activate": "Activate", - "get_a": "Get a ", - "digital_and_physical_card": " digital and physical prepaid debit card", - "get_card_note": " that you can reload with digital currencies. No additional information needed!", - "signup_for_card_accept_terms": "Sign up for the card and accept the terms.", - "add_fund_to_card": "Add prepaid funds to the cards (up to ${value})", - "use_card_info_two": "Funds are converted to USD when they're held in the prepaid account, not in digital currencies.", - "use_card_info_three": "Use the digital card online or with contactless payment methods.", - "optionally_order_card": "Optionally order a physical card.", - "hide_details": "Hide Details", - "show_details": "Show Details", - "upto": "up to ${value}", - "discount": "Save ${value}%", - "gift_card_amount": "Gift Card Amount", - "bill_amount": "Bill Amount", - "you_pay": "You Pay", - "tip": "Tip:", - "custom": "Custom", - "by_cake_pay": "by Cake Pay", - "expires": "Expires", - "mm": "MM", - "yy": "YY", - "online": "Online", - "offline": "Offline", - "gift_card_number": "Gift card number", - "pin_number": "PIN number", - "total_saving": "Total Savings", - "last_30_days": "Last 30 days", - "avg_savings": "Avg. Savings", - "view_all": "View all", - "active_cards": "Active cards", - "delete_account": "Delete Account", - "cards": "Cards", - "active": "Active", - "redeemed": "Redeemed", - "gift_card_balance_note": "Gift cards with a balance remaining will appear here", - "gift_card_redeemed_note": "Gift cards you’ve redeemed will appear here", - "logout": "Logout", - "add_tip": "Add Tip", - "percentageOf": "of ${amount}", - "is_percentage": "is", - "search_category": "Search category", - "mark_as_redeemed": "Mark As Redeemed", - "more_options": "More Options", - "awaiting_payment_confirmation": "Awaiting Payment Confirmation", - "transaction_sent_notice": "If the screen doesn’t proceed after 1 minute, check a block explorer and your email.", - "agree": "Agree", - "in_store": "In Store", - "generating_gift_card": "Generating Gift Card", - "payment_was_received": "Your payment was received.", - "proceed_after_one_minute": "If the screen doesn’t proceed after 1 minute, check your email.", - "order_id": "Order ID", - "gift_card_is_generated": "Gift Card is generated", - "open_gift_card": "Open Gift Card", - "contact_support": "Contact Support", - "gift_cards_unavailable": "Gift cards are available for purchase only with Monero, Bitcoin, and Litecoin at this time", - "background_sync_mode": "Background sync mode", - "sync_all_wallets": "Sync all wallets", - "introducing_cake_pay": "Introducing Cake Pay!", - "cake_pay_learn_more": "Instantly purchase and redeem gift cards in the app!\nSwipe left to right to learn more.", - "automatic": "Automatic", - "fixed_pair_not_supported": "This fixed pair is not supported with the selected exchanges", - "variable_pair_not_supported": "This variable pair is not supported with the selected exchanges", - "none_of_selected_providers_can_exchange": "None of the selected providers can make this exchange", - "choose_one": "Choose one", - "choose_from_available_options": "Choose from the available options:", - "custom_redeem_amount": "Custom Redeem Amount", - "add_custom_redemption": "Add Custom Redemption", - "remaining": "remaining", - "delete_wallet": "Delete wallet", - "delete_wallet_confirm_message": "Are you sure that you want to delete ${wallet_name} wallet?", - "low_fee": "Low fee", - "low_fee_alert": "You currently are using a low network fee priority. This could cause long waits, different rates, or canceled trades. We recommend setting a higher fee for a better experience.", - "ignor": "Ignore", - "use_suggested": "Use Suggested", - "do_not_share_warning_text": "Do not share these with anyone else, including support.\n\nYour funds can and will be stolen!", - "help": "help", - "all_transactions": "All transactions", - "all_trades": "All trades", - "connection_sync": "Connection and sync", - "security_and_backup": "Security and backup", - "create_backup": "Create backup", - "privacy_settings": "Privacy settings", - "privacy": "Privacy", - "display_settings": "Display settings", - "other_settings": "Other settings", + "authenticated": "Authenticated", + "authentication": "Authentication", "auto_generate_subaddresses": "Auto generate subaddresses", - "require_pin_after": "Require PIN after", - "always": "Always", - "minutes_to_pin_code": "${minute} minutes", - "disable_exchange": "Disable exchange", - "advanced_settings": "Advanced Settings", - "settings_can_be_changed_later": "These settings can be changed later in the app settings", - "add_custom_node": "Add New Custom Node", - "disable_fiat": "Disable fiat", - "fiat_api": "Fiat API", - "disabled": "Disabled", - "enabled": "Enabled", - "tor_only": "Tor only", - "unmatched_currencies": "Your current wallet's currency does not match that of the scanned QR", - "orbot_running_alert": "Please make sure Orbot is running prior to connecting to this node.", - "contact_list_contacts": "Contacts", - "contact_list_wallets": "My Wallets", - "bitcoin_payments_require_1_confirmation": "Bitcoin payments require 1 confirmation, which can take 20 minutes or longer. Thanks for your patience! You will be emailed when the payment is confirmed.", - "send_to_this_address": "Send ${currency} ${tag}to this address", - "arrive_in_this_address": "${currency} ${tag}will arrive in this address", - "do_not_send": "Don't send", - "error_dialog_content": "Oops, we got some error.\n\nPlease send the crash report to our support team to make the application better.", - "scan_qr_code": "Scan QR code", - "cold_or_recover_wallet": "Add a cold wallet or recover a paper wallet", - "please_wait": "Please wait", - "sweeping_wallet": "Sweeping wallet", - "sweeping_wallet_alert": "This shouldn’t take long. DO NOT LEAVE THIS SCREEN OR THE SWEPT FUNDS MAY BE LOST.", - "invoice_details": "Invoice details", - "donation_link_details": "Donation link details", - "anonpay_description": "Generate ${type}. The recipient can ${method} with any supported cryptocurrency, and you will receive funds in this wallet.", - "create_invoice": "Create invoice", - "create_donation_link": "Create donation link", - "optional_email_hint": "Optional payee notification email", - "optional_description": "Optional description", - "optional_name": "Optional recipient name", - "clearnet_link": "Clearnet link", - "onion_link": "Onion link", - "decimal_places_error": "Too many decimal places", - "edit_node": "Edit Node", - "settings": "Settings", - "sell_monero_com_alert_content": "Selling Monero is not supported yet", - "error_text_input_below_minimum_limit": "Amount is less than the minimum", - "error_text_input_above_maximum_limit": "Amount is more than the maximum", - "show_market_place": "Show Marketplace", - "prevent_screenshots": "Prevent screenshots and screen recording", - "profile": "Profile", - "close": "Close", - "modify_2fa": "Modify Cake 2FA", - "disable_cake_2fa": "Disable Cake 2FA", - "question_to_disable_2fa": "Are you sure that you want to disable Cake 2FA? A 2FA code will no longer be needed to access the wallet and certain functions.", - "disable": "Disable", - "setup_2fa": "Setup Cake 2FA", - "verify_with_2fa": "Verify with Cake 2FA", - "totp_code": "TOTP Code", - "please_fill_totp": "Please fill in the 8-digit code present on your other device", - "totp_2fa_success": "Success! Cake 2FA enabled for this wallet. Remember to save your mnemonic seed in case you lose wallet access.", - "totp_verification_success": "Verification Successful!", - "totp_2fa_failure": "Incorrect code. Please try a different code or generate a new secret key. Use a compatible 2FA app that supports 8-digit codes and SHA512.", - "enter_totp_code": "Please enter the TOTP Code.", - "scan_qr_on_device": "Scan this QR code on another device", - "add_secret_code": "Or, add this secret code to an authenticator app", - "totp_secret_code": "TOTP Secret Code", - "setup_2fa_text": "Cake 2FA works using TOTP as the second authentication factor.\n\nCake 2FA's TOTP requires SHA-512 and 8 digit support; this provides increased security. More information and supported apps can be found in the guide.", - "setup_warning_2fa_text": "Cake 2FA is a second authentication for certain actions in the wallet. It is NOT as secure as cold storage.\n\nIf you lose access to your 2FA app or TOTP keys, you WILL lose access to this wallet. You will need to restore your wallet from the mnemonic seed.\n\nCake support will be unable to assist you if you lose access to your 2FA or mnemonic seeds.\nBefore using Cake 2FA, we recommend reading through the guide.", - "setup_totp_recommended": "Setup TOTP", - "disable_buy": "Disable buy action", - "disable_sell": "Disable sell action", - "cake_2fa_preset": "Cake 2FA Preset", - "monero_dark_theme": "Monero Dark Theme", + "automatic": "Automatic", + "available_balance": "Available Balance", + "available_balance_description": "The “Available Balance” or “Confirmed Balance” are funds that can be spent immediately. If funds appear in the lower balance but not the top balance, then you must wait a few minutes for the incoming funds to get more network confirmations. After they get more confirmations, they will be spendable.", + "avg_savings": "Avg. Savings", + "awaitDAppProcessing": "Kindly wait for the dApp to finish processing.", + "awaiting_payment_confirmation": "Awaiting Payment Confirmation", + "background_sync_mode": "Background sync mode", + "backup": "Backup", + "backup_file": "Backup file", + "backup_password": "Backup password", + "balance_page": "Balance Page", + "bill_amount": "Bill Amount", + "billing_address_info": "If asked for a billing address, provide your shipping address", + "biometric_auth_reason": "Scan your fingerprint to authenticate", "bitcoin_dark_theme": "Bitcoin Dark Theme", "bitcoin_light_theme": "Bitcoin Light Theme", - "high_contrast_theme": "High Contrast Theme", - "matrix_green_dark_theme": "Matrix Green Dark Theme", - "monero_light_theme": "Monero Light Theme", - "narrow": "Narrow", - "normal": "Normal", - "aggressive": "Aggressive", - "require_for_assessing_wallet": "Require for accessing wallet", - "require_for_sends_to_non_contacts": "Require for sends to non-contacts", - "require_for_sends_to_contacts": "Require for sends to contacts", - "require_for_sends_to_internal_wallets": "Require for sends to internal wallets", - "require_for_exchanges_to_internal_wallets": "Require for exchanges to internal wallets", - "require_for_adding_contacts": "Require for adding contacts", - "require_for_creating_new_wallets": "Require for creating new wallets", - "require_for_all_security_and_backup_settings": "Require for all security and backup settings", - "available_balance_description": "The “Available Balance” or “Confirmed Balance” are funds that can be spent immediately. If funds appear in the lower balance but not the top balance, then you must wait a few minutes for the incoming funds to get more network confirmations. After they get more confirmations, they will be spendable.", - "syncing_wallet_alert_title": "Your wallet is syncing", - "syncing_wallet_alert_content": "Your balance and transaction list may not be complete until it says “SYNCHRONIZED” at the top. Click/tap to learn more.", - "home_screen_settings": "Home screen settings", - "sort_by": "Sort by", - "search_add_token": "Search / Add token", - "edit_token": "Edit token", - "warning": "Warning", - "add_token_warning": "Do not edit or add tokens as instructed by scammers.\nAlways confirm token addresses with reputable sources!", - "add_token_disclaimer_check": "I have confirmed the token contract address and information using a reputable source. Adding malicious or incorrect information can result in a loss of funds.", - "token_contract_address": "Token contract address", - "token_name": "Token name eg: Tether", - "token_symbol": "Token symbol eg: USDT", - "token_decimal": "Token decimal", - "field_required": "This field is required", - "pin_at_top": "Pin ${token} at top", - "invalid_input": "Invalid input", - "fiat_balance": "Fiat Balance", - "gross_balance": "Gross Balance", - "alphabetical": "Alphabetical", - "generate_name": "Generate Name", - "balance_page": "Balance Page", - "share": "Share", - "slidable": "Slidable", - "manage_nodes": "Manage nodes", - "etherscan_history": "Etherscan history", - "template_name": "Template Name", + "bitcoin_payments_require_1_confirmation": "Bitcoin payments require 1 confirmation, which can take 20 minutes or longer. Thanks for your patience! You will be emailed when the payment is confirmed.", + "Blocks_remaining": "${status} Blocks Remaining", + "bright_theme": "Bright", + "buy": "Buy", + "buy_alert_content": "Currently we only support the purchase of Bitcoin, Ethereum, Litecoin, and Monero. Please create or switch to your Bitcoin, Ethereum, Litecoin, or Monero wallet.", + "buy_bitcoin": "Buy Bitcoin", + "buy_provider_unavailable": "Provider currently unavailable.", + "buy_with": "Buy with", + "by_cake_pay": "by Cake Pay", + "cake_2fa_preset": "Cake 2FA Preset", + "cake_pay_account_note": "Sign up with just an email address to see and purchase cards. Some are even available at a discount!", + "cake_pay_learn_more": "Instantly purchase and redeem gift cards in the app!\nSwipe left to right to learn more.", + "cake_pay_subtitle": "Buy discounted gift cards (USA only)", + "cake_pay_title": "Cake Pay Gift Cards", + "cake_pay_web_cards_subtitle": "Buy worldwide prepaid cards and gift cards", + "cake_pay_web_cards_title": "Cake Pay Web Cards", + "cake_wallet": "Cake Wallet", + "cakepay_prepaid_card": "CakePay Prepaid Debit Card", + "camera_consent": "Your camera will be used to capture an image for identification purposes by ${provider}. Please check their Privacy Policy for details.", + "camera_permission_is_required": "Camera permission is required. \nPlease enable it from app settings.", + "cancel": "Cancel", + "card_address": "Address:", + "cardholder_agreement": "Cardholder Agreement", + "cards": "Cards", + "chains": "Chains", + "change": "Change", + "change_backup_password_alert": "Your previous backup files will be not available to import with new backup password. New backup password will be used only for new backup files. Are you sure that you want to change backup password?", + "change_currency": "Change Currency", + "change_current_node": "Are you sure to change current node to ${node}?", + "change_current_node_title": "Change current node", + "change_exchange_provider": "Change Exchange Provider", + "change_language": "Change language", + "change_language_to": "Change language to ${language}?", + "change_password": "Change password", "change_rep": "Change Representative", "change_rep_message": "Are you sure that you want to change representatives?", - "unsupported_asset": "We don't support this action for this asset. Please create or switch to a wallet of a supported asset type.", - "manage_pow_nodes": "Manage PoW nodes", - "support_title_live_chat": "Live support", - "support_description_live_chat": "Free and fast! Trained support representatives are available to assist", - "support_title_guides": "Cake Wallet guides", - "support_description_guides": "Documentation and support for common issues", - "support_title_other_links": "Other support links", - "support_description_other_links": "Join our communities or reach us or our partners through other methods", + "change_rep_successful": "Successfully changed representative", + "change_wallet_alert_content": "Do you want to change current wallet to ${wallet_name}?", + "change_wallet_alert_title": "Change current wallet", + "choose_account": "Choose account", + "choose_address": "\n\nPlease choose the address:", "choose_derivation": "Choose Wallet Derivation", - "new_first_wallet_text": "Keep your crypto safe, piece of cake", - "select_destination": "Please select destination for the backup file.", - "save_to_downloads": "Save to Downloads", - "select_buy_provider_notice": "Select a buy provider above. You can skip this screen by setting your default buy provider in app settings.", - "onramper_option_description": "Quickly buy crypto with many payment methods. Available in most countries. Spreads and fees vary.", + "choose_from_available_options": "Choose from the available options:", + "choose_one": "Choose one", + "choose_relay": "Please choose a relay to use", + "choose_wallet_currency": "Please choose wallet currency:", + "clear": "Clear", + "clearnet_link": "Clearnet link", + "close": "Close", + "coin_control": "Coin control (optional)", + "cold_or_recover_wallet": "Add a cold wallet or recover a paper wallet", + "color_theme": "Color theme", + "commit_transaction_amount_fee": "Commit transaction\nAmount: ${amount}\nFee: ${fee}", + "confirm": "Confirm", + "confirm_delete_template": "This action will delete this template. Do you wish to continue?", + "confirm_delete_wallet": "This action will delete this wallet. Do you wish to continue?", + "confirm_sending": "Confirm sending", + "confirmations": "Confirmations", + "confirmed": "Confirmed Balance", + "confirmed_tx": "Confirmed", + "congratulations": "Congratulations!", + "connect_an_existing_yat": "Connect an existing Yat", + "connect_yats": "Connect Yats", + "connection_sync": "Connection and sync", + "connectWalletPrompt": "Connect your wallet with WalletConnect to make transactions", + "contact": "Contact", + "contact_list_contacts": "Contacts", + "contact_list_wallets": "My Wallets", + "contact_name": "Contact Name", + "contact_support": "Contact Support", + "continue_text": "Continue", + "contractName": "Contract Name", + "contractSymbol": "Contract Symbol", + "copied_key_to_clipboard": "Copied ${key} to Clipboard", + "copied_to_clipboard": "Copied to Clipboard", + "copy": "Copy", + "copy_address": "Copy Address", + "copy_id": "Copy ID", + "copyWalletConnectLink": "Copy the WalletConnect link from dApp and paste here", + "create_account": "Create Account", + "create_backup": "Create backup", + "create_donation_link": "Create donation link", + "create_invoice": "Create invoice", + "create_new": "Create New Wallet", + "create_new_account": "Create new account", + "creating_new_wallet": "Creating new wallet", + "creating_new_wallet_error": "Error: ${description}", + "creation_date": "Creation Date", + "custom": "Custom", + "custom_drag": "Custom (Hold and Drag)", + "custom_redeem_amount": "Custom Redeem Amount", + "dark_theme": "Dark", + "debit_card": "Debit Card", + "debit_card_terms": "The storage and usage of your payment card number (and credentials corresponding to your payment card number) in this digital wallet are subject to the Terms and Conditions of the applicable cardholder agreement with the payment card issuer, as in effect from time to time.", + "decimal_places_error": "Too many decimal places", "default_buy_provider": "Default Buy Provider", - "ask_each_time": "Ask each time", - "robinhood_option_description": "Buy and transfer instantly using your debit card, bank account, or Robinhood balance. USA only.", - "buy_provider_unavailable": "Provider currently unavailable.", - "signTransaction": "Sign Transaction", + "default_sell_provider": "Default Sell Provider", + "delete": "Delete", + "delete_account": "Delete Account", + "delete_wallet": "Delete wallet", + "delete_wallet_confirm_message": "Are you sure that you want to delete ${wallet_name} wallet?", + "deleteConnectionConfirmationPrompt": "Are you sure that you want to delete the connection to", + "descending": "Descending", + "description": "Description", + "destination_tag": "Destination tag:", + "dfx_option_description": "Buy crypto with EUR & CHF. Up to 990€ without additional KYC. For retail and corporate customers in Europe", + "didnt_get_code": "Didn't get code?", + "digit_pin": "-digit PIN", + "digital_and_physical_card": " digital and physical prepaid debit card", + "disable": "Disable", + "disable_buy": "Disable buy action", + "disable_cake_2fa": "Disable Cake 2FA", + "disable_exchange": "Disable exchange", + "disable_fiat": "Disable fiat", + "disable_sell": "Disable sell action", + "disabled": "Disabled", + "discount": "Save ${value}%", + "display_settings": "Display settings", + "displayable": "Displayable", + "do_not_have_enough_gas_asset": "You do not have enough ${currency} to make a transaction with the current blockchain network conditions. You need more ${currency} to pay blockchain network fees, even if you are sending a different asset.", + "do_not_send": "Don't send", + "do_not_share_warning_text": "Do not share these with anyone else, including support.\n\nYour funds can and will be stolen!", + "do_not_show_me": "Do not show me this again", + "domain_looks_up": "Domain lookups", + "donation_link_details": "Donation link details", + "e_sign_consent": "E-Sign Consent", + "edit": "Edit", + "edit_backup_password": "Edit Backup Password", + "edit_node": "Edit Node", + "edit_token": "Edit token", + "electrum_address_disclaimer": "We generate new addresses each time you use one, but previous addresses continue to work", + "email_address": "Email Address", + "enabled": "Enabled", + "enter_amount": "Enter Amount", + "enter_backup_password": "Enter backup password here", + "enter_code": "Enter code", + "enter_seed_phrase": "Enter your seed phrase", + "enter_totp_code": "Please enter the TOTP Code.", + "enter_your_note": "Enter your note…", + "enter_your_pin": "Enter your PIN", + "enter_your_pin_again": "Enter your pin again", + "enterTokenID": "Enter the token ID", + "enterWalletConnectURI": "Enter WalletConnect URI", + "error": "Error", + "error_dialog_content": "Oops, we got some error.\n\nPlease send the crash report to our support team to make the application better.", + "error_text_account_name": "Account name can only contain letters, numbers\nand must be between 1 and 15 characters long", + "error_text_address": "Wallet address must correspond to the type\nof cryptocurrency", + "error_text_amount": "Amount can only contain numbers", + "error_text_contact_name": "Contact name can't contain ` , ' \" symbols\nand must be between 1 and 32 characters long", + "error_text_crypto_currency": "The number of fraction digits\nmust be less or equal to 12", + "error_text_fiat": "Value of amount can't exceed available balance.\nThe number of fraction digits must be less or equal to 2", + "error_text_input_above_maximum_limit": "Amount is more than the maximum", + "error_text_input_below_minimum_limit": "Amount is less than the minimum", + "error_text_keys": "Wallet keys can only contain 64 chars in hex", + "error_text_limits_loading_failed": "Trade for ${provider} is not created. Limits loading failed", + "error_text_maximum_limit": "Trade for ${provider} is not created. Amount is more then maximum: ${max} ${currency}", + "error_text_minimal_limit": "Trade for ${provider} is not created. Amount is less then minimal: ${min} ${currency}", + "error_text_node_address": "Please enter a iPv4 address", + "error_text_node_port": "Node port can only contain numbers between 0 and 65535", + "error_text_node_proxy_address": "Please enter :, for example 127.0.0.1:9050", + "error_text_payment_id": "Payment ID can only contain from 16 to 64 chars in hex", + "error_text_subaddress_name": "Subaddress name can't contain ` , ' \" symbols\nand must be between 1 and 20 characters long", + "error_text_template": "Template name and address can't contain ` , ' \" symbols\nand must be between 1 and 106 characters long", + "error_text_wallet_name": "Wallet name can only contain letters, numbers, _ - symbols \nand must be between 1 and 33 characters long", + "error_text_xmr": "XMR value can't exceed available balance.\nThe number of fraction digits must be less or equal to 12", "errorGettingCredentials": "Failed: Error while getting credentials", "errorSigningTransaction": "An error has occured while signing transaction", - "pairingInvalidEvent": "Pairing Invalid Event", - "chains": "Chains", - "methods": "Methods", - "events": "Events", - "reject": "Reject", - "approve": "Approve", - "expiresOn": "Expires on", - "walletConnect": "WalletConnect", - "nullURIError": "URI is null", - "connectWalletPrompt": "Connect your wallet with WalletConnect to make transactions", - "newConnection": "New Connection", - "activeConnectionsPrompt": "Active connections will appear here", - "deleteConnectionConfirmationPrompt": "Are you sure that you want to delete the connection to", + "estimated": "Estimated", + "etherscan_history": "Etherscan history", "event": "Event", - "successful": "Successful", - "wouoldLikeToConnect": "would like to connect", - "message": "Message", - "do_not_have_enough_gas_asset": "You do not have enough ${currency} to make a transaction with the current blockchain network conditions. You need more ${currency} to pay blockchain network fees, even if you are sending a different asset.", - "totp_auth_url": "TOTP AUTH URL", - "awaitDAppProcessing": "Kindly wait for the dApp to finish processing.", - "copyWalletConnectLink": "Copy the WalletConnect link from dApp and paste here", - "enterWalletConnectURI": "Enter WalletConnect URI", - "seed_key": "Seed key", - "enter_seed_phrase": "Enter your seed phrase", - "change_rep_successful": "Successfully changed representative", - "add_contact": "Add contact", + "events": "Events", + "exchange": "Exchange", + "exchange_incorrect_current_wallet_for_xmr": "If you want to exchange XMR from your Cake Wallet Monero balance, please switch to your Monero wallet first.", + "exchange_new_template": "New template", "exchange_provider_unsupported": "${providerName} is no longer supported!", - "domain_looks_up": "Domain lookups", - "require_for_exchanges_to_external_wallets": "Require for exchanges to external wallets", - "camera_permission_is_required": "Camera permission is required. \nPlease enable it from app settings.", - "switchToETHWallet": "Please switch to an Ethereum wallet and try again", - "order_by": "Order by", - "creation_date": "Creation Date", + "exchange_result_confirm": "By pressing confirm, you will be sending ${fetchingLabel} ${from} from your wallet called ${walletName} to the address shown below. Or you can send from your external wallet to the below address/QR code.\n\nPlease press confirm to continue or go back to change the amounts.", + "exchange_result_description": "You must send a minimum of ${fetchingLabel} ${from} to the address shown on the next page. If you send an amount lower than ${fetchingLabel} ${from} it may not get converted and it may not be refunded.", + "exchange_result_write_down_ID": "*Please copy or write down your ID shown above.", + "exchange_result_write_down_trade_id": "Please copy or write down the trade ID to continue.", + "exchange_sync_alert_content": "Please wait until your wallet is synchronized", + "expired": "Expired", + "expires": "Expires", + "expiresOn": "Expires on", + "export_backup": "Export backup", + "extra_id": "Extra ID:", + "extracted_address_content": "You will be sending funds to\n${recipient_name}", + "failed_authentication": "Failed authentication. ${state_error}", + "faq": "FAQ", + "fetching": "Fetching", + "fiat_api": "Fiat API", + "fiat_balance": "Fiat Balance", + "field_required": "This field is required", + "fill_code": "Please fill in the verification code provided to your email", + "filter_by": "Filter by", + "first_wallet_text": "Awesome wallet for Monero, Bitcoin, Ethereum, Litecoin, and Haven", + "fixed_pair_not_supported": "This fixed pair is not supported with the selected exchanges", + "fixed_rate": "Fixed rate", + "fixed_rate_alert": "You will be able to enter receive amount when fixed rate mode is checked. Do you want to switch to fixed rate mode?", + "forgot_password": "Forgot Password", + "freeze": "Freeze", + "frequently_asked_questions": "Frequently asked questions", + "frozen": "Frozen", + "full_balance": "Full Balance", + "generate_name": "Generate Name", + "generating_gift_card": "Generating Gift Card", + "get_a": "Get a ", + "get_card_note": " that you can reload with digital currencies. No additional information needed!", + "get_your_yat": "Get your Yat", + "gift_card_amount": "Gift Card Amount", + "gift_card_balance_note": "Gift cards with a balance remaining will appear here", + "gift_card_is_generated": "Gift Card is generated", + "gift_card_number": "Gift card number", + "gift_card_redeemed_note": "Gift cards you’ve redeemed will appear here", + "gift_cards": "Gift Cards", + "gift_cards_unavailable": "Gift cards are available for purchase only with Monero, Bitcoin, and Litecoin at this time", + "got_it": "Got it", + "gross_balance": "Gross Balance", "group_by_type": "Group by type", - "importNFTs": "Import NFTs", - "noNFTYet": "No NFTs yet", - "address": "Address", - "enterTokenID": "Enter the token ID", - "tokenID": "ID", - "name": "Name", - "symbol": "Symbol", - "seed_phrase_length": "Seed phrase length", - "unavailable_balance": "Unavailable balance", - "unavailable_balance_description": "Unavailable Balance: This total includes funds that are locked in pending transactions and those you have actively frozen in your coin control settings. Locked balances will become available once their respective transactions are completed, while frozen balances remain inaccessible for transactions until you decide to unfreeze them.", - "unspent_change": "Change", - "tor_connection": "Tor connection", + "haven_app": "Haven by Cake Wallet", + "haven_app_wallet_text": "Awesome wallet for Haven", + "help": "help", + "hidden_balance": "Hidden Balance", + "hide_details": "Hide Details", + "high_contrast_theme": "High Contrast Theme", + "home_screen_settings": "Home screen settings", "how_to_use": "How to use", + "how_to_use_card": "How to use this card", + "id": "ID: ", + "ignor": "Ignore", + "import": "Import", + "importNFTs": "Import NFTs", + "in_store": "In Store", + "incoming": "Incoming", + "incorrect_seed": "The text entered is not valid.", + "introducing_cake_pay": "Introducing Cake Pay!", + "invalid_input": "Invalid input", + "invoice_details": "Invoice details", + "is_percentage": "is", + "last_30_days": "Last 30 days", + "learn_more": "Learn More", + "light_theme": "Light", + "loading_your_wallet": "Loading your wallet", + "login": "Login", + "logout": "Logout", + "low_fee": "Low fee", + "low_fee_alert": "You currently are using a low network fee priority. This could cause long waits, different rates, or canceled trades. We recommend setting a higher fee for a better experience.", + "manage_nodes": "Manage nodes", + "manage_pow_nodes": "Manage PoW nodes", + "manage_yats": "Manage Yats", + "mark_as_redeemed": "Mark As Redeemed", + "market_place": "Marketplace", + "matrix_green_dark_theme": "Matrix Green Dark Theme", + "max_amount": "Max: ${value}", + "max_value": "Max: ${value} ${currency}", + "memo": "Memo:", + "message": "Message", + "methods": "Methods", + "min_amount": "Min: ${value}", + "min_value": "Min: ${value} ${currency}", + "minutes_to_pin_code": "${minute} minutes", + "mm": "MM", + "modify_2fa": "Modify Cake 2FA", + "monero_com": "Monero.com by Cake Wallet", + "monero_com_wallet_text": "Awesome wallet for Monero", + "monero_dark_theme": "Monero Dark Theme", + "monero_light_theme": "Monero Light Theme", + "moonpay_alert_text": "Value of the amount must be more or equal to ${minAmount} ${fiatCurrency}", + "more_options": "More Options", + "name": "Name", + "narrow": "Narrow", + "new_first_wallet_text": "Keep your crypto safe, piece of cake", + "new_node_testing": "New node testing", + "new_subaddress_create": "Create", + "new_subaddress_label_name": "Label name", + "new_subaddress_title": "New address", + "new_template": "New Template", + "new_wallet": "New Wallet", + "newConnection": "New Connection", + "no_id_needed": "No ID needed!", + "no_id_required": "No ID required. Top up and spend anywhere", + "no_relay_on_domain": "There isn't a relay for user's domain or the relay is unavailable. Please choose a relay to use.", + "no_relays": "No relays", + "no_relays_message": "We found a Nostr NIP-05 record for this user, but it does not contain any relays. Please instruct the recipient to add relays to their Nostr record.", + "node_address": "Node Address", + "node_connection_failed": "Connection was failed", + "node_connection_successful": "Connection was successful", + "node_new": "New Node", + "node_port": "Node port", + "node_reset_settings_title": "Reset settings", + "node_test": "Test", + "nodes": "Nodes", + "nodes_list_reset_to_default_message": "Are you sure that you want to reset settings to default?", + "none_of_selected_providers_can_exchange": "None of the selected providers can make this exchange", + "noNFTYet": "No NFTs yet", + "normal": "Normal", + "note_optional": "Note (optional)", + "note_tap_to_change": "Note (tap to change)", + "nullURIError": "URI is null", + "offer_expires_in": "Offer expires in: ", + "offline": "Offline", + "ok": "OK", + "onion_link": "Onion link", + "online": "Online", + "onramper_option_description": "Quickly buy crypto with many payment methods. Available in most countries. Spreads and fees vary.", + "open_gift_card": "Open Gift Card", + "optional_description": "Optional description", + "optional_email_hint": "Optional payee notification email", + "optional_name": "Optional recipient name", + "optionally_order_card": "Optionally order a physical card.", + "orbot_running_alert": "Please make sure Orbot is running prior to connecting to this node.", + "order_by": "Order by", + "order_id": "Order ID", + "order_physical_card": "Order Physical Card", + "other_settings": "Other settings", + "outdated_electrum_wallet_description": "New Bitcoin wallets created in Cake now have a 24-word seed. It is mandatory that you create a new Bitcoin wallet and transfer all of your funds to the new 24-word wallet, and stop using wallets with a 12-word seed. Please do this immediately to secure your funds.", + "outdated_electrum_wallet_receive_warning": "If this wallet has a 12-word seed and was created in Cake, DO NOT deposit Bitcoin into this wallet. Any BTC transferred to this wallet may be lost. Create a new 24-word wallet (tap the menu at the top right, select Wallets, choose Create New Wallet, then select Bitcoin) and IMMEDIATELY move your BTC there. New (24-word) BTC wallets from Cake are secure", + "outgoing": "Outgoing", + "overwrite_amount": "Overwrite amount", + "pairingInvalidEvent": "Pairing Invalid Event", + "password": "Password", + "paste": "Paste", + "pause_wallet_creation": "Ability to create Haven Wallet is currently paused.", + "payment_id": "Payment ID: ", + "payment_was_received": "Your payment was received.", + "pending": " (pending)", + "percentageOf": "of ${amount}", + "pin_at_top": "Pin ${token} at top", + "pin_is_incorrect": "PIN is incorrect", + "pin_number": "PIN number", + "placeholder_contacts": "Your contacts will be displayed here", + "placeholder_transactions": "Your transactions will be displayed here", + "please_fill_totp": "Please fill in the 8-digit code present on your other device", + "please_make_selection": "Please make a selection below to create or recover your wallet.", + "please_reference_document": "Please reference the documents below for more information.", + "please_select": "Please select:", + "please_select_backup_file": "Please select backup file and enter backup password.", + "please_try_to_connect_to_another_node": "Please try to connect to another node", + "please_wait": "Please wait", + "polygonscan_history": "PolygonScan history", + "powered_by": "Powered by ${title}", + "pre_seed_button_text": "I understand. Show me my seed", + "pre_seed_description": "On the next page you will see a series of ${words} words. This is your unique and private seed and it is the ONLY way to recover your wallet in case of loss or malfunction. It is YOUR responsibility to write it down and store it in a safe place outside of the Cake Wallet app.", + "pre_seed_title": "IMPORTANT", + "prevent_screenshots": "Prevent screenshots and screen recording", + "privacy": "Privacy", + "privacy_policy": "Privacy Policy", + "privacy_settings": "Privacy settings", + "private_key": "Private key", + "proceed_after_one_minute": "If the screen doesn’t proceed after 1 minute, check your email.", + "profile": "Profile", + "provider_error": "${provider} error", + "public_key": "Public key", + "purchase_gift_card": "Purchase Gift Card", + "qr_fullscreen": "Tap to open full screen QR code", + "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", + "question_to_disable_2fa": "Are you sure that you want to disable Cake 2FA? A 2FA code will no longer be needed to access the wallet and certain functions.", + "receivable_balance": "Receivable Balance", + "receive": "Receive", + "receive_amount": "Amount", + "received": "Received", + "recipient_address": "Recipient address", + "reconnect": "Reconnect", + "reconnect_alert_text": "Are you sure you want to reconnect?", + "reconnection": "Reconnection", + "redeemed": "Redeemed", + "refund_address": "Refund address", + "reject": "Reject", + "remaining": "remaining", + "remove": "Remove", + "remove_node": "Remove node", + "remove_node_message": "Are you sure that you want to remove selected node?", + "rename": "Rename", + "require_for_adding_contacts": "Require for adding contacts", + "require_for_all_security_and_backup_settings": "Require for all security and backup settings", + "require_for_assessing_wallet": "Require for accessing wallet", + "require_for_creating_new_wallets": "Require for creating new wallets", + "require_for_exchanges_to_external_wallets": "Require for exchanges to external wallets", + "require_for_exchanges_to_internal_wallets": "Require for exchanges to internal wallets", + "require_for_sends_to_contacts": "Require for sends to contacts", + "require_for_sends_to_internal_wallets": "Require for sends to internal wallets", + "require_for_sends_to_non_contacts": "Require for sends to non-contacts", + "require_pin_after": "Require PIN after", + "rescan": "Rescan", + "resend_code": "Please resend it", + "reset": "Reset", + "reset_password": "Reset Password", + "restore_active_seed": "Active seed", + "restore_address": "Address", + "restore_bitcoin_description_from_keys": "Restore your wallet from generated WIF string from your private keys", + "restore_bitcoin_description_from_seed": "Restore your wallet from 24 word combination code", + "restore_bitcoin_title_from_keys": "Restore from WIF", + "restore_description_from_backup": "You can restore the whole Cake Wallet app from your back-up file", + "restore_description_from_keys": "Restore your wallet from generated keystrokes saved from your private keys", + "restore_description_from_seed": "Restore your wallet from either the 25 word or 13 word combination code", + "restore_description_from_seed_keys": "Get back your wallet from seed/keys that you've saved to secure place", + "restore_from_date_or_blockheight": "Please enter a date a few days before you created this wallet. Or if you know the blockheight, please enter it instead", + "restore_from_seed_placeholder": "Please enter or paste your seed here", + "restore_new_seed": "New seed", + "restore_next": "Next", + "restore_recover": "Restore", + "restore_restore_wallet": "Restore Wallet", + "restore_seed_keys_restore": "Seed/Keys Restore", + "restore_spend_key_private": "Spend key (private)", + "restore_title_from_backup": "Restore from backup", + "restore_title_from_keys": "Restore from keys", + "restore_title_from_seed": "Restore from seed", + "restore_title_from_seed_keys": "Restore from seed/keys", + "restore_view_key_private": "View key (private)", + "restore_wallet": "Restore Wallet", + "restore_wallet_name": "Wallet name", + "restore_wallet_restore_description": "Wallet restore description", + "robinhood_option_description": "Buy and transfer instantly using your debit card, bank account, or Robinhood balance. USA only.", + "router_no_route": "No route defined for ${name}", + "save": "Save", + "save_backup_password": "Please make sure that you have saved your backup password. You will not be able to import your backup files without it.", + "save_backup_password_alert": "Save backup password", + "save_to_downloads": "Save to Downloads", + "saved_the_trade_id": "I've saved the trade ID", + "scan_qr_code": "Scan QR code", + "scan_qr_code_to_get_address": "Scan the QR code to get the address", + "scan_qr_on_device": "Scan this QR code on another device", + "search": "Search", + "search_add_token": "Search / Add token", + "search_category": "Search category", + "search_currency": "Search currency", + "search_language": "Search language", + "second_intro_content": "Your Yat is a single unique emoji address that replaces all of your long hexadecimal addresses for all of your currencies.", + "second_intro_title": "One emoji address to rule them all", + "security_and_backup": "Security and backup", + "seed_alert_back": "Go back", + "seed_alert_content": "The seed is the only way to recover your wallet. Have you written it down?", + "seed_alert_title": "Attention", + "seed_alert_yes": "Yes, I have", + "seed_choose": "Choose seed language", "seed_hex_form": "Wallet seed (hex form)", + "seed_key": "Seed key", + "seed_language": "Seed language", + "seed_language_chinese": "Chinese", + "seed_language_chinese_traditional": "Chinese (Traditional)", + "seed_language_czech": "Czech", + "seed_language_dutch": "Dutch", + "seed_language_english": "English", + "seed_language_french": "French", + "seed_language_german": "German", + "seed_language_italian": "Italian", + "seed_language_japanese": "Japanese", + "seed_language_korean": "Korean", + "seed_language_next": "Next", + "seed_language_portuguese": "Portuguese", + "seed_language_russian": "Russian", + "seed_language_spanish": "Spanish", + "seed_phrase_length": "Seed phrase length", + "seed_reminder": "Please write these down in case you lose or wipe your phone", + "seed_share": "Share seed", + "seed_title": "Seed", "seedtype": "Seedtype", "seedtype_legacy": "Legacy (25 words)", "seedtype_polyseed": "Polyseed (16 words)", - "seed_language_czech": "Czech", - "seed_language_korean": "Korean", - "seed_language_chinese_traditional": "Chinese (Traditional)", - "ascending": "Ascending", - "descending": "Descending", - "dfx_option_description": "Buy crypto with EUR & CHF. Up to 990€ without additional KYC. For retail and corporate customers in Europe", - "polygonscan_history": "PolygonScan history", - "wallet_seed_legacy": "Legacy wallet seed", - "default_sell_provider": "Default Sell Provider", + "select_backup_file": "Select backup file", + "select_buy_provider_notice": "Select a buy provider above. You can skip this screen by setting your default buy provider in app settings.", + "select_destination": "Please select destination for the backup file.", "select_sell_provider_notice": "Select a sell provider above. You can skip this screen by setting your default sell provider in app settings.", - "custom_drag": "Custom (Hold and Drag)", + "sell": "Sell", + "sell_alert_content": "We currently only support the sale of Bitcoin, Ethereum and Litecoin. Please create or switch to your Bitcoin, Ethereum or Litecoin wallet.", + "sell_monero_com_alert_content": "Selling Monero is not supported yet", + "send": "Send", + "send_address": "${cryptoCurrency} address", + "send_amount": "Amount:", + "send_creating_transaction": "Creating transaction", + "send_error_currency": "Currency can only contain numbers", + "send_error_minimum_value": "Minimum value of amount is 0.01", + "send_estimated_fee": "Estimated fee:", + "send_fee": "Fee:", + "send_name": "Name", + "send_new": "New", + "send_payment_id": "Payment ID (optional)", + "send_priority": "Currently the fee is set at ${transactionPriority} priority.\nTransaction priority can be adjusted in the settings", + "send_sending": "Sending...", + "send_success": "Your ${crypto} was successfully sent", + "send_templates": "Templates", + "send_title": "Send", + "send_to_this_address": "Send ${currency} ${tag}to this address", + "send_xmr": "Send XMR", + "send_your_wallet": "Your wallet", + "sending": "Sending", + "sent": "Sent", + "settings": "Settings", + "settings_all": "ALL", + "settings_allow_biometrical_authentication": "Allow biometrical authentication", + "settings_can_be_changed_later": "These settings can be changed later in the app settings", + "settings_change_language": "Change language", + "settings_change_pin": "Change PIN", + "settings_currency": "Currency", + "settings_current_node": "Current node", + "settings_dark_mode": "Dark mode", + "settings_display_balance": "Display balance", + "settings_display_on_dashboard_list": "Display on dashboard list", + "settings_fee_priority": "Fee priority", + "settings_nodes": "Nodes", + "settings_none": "None", + "settings_only_trades": "Only trades", + "settings_only_transactions": "Only transactions", + "settings_personal": "Personal", + "settings_save_recipient_address": "Save recipient address", + "settings_support": "Support", + "settings_terms_and_conditions": "Terms and Conditions", + "settings_title": "Settings", + "settings_trades": "Trades", + "settings_transactions": "Transactions", + "settings_wallets": "Wallets", + "setup_2fa": "Setup Cake 2FA", + "setup_2fa_text": "Cake 2FA works using TOTP as the second authentication factor.\n\nCake 2FA's TOTP requires SHA-512 and 8 digit support; this provides increased security. More information and supported apps can be found in the guide.", + "setup_pin": "Setup PIN", + "setup_successful": "Your PIN has been set up successfully!", + "setup_totp_recommended": "Setup TOTP", + "setup_warning_2fa_text": "Cake 2FA is a second authentication for certain actions in the wallet. It is NOT as secure as cold storage.\n\nIf you lose access to your 2FA app or TOTP keys, you WILL lose access to this wallet. You will need to restore your wallet from the mnemonic seed.\n\nCake support will be unable to assist you if you lose access to your 2FA or mnemonic seeds.\nBefore using Cake 2FA, we recommend reading through the guide.", + "setup_your_debit_card": "Set up your debit card", + "share": "Share", + "share_address": "Share address", + "show_details": "Show Details", + "show_keys": "Show seed/keys", + "show_market_place": "Show Marketplace", + "show_seed": "Show seed", + "sign_up": "Sign Up", + "signTransaction": "Sign Transaction", + "signup_for_card_accept_terms": "Sign up for the card and accept the terms.", + "slidable": "Slidable", + "sort_by": "Sort by", + "spend_key_private": "Spend key (private)", + "spend_key_public": "Spend key (public)", + "status": "Status: ", + "subaddress_title": "Subaddress list", + "subaddresses": "Subaddresses", + "submit_request": "submit a request", + "successful": "Successful", + "support_description_guides": "Documentation and support for common issues", + "support_description_live_chat": "Free and fast! Trained support representatives are available to assist", + "support_description_other_links": "Join our communities or reach us or our partners through other methods", + "support_title_guides": "Cake Wallet guides", + "support_title_live_chat": "Live support", + "support_title_other_links": "Other support links", + "sweeping_wallet": "Sweeping wallet", + "sweeping_wallet_alert": "This shouldn’t take long. DO NOT LEAVE THIS SCREEN OR THE SWEPT FUNDS MAY BE LOST.", + "switchToETHWallet": "Please switch to an Ethereum wallet and try again", "switchToEVMCompatibleWallet": "Please switch to an EVM compatible wallet and try again (Ethereum, Polygon)", - "receivable_balance": "Receivable Balance", - "confirmed_tx": "Confirmed", + "symbol": "Symbol", + "sync_all_wallets": "Sync all wallets", + "sync_status_attempting_sync": "ATTEMPTING SYNC", + "sync_status_connected": "CONNECTED", + "sync_status_connecting": "CONNECTING", + "sync_status_failed_connect": "DISCONNECTED", + "sync_status_not_connected": "NOT CONNECTED", + "sync_status_starting_sync": "STARTING SYNC", + "sync_status_syncronized": "SYNCHRONIZED", + "sync_status_syncronizing": "SYNCHRONIZING", + "syncing_wallet_alert_content": "Your balance and transaction list may not be complete until it says “SYNCHRONIZED” at the top. Click/tap to learn more.", + "syncing_wallet_alert_title": "Your wallet is syncing", + "template": "Template", + "template_name": "Template Name", + "third_intro_content": "Yats live outside of Cake Wallet, too. Any wallet address on earth can be replaced with a Yat!", + "third_intro_title": "Yat plays nicely with others", + "time": "${minutes}m ${seconds}s", + "tip": "Tip:", + "today": "Today", + "token_contract_address": "Token contract address", + "token_decimal": "Token decimal", + "token_name": "Token name eg: Tether", + "token_symbol": "Token symbol eg: USDT", + "tokenID": "ID", + "tor_connection": "Tor connection", + "tor_only": "Tor only", + "total_saving": "Total Savings", + "totp_2fa_failure": "Incorrect code. Please try a different code or generate a new secret key. Use a compatible 2FA app that supports 8-digit codes and SHA512.", + "totp_2fa_success": "Success! Cake 2FA enabled for this wallet. Remember to save your mnemonic seed in case you lose wallet access.", + "totp_auth_url": "TOTP AUTH URL", + "totp_code": "TOTP Code", + "totp_secret_code": "TOTP Secret Code", + "totp_verification_success": "Verification Successful!", + "trade_details_copied": "${title} copied to Clipboard", + "trade_details_created_at": "Created at", + "trade_details_fetching": "Fetching", + "trade_details_id": "ID", + "trade_details_pair": "Pair", + "trade_details_provider": "Provider", + "trade_details_state": "Status", + "trade_details_title": "Trade Details", + "trade_for_not_created": "Trade for ${title} is not created.", + "trade_history_title": "Trade history", + "trade_id": "Trade ID:", + "trade_id_not_found": "Trade ${tradeId} of ${title} not found.", + "trade_is_powered_by": "This trade is powered by ${provider}", + "trade_not_created": "Trade not created", + "trade_not_found": "Trade not found.", + "trade_state_btc_sent": "Btc sent", + "trade_state_complete": "Complete", + "trade_state_confirming": "Confirming", + "trade_state_created": "Created", + "trade_state_finished": "Finished", + "trade_state_paid": "Paid", + "trade_state_paid_unconfirmed": "Paid unconfirmed", + "trade_state_pending": "Pending", + "trade_state_timeout": "Timeout", + "trade_state_to_be_created": "To be created", + "trade_state_traded": "Traded", + "trade_state_trading": "Trading", + "trade_state_underpaid": "Underpaid", + "trade_state_unpaid": "Unpaid", + "trades": "Trades", + "transaction_details_amount": "Amount", + "transaction_details_copied": "${title} copied to Clipboard", + "transaction_details_date": "Date", + "transaction_details_fee": "Fee", + "transaction_details_height": "Height", + "transaction_details_recipient_address": "Recipient addresses", "transaction_details_source_address": "Source address", - "pause_wallet_creation": "Ability to create Haven Wallet is currently paused.", - "contractName": "Contract Name", - "contractSymbol": "Contract Symbol", - "description": "Description", - "camera_consent": "Your camera will be used to capture an image for identification purposes by ${provider}. Please check their Privacy Policy for details.", - "no_relays": "No relays", - "choose_relay": "Please choose a relay to use", - "no_relays_message": "We found a Nostr NIP-05 record for this user, but it does not contain any relays. Please instruct the recipient to add relays to their Nostr record.", - "no_relay_on_domain": "There isn't a relay for user's domain or the relay is unavailable. Please choose a relay to use." -} + "transaction_details_title": "Transaction Details", + "transaction_details_transaction_id": "Transaction ID", + "transaction_key": "Transaction Key", + "transaction_priority_fast": "Fast", + "transaction_priority_fastest": "Fastest", + "transaction_priority_medium": "Medium", + "transaction_priority_regular": "Regular", + "transaction_priority_slow": "Slow", + "transaction_sent": "Transaction sent!", + "transaction_sent_notice": "If the screen doesn’t proceed after 1 minute, check a block explorer and your email.", + "transactions": "Transactions", + "transactions_by_date": "Transactions by date", + "trusted": "Trusted", + "unavailable_balance": "Unavailable balance", + "unavailable_balance_description": "Unavailable Balance: This total includes funds that are locked in pending transactions and those you have actively frozen in your coin control settings. Locked balances will become available once their respective transactions are completed, while frozen balances remain inaccessible for transactions until you decide to unfreeze them.", + "unconfirmed": "Unconfirmed Balance", + "understand": "I understand", + "unmatched_currencies": "Your current wallet's currency does not match that of the scanned QR", + "unspent_change": "Change", + "unspent_coins_details_title": "Unspent coins details", + "unspent_coins_title": "Unspent coins", + "unsupported_asset": "We don't support this action for this asset. Please create or switch to a wallet of a supported asset type.", + "upto": "up to ${value}", + "use": "Switch to ", + "use_card_info_three": "Use the digital card online or with contactless payment methods.", + "use_card_info_two": "Funds are converted to USD when they're held in the prepaid account, not in digital currencies.", + "use_ssl": "Use SSL", + "use_suggested": "Use Suggested", + "variable_pair_not_supported": "This variable pair is not supported with the selected exchanges", + "verification": "Verification", + "verify_with_2fa": "Verify with Cake 2FA", + "version": "Version ${currentVersion}", + "view_all": "View all", + "view_in_block_explorer": "View in Block Explorer", + "view_key_private": "View key (private)", + "view_key_public": "View key (public)", + "view_transaction_on": "View Transaction on ", + "wallet_keys": "Wallet seed/keys", + "wallet_list_create_new_wallet": "Create New Wallet", + "wallet_list_edit_wallet": "Edit wallet", + "wallet_list_failed_to_load": "Failed to load ${wallet_name} wallet. ${error}", + "wallet_list_failed_to_remove": "Failed to remove ${wallet_name} wallet. ${error}", + "wallet_list_load_wallet": "Load wallet", + "wallet_list_loading_wallet": "Loading ${wallet_name} wallet", + "wallet_list_removing_wallet": "Removing ${wallet_name} wallet", + "wallet_list_restore_wallet": "Restore Wallet", + "wallet_list_title": "Monero Wallet", + "wallet_list_wallet_name": "Wallet name", + "wallet_menu": "Menu", + "wallet_name": "Wallet name", + "wallet_name_exists": "A wallet with that name already exists. Please choose a different name or rename the other wallet first.", + "wallet_restoration_store_incorrect_seed_length": "Incorrect seed length", + "wallet_seed": "Wallet seed", + "wallet_seed_legacy": "Legacy wallet seed", + "wallet_store_monero_wallet": "Monero Wallet", + "walletConnect": "WalletConnect", + "wallets": "Wallets", + "warning": "Warning", + "welcome": "Welcome to", + "welcome_to_cakepay": "Welcome to Cake Pay!", + "widgets_address": "Address", + "widgets_or": "or", + "widgets_restore_from_blockheight": "Restore from blockheight", + "widgets_restore_from_date": "Restore from date", + "widgets_seed": "Seed", + "wouoldLikeToConnect": "would like to connect", + "write_down_backup_password": "Please write down your backup password, which is used for the import of your backup files.", + "xlm_extra_info": "Please don’t forget to specify the Memo ID while sending the XLM transaction for the exchange", + "xmr_available_balance": "Available Balance", + "xmr_full_balance": "Full Balance", + "xmr_hidden": "Hidden", + "xmr_to_error": "XMR.TO error", + "xmr_to_error_description": "Invalid amount. Maximum limit 8 digits after the decimal point", + "xrp_extra_info": "Please don’t forget to specify the Destination Tag while sending the XRP transaction for the exchange", + "yat": "Yat", + "yat_address": "Yat Address", + "yat_alert_content": "Cake Wallet users can now send and receive all their favorite currencies with a one-of-a-kind emoji-based username.", + "yat_alert_title": "Send and receive crypto more easily with Yat", + "yat_error": "Yat error", + "yat_error_content": "No addresses linked with this Yat. Try another Yat", + "yat_popup_content": "You can now send and receive crypto in Cake Wallet with your Yat - a short, emoji-based username. Manage Yats at any time on the settings screen", + "yat_popup_title": "Your wallet address can be emojified.", + "yesterday": "Yesterday", + "you_now_have_debit_card": "You now have a debit card", + "you_pay": "You Pay", + "you_will_get": "Convert to", + "you_will_send": "Convert from", + "yy": "YY", + "zzzz": "zzzz" +} \ No newline at end of file diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 5f9a8e53b..4f54e0f87 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -1,779 +1,780 @@ { - "welcome": "Bienvenido", - "cake_wallet": "Cake Wallet", - "first_wallet_text": "Impresionante billetera para Monero, Bitcoin, Ethereum, Litecoin, y Haven", - "please_make_selection": "Seleccione a continuación para crear o recuperar su billetera.", - "create_new": "Crear nueva billetera", - "restore_wallet": "Restaurar billetera", - "monero_com": "Monero.com by Cake Wallet", - "monero_com_wallet_text": "Awesome wallet for Monero", - "haven_app": "Haven by Cake Wallet", - "haven_app_wallet_text": "Awesome wallet for Haven", - "accounts": "Cuentas", - "edit": "Editar", + "about_cake_pay": "Cake Pay le permite comprar fácilmente tarjetas de regalo con activos virtuales, gastables instantáneamente en más de 150 000 comerciantes en los Estados Unidos.", "account": "Cuenta", + "accounts": "Cuentas", + "accounts_subaddresses": "Cuentas y subdirecciones", + "activate": "Activar", + "active": "Activo", + "active_cards": "Tarjetas activas", + "activeConnectionsPrompt": "Las conexiones activas aparecerán aquí", "add": "Añadir", + "add_contact": "Agregar contacto", + "add_custom_node": "Agregar nuevo nodo personalizado", + "add_custom_redemption": "Agregar redención personalizada", + "add_fund_to_card": "Agregar fondos prepagos a las tarjetas (hasta ${value})", + "add_new_node": "Agregar nuevo nodo", + "add_new_word": "Agregar palabra nueva", + "add_receiver": "Agregar otro receptor (opcional)", + "add_secret_code": "O agregue este código secreto a una aplicación de autenticación", + "add_tip": "Agregar sugerencia", + "add_token_disclaimer_check": "He confirmado la dirección del contrato del token y la información utilizando una fuente confiable. Agregar información maliciosa o incorrecta puede resultar en una pérdida de fondos.", + "add_token_warning": "No edite ni agregue tokens según las instrucciones de los estafadores.\n¡Confirme siempre las direcciones de los tokens con fuentes acreditadas!", + "add_value": "Añadir valor", + "address": "DIRECCIÓN", "address_book": "Libreta de direcciones", - "contact": "Contacto", - "please_select": "Por favor seleccione:", - "cancel": "Cancelar", - "ok": "OK", - "contact_name": "Nombre de contacto", - "reset": "Reiniciar", - "save": "Salvar", + "address_book_menu": "Libreta de direcciones", + "address_detected": "Dirección detectada", + "address_from_domain": "Esta dirección es de ${domain} en Unstoppable Domains", + "address_from_yat": "Esta dirección es de ${emoji} en Yat", + "address_label": "Address label", "address_remove_contact": "Remover contacto", "address_remove_content": "¿Estás seguro de que quieres eliminar el contacto seleccionado?", - "authenticated": "Autenticados", - "authentication": "Autenticación", - "failed_authentication": "Autenticación fallida. ${state_error}", - "wallet_menu": "Menú de billetera", - "Blocks_remaining": "${status} Bloques restantes", - "please_try_to_connect_to_another_node": "Intenta conectarte a otro nodo", - "xmr_hidden": "Oculto", - "xmr_available_balance": "Saldo disponible", - "xmr_full_balance": "Balance total", - "send": "Enviar", - "receive": "Recibir", - "transactions": "Actas", - "incoming": "Entrante", - "outgoing": "Saliente", - "transactions_by_date": "Transacciones por fecha", - "trades": "Cambios", - "filter_by": "Filtrado por", - "today": "Hoy", - "yesterday": "Ayer", - "received": "Recibido", - "sent": "Expedido", - "pending": " (pendiente)", - "rescan": "Reescanear", - "reconnect": "Volver a conectar", - "wallets": "Carteras", - "show_seed": "Mostrar semilla", - "show_keys": "Mostrar semilla/claves", - "address_book_menu": "Libreta de direcciones", - "reconnection": "Reconexión", - "reconnect_alert_text": "¿Estás seguro de reconectar?", - "exchange": "Intercambiar", - "clear": "Claro", - "refund_address": "Dirección de reembolso", - "change_exchange_provider": "Cambiar proveedor de intercambio", - "you_will_send": "Convertir de", - "you_will_get": "Convertir a", - "amount_is_guaranteed": "La cantidad recibida está garantizada", - "amount_is_estimate": "El monto recibido es un estimado", - "powered_by": "Energizado por ${title}", - "error": "Error", - "estimated": "Estimado", - "min_value": "Min: ${value} ${currency}", - "max_value": "Max: ${value} ${currency}", - "change_currency": "Cambiar moneda", - "overwrite_amount": "Overwrite amount", - "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", - "copy_id": "Copiar ID", - "exchange_result_write_down_trade_id": "Por favor, copia o escribe el ID.", - "trade_id": "Comercial ID:", - "copied_to_clipboard": "Copiado al portapapeles", - "saved_the_trade_id": "He salvado comercial ID", - "fetching": "Cargando", - "id": "ID: ", - "amount": "Cantidad: ", - "payment_id": "ID de pago: ", - "status": "Estado: ", - "offer_expires_in": "Oferta expira en: ", - "trade_is_powered_by": "Este comercio es impulsado por ${provider}", - "copy_address": "Copiar dirección ", - "exchange_result_confirm": "Al presionar confirmar, enviará ${fetchingLabel} ${from} desde su billetera llamada ${walletName} a la dirección que se muestra a continuación. O puede enviar desde su billetera externa a la siguiente dirección / código QR anterior.\n\nPresione confirmar para continuar o regrese para cambiar los montos.", - "exchange_result_description": "Debe enviar un mínimo de ${fetchingLabel} ${from} a la dirección que se muestra en la página siguiente. Si envía una cantidad inferior a ${fetchingLabel} ${from}, es posible que no se convierta y no se reembolse.", - "exchange_result_write_down_ID": "*Copie o escriba su identificación que se muestra arriba.", - "confirm": "Confirmar", - "confirm_sending": "Confirmar envío", - "commit_transaction_amount_fee": "Confirmar transacción\nCantidad: ${amount}\nCuota: ${fee}", - "sending": "Enviando", - "transaction_sent": "Transacción enviada!", - "expired": "Muerto", - "time": "${minutes}m ${seconds}s", - "send_xmr": "Enviar XMR", - "exchange_new_template": "Nueva plantilla", - "faq": "FAQ", - "enter_your_pin": "Introduce tu PIN", - "loading_your_wallet": "Cargando tu billetera", - "new_wallet": "Nueva billetera", - "wallet_name": "Nombre de la billetera", - "continue_text": "Continuar", - "choose_wallet_currency": "Por favor, elija la moneda de la billetera:", - "node_new": "Nuevo nodo", - "node_address": "Dirección de nodo", - "node_port": "Puerto de nodo", - "login": "Iniciar sesión", - "password": "Contraseña", - "nodes": "Nodos", - "node_reset_settings_title": "Reiniciar ajustes", - "nodes_list_reset_to_default_message": "¿Está seguro de que desea restablecer la configuración predeterminada?", - "change_current_node": "¿Está seguro de cambiar el nodo actual a ${node}?", - "change": "Cambio", - "remove_node": "Eliminar nodo", - "remove_node_message": "¿Está seguro de que desea eliminar el nodo seleccionado?", - "remove": "Retirar", - "delete": "Borrar", - "add_new_node": "Agregar nuevo nodo", - "change_current_node_title": "Cambiar el nodo actual", - "node_test": "Prueba", - "node_connection_successful": "La conexión fue exitosa", - "node_connection_failed": "La conexión falló", - "new_node_testing": "Prueba de nuevos nodos", - "use": "Utilizar a ", - "digit_pin": "-dígito PIN", - "share_address": "Compartir dirección", - "receive_amount": "Cantidad", - "subaddresses": "Subdirecciones", "addresses": "Direcciones", - "scan_qr_code_to_get_address": "Escanee el código QR para obtener la dirección", - "qr_fullscreen": "Toque para abrir el código QR en pantalla completa", - "rename": "Rebautizar", - "choose_account": "Elegir cuenta", - "create_new_account": "Crear una nueva cuenta", - "accounts_subaddresses": "Cuentas y subdirecciones", - "restore_restore_wallet": "Recuperar Cartera", - "restore_title_from_seed_keys": "Restaurar desde semilla/claves", - "restore_description_from_seed_keys": "Recupere su billetera de las semillas/claves que ha guardado en un lugar seguro", - "restore_next": "Próximo", - "restore_title_from_backup": "Restaurar desde un archivo de respaldo", - "restore_description_from_backup": "Puede restaurar toda la aplicación Cake Wallet desde ysu archivo de respaldo", - "restore_seed_keys_restore": "Restauración de semillas / llaves", - "restore_title_from_seed": "De la semilla", - "restore_description_from_seed": "Restaure su billetera desde el código de combinación de 25 palabras i de 13 palabras", - "restore_title_from_keys": "De las claves", - "restore_description_from_keys": "Restaure su billetera de las pulsaciones de teclas generadas guardadas de sus claves privadas", - "restore_wallet_name": "Nombre de la billetera", - "restore_address": "Dirección", - "restore_view_key_private": "View clave (privado)", - "restore_spend_key_private": "Spend clave (privado)", - "restore_recover": "Recuperar", - "restore_wallet_restore_description": "Restaurar billetera", - "restore_new_seed": "Nueva semilla", - "restore_active_seed": "Semilla activa", - "restore_bitcoin_description_from_seed": "Restaure su billetera a partir del código de combinación de 24 palabras", - "restore_bitcoin_description_from_keys": "Restaure su billetera a partir de una cadena WIF generada a partir de sus claves privadas", - "restore_bitcoin_title_from_keys": "Restaurar desde WIF", - "restore_from_date_or_blockheight": "Ingrese una fecha unos días antes de crear esta billetera. O si conoce la altura del bloque, ingréselo en su lugar", - "seed_reminder": "Anótelos en caso de que pierda o borre su teléfono", - "seed_title": "Semilla", - "seed_share": "Compartir semillas", - "copy": "Dupdo", - "seed_language": "Lenguaje de semillas", - "seed_choose": "Elige el idioma semilla", - "seed_language_next": "Próximo", - "seed_language_english": "Inglés", - "seed_language_chinese": "Chino", - "seed_language_dutch": "Holandés", - "seed_language_german": "Alemán", - "seed_language_japanese": "Japonés", - "seed_language_portuguese": "Portugués", - "seed_language_russian": "Ruso", - "seed_language_spanish": "Español", - "seed_language_french": "Francesa/Francés", - "seed_language_italian": "Italiana/Italiano", - "send_title": "Enviar", - "send_your_wallet": "Tu billetera", - "send_address": "Dirección de ${cryptoCurrency}", - "send_payment_id": "ID de pago (opcional)", + "advanced_settings": "Ajustes avanzados", + "aggressive": "Demasiado entusiasta", + "agree": "De acuerdo", + "agree_and_continue": "Aceptar y continuar", + "agree_to": "Al crear una cuenta, aceptas ", "all": "TODOS", - "send_error_minimum_value": "El valor mínimo de la cantidad es 0.01", - "send_error_currency": "La moneda solo puede contener números", - "send_estimated_fee": "Tarifa estimada:", - "send_priority": "Actualmente la tarifa se establece en ${transactionPriority} prioridad.\nLa prioridad de la transacción se puede ajustar en la configuración", - "send_creating_transaction": "Creando transacción", - "send_templates": "Plantillas", - "send_new": "Nuevo", - "send_amount": "Cantidad:", - "send_fee": "Cuota:", - "send_name": "Nombre", - "got_it": "Entendido", - "send_sending": "Enviando...", - "send_success": "Su ${crypto} fue enviado con éxito", - "settings_title": "Configuraciones", - "settings_nodes": "Nodos", - "settings_current_node": "Nodo actual", - "settings_wallets": "Carteras", - "settings_display_balance": "Mostrar saldo", - "settings_currency": "Moneda", - "settings_fee_priority": "Prioridad de tasa", - "settings_save_recipient_address": "Guardar dirección del destinatario", - "settings_personal": "Personal", - "settings_change_pin": "Cambiar PIN", - "settings_change_language": "Cambiar idioma", - "settings_allow_biometrical_authentication": "Permitir autenticación biométrica", - "settings_dark_mode": "Modo oscuro", - "settings_transactions": "Transacciones", - "settings_trades": "Comercia", - "settings_display_on_dashboard_list": "Mostrar en la lista del tablero", - "settings_all": "TODOS", - "settings_only_trades": "Solo comercia", - "settings_only_transactions": "Solo transacciones", - "settings_none": "Ninguno", - "settings_support": "Apoyo", - "settings_terms_and_conditions": "Términos y Condiciones", - "pin_is_incorrect": "PIN es incorrecto", - "setup_pin": "PIN de configuración", - "enter_your_pin_again": "Ingrese su PIN nuevamente", - "setup_successful": "Su PIN se ha configurado correctamente!", - "wallet_keys": "Billetera semilla/claves", - "wallet_seed": "Semilla de billetera", - "private_key": "Clave privada", - "public_key": "Clave pública", - "view_key_private": "View clave (privado)", - "view_key_public": "View clave (público)", - "spend_key_private": "Spend clave (privado)", - "spend_key_public": "Spend clave (público)", - "copied_key_to_clipboard": "Copiado ${key} al portapapeles", - "new_subaddress_title": "Nueva direccion", - "new_subaddress_label_name": "Nombre de etiqueta", - "new_subaddress_create": "Crear", - "address_label": "Address label", - "subaddress_title": "Lista de subdirecciones", - "trade_details_title": "Detalles comerciales", - "trade_details_id": "ID", - "trade_details_state": "Estado", - "trade_details_fetching": "Cargando", - "trade_details_provider": "Proveedor", - "trade_details_created_at": "Creado en", - "trade_details_pair": "Par", - "trade_details_copied": "${title} Copiado al portapapeles", - "trade_history_title": "Historia del comercio", - "transaction_details_title": "Detalles de la transacción", - "transaction_details_transaction_id": "ID de transacción", - "transaction_details_date": "Fecha", - "transaction_details_height": "Altura", - "transaction_details_amount": "Cantidad", - "transaction_details_fee": "Cuota", - "transaction_details_copied": "${title} Copiado al portapapeles", - "transaction_details_recipient_address": "Direcciones de destinatarios", - "wallet_list_title": "Monedero Monero", - "wallet_list_create_new_wallet": "Crear nueva billetera", - "wallet_list_edit_wallet": "Editar billetera", - "wallet_list_wallet_name": "Nombre de la billetera", - "wallet_list_restore_wallet": "Restaurar billetera", - "wallet_list_load_wallet": "Billetera de carga", - "wallet_list_loading_wallet": "Billetera ${wallet_name} de carga", - "wallet_list_failed_to_load": "No se pudo cargar ${wallet_name} la billetera. ${error}", - "wallet_list_removing_wallet": "Retirar ${wallet_name} billetera", - "wallet_list_failed_to_remove": "Error al elimina ${wallet_name} billetera. ${error}", - "widgets_address": "Dirección", - "widgets_restore_from_blockheight": "Restaurar desde blockheight", - "widgets_restore_from_date": "Restaurar desde fecha", - "widgets_or": "o", - "widgets_seed": "Semilla", - "router_no_route": "No hay ruta definida para ${name}", - "error_text_account_name": "El nombre de la cuenta solo puede contener letras, números \ny debe tener entre 1 y 15 caracteres de longitud", - "error_text_contact_name": "El nombre del contacto no puede contener símbolos `, '\" \ny debe tener entre 1 y 32 caracteres de longitud", - "error_text_address": "La dirección de la billetera debe corresponder al tipo \nde criptomoneda", - "error_text_node_address": "Por favor, introduzca una dirección iPv4", - "error_text_node_port": "El puerto de nodo solo puede contener números entre 0 y 65535", - "error_text_node_proxy_address": "Ingrese :, por ejemplo 127.0.0.1:9050", - "error_text_payment_id": "La ID de pago solo puede contener de 16 a 64 caracteres en hexadecimal", - "error_text_xmr": "El valor XMR no puede exceder el saldo disponible.\nTEl número de dígitos de fracción debe ser menor o igual a 12", - "error_text_fiat": "El valor de la cantidad no puede exceder el saldo disponible.\nEl número de dígitos de fracción debe ser menor o igual a 2", - "error_text_subaddress_name": "El nombre de la subdirección no puede contener símbolos `, '\" \ny debe tener entre 1 y 20 caracteres de longitud", - "error_text_amount": "La cantidad solo puede contener números", - "error_text_wallet_name": "El nombre de la billetera solo puede contener letras, números , _ - símbolos\ny debe tener entre 1 y 33 caracteres de longitud", - "error_text_keys": "Las llaves de billetera solo pueden contener 64 caracteres en hexadecimal", - "error_text_crypto_currency": "El número de dígitos fraccionarios \ndebe ser menor o igual a 12", - "error_text_minimal_limit": "El comercio por ${provider} no se crea. La cantidad es menos que mínima: ${min} ${currency}", - "error_text_maximum_limit": "El comercio por ${provider} no se crea. La cantidad es más que el máximo: ${max} ${currency}", - "error_text_limits_loading_failed": "El comercio por ${provider} no se crea. Límites de carga fallidos", - "error_text_template": "El nombre y la dirección de la plantilla no pueden contener símbolos ` , '\" \ny debe tener entre 1 y 106 caracteres de longitud", + "all_trades": "Todos los oficios", + "all_transactions": "Todas las transacciones", + "alphabetical": "Alfabético", + "already_have_account": "¿Ya tienes una cuenta?", + "always": "siempre", + "amount": "Cantidad: ", + "amount_is_estimate": "El monto recibido es un estimado", + "amount_is_guaranteed": "La cantidad recibida está garantizada", + "and": "y", + "anonpay_description": "Genera ${type}. El destinatario puede ${method} con cualquier criptomoneda admitida, y recibirá fondos en esta billetera.", + "apk_update": "Actualización de APK", + "approve": "Aprobar", + "arrive_in_this_address": "${currency} ${tag}llegará a esta dirección", + "ascending": "Ascendente", + "ask_each_time": "Pregunta cada vez", "auth_store_ban_timeout": "prohibición de tiempo de espera", "auth_store_banned_for": "Prohibido para ", "auth_store_banned_minutes": " minutos", "auth_store_incorrect_password": "Contraseña PIN", - "wallet_store_monero_wallet": "Monedero Monero", - "wallet_restoration_store_incorrect_seed_length": "Longitud de semilla incorrecta", - "full_balance": "Balance completo", - "available_balance": "Balance disponible", - "hidden_balance": "Balance oculto", - "sync_status_syncronizing": "SINCRONIZANDO", - "sync_status_syncronized": "SINCRONIZADO", - "sync_status_not_connected": "NO CONECTADO", - "sync_status_starting_sync": "EMPEZANDO A SINCRONIZAR", - "sync_status_failed_connect": "DESCONECTADO", - "sync_status_connecting": "CONECTANDO", - "sync_status_connected": "CONECTADO", - "sync_status_attempting_sync": "INTENTAR SINCRONIZAR", - "transaction_priority_slow": "Lento", - "transaction_priority_regular": "Regular", - "transaction_priority_medium": "Medio", - "transaction_priority_fast": "Rápido", - "transaction_priority_fastest": "Lo más rápido", - "trade_for_not_created": "Comercio por ${title} no se crea.", - "trade_not_created": "Comercio no se crea", - "trade_id_not_found": "Comercio ${tradeId} de ${title} no encontrado.", - "trade_not_found": "Comercio no encontrado.", - "trade_state_pending": "Pendiente", - "trade_state_confirming": "Confirmando", - "trade_state_trading": "Comercio", - "trade_state_traded": "Negociado", - "trade_state_complete": "Completar", - "trade_state_to_be_created": "Ser creado", - "trade_state_unpaid": "No pagado", - "trade_state_underpaid": "Poco pagado", - "trade_state_paid_unconfirmed": "Pagado sin confirmar", - "trade_state_paid": "Pagado", - "trade_state_btc_sent": "Btc expedido", - "trade_state_timeout": "Se acabó el tiempo", - "trade_state_created": "Creado", - "trade_state_finished": "Terminado", - "change_language": "Cambiar idioma", - "change_language_to": "Cambiar el idioma a ${language}?", - "paste": "Pegar", - "restore_from_seed_placeholder": "Ingrese o pegue su frase de código aquí", - "add_new_word": "Agregar palabra nueva", - "incorrect_seed": "El texto ingresado no es válido.", - "biometric_auth_reason": "Escanee su huella digital para autenticar", - "version": "Versión ${currentVersion}", - "extracted_address_content": "Enviará fondos a\n${recipient_name}", - "card_address": "Dirección:", - "buy": "Comprar", - "sell": "Vender", - "placeholder_transactions": "Sus transacciones se mostrarán aquí", - "placeholder_contacts": "Tus contactos se mostrarán aquí", - "template": "Plantilla", - "confirm_delete_template": "Esta acción eliminará esta plantilla. ¿Desea continuar?", - "confirm_delete_wallet": "Esta acción eliminará esta billetera. ¿Desea continuar?", - "change_wallet_alert_title": "Cambiar billetera actual", - "change_wallet_alert_content": "¿Quieres cambiar la billetera actual a ${wallet_name}?", - "creating_new_wallet": "Creando nueva billetera", - "creating_new_wallet_error": "Error: ${description}", - "seed_alert_title": "Atención", - "seed_alert_content": "La semilla es la única forma de recuperar su billetera. ¿Lo has escrito?", - "seed_alert_back": "Regresa", - "seed_alert_yes": "Sí tengo", - "exchange_sync_alert_content": "Espere hasta que su billetera esté sincronizada", - "pre_seed_title": "IMPORTANTE", - "pre_seed_description": "En la página siguiente verá una serie de ${words} palabras. Esta es su semilla única y privada y es la ÚNICA forma de recuperar su billetera en caso de pérdida o mal funcionamiento. Es SU responsabilidad escribirlo y guardarlo en un lugar seguro fuera de la aplicación Cake Wallet.", - "pre_seed_button_text": "Entiendo. Muéstrame mi semilla", - "xmr_to_error": "Error de XMR.TO", - "xmr_to_error_description": "Monto invalido. Límite máximo de 8 dígitos después del punto decimal", - "provider_error": "${provider} error", - "use_ssl": "Utilice SSL", - "trusted": "de confianza", - "color_theme": "Tema de color", - "light_theme": "Ligera", - "bright_theme": "Brillante", - "dark_theme": "Oscura", - "enter_your_note": "Ingresa tu nota…", - "note_optional": "Nota (opcional)", - "note_tap_to_change": "Nota (toque para cambiar)", - "view_in_block_explorer": "View in Block Explorer", - "view_transaction_on": "View Transaction on ", - "transaction_key": "Clave de transacción", - "confirmations": "Confirmaciones", - "recipient_address": "Dirección del receptor", - "extra_id": "ID adicional:", - "destination_tag": "Etiqueta de destino:", - "memo": "Memorándum:", - "backup": "Apoyo", - "change_password": "Cambia la contraseña", - "backup_password": "Contraseña de respaldo", - "write_down_backup_password": "Escriba su contraseña de respaldo, que se utiliza para la importación de sus archivos de respaldo.", - "export_backup": "Exportar copia de seguridad", - "save_backup_password": "Asegúrese de haber guardado su contraseña de respaldo. No podrá importar sus archivos de respaldo sin él.", - "backup_file": "Archivo de respaldo", - "edit_backup_password": "Editar contraseña de respaldo", - "save_backup_password_alert": "Guardar contraseña de respaldo", - "change_backup_password_alert": "Sus archivos de respaldo anteriores no estarán disponibles para importar con la nueva contraseña de respaldo. La nueva contraseña de respaldo se utilizará solo para los nuevos archivos de respaldo. ¿Está seguro de que desea cambiar la contraseña de respaldo?", - "enter_backup_password": "Ingrese la contraseña de respaldo aquí", - "select_backup_file": "Seleccionar archivo de respaldo", - "import": "Importar", - "please_select_backup_file": "Seleccione el archivo de respaldo e ingrese la contraseña de respaldo.", - "fixed_rate": "Tipo de interés fijo", - "fixed_rate_alert": "Podrá ingresar la cantidad recibida cuando el modo de tarifa fija esté marcado. ¿Quieres cambiar al modo de tarifa fija?", - "xlm_extra_info": "No olvide especificar el ID de nota al enviar la transacción XLM para el intercambio", - "xrp_extra_info": "No olvide especificar la etiqueta de destino al enviar la transacción XRP para el intercambio", - "exchange_incorrect_current_wallet_for_xmr": "Si desea intercambiar XMR de su saldo de Cake Wallet Monero, primero cambie a su billetera Monero.", - "confirmed": "Saldo confirmado", - "unconfirmed": "Saldo no confirmado", - "displayable": "Visualizable", - "submit_request": "presentar una solicitud", - "buy_alert_content": "Actualmente solo admitimos la compra de Bitcoin, Ethereum, Litecoin y Monero. Cree o cambie a su billetera Bitcoin, Ethereum, Litecoin o Monero.", - "sell_alert_content": "Actualmente solo admitimos la venta de Bitcoin, Ethereum y Litecoin. Cree o cambie a su billetera Bitcoin, Ethereum o Litecoin.", - "outdated_electrum_wallet_description": "Las nuevas carteras de Bitcoin creadas en Cake ahora tienen una semilla de 24 palabras. Es obligatorio que cree una nueva billetera de Bitcoin y transfiera todos sus fondos a la nueva billetera de 24 palabras, y deje de usar billeteras con una semilla de 12 palabras. Haga esto de inmediato para asegurar sus fondos.", - "understand": "Entiendo", - "apk_update": "Actualización de APK", - "buy_bitcoin": "Comprar Bitcoin", - "buy_with": "Compra con", - "moonpay_alert_text": "El valor de la cantidad debe ser mayor o igual a ${minAmount} ${fiatCurrency}", - "outdated_electrum_wallet_receive_warning": "Si esta billetera tiene una semilla de 12 palabras y se creó en Cake, NO deposite Bitcoin en esta billetera. Cualquier BTC transferido a esta billetera se puede perder. Cree una nueva billetera de 24 palabras (toque el menú en la parte superior derecha, seleccione Monederos, elija Crear nueva billetera, luego seleccione Bitcoin) e INMEDIATAMENTE mueva su BTC allí. Las nuevas carteras BTC (24 palabras) de Cake son seguras", - "do_not_show_me": "no me muestres esto otra vez", - "unspent_coins_title": "Monedas no gastadas", - "unspent_coins_details_title": "Detalles de monedas no gastadas", - "freeze": "Congelar", - "frozen": "Congelada", - "coin_control": "Control de monedas (opcional)", - "address_detected": "Dirección detectada", - "address_from_domain": "Esta dirección es de ${domain} en Unstoppable Domains", - "add_receiver": "Agregar otro receptor (opcional)", - "manage_yats": "Administrar Yats", - "yat_alert_title": "Envíe y reciba criptomonedas más fácilmente con Yat", - "yat_alert_content": "Los usuarios de Cake Wallet ahora pueden enviar y recibir todas sus monedas favoritas con un nombre de usuario único basado en emoji.", - "get_your_yat": "Obtén tu Yat", - "connect_an_existing_yat": "Conectar un Yat existente", - "yat_address": "Dirección de Yat", - "yat": "Yat", - "connect_yats": "Conectar Yats", - "address_from_yat": "Esta dirección es de ${emoji} en Yat", - "yat_error": "Error de Yat", - "yat_error_content": "No hay direcciones vinculadas con este Yat. Prueba con otro Yat", - "choose_address": "\n\nPor favor elija la dirección:", - "yat_popup_title": "La dirección de su billetera se puede emojificar.", - "yat_popup_content": "Ahora puede enviar y recibir criptografía en Cake Wallet con su Yat, un nombre de usuario corto basado en emoji. Administre Yats en cualquier momento en la pantalla de configuración", - "second_intro_title": "Una dirección de emoji para gobernarlos a todos", - "second_intro_content": "Tu Yat es una única dirección emoji única que reemplaza todas tus direcciones hexadecimales largas para todas tus monedas.", - "third_intro_title": "Yat juega muy bien con otras", - "third_intro_content": "Los Yats también viven fuera de Cake Wallet. Cualquier dirección de billetera en la tierra se puede reemplazar con un Yat!", - "learn_more": "Aprende más", - "search": "Búsqueda", - "search_language": "Idioma de búsqueda", - "search_currency": "Moneda de búsqueda", - "new_template": "Nueva plantilla", - "electrum_address_disclaimer": "Generamos nuevas direcciones cada vez que usa una, pero las direcciones anteriores siguen funcionando", - "wallet_name_exists": "Wallet con ese nombre ya ha existido", - "market_place": "Mercado", - "cake_pay_title": "Tarjetas de regalo Cake Pay", - "cake_pay_subtitle": "Compre tarjetas de regalo con descuento (solo EE. UU.)", - "cake_pay_web_cards_title": "Tarjetas Web Cake Pay", - "cake_pay_web_cards_subtitle": "Compre tarjetas de prepago y tarjetas de regalo en todo el mundo", - "about_cake_pay": "Cake Pay le permite comprar fácilmente tarjetas de regalo con activos virtuales, gastables instantáneamente en más de 150 000 comerciantes en los Estados Unidos.", - "cake_pay_account_note": "Regístrese con solo una dirección de correo electrónico para ver y comprar tarjetas. ¡Algunas incluso están disponibles con descuento!", - "already_have_account": "¿Ya tienes una cuenta?", - "create_account": "Crear Cuenta", - "privacy_policy": "Política de privacidad", - "welcome_to_cakepay": "¡Bienvenido a Cake Pay!", - "sign_up": "Registrarse", - "forgot_password": "Olvidé mi contraseña", - "reset_password": "Restablecer contraseña", - "gift_cards": "Tarjetas de regalo", - "setup_your_debit_card": "Configura tu tarjeta de débito", - "no_id_required": "No se requiere identificación. Recargue y gaste en cualquier lugar", - "how_to_use_card": "Cómo usar esta tarjeta", - "purchase_gift_card": "Comprar tarjeta de regalo", - "verification": "Verificación", - "fill_code": "Por favor complete el código de verificación proporcionado a su correo electrónico", - "didnt_get_code": "¿No recibiste el código?", - "resend_code": "Por favor reenvíalo", - "debit_card": "Tarjeta de Débito", - "cakepay_prepaid_card": "Tarjeta de Débito Prepago CakePay", - "no_id_needed": "¡No se necesita identificación!", - "frequently_asked_questions": "Preguntas frecuentes", - "debit_card_terms": "El almacenamiento y el uso de su número de tarjeta de pago (y las credenciales correspondientes a su número de tarjeta de pago) en esta billetera digital están sujetos a los Términos y condiciones del acuerdo del titular de la tarjeta aplicable con el emisor de la tarjeta de pago, en vigor desde tiempo al tiempo.", - "please_reference_document": "Consulte los documentos a continuación para obtener más información.", - "cardholder_agreement": "Acuerdo del titular de la tarjeta", - "e_sign_consent": "Consentimiento de firma electrónica", - "agree_and_continue": "Aceptar y continuar", - "email_address": "Dirección de correo electrónico", - "agree_to": "Al crear una cuenta, aceptas ", - "and": "y", - "enter_code": "Ingresar código", - "congratulations": "Felicidades!", - "you_now_have_debit_card": "Ahora tiene una tarjeta de débito", - "min_amount": "Mínimo: ${value}", - "max_amount": "Máx: ${value}", - "enter_amount": "Ingrese la cantidad", - "billing_address_info": "Si se le solicita una dirección de facturación, proporcione su dirección de envío", - "order_physical_card": "Pedir tarjeta física", - "add_value": "Añadir valor", - "activate": "Activar", - "get_a": "Obtener un", - "digital_and_physical_card": " tarjeta de débito prepago digital y física", - "get_card_note": " que puedes recargar con monedas digitales. ¡No se necesita información adicional!", - "signup_for_card_accept_terms": "Regístrese para obtener la tarjeta y acepte los términos.", - "add_fund_to_card": "Agregar fondos prepagos a las tarjetas (hasta ${value})", - "use_card_info_two": "Los fondos se convierten a USD cuando se mantienen en la cuenta prepaga, no en monedas digitales.", - "use_card_info_three": "Utilice la tarjeta digital en línea o con métodos de pago sin contacto.", - "optionally_order_card": "Opcionalmente pide una tarjeta física.", - "hide_details": "Ocultar detalles", - "show_details": "Mostrar detalles", - "upto": "hasta ${value}", - "discount": "Ahorra ${value}%", - "gift_card_amount": "Cantidad de la tarjeta de regalo", - "bill_amount": "Importe de la factura", - "you_pay": "Tú pagas", - "tip": "Consejo:", - "personalizado": "personalizado", - "by_cake_pay": "por Cake Pay", - "expires": "Caduca", - "mm": "mm", - "yy": "YY", - "online": "En línea", - "offline": "fuera de línea", - "gift_card_number": "Número de tarjeta de regalo", - "pin_number": "Número PIN", - "total_saving": "Ahorro Total", - "last_30_days": "Últimos 30 días", - "avg_savings": "Ahorro promedio", - "view_all": "Ver todo", - "active_cards": "Tarjetas activas", - "delete_account": "Eliminar cuenta", - "cards": "Cartas", - "active": "Activo", - "redeemed": "Redimido", - "gift_card_balance_note": "Las tarjetas de regalo con saldo restante aparecerán aquí", - "gift_card_redeemed_note": "Las tarjetas de regalo que hayas canjeado aparecerán aquí", - "logout": "Cerrar sesión", - "add_tip": "Agregar sugerencia", - "percentageOf": "de ${amount}", - "is_percentage": "es", - "search_category": "Categoría de búsqueda", - "mark_as_redeemed": "Marcar como canjeado", - "more_options": "Más Opciones", - "awaiting_payment_confirmation": "Esperando confirmación de pago", - "transaction_sent_notice": "Si la pantalla no continúa después de 1 minuto, revisa un explorador de bloques y tu correo electrónico.", - "agree": "De acuerdo", - "in_store": "En la tienda", - "generating_gift_card": "Generando tarjeta de regalo", - "payment_was_received": "Su pago fue recibido.", - "proceed_after_one_minute": "Si la pantalla no continúa después de 1 minuto, revisa tu correo electrónico.", - "order_id": "Identificación del pedido", - "gift_card_is_generated": "Se genera la tarjeta de regalo", - "open_gift_card": "Abrir tarjeta de regalo", - "contact_support": "Contactar con Soporte", - "gift_cards_unavailable": "Las tarjetas de regalo están disponibles para comprar solo a través de Monero, Bitcoin y Litecoin en este momento", - "background_sync_mode": "Modo de sincronización en segundo plano", - "sync_all_wallets": "Sincronizar todas las billeteras", - "introducing_cake_pay": "¡Presentamos Cake Pay!", - "cake_pay_learn_more": "¡Compre y canjee tarjetas de regalo al instante en la aplicación!\nDeslice el dedo de izquierda a derecha para obtener más información.", + "authenticated": "Autenticados", + "authentication": "Autenticación", + "auto_generate_subaddresses": "Generar subdirecciones automáticamente", "automatic": "Automático", - "fixed_pair_not_supported": "Este par fijo no es compatible con los intercambios seleccionados", - "variable_pair_not_supported": "Este par de variables no es compatible con los intercambios seleccionados", - "none_of_selected_providers_can_exchange": "Ninguno de los proveedores seleccionados puede realizar este intercambio", - "choose_one": "Elige uno", - "choose_from_available_options": "Elija entre las opciones disponibles:", - "custom_redeem_amount": "Cantidad de canje personalizada", - "add_custom_redemption": "Agregar redención personalizada", - "remaining": "restante", - "delete_wallet": "Eliminar billetera", - "delete_wallet_confirm_message": "¿Está seguro de que desea eliminar la billetera ${wallet_name}?", - "low_fee": "Tarifa baja", - "low_fee_alert": "Actualmente está utilizando una prioridad de tarifa de red baja. Esto podría causar largas esperas, tarifas diferentes o transacciones canceladas. Recomendamos establecer una tarifa más alta para una mejor experiencia.", - "ignor": "Pasar por alto", - "use_suggested": "Usar sugerido", - "do_not_share_warning_text": "No comparta estos con nadie más, incluido el soporte.\n\n¡Sus fondos pueden ser y serán robados!", - "help": "ayuda", - "all_transactions": "Todas las transacciones", - "all_trades": "Todos los oficios", - "connection_sync": "Conexión y sincronización", - "security_and_backup": "Seguridad y respaldo", - "create_backup": "Crear copia de seguridad", - "privacy_settings": "Configuración de privacidad", - "privacy": "Privacidad", - "display_settings": "Configuración de pantalla", - "other_settings": "Otras configuraciones", - "require_pin_after": "Requerir PIN después de", - "always": "siempre", - "minutes_to_pin_code": "${minute} minutos", - "disable_exchange": "Deshabilitar intercambio", - "advanced_settings": "Ajustes avanzados", - "settings_can_be_changed_later": "Estas configuraciones se pueden cambiar más tarde en la configuración de la aplicación", - "add_custom_node": "Agregar nuevo nodo personalizado", - "disable_fiat": "Deshabilitar fiat", - "fiat_api": "Fiat API", - "disabled": "Desactivado", - "enabled": "Activado", - "tor_only": "solo Tor", - "unmatched_currencies": "La moneda de su billetera actual no coincide con la del QR escaneado", - "orbot_running_alert": "Asegúrese de que Orbot se esté ejecutando antes de conectarse a este nodo.", - "contact_list_contacts": "Contactos", - "contact_list_wallets": "Mis billeteras", - "bitcoin_payments_require_1_confirmation": "Los pagos de Bitcoin requieren 1 confirmación, que puede demorar 20 minutos o más. ¡Gracias por su paciencia! Se le enviará un correo electrónico cuando se confirme el pago.", - "send_to_this_address": "Enviar ${currency} ${tag}a esta dirección", - "arrive_in_this_address": "${currency} ${tag}llegará a esta dirección", - "do_not_send": "no enviar", - "error_dialog_content": "Vaya, tenemos un error.\n\nEnvíe el informe de bloqueo a nuestro equipo de soporte para mejorar la aplicación.", - "scan_qr_code": "Escanear código QR", - "cold_or_recover_wallet": "Agregue una billetera fría o recupere una billetera de papel", - "please_wait": "Espere por favor", - "sweeping_wallet": "Billetera de barrido", - "sweeping_wallet_alert": "Esto no debería llevar mucho tiempo. NO DEJES ESTA PANTALLA O SE PUEDEN PERDER LOS FONDOS BARRIDOS", - "decimal_places_error": "Demasiados lugares decimales", - "edit_node": "Editar nodo", - "invoice_details": "Detalles de la factura", - "donation_link_details": "Detalles del enlace de donación", - "anonpay_description": "Genera ${type}. El destinatario puede ${method} con cualquier criptomoneda admitida, y recibirá fondos en esta billetera.", - "create_invoice": "Crear factura", - "create_donation_link": "Crear enlace de donación", - "optional_email_hint": "Correo electrónico de notificación del beneficiario opcional", - "optional_description": "Descripción opcional", - "optional_name": "Nombre del destinatario opcional", - "clearnet_link": "enlace Clearnet", - "onion_link": "Enlace de cebolla", - "settings": "Configuraciones", - "sell_monero_com_alert_content": "Aún no se admite la venta de Monero", - "error_text_input_below_minimum_limit": "La cantidad es menos que mínima", - "error_text_input_above_maximum_limit": "La cantidad es más que el máximo", - "show_market_place": "Mostrar mercado", - "prevent_screenshots": "Evitar capturas de pantalla y grabación de pantalla", - "profile": "Perfil", - "close": "Cerca", - "modify_2fa": "Modificar torta 2FA", - "disable_cake_2fa": "Desactivar pastel 2FA", - "question_to_disable_2fa": "¿Está seguro de que desea deshabilitar Cake 2FA? Ya no se necesitará un código 2FA para acceder a la billetera y a ciertas funciones.", - "disable": "Desactivar", - "setup_2fa": "Configurar pastel 2FA", - "verify_with_2fa": "Verificar con Cake 2FA", - "totp_code": "Código TOTP", - "please_fill_totp": "Complete el código de 8 dígitos presente en su otro dispositivo", - "totp_2fa_success": "¡Éxito! Cake 2FA habilitado para esta billetera. Recuerde guardar su semilla mnemotécnica en caso de que pierda el acceso a la billetera.", - "totp_verification_success": "¡Verificación exitosa!", - "totp_2fa_failure": "Código incorrecto. Intente con un código diferente o genere una nueva clave secreta. Use una aplicación 2FA compatible que admita códigos de 8 dígitos y SHA512.", - "enter_totp_code": "Ingrese el código TOTP.", - "add_secret_code": "O agregue este código secreto a una aplicación de autenticación", - "totp_secret_code": "Código secreto TOTP", - "setup_2fa_text": "Cake 2FA funciona utilizando TOTP como segundo factor de autenticación.\n\nEl TOTP de Cake 2FA requiere SHA-512 y soporte de 8 dígitos; esto proporciona una mayor seguridad. Puede encontrar más información y aplicaciones compatibles en la guía.", - "setup_totp_recommended": "Configurar TOTP", - "disable_buy": "Desactivar acción de compra", - "disable_sell": "Desactivar acción de venta", - "cake_2fa_preset": "Pastel 2FA preestablecido", - "monero_dark_theme": "Tema oscuro de Monero", + "available_balance": "Balance disponible", + "available_balance_description": "Su saldo disponible es la cantidad de fondos que puede gastar. Los fondos que se muestran aquí se pueden gastar inmediatamente.", + "avg_savings": "Ahorro promedio", + "awaitDAppProcessing": "Espere a que la dApp termine de procesarse.", + "awaiting_payment_confirmation": "Esperando confirmación de pago", + "background_sync_mode": "Modo de sincronización en segundo plano", + "backup": "Apoyo", + "backup_file": "Archivo de respaldo", + "backup_password": "Contraseña de respaldo", + "balance_page": "Página de saldo", + "bill_amount": "Importe de la factura", + "billing_address_info": "Si se le solicita una dirección de facturación, proporcione su dirección de envío", + "biometric_auth_reason": "Escanee su huella digital para autenticar", "bitcoin_dark_theme": "Tema oscuro de Bitcoin", "bitcoin_light_theme": "Tema de la luz de Bitcoin", - "high_contrast_theme": "Tema de alto contraste", - "matrix_green_dark_theme": "Matrix verde oscuro tema", - "monero_light_theme": "Tema ligero de Monero", - "auto_generate_subaddresses": "Generar subdirecciones automáticamente", - "narrow": "Angosto", - "normal": "Normal", - "aggressive": "Demasiado entusiasta", - "require_for_assessing_wallet": "Requerido para acceder a la billetera", - "require_for_sends_to_non_contacts": "Requerido para envíos a no contactos", - "require_for_sends_to_contacts": "Requerir para envíos a contactos", - "require_for_sends_to_internal_wallets": "Requerido para envíos a billeteras internas", - "require_for_exchanges_to_internal_wallets": "Requerido para intercambios a billeteras internas", - "require_for_adding_contacts": "Requerido para agregar contactos", - "require_for_creating_new_wallets": "Requerido para crear nuevas billeteras", - "require_for_all_security_and_backup_settings": "Requerido para todas las configuraciones de seguridad y copia de seguridad", - "available_balance_description": "Su saldo disponible es la cantidad de fondos que puede gastar. Los fondos que se muestran aquí se pueden gastar inmediatamente.", - "syncing_wallet_alert_title": "Tu billetera se está sincronizando", - "syncing_wallet_alert_content": "Es posible que su lista de saldo y transacciones no esté completa hasta que diga \"SINCRONIZADO\" en la parte superior. Haga clic/toque para obtener más información.", - "home_screen_settings": "Configuración de la pantalla de inicio", - "sort_by": "Ordenar por", - "search_add_token": "Buscar/Agregar token", - "edit_token": "Editar token", - "warning": "Advertencia", - "add_token_warning": "No edite ni agregue tokens según las instrucciones de los estafadores.\n¡Confirme siempre las direcciones de los tokens con fuentes acreditadas!", - "add_token_disclaimer_check": "He confirmado la dirección del contrato del token y la información utilizando una fuente confiable. Agregar información maliciosa o incorrecta puede resultar en una pérdida de fondos.", - "token_contract_address": "Dirección de contrato de token", - "token_name": "Nombre del token, por ejemplo: Tether", - "token_symbol": "Símbolo de token, por ejemplo: USDT", - "token_decimal": "Token decimal", - "field_required": "Este campo es obligatorio", - "pin_at_top": "pin ${token} en la parte superior", - "invalid_input": "Entrada inválida", - "fiat_balance": "Equilibrio Fiat", - "gross_balance": "Saldo bruto", - "alphabetical": "Alfabético", - "generate_name": "Generar nombre", - "balance_page": "Página de saldo", - "share": "Compartir", - "slidable": "deslizable", - "manage_nodes": "Administrar nodos", - "etherscan_history": "historia de etherscan", - "template_name": "Nombre de la plantilla", + "bitcoin_payments_require_1_confirmation": "Los pagos de Bitcoin requieren 1 confirmación, que puede demorar 20 minutos o más. ¡Gracias por su paciencia! Se le enviará un correo electrónico cuando se confirme el pago.", + "Blocks_remaining": "${status} Bloques restantes", + "bright_theme": "Brillante", + "buy": "Comprar", + "buy_alert_content": "Actualmente solo admitimos la compra de Bitcoin, Ethereum, Litecoin y Monero. Cree o cambie a su billetera Bitcoin, Ethereum, Litecoin o Monero.", + "buy_bitcoin": "Comprar Bitcoin", + "buy_provider_unavailable": "Proveedor actualmente no disponible.", + "buy_with": "Compra con", + "by_cake_pay": "por Cake Pay", + "cake_2fa_preset": "Pastel 2FA preestablecido", + "cake_pay_account_note": "Regístrese con solo una dirección de correo electrónico para ver y comprar tarjetas. ¡Algunas incluso están disponibles con descuento!", + "cake_pay_learn_more": "¡Compre y canjee tarjetas de regalo al instante en la aplicación!\nDeslice el dedo de izquierda a derecha para obtener más información.", + "cake_pay_subtitle": "Compre tarjetas de regalo con descuento (solo EE. UU.)", + "cake_pay_title": "Tarjetas de regalo Cake Pay", + "cake_pay_web_cards_subtitle": "Compre tarjetas de prepago y tarjetas de regalo en todo el mundo", + "cake_pay_web_cards_title": "Tarjetas Web Cake Pay", + "cake_wallet": "Cake Wallet", + "cakepay_prepaid_card": "Tarjeta de Débito Prepago CakePay", + "camera_consent": "Su cámara será utilizada para capturar una imagen con fines de identificación por ${provider}. Consulte su Política de privacidad para obtener más detalles.", + "camera_permission_is_required": "Se requiere permiso de la cámara.\nHabilítelo desde la configuración de la aplicación.", + "cancel": "Cancelar", + "card_address": "Dirección:", + "cardholder_agreement": "Acuerdo del titular de la tarjeta", + "cards": "Cartas", + "chains": "Cadenas", + "change": "Cambio", + "change_backup_password_alert": "Sus archivos de respaldo anteriores no estarán disponibles para importar con la nueva contraseña de respaldo. La nueva contraseña de respaldo se utilizará solo para los nuevos archivos de respaldo. ¿Está seguro de que desea cambiar la contraseña de respaldo?", + "change_currency": "Cambiar moneda", + "change_current_node": "¿Está seguro de cambiar el nodo actual a ${node}?", + "change_current_node_title": "Cambiar el nodo actual", + "change_exchange_provider": "Cambiar proveedor de intercambio", + "change_language": "Cambiar idioma", + "change_language_to": "Cambiar el idioma a ${language}?", + "change_password": "Cambia la contraseña", "change_rep": "Representante de cambio", "change_rep_message": "¿Estás seguro de que quieres cambiar de representante?", - "unsupported_asset": "No admitimos esta acción para este activo. Cree o cambie a una billetera de un tipo de activo admitido.", - "manage_pow_nodes": "Administrar nodos PoW", - "support_title_live_chat": "Soporte vital", - "support_description_live_chat": "¡GRATIS y RÁPIDO! Los representantes de apoyo capacitado están disponibles para ayudar", - "support_title_guides": "Guías de billetera para pastel", - "support_description_guides": "Documentación y apoyo para problemas comunes", - "support_title_other_links": "Otros enlaces de soporte", - "support_description_other_links": "Únase a nuestras comunidades o comuníquese con nosotros nuestros socios a través de otros métodos", + "change_rep_successful": "Representante cambiado con éxito", + "change_wallet_alert_content": "¿Quieres cambiar la billetera actual a ${wallet_name}?", + "change_wallet_alert_title": "Cambiar billetera actual", + "choose_account": "Elegir cuenta", + "choose_address": "\n\nPor favor elija la dirección:", "choose_derivation": "Elija la derivación de la billetera", - "new_first_wallet_text": "Mantenga fácilmente su criptomoneda segura", - "select_destination": "Seleccione el destino del archivo de copia de seguridad.", - "save_to_downloads": "Guardar en Descargas", - "select_buy_provider_notice": "Seleccione un proveedor de compra arriba. Puede omitir esta pantalla configurando su proveedor de compra predeterminado en la configuración de la aplicación.", - "onramper_option_description": "Compre rápidamente cripto con muchos métodos de pago. Disponible en la mayoría de los países. Los diferenciales y las tarifas varían.", + "choose_from_available_options": "Elija entre las opciones disponibles:", + "choose_one": "Elige uno", + "choose_relay": "Por favor elija un relé para usar", + "choose_wallet_currency": "Por favor, elija la moneda de la billetera:", + "clear": "Claro", + "clearnet_link": "enlace Clearnet", + "close": "Cerca", + "coin_control": "Control de monedas (opcional)", + "cold_or_recover_wallet": "Agregue una billetera fría o recupere una billetera de papel", + "color_theme": "Tema de color", + "commit_transaction_amount_fee": "Confirmar transacción\nCantidad: ${amount}\nCuota: ${fee}", + "confirm": "Confirmar", + "confirm_delete_template": "Esta acción eliminará esta plantilla. ¿Desea continuar?", + "confirm_delete_wallet": "Esta acción eliminará esta billetera. ¿Desea continuar?", + "confirm_sending": "Confirmar envío", + "confirmations": "Confirmaciones", + "confirmed": "Saldo confirmado", + "confirmed_tx": "Confirmado", + "congratulations": "Felicidades!", + "connect_an_existing_yat": "Conectar un Yat existente", + "connect_yats": "Conectar Yats", + "connection_sync": "Conexión y sincronización", + "connectWalletPrompt": "Conecte su billetera con WalletConnect para realizar transacciones", + "contact": "Contacto", + "contact_list_contacts": "Contactos", + "contact_list_wallets": "Mis billeteras", + "contact_name": "Nombre de contacto", + "contact_support": "Contactar con Soporte", + "continue_text": "Continuar", + "contractName": "Nombre del contrato", + "contractSymbol": "Símbolo de contrato", + "copied_key_to_clipboard": "Copiado ${key} al portapapeles", + "copied_to_clipboard": "Copiado al portapapeles", + "copy": "Dupdo", + "copy_address": "Copiar dirección ", + "copy_id": "Copiar ID", + "copyWalletConnectLink": "Copie el enlace de WalletConnect de dApp y péguelo aquí", + "create_account": "Crear Cuenta", + "create_backup": "Crear copia de seguridad", + "create_donation_link": "Crear enlace de donación", + "create_invoice": "Crear factura", + "create_new": "Crear nueva billetera", + "create_new_account": "Crear una nueva cuenta", + "creating_new_wallet": "Creando nueva billetera", + "creating_new_wallet_error": "Error: ${description}", + "creation_date": "Fecha de creación", + "custom_drag": "Custom (mantenía y arrastre)", + "custom_redeem_amount": "Cantidad de canje personalizada", + "dark_theme": "Oscura", + "debit_card": "Tarjeta de Débito", + "debit_card_terms": "El almacenamiento y el uso de su número de tarjeta de pago (y las credenciales correspondientes a su número de tarjeta de pago) en esta billetera digital están sujetos a los Términos y condiciones del acuerdo del titular de la tarjeta aplicable con el emisor de la tarjeta de pago, en vigor desde tiempo al tiempo.", + "decimal_places_error": "Demasiados lugares decimales", "default_buy_provider": "Proveedor de compra predeterminado", - "ask_each_time": "Pregunta cada vez", - "buy_provider_unavailable": "Proveedor actualmente no disponible.", - "signTransaction": "Firmar transacción", + "default_sell_provider": "Proveedor de venta predeterminado", + "delete": "Borrar", + "delete_account": "Eliminar cuenta", + "delete_wallet": "Eliminar billetera", + "delete_wallet_confirm_message": "¿Está seguro de que desea eliminar la billetera ${wallet_name}?", + "deleteConnectionConfirmationPrompt": "¿Está seguro de que desea eliminar la conexión a", + "descending": "Descendente", + "description": "Descripción", + "destination_tag": "Etiqueta de destino:", + "dfx_option_description": "Compre criptomonedas con EUR y CHF. Hasta 990€ sin KYC adicional. Para clientes minoristas y corporativos en Europa", + "didnt_get_code": "¿No recibiste el código?", + "digit_pin": "-dígito PIN", + "digital_and_physical_card": " tarjeta de débito prepago digital y física", + "disable": "Desactivar", + "disable_buy": "Desactivar acción de compra", + "disable_cake_2fa": "Desactivar pastel 2FA", + "disable_exchange": "Deshabilitar intercambio", + "disable_fiat": "Deshabilitar fiat", + "disable_sell": "Desactivar acción de venta", + "disabled": "Desactivado", + "discount": "Ahorra ${value}%", + "display_settings": "Configuración de pantalla", + "displayable": "Visualizable", + "do_not_have_enough_gas_asset": "No tienes suficiente ${currency} para realizar una transacción con las condiciones actuales de la red blockchain. Necesita más ${currency} para pagar las tarifas de la red blockchain, incluso si envía un activo diferente.", + "do_not_send": "no enviar", + "do_not_share_warning_text": "No comparta estos con nadie más, incluido el soporte.\n\n¡Sus fondos pueden ser y serán robados!", + "do_not_show_me": "no me muestres esto otra vez", + "domain_looks_up": "Búsquedas de dominio", + "donation_link_details": "Detalles del enlace de donación", + "e_sign_consent": "Consentimiento de firma electrónica", + "edit": "Editar", + "edit_backup_password": "Editar contraseña de respaldo", + "edit_node": "Editar nodo", + "edit_token": "Editar token", + "electrum_address_disclaimer": "Generamos nuevas direcciones cada vez que usa una, pero las direcciones anteriores siguen funcionando", + "email_address": "Dirección de correo electrónico", + "enabled": "Activado", + "enter_amount": "Ingrese la cantidad", + "enter_backup_password": "Ingrese la contraseña de respaldo aquí", + "enter_code": "Ingresar código", + "enter_seed_phrase": "Ingrese su frase de semillas", + "enter_totp_code": "Ingrese el código TOTP.", + "enter_your_note": "Ingresa tu nota…", + "enter_your_pin": "Introduce tu PIN", + "enter_your_pin_again": "Ingrese su PIN nuevamente", + "enterTokenID": "Ingrese el ID del token", + "enterWalletConnectURI": "Ingrese el URI de WalletConnect", + "error": "Error", + "error_dialog_content": "Vaya, tenemos un error.\n\nEnvíe el informe de bloqueo a nuestro equipo de soporte para mejorar la aplicación.", + "error_text_account_name": "El nombre de la cuenta solo puede contener letras, números \ny debe tener entre 1 y 15 caracteres de longitud", + "error_text_address": "La dirección de la billetera debe corresponder al tipo \nde criptomoneda", + "error_text_amount": "La cantidad solo puede contener números", + "error_text_contact_name": "El nombre del contacto no puede contener símbolos `, '\" \ny debe tener entre 1 y 32 caracteres de longitud", + "error_text_crypto_currency": "El número de dígitos fraccionarios \ndebe ser menor o igual a 12", + "error_text_fiat": "El valor de la cantidad no puede exceder el saldo disponible.\nEl número de dígitos de fracción debe ser menor o igual a 2", + "error_text_input_above_maximum_limit": "La cantidad es más que el máximo", + "error_text_input_below_minimum_limit": "La cantidad es menos que mínima", + "error_text_keys": "Las llaves de billetera solo pueden contener 64 caracteres en hexadecimal", + "error_text_limits_loading_failed": "El comercio por ${provider} no se crea. Límites de carga fallidos", + "error_text_maximum_limit": "El comercio por ${provider} no se crea. La cantidad es más que el máximo: ${max} ${currency}", + "error_text_minimal_limit": "El comercio por ${provider} no se crea. La cantidad es menos que mínima: ${min} ${currency}", + "error_text_node_address": "Por favor, introduzca una dirección iPv4", + "error_text_node_port": "El puerto de nodo solo puede contener números entre 0 y 65535", + "error_text_node_proxy_address": "Ingrese :, por ejemplo 127.0.0.1:9050", + "error_text_payment_id": "La ID de pago solo puede contener de 16 a 64 caracteres en hexadecimal", + "error_text_subaddress_name": "El nombre de la subdirección no puede contener símbolos `, '\" \ny debe tener entre 1 y 20 caracteres de longitud", + "error_text_template": "El nombre y la dirección de la plantilla no pueden contener símbolos ` , '\" \ny debe tener entre 1 y 106 caracteres de longitud", + "error_text_wallet_name": "El nombre de la billetera solo puede contener letras, números , _ - símbolos\ny debe tener entre 1 y 33 caracteres de longitud", + "error_text_xmr": "El valor XMR no puede exceder el saldo disponible.\nTEl número de dígitos de fracción debe ser menor o igual a 12", "errorGettingCredentials": "Error: error al obtener las credenciales", "errorSigningTransaction": "Se ha producido un error al firmar la transacción.", - "pairingInvalidEvent": "Evento de emparejamiento no válido", - "chains": "Cadenas", - "methods": "Métodos", - "events": "Eventos", - "reject": "Rechazar", - "approve": "Aprobar", - "expiresOn": "Expira el", - "walletConnect": "MonederoConectar", - "nullURIError": "URI es nula", - "connectWalletPrompt": "Conecte su billetera con WalletConnect para realizar transacciones", - "newConnection": "Nueva conexión", - "activeConnectionsPrompt": "Las conexiones activas aparecerán aquí", - "deleteConnectionConfirmationPrompt": "¿Está seguro de que desea eliminar la conexión a", + "estimated": "Estimado", + "etherscan_history": "historia de etherscan", "event": "Evento", - "successful": "Exitoso", - "wouoldLikeToConnect": "quisiera conectar", - "message": "Mensaje", - "do_not_have_enough_gas_asset": "No tienes suficiente ${currency} para realizar una transacción con las condiciones actuales de la red blockchain. Necesita más ${currency} para pagar las tarifas de la red blockchain, incluso si envía un activo diferente.", - "totp_auth_url": "URL de autenticación TOTP", - "awaitDAppProcessing": "Espere a que la dApp termine de procesarse.", - "copyWalletConnectLink": "Copie el enlace de WalletConnect de dApp y péguelo aquí", - "enterWalletConnectURI": "Ingrese el URI de WalletConnect", - "seed_key": "Llave de semilla", - "enter_seed_phrase": "Ingrese su frase de semillas", - "change_rep_successful": "Representante cambiado con éxito", - "add_contact": "Agregar contacto", + "events": "Eventos", + "exchange": "Intercambiar", + "exchange_incorrect_current_wallet_for_xmr": "Si desea intercambiar XMR de su saldo de Cake Wallet Monero, primero cambie a su billetera Monero.", + "exchange_new_template": "Nueva plantilla", "exchange_provider_unsupported": "¡${providerName} ya no es compatible!", - "domain_looks_up": "Búsquedas de dominio", - "require_for_exchanges_to_external_wallets": "Requerido para intercambios a billeteras externas", - "camera_permission_is_required": "Se requiere permiso de la cámara.\nHabilítelo desde la configuración de la aplicación.", - "switchToETHWallet": "Cambie a una billetera Ethereum e inténtelo nuevamente.", - "order_by": "Ordenar", - "creation_date": "Fecha de creación", + "exchange_result_confirm": "Al presionar confirmar, enviará ${fetchingLabel} ${from} desde su billetera llamada ${walletName} a la dirección que se muestra a continuación. O puede enviar desde su billetera externa a la siguiente dirección / código QR anterior.\n\nPresione confirmar para continuar o regrese para cambiar los montos.", + "exchange_result_description": "Debe enviar un mínimo de ${fetchingLabel} ${from} a la dirección que se muestra en la página siguiente. Si envía una cantidad inferior a ${fetchingLabel} ${from}, es posible que no se convierta y no se reembolse.", + "exchange_result_write_down_ID": "*Copie o escriba su identificación que se muestra arriba.", + "exchange_result_write_down_trade_id": "Por favor, copia o escribe el ID.", + "exchange_sync_alert_content": "Espere hasta que su billetera esté sincronizada", + "expired": "Muerto", + "expires": "Caduca", + "expiresOn": "Expira el", + "export_backup": "Exportar copia de seguridad", + "extra_id": "ID adicional:", + "extracted_address_content": "Enviará fondos a\n${recipient_name}", + "failed_authentication": "Autenticación fallida. ${state_error}", + "faq": "FAQ", + "fetching": "Cargando", + "fiat_api": "Fiat API", + "fiat_balance": "Equilibrio Fiat", + "field_required": "Este campo es obligatorio", + "fill_code": "Por favor complete el código de verificación proporcionado a su correo electrónico", + "filter_by": "Filtrado por", + "first_wallet_text": "Impresionante billetera para Monero, Bitcoin, Ethereum, Litecoin, y Haven", + "fixed_pair_not_supported": "Este par fijo no es compatible con los intercambios seleccionados", + "fixed_rate": "Tipo de interés fijo", + "fixed_rate_alert": "Podrá ingresar la cantidad recibida cuando el modo de tarifa fija esté marcado. ¿Quieres cambiar al modo de tarifa fija?", + "forgot_password": "Olvidé mi contraseña", + "freeze": "Congelar", + "frequently_asked_questions": "Preguntas frecuentes", + "frozen": "Congelada", + "full_balance": "Balance completo", + "generate_name": "Generar nombre", + "generating_gift_card": "Generando tarjeta de regalo", + "get_a": "Obtener un", + "get_card_note": " que puedes recargar con monedas digitales. ¡No se necesita información adicional!", + "get_your_yat": "Obtén tu Yat", + "gift_card_amount": "Cantidad de la tarjeta de regalo", + "gift_card_balance_note": "Las tarjetas de regalo con saldo restante aparecerán aquí", + "gift_card_is_generated": "Se genera la tarjeta de regalo", + "gift_card_number": "Número de tarjeta de regalo", + "gift_card_redeemed_note": "Las tarjetas de regalo que hayas canjeado aparecerán aquí", + "gift_cards": "Tarjetas de regalo", + "gift_cards_unavailable": "Las tarjetas de regalo están disponibles para comprar solo a través de Monero, Bitcoin y Litecoin en este momento", + "got_it": "Entendido", + "gross_balance": "Saldo bruto", "group_by_type": "Grupo por tipo", - "importNFTs": "Importar NFT", - "noNFTYet": "Aún no hay NFT", - "address": "DIRECCIÓN", - "enterTokenID": "Ingrese el ID del token", - "tokenID": "IDENTIFICACIÓN", - "name": "Nombre", - "symbol": "Símbolo", - "seed_phrase_length": "Longitud de la frase inicial", - "unavailable_balance": "Saldo no disponible", - "unavailable_balance_description": "Saldo no disponible: este total incluye fondos que están bloqueados en transacciones pendientes y aquellos que usted ha congelado activamente en su configuración de control de monedas. Los saldos bloqueados estarán disponibles una vez que se completen sus respectivas transacciones, mientras que los saldos congelados permanecerán inaccesibles para las transacciones hasta que usted decida descongelarlos.", - "unspent_change": "Cambiar", - "tor_connection": "conexión tor", - "setup_warning_2fa_text": "Deberá restaurar su billetera a partir de la semilla mnemotécnica.\n\nEl soporte de Cake no podrá ayudarlo si pierde el acceso a su 2FA o a sus semillas mnemotécnicas.\nCake 2FA es una segunda autenticación para ciertas acciones en la billetera. Antes de usar Cake 2FA, recomendamos leer la guía.NO es tan seguro como el almacenamiento en frío.\n\nSi pierde el acceso a su aplicación 2FA o a sus claves TOTP, perderá el acceso a esta billetera. ", - "scan_qr_on_device": "Escanea este código QR en otro dispositivo", + "haven_app": "Haven by Cake Wallet", + "haven_app_wallet_text": "Awesome wallet for Haven", + "help": "ayuda", + "hidden_balance": "Balance oculto", + "hide_details": "Ocultar detalles", + "high_contrast_theme": "Tema de alto contraste", + "home_screen_settings": "Configuración de la pantalla de inicio", "how_to_use": "Cómo utilizar", + "how_to_use_card": "Cómo usar esta tarjeta", + "id": "ID: ", + "ignor": "Pasar por alto", + "import": "Importar", + "importNFTs": "Importar NFT", + "in_store": "En la tienda", + "incoming": "Entrante", + "incorrect_seed": "El texto ingresado no es válido.", + "introducing_cake_pay": "¡Presentamos Cake Pay!", + "invalid_input": "Entrada inválida", + "invoice_details": "Detalles de la factura", + "is_percentage": "es", + "last_30_days": "Últimos 30 días", + "learn_more": "Aprende más", + "light_theme": "Ligera", + "loading_your_wallet": "Cargando tu billetera", + "login": "Iniciar sesión", + "logout": "Cerrar sesión", + "low_fee": "Tarifa baja", + "low_fee_alert": "Actualmente está utilizando una prioridad de tarifa de red baja. Esto podría causar largas esperas, tarifas diferentes o transacciones canceladas. Recomendamos establecer una tarifa más alta para una mejor experiencia.", + "manage_nodes": "Administrar nodos", + "manage_pow_nodes": "Administrar nodos PoW", + "manage_yats": "Administrar Yats", + "mark_as_redeemed": "Marcar como canjeado", + "market_place": "Mercado", + "matrix_green_dark_theme": "Matrix verde oscuro tema", + "max_amount": "Máx: ${value}", + "max_value": "Max: ${value} ${currency}", + "memo": "Memorándum:", + "message": "Mensaje", + "methods": "Métodos", + "min_amount": "Mínimo: ${value}", + "min_value": "Min: ${value} ${currency}", + "minutes_to_pin_code": "${minute} minutos", + "mm": "mm", + "modify_2fa": "Modificar torta 2FA", + "monero_com": "Monero.com by Cake Wallet", + "monero_com_wallet_text": "Awesome wallet for Monero", + "monero_dark_theme": "Tema oscuro de Monero", + "monero_light_theme": "Tema ligero de Monero", + "moonpay_alert_text": "El valor de la cantidad debe ser mayor o igual a ${minAmount} ${fiatCurrency}", + "more_options": "Más Opciones", + "name": "Nombre", + "narrow": "Angosto", + "new_first_wallet_text": "Mantenga fácilmente su criptomoneda segura", + "new_node_testing": "Prueba de nuevos nodos", + "new_subaddress_create": "Crear", + "new_subaddress_label_name": "Nombre de etiqueta", + "new_subaddress_title": "Nueva direccion", + "new_template": "Nueva plantilla", + "new_wallet": "Nueva billetera", + "newConnection": "Nueva conexión", + "no_id_needed": "¡No se necesita identificación!", + "no_id_required": "No se requiere identificación. Recargue y gaste en cualquier lugar", + "no_relay_on_domain": "No hay una retransmisión para el dominio del usuario o la retransmisión no está disponible. Elija un relé para usar.", + "no_relays": "Sin relevos", + "no_relays_message": "Encontramos un registro Nostr NIP-05 para este usuario, pero no contiene ningún relé. Indique al destinatario que agregue retransmisiones a su registro Nostr.", + "node_address": "Dirección de nodo", + "node_connection_failed": "La conexión falló", + "node_connection_successful": "La conexión fue exitosa", + "node_new": "Nuevo nodo", + "node_port": "Puerto de nodo", + "node_reset_settings_title": "Reiniciar ajustes", + "node_test": "Prueba", + "nodes": "Nodos", + "nodes_list_reset_to_default_message": "¿Está seguro de que desea restablecer la configuración predeterminada?", + "none_of_selected_providers_can_exchange": "Ninguno de los proveedores seleccionados puede realizar este intercambio", + "noNFTYet": "Aún no hay NFT", + "normal": "Normal", + "note_optional": "Nota (opcional)", + "note_tap_to_change": "Nota (toque para cambiar)", + "nullURIError": "URI es nula", + "offer_expires_in": "Oferta expira en: ", + "offline": "fuera de línea", + "ok": "OK", + "onion_link": "Enlace de cebolla", + "online": "En línea", + "onramper_option_description": "Compre rápidamente cripto con muchos métodos de pago. Disponible en la mayoría de los países. Los diferenciales y las tarifas varían.", + "open_gift_card": "Abrir tarjeta de regalo", + "optional_description": "Descripción opcional", + "optional_email_hint": "Correo electrónico de notificación del beneficiario opcional", + "optional_name": "Nombre del destinatario opcional", + "optionally_order_card": "Opcionalmente pide una tarjeta física.", + "orbot_running_alert": "Asegúrese de que Orbot se esté ejecutando antes de conectarse a este nodo.", + "order_by": "Ordenar", + "order_id": "Identificación del pedido", + "order_physical_card": "Pedir tarjeta física", + "other_settings": "Otras configuraciones", + "outdated_electrum_wallet_description": "Las nuevas carteras de Bitcoin creadas en Cake ahora tienen una semilla de 24 palabras. Es obligatorio que cree una nueva billetera de Bitcoin y transfiera todos sus fondos a la nueva billetera de 24 palabras, y deje de usar billeteras con una semilla de 12 palabras. Haga esto de inmediato para asegurar sus fondos.", + "outdated_electrum_wallet_receive_warning": "Si esta billetera tiene una semilla de 12 palabras y se creó en Cake, NO deposite Bitcoin en esta billetera. Cualquier BTC transferido a esta billetera se puede perder. Cree una nueva billetera de 24 palabras (toque el menú en la parte superior derecha, seleccione Monederos, elija Crear nueva billetera, luego seleccione Bitcoin) e INMEDIATAMENTE mueva su BTC allí. Las nuevas carteras BTC (24 palabras) de Cake son seguras", + "outgoing": "Saliente", + "overwrite_amount": "Overwrite amount", + "pairingInvalidEvent": "Evento de emparejamiento no válido", + "password": "Contraseña", + "paste": "Pegar", + "pause_wallet_creation": "La capacidad para crear Haven Wallet está actualmente pausada.", + "payment_id": "ID de pago: ", + "payment_was_received": "Su pago fue recibido.", + "pending": " (pendiente)", + "percentageOf": "de ${amount}", + "personalizado": "personalizado", + "pin_at_top": "pin ${token} en la parte superior", + "pin_is_incorrect": "PIN es incorrecto", + "pin_number": "Número PIN", + "placeholder_contacts": "Tus contactos se mostrarán aquí", + "placeholder_transactions": "Sus transacciones se mostrarán aquí", + "please_fill_totp": "Complete el código de 8 dígitos presente en su otro dispositivo", + "please_make_selection": "Seleccione a continuación para crear o recuperar su billetera.", + "please_reference_document": "Consulte los documentos a continuación para obtener más información.", + "please_select": "Por favor seleccione:", + "please_select_backup_file": "Seleccione el archivo de respaldo e ingrese la contraseña de respaldo.", + "please_try_to_connect_to_another_node": "Intenta conectarte a otro nodo", + "please_wait": "Espere por favor", + "polygonscan_history": "Historial de PolygonScan", + "powered_by": "Energizado por ${title}", + "pre_seed_button_text": "Entiendo. Muéstrame mi semilla", + "pre_seed_description": "En la página siguiente verá una serie de ${words} palabras. Esta es su semilla única y privada y es la ÚNICA forma de recuperar su billetera en caso de pérdida o mal funcionamiento. Es SU responsabilidad escribirlo y guardarlo en un lugar seguro fuera de la aplicación Cake Wallet.", + "pre_seed_title": "IMPORTANTE", + "prevent_screenshots": "Evitar capturas de pantalla y grabación de pantalla", + "privacy": "Privacidad", + "privacy_policy": "Política de privacidad", + "privacy_settings": "Configuración de privacidad", + "private_key": "Clave privada", + "proceed_after_one_minute": "Si la pantalla no continúa después de 1 minuto, revisa tu correo electrónico.", + "profile": "Perfil", + "provider_error": "${provider} error", + "public_key": "Clave pública", + "purchase_gift_card": "Comprar tarjeta de regalo", + "qr_fullscreen": "Toque para abrir el código QR en pantalla completa", + "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", + "question_to_disable_2fa": "¿Está seguro de que desea deshabilitar Cake 2FA? Ya no se necesitará un código 2FA para acceder a la billetera y a ciertas funciones.", + "receivable_balance": "Saldo de cuentas por cobrar", + "receive": "Recibir", + "receive_amount": "Cantidad", + "received": "Recibido", + "recipient_address": "Dirección del receptor", + "reconnect": "Volver a conectar", + "reconnect_alert_text": "¿Estás seguro de reconectar?", + "reconnection": "Reconexión", + "redeemed": "Redimido", + "refund_address": "Dirección de reembolso", + "reject": "Rechazar", + "remaining": "restante", + "remove": "Retirar", + "remove_node": "Eliminar nodo", + "remove_node_message": "¿Está seguro de que desea eliminar el nodo seleccionado?", + "rename": "Rebautizar", + "require_for_adding_contacts": "Requerido para agregar contactos", + "require_for_all_security_and_backup_settings": "Requerido para todas las configuraciones de seguridad y copia de seguridad", + "require_for_assessing_wallet": "Requerido para acceder a la billetera", + "require_for_creating_new_wallets": "Requerido para crear nuevas billeteras", + "require_for_exchanges_to_external_wallets": "Requerido para intercambios a billeteras externas", + "require_for_exchanges_to_internal_wallets": "Requerido para intercambios a billeteras internas", + "require_for_sends_to_contacts": "Requerir para envíos a contactos", + "require_for_sends_to_internal_wallets": "Requerido para envíos a billeteras internas", + "require_for_sends_to_non_contacts": "Requerido para envíos a no contactos", + "require_pin_after": "Requerir PIN después de", + "rescan": "Reescanear", + "resend_code": "Por favor reenvíalo", + "reset": "Reiniciar", + "reset_password": "Restablecer contraseña", + "restore_active_seed": "Semilla activa", + "restore_address": "Dirección", + "restore_bitcoin_description_from_keys": "Restaure su billetera a partir de una cadena WIF generada a partir de sus claves privadas", + "restore_bitcoin_description_from_seed": "Restaure su billetera a partir del código de combinación de 24 palabras", + "restore_bitcoin_title_from_keys": "Restaurar desde WIF", + "restore_description_from_backup": "Puede restaurar toda la aplicación Cake Wallet desde ysu archivo de respaldo", + "restore_description_from_keys": "Restaure su billetera de las pulsaciones de teclas generadas guardadas de sus claves privadas", + "restore_description_from_seed": "Restaure su billetera desde el código de combinación de 25 palabras i de 13 palabras", + "restore_description_from_seed_keys": "Recupere su billetera de las semillas/claves que ha guardado en un lugar seguro", + "restore_from_date_or_blockheight": "Ingrese una fecha unos días antes de crear esta billetera. O si conoce la altura del bloque, ingréselo en su lugar", + "restore_from_seed_placeholder": "Ingrese o pegue su frase de código aquí", + "restore_new_seed": "Nueva semilla", + "restore_next": "Próximo", + "restore_recover": "Recuperar", + "restore_restore_wallet": "Recuperar Cartera", + "restore_seed_keys_restore": "Restauración de semillas / llaves", + "restore_spend_key_private": "Spend clave (privado)", + "restore_title_from_backup": "Restaurar desde un archivo de respaldo", + "restore_title_from_keys": "De las claves", + "restore_title_from_seed": "De la semilla", + "restore_title_from_seed_keys": "Restaurar desde semilla/claves", + "restore_view_key_private": "View clave (privado)", + "restore_wallet": "Restaurar billetera", + "restore_wallet_name": "Nombre de la billetera", + "restore_wallet_restore_description": "Restaurar billetera", + "router_no_route": "No hay ruta definida para ${name}", + "save": "Salvar", + "save_backup_password": "Asegúrese de haber guardado su contraseña de respaldo. No podrá importar sus archivos de respaldo sin él.", + "save_backup_password_alert": "Guardar contraseña de respaldo", + "save_to_downloads": "Guardar en Descargas", + "saved_the_trade_id": "He salvado comercial ID", + "scan_qr_code": "Escanear código QR", + "scan_qr_code_to_get_address": "Escanee el código QR para obtener la dirección", + "scan_qr_on_device": "Escanea este código QR en otro dispositivo", + "search": "Búsqueda", + "search_add_token": "Buscar/Agregar token", + "search_category": "Categoría de búsqueda", + "search_currency": "Moneda de búsqueda", + "search_language": "Idioma de búsqueda", + "second_intro_content": "Tu Yat es una única dirección emoji única que reemplaza todas tus direcciones hexadecimales largas para todas tus monedas.", + "second_intro_title": "Una dirección de emoji para gobernarlos a todos", + "security_and_backup": "Seguridad y respaldo", + "seed_alert_back": "Regresa", + "seed_alert_content": "La semilla es la única forma de recuperar su billetera. ¿Lo has escrito?", + "seed_alert_title": "Atención", + "seed_alert_yes": "Sí tengo", + "seed_choose": "Elige el idioma semilla", "seed_hex_form": "Semilla de billetera (forma hexadecimal)", + "seed_key": "Llave de semilla", + "seed_language": "Lenguaje de semillas", + "seed_language_chinese": "Chino", + "seed_language_chinese_traditional": "Chino (tradicional)", + "seed_language_czech": "checo", + "seed_language_dutch": "Holandés", + "seed_language_english": "Inglés", + "seed_language_french": "Francesa/Francés", + "seed_language_german": "Alemán", + "seed_language_italian": "Italiana/Italiano", + "seed_language_japanese": "Japonés", + "seed_language_korean": "coreano", + "seed_language_next": "Próximo", + "seed_language_portuguese": "Portugués", + "seed_language_russian": "Ruso", + "seed_language_spanish": "Español", + "seed_phrase_length": "Longitud de la frase inicial", + "seed_reminder": "Anótelos en caso de que pierda o borre su teléfono", + "seed_share": "Compartir semillas", + "seed_title": "Semilla", "seedtype": "Type de semillas", "seedtype_legacy": "Legado (25 palabras)", "seedtype_polyseed": "Polieta (16 palabras)", - "seed_language_czech": "checo", - "seed_language_korean": "coreano", - "ascending": "Ascendente", - "descending": "Descendente", - "dfx_option_description": "Compre criptomonedas con EUR y CHF. Hasta 990€ sin KYC adicional. Para clientes minoristas y corporativos en Europa", - "seed_language_chinese_traditional": "Chino (tradicional)", - "polygonscan_history": "Historial de PolygonScan", - "wallet_seed_legacy": "Semilla de billetera heredada", - "default_sell_provider": "Proveedor de venta predeterminado", + "select_backup_file": "Seleccionar archivo de respaldo", + "select_buy_provider_notice": "Seleccione un proveedor de compra arriba. Puede omitir esta pantalla configurando su proveedor de compra predeterminado en la configuración de la aplicación.", + "select_destination": "Seleccione el destino del archivo de copia de seguridad.", "select_sell_provider_notice": "Seleccione un proveedor de venta arriba. Puede omitir esta pantalla configurando su proveedor de venta predeterminado en la configuración de la aplicación.", - "custom_drag": "Custom (mantenía y arrastre)", + "sell": "Vender", + "sell_alert_content": "Actualmente solo admitimos la venta de Bitcoin, Ethereum y Litecoin. Cree o cambie a su billetera Bitcoin, Ethereum o Litecoin.", + "sell_monero_com_alert_content": "Aún no se admite la venta de Monero", + "send": "Enviar", + "send_address": "Dirección de ${cryptoCurrency}", + "send_amount": "Cantidad:", + "send_creating_transaction": "Creando transacción", + "send_error_currency": "La moneda solo puede contener números", + "send_error_minimum_value": "El valor mínimo de la cantidad es 0.01", + "send_estimated_fee": "Tarifa estimada:", + "send_fee": "Cuota:", + "send_name": "Nombre", + "send_new": "Nuevo", + "send_payment_id": "ID de pago (opcional)", + "send_priority": "Actualmente la tarifa se establece en ${transactionPriority} prioridad.\nLa prioridad de la transacción se puede ajustar en la configuración", + "send_sending": "Enviando...", + "send_success": "Su ${crypto} fue enviado con éxito", + "send_templates": "Plantillas", + "send_title": "Enviar", + "send_to_this_address": "Enviar ${currency} ${tag}a esta dirección", + "send_xmr": "Enviar XMR", + "send_your_wallet": "Tu billetera", + "sending": "Enviando", + "sent": "Expedido", + "settings": "Configuraciones", + "settings_all": "TODOS", + "settings_allow_biometrical_authentication": "Permitir autenticación biométrica", + "settings_can_be_changed_later": "Estas configuraciones se pueden cambiar más tarde en la configuración de la aplicación", + "settings_change_language": "Cambiar idioma", + "settings_change_pin": "Cambiar PIN", + "settings_currency": "Moneda", + "settings_current_node": "Nodo actual", + "settings_dark_mode": "Modo oscuro", + "settings_display_balance": "Mostrar saldo", + "settings_display_on_dashboard_list": "Mostrar en la lista del tablero", + "settings_fee_priority": "Prioridad de tasa", + "settings_nodes": "Nodos", + "settings_none": "Ninguno", + "settings_only_trades": "Solo comercia", + "settings_only_transactions": "Solo transacciones", + "settings_personal": "Personal", + "settings_save_recipient_address": "Guardar dirección del destinatario", + "settings_support": "Apoyo", + "settings_terms_and_conditions": "Términos y Condiciones", + "settings_title": "Configuraciones", + "settings_trades": "Comercia", + "settings_transactions": "Transacciones", + "settings_wallets": "Carteras", + "setup_2fa": "Configurar pastel 2FA", + "setup_2fa_text": "Cake 2FA funciona utilizando TOTP como segundo factor de autenticación.\n\nEl TOTP de Cake 2FA requiere SHA-512 y soporte de 8 dígitos; esto proporciona una mayor seguridad. Puede encontrar más información y aplicaciones compatibles en la guía.", + "setup_pin": "PIN de configuración", + "setup_successful": "Su PIN se ha configurado correctamente!", + "setup_totp_recommended": "Configurar TOTP", + "setup_warning_2fa_text": "Deberá restaurar su billetera a partir de la semilla mnemotécnica.\n\nEl soporte de Cake no podrá ayudarlo si pierde el acceso a su 2FA o a sus semillas mnemotécnicas.\nCake 2FA es una segunda autenticación para ciertas acciones en la billetera. Antes de usar Cake 2FA, recomendamos leer la guía.NO es tan seguro como el almacenamiento en frío.\n\nSi pierde el acceso a su aplicación 2FA o a sus claves TOTP, perderá el acceso a esta billetera. ", + "setup_your_debit_card": "Configura tu tarjeta de débito", + "share": "Compartir", + "share_address": "Compartir dirección", + "show_details": "Mostrar detalles", + "show_keys": "Mostrar semilla/claves", + "show_market_place": "Mostrar mercado", + "show_seed": "Mostrar semilla", + "sign_up": "Registrarse", + "signTransaction": "Firmar transacción", + "signup_for_card_accept_terms": "Regístrese para obtener la tarjeta y acepte los términos.", + "slidable": "deslizable", + "sort_by": "Ordenar por", + "spend_key_private": "Spend clave (privado)", + "spend_key_public": "Spend clave (público)", + "status": "Estado: ", + "subaddress_title": "Lista de subdirecciones", + "subaddresses": "Subdirecciones", + "submit_request": "presentar una solicitud", + "successful": "Exitoso", + "support_description_guides": "Documentación y apoyo para problemas comunes", + "support_description_live_chat": "¡GRATIS y RÁPIDO! Los representantes de apoyo capacitado están disponibles para ayudar", + "support_description_other_links": "Únase a nuestras comunidades o comuníquese con nosotros nuestros socios a través de otros métodos", + "support_title_guides": "Guías de billetera para pastel", + "support_title_live_chat": "Soporte vital", + "support_title_other_links": "Otros enlaces de soporte", + "sweeping_wallet": "Billetera de barrido", + "sweeping_wallet_alert": "Esto no debería llevar mucho tiempo. NO DEJES ESTA PANTALLA O SE PUEDEN PERDER LOS FONDOS BARRIDOS", + "switchToETHWallet": "Cambie a una billetera Ethereum e inténtelo nuevamente.", "switchToEVMCompatibleWallet": "Cambie a una billetera compatible con EVM e inténtelo nuevamente (Ethereum, Polygon)", - "receivable_balance": "Saldo de cuentas por cobrar", - "confirmed_tx": "Confirmado", + "symbol": "Símbolo", + "sync_all_wallets": "Sincronizar todas las billeteras", + "sync_status_attempting_sync": "INTENTAR SINCRONIZAR", + "sync_status_connected": "CONECTADO", + "sync_status_connecting": "CONECTANDO", + "sync_status_failed_connect": "DESCONECTADO", + "sync_status_not_connected": "NO CONECTADO", + "sync_status_starting_sync": "EMPEZANDO A SINCRONIZAR", + "sync_status_syncronized": "SINCRONIZADO", + "sync_status_syncronizing": "SINCRONIZANDO", + "syncing_wallet_alert_content": "Es posible que su lista de saldo y transacciones no esté completa hasta que diga \"SINCRONIZADO\" en la parte superior. Haga clic/toque para obtener más información.", + "syncing_wallet_alert_title": "Tu billetera se está sincronizando", + "template": "Plantilla", + "template_name": "Nombre de la plantilla", + "third_intro_content": "Los Yats también viven fuera de Cake Wallet. Cualquier dirección de billetera en la tierra se puede reemplazar con un Yat!", + "third_intro_title": "Yat juega muy bien con otras", + "time": "${minutes}m ${seconds}s", + "tip": "Consejo:", + "today": "Hoy", + "token_contract_address": "Dirección de contrato de token", + "token_decimal": "Token decimal", + "token_name": "Nombre del token, por ejemplo: Tether", + "token_symbol": "Símbolo de token, por ejemplo: USDT", + "tokenID": "IDENTIFICACIÓN", + "tor_connection": "conexión tor", + "tor_only": "solo Tor", + "total_saving": "Ahorro Total", + "totp_2fa_failure": "Código incorrecto. Intente con un código diferente o genere una nueva clave secreta. Use una aplicación 2FA compatible que admita códigos de 8 dígitos y SHA512.", + "totp_2fa_success": "¡Éxito! Cake 2FA habilitado para esta billetera. Recuerde guardar su semilla mnemotécnica en caso de que pierda el acceso a la billetera.", + "totp_auth_url": "URL de autenticación TOTP", + "totp_code": "Código TOTP", + "totp_secret_code": "Código secreto TOTP", + "totp_verification_success": "¡Verificación exitosa!", + "trade_details_copied": "${title} Copiado al portapapeles", + "trade_details_created_at": "Creado en", + "trade_details_fetching": "Cargando", + "trade_details_id": "ID", + "trade_details_pair": "Par", + "trade_details_provider": "Proveedor", + "trade_details_state": "Estado", + "trade_details_title": "Detalles comerciales", + "trade_for_not_created": "Comercio por ${title} no se crea.", + "trade_history_title": "Historia del comercio", + "trade_id": "Comercial ID:", + "trade_id_not_found": "Comercio ${tradeId} de ${title} no encontrado.", + "trade_is_powered_by": "Este comercio es impulsado por ${provider}", + "trade_not_created": "Comercio no se crea", + "trade_not_found": "Comercio no encontrado.", + "trade_state_btc_sent": "Btc expedido", + "trade_state_complete": "Completar", + "trade_state_confirming": "Confirmando", + "trade_state_created": "Creado", + "trade_state_finished": "Terminado", + "trade_state_paid": "Pagado", + "trade_state_paid_unconfirmed": "Pagado sin confirmar", + "trade_state_pending": "Pendiente", + "trade_state_timeout": "Se acabó el tiempo", + "trade_state_to_be_created": "Ser creado", + "trade_state_traded": "Negociado", + "trade_state_trading": "Comercio", + "trade_state_underpaid": "Poco pagado", + "trade_state_unpaid": "No pagado", + "trades": "Cambios", + "transaction_details_amount": "Cantidad", + "transaction_details_copied": "${title} Copiado al portapapeles", + "transaction_details_date": "Fecha", + "transaction_details_fee": "Cuota", + "transaction_details_height": "Altura", + "transaction_details_recipient_address": "Direcciones de destinatarios", "transaction_details_source_address": "Dirección de la fuente", - "pause_wallet_creation": "La capacidad para crear Haven Wallet está actualmente pausada.", - "contractName": "Nombre del contrato", - "contractSymbol": "Símbolo de contrato", - "description": "Descripción", - "camera_consent": "Su cámara será utilizada para capturar una imagen con fines de identificación por ${provider}. Consulte su Política de privacidad para obtener más detalles.", - "no_relays": "Sin relevos", - "choose_relay": "Por favor elija un relé para usar", - "no_relays_message": "Encontramos un registro Nostr NIP-05 para este usuario, pero no contiene ningún relé. Indique al destinatario que agregue retransmisiones a su registro Nostr.", - "no_relay_on_domain": "No hay una retransmisión para el dominio del usuario o la retransmisión no está disponible. Elija un relé para usar." -} + "transaction_details_title": "Detalles de la transacción", + "transaction_details_transaction_id": "ID de transacción", + "transaction_key": "Clave de transacción", + "transaction_priority_fast": "Rápido", + "transaction_priority_fastest": "Lo más rápido", + "transaction_priority_medium": "Medio", + "transaction_priority_regular": "Regular", + "transaction_priority_slow": "Lento", + "transaction_sent": "Transacción enviada!", + "transaction_sent_notice": "Si la pantalla no continúa después de 1 minuto, revisa un explorador de bloques y tu correo electrónico.", + "transactions": "Actas", + "transactions_by_date": "Transacciones por fecha", + "trusted": "de confianza", + "unavailable_balance": "Saldo no disponible", + "unavailable_balance_description": "Saldo no disponible: este total incluye fondos que están bloqueados en transacciones pendientes y aquellos que usted ha congelado activamente en su configuración de control de monedas. Los saldos bloqueados estarán disponibles una vez que se completen sus respectivas transacciones, mientras que los saldos congelados permanecerán inaccesibles para las transacciones hasta que usted decida descongelarlos.", + "unconfirmed": "Saldo no confirmado", + "understand": "Entiendo", + "unmatched_currencies": "La moneda de su billetera actual no coincide con la del QR escaneado", + "unspent_change": "Cambiar", + "unspent_coins_details_title": "Detalles de monedas no gastadas", + "unspent_coins_title": "Monedas no gastadas", + "unsupported_asset": "No admitimos esta acción para este activo. Cree o cambie a una billetera de un tipo de activo admitido.", + "upto": "hasta ${value}", + "use": "Utilizar a ", + "use_card_info_three": "Utilice la tarjeta digital en línea o con métodos de pago sin contacto.", + "use_card_info_two": "Los fondos se convierten a USD cuando se mantienen en la cuenta prepaga, no en monedas digitales.", + "use_ssl": "Utilice SSL", + "use_suggested": "Usar sugerido", + "variable_pair_not_supported": "Este par de variables no es compatible con los intercambios seleccionados", + "verification": "Verificación", + "verify_with_2fa": "Verificar con Cake 2FA", + "version": "Versión ${currentVersion}", + "view_all": "Ver todo", + "view_in_block_explorer": "View in Block Explorer", + "view_key_private": "View clave (privado)", + "view_key_public": "View clave (público)", + "view_transaction_on": "View Transaction on ", + "wallet_keys": "Billetera semilla/claves", + "wallet_list_create_new_wallet": "Crear nueva billetera", + "wallet_list_edit_wallet": "Editar billetera", + "wallet_list_failed_to_load": "No se pudo cargar ${wallet_name} la billetera. ${error}", + "wallet_list_failed_to_remove": "Error al elimina ${wallet_name} billetera. ${error}", + "wallet_list_load_wallet": "Billetera de carga", + "wallet_list_loading_wallet": "Billetera ${wallet_name} de carga", + "wallet_list_removing_wallet": "Retirar ${wallet_name} billetera", + "wallet_list_restore_wallet": "Restaurar billetera", + "wallet_list_title": "Monedero Monero", + "wallet_list_wallet_name": "Nombre de la billetera", + "wallet_menu": "Menú de billetera", + "wallet_name": "Nombre de la billetera", + "wallet_name_exists": "Wallet con ese nombre ya ha existido", + "wallet_restoration_store_incorrect_seed_length": "Longitud de semilla incorrecta", + "wallet_seed": "Semilla de billetera", + "wallet_seed_legacy": "Semilla de billetera heredada", + "wallet_store_monero_wallet": "Monedero Monero", + "walletConnect": "MonederoConectar", + "wallets": "Carteras", + "warning": "Advertencia", + "welcome": "Bienvenido", + "welcome_to_cakepay": "¡Bienvenido a Cake Pay!", + "widgets_address": "Dirección", + "widgets_or": "o", + "widgets_restore_from_blockheight": "Restaurar desde blockheight", + "widgets_restore_from_date": "Restaurar desde fecha", + "widgets_seed": "Semilla", + "wouoldLikeToConnect": "quisiera conectar", + "write_down_backup_password": "Escriba su contraseña de respaldo, que se utiliza para la importación de sus archivos de respaldo.", + "xlm_extra_info": "No olvide especificar el ID de nota al enviar la transacción XLM para el intercambio", + "xmr_available_balance": "Saldo disponible", + "xmr_full_balance": "Balance total", + "xmr_hidden": "Oculto", + "xmr_to_error": "Error de XMR.TO", + "xmr_to_error_description": "Monto invalido. Límite máximo de 8 dígitos después del punto decimal", + "xrp_extra_info": "No olvide especificar la etiqueta de destino al enviar la transacción XRP para el intercambio", + "yat": "Yat", + "yat_address": "Dirección de Yat", + "yat_alert_content": "Los usuarios de Cake Wallet ahora pueden enviar y recibir todas sus monedas favoritas con un nombre de usuario único basado en emoji.", + "yat_alert_title": "Envíe y reciba criptomonedas más fácilmente con Yat", + "yat_error": "Error de Yat", + "yat_error_content": "No hay direcciones vinculadas con este Yat. Prueba con otro Yat", + "yat_popup_content": "Ahora puede enviar y recibir criptografía en Cake Wallet con su Yat, un nombre de usuario corto basado en emoji. Administre Yats en cualquier momento en la pantalla de configuración", + "yat_popup_title": "La dirección de su billetera se puede emojificar.", + "yesterday": "Ayer", + "you_now_have_debit_card": "Ahora tiene una tarjeta de débito", + "you_pay": "Tú pagas", + "you_will_get": "Convertir a", + "you_will_send": "Convertir de", + "yy": "YY", + "zzzz": "zzzz" +} \ No newline at end of file diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index 523253bf4..fc72c06db 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -1,779 +1,780 @@ { - "welcome": "Bienvenue sur", - "cake_wallet": "Cake Wallet", - "first_wallet_text": "Super portefeuille (wallet) pour Monero, Bitcoin, Ethereum, Litecoin et Haven", - "please_make_selection": "Merci de faire un choix ci-dessous pour créer ou restaurer votre portefeuille (wallet).", - "create_new": "Créer un Nouveau Portefeuille (Wallet)", - "restore_wallet": "Restaurer un Portefeuille (Wallet)", - "monero_com": "Monero.com par Cake Wallet", - "monero_com_wallet_text": "Super portefeuille (wallet) pour Monero", - "haven_app": "Haven par Cake Wallet", - "haven_app_wallet_text": "Super portefeuille (wallet) pour Haven", - "accounts": "Comptes", - "edit": "Modifier", + "about_cake_pay": "Cake Pay vous permet d'acheter facilement des cartes-cadeaux avec des actifs virtuels, utilisables instantanément chez plus de 150 000 marchands aux États-Unis.", "account": "Compte", + "accounts": "Comptes", + "accounts_subaddresses": "Comptes et sous-adresses", + "activate": "Activer", + "active": "Actives", + "active_cards": "Cartes actives", + "activeConnectionsPrompt": "Les connexions actives apparaîtront ici", "add": "Ajouter", + "add_contact": "Ajouter le contact", + "add_custom_node": "Ajouter un nouveau nœud personnalisé", + "add_custom_redemption": "Ajouter un remboursement personnalisé", + "add_fund_to_card": "Ajouter des fonds prépayés aux cartes (jusqu'à ${value})", + "add_new_node": "Ajouter un nouveau nœud", + "add_new_word": "Ajouter un nouveau mot", + "add_receiver": "Ajouter un autre bénéficiaire (optionnel)", + "add_secret_code": "Ou ajoutez ce code secret à une application d'authentification", + "add_tip": "Ajouter un pourboire", + "add_token_disclaimer_check": "J'ai confirmé l'adresse et les informations du contrat de token en utilisant une source fiable. L'ajout d'informations malveillantes ou incorrectes peut entraîner une perte de fonds.", + "add_token_warning": "Ne modifiez pas ou n'ajoutez pas de tokens comme pourraient vous le suggérer des escrocs.\nConfirmez toujours les adresses de token auprès de sources fiables !", + "add_value": "Ajouter une valeur", + "address": "Adresse", "address_book": "Carnet d'Adresses", - "contact": "Contact", - "please_select": "Merci de sélectionner :", - "cancel": "Annuler", - "ok": "OK", - "contact_name": "Nom de Contact", - "reset": "Réinitialiser", - "save": "Sauvegarder", + "address_book_menu": "Carnet d'Adresses", + "address_detected": "Adresse détectée", + "address_from_domain": "Cette adresse est issue de ${domain} sur Unstoppable Domains", + "address_from_yat": "Cette adresse est issue de ${emoji} sur Yat", + "address_label": "Nom de l'adresse", "address_remove_contact": "Supprimer le contact", "address_remove_content": "Êtes vous certain de vouloir supprimer le contact sélectionné ?", - "authenticated": "Authentifié", - "authentication": "Authentification", - "failed_authentication": "Échec d'authentification. ${state_error}", - "wallet_menu": "Menu", - "Blocks_remaining": "Blocs Restants : ${status}", - "please_try_to_connect_to_another_node": "Merci d'essayer la connexion vers un autre nœud", - "xmr_hidden": "Caché", - "xmr_available_balance": "Solde Disponible", - "xmr_full_balance": "Solde Total", - "send": "Envoyer", - "receive": "Recevoir", - "transactions": "Transactions", - "incoming": "Entrantes", - "outgoing": "Sortantes", - "transactions_by_date": "Transactions par date", - "trades": "Échanges", - "filter_by": "Filtrer par", - "today": "Aujourd'hui", - "yesterday": "Hier", - "received": "Reçus", - "sent": "Envoyés", - "pending": " (en attente)", - "rescan": "Analyser la blockchain", - "reconnect": "Reconnecter", - "wallets": "Portefeuilles (Wallets)", - "show_seed": "Visualiser la phrase secrète (seed)", - "show_keys": "Visualiser la phrase secrète (seed) et les clefs", - "address_book_menu": "Carnet d'Adresses", - "reconnection": "Reconnexion", - "reconnect_alert_text": "Êtes vous certain de vouloir vous reconnecter ?", - "exchange": "Échanger", - "clear": "Effacer", - "refund_address": "Adresse de Remboursement", - "change_exchange_provider": "Changer de Plateforme d'Échange", - "you_will_send": "Convertir depuis", - "you_will_get": "Convertir vers", - "amount_is_guaranteed": "Le montant reçu est garanti", - "amount_is_estimate": "Le montant reçu est estimé", - "powered_by": "Proposé par ${title}", - "error": "Erreur", - "estimated": "Estimé", - "min_value": "Min: ${value} ${currency}", - "max_value": "Max: ${value} ${currency}", - "change_currency": "Changer de Devise", - "overwrite_amount": "Remplacer le montant", - "qr_payment_amount": "Ce QR code contient un montant de paiement. Voulez-vous remplacer la valeur actuelle ?", - "copy_id": "Copier l'ID", - "exchange_result_write_down_trade_id": "Merci de copier ou d'écrire l'ID d'échange pour continuer.", - "trade_id": "ID d'échange :", - "copied_to_clipboard": "Copié vers le Presse-Papier", - "saved_the_trade_id": "J'ai sauvegardé l'ID d'échange", - "fetching": "Récupération", - "id": "ID : ", - "amount": "Montant : ", - "payment_id": "ID de Paiement : ", - "status": "Statut : ", - "offer_expires_in": "L'Offre expire dans : ", - "trade_is_powered_by": "Cet échange est proposé par ${provider}", - "copy_address": "Copier l'Adresse", - "exchange_result_confirm": "En pressant confirmer, vous enverrez ${fetchingLabel} ${from} depuis votre portefeuille (wallet) nommé ${walletName} vers l'adresse ci-dessous. Vous pouvez aussi envoyer depuis votre portefeuille externe vers l'adresse/QR code ci-dessous.\n\nMerci d'appuyer sur confirmer pour continuer ou retournez en arrière pour modifier les montants.", - "exchange_result_description": "Vous devez envoyer un minimum de ${fetchingLabel} ${from} à l'adresse indiquée page suivante. Si vous envoyez un montant inférieur à ${fetchingLabel} ${from} il pourrait ne pas être converti et ne pas être remboursé.", - "exchange_result_write_down_ID": "*Merci de copier ou écrire votre ID présenté ci-dessus.", - "confirm": "Confirmer", - "confirm_sending": "Confirmer l'envoi", - "commit_transaction_amount_fee": "Valider la transaction\nMontant : ${amount}\nFrais : ${fee}", - "sending": "Envoi", - "transaction_sent": "Transaction émise !", - "expired": "Expirée", - "time": "${minutes}m ${seconds}s", - "send_xmr": "Envoyer XMR", - "exchange_new_template": "Nouveau modèle d'échange", - "faq": "FAQ", - "enter_your_pin": "Entrez votre code PIN", - "loading_your_wallet": "Chargement de votre portefeuille (wallet)", - "new_wallet": "Nouveau Portefeuille (Wallet)", - "wallet_name": "Nom du Portefeuille (Wallet)", - "continue_text": "Continuer", - "choose_wallet_currency": "Merci de choisir la devise du portefeuille (wallet) :", - "node_new": "Nouveau Nœud", - "node_address": "Adresse du Nœud", - "node_port": "Port du Nœud", - "login": "Utilisateur", - "password": "Mot de passe", - "nodes": "Nœuds", - "node_reset_settings_title": "Réinitialisation des réglages", - "nodes_list_reset_to_default_message": "Êtes vous certain de vouloir revenir aux réglages par défaut ?", - "change_current_node": "Êtes vous certain de vouloir changer le nœud actuel pour ${node} ?", - "change": "Changer", - "remove_node": "Supprimer le nœud", - "remove_node_message": "Êtes vous certain de vouloir supprimer le nœud sélectionné ?", - "remove": "Supprimer", - "delete": "Effacer", - "add_new_node": "Ajouter un nouveau nœud", - "change_current_node_title": "Changer le nœud actuel", - "node_test": "Tester", - "node_connection_successful": "Connexion établie avec succès", - "node_connection_failed": "La connexion a échoué", - "new_node_testing": "Test du nouveau nœud", - "use": "Changer vers code PIN à ", - "digit_pin": " chiffres", - "share_address": "Partager l'adresse", - "receive_amount": "Montant", - "subaddresses": "Sous-adresses", "addresses": "Adresses", - "scan_qr_code_to_get_address": "Scannez le QR code pour obtenir l'adresse", - "qr_fullscreen": "Appuyez pour ouvrir le QR code en mode plein écran", - "rename": "Renommer", - "choose_account": "Choisir le compte", - "create_new_account": "Créer un nouveau compte", - "accounts_subaddresses": "Comptes et sous-adresses", - "restore_restore_wallet": "Restaurer le Portefeuille (Wallet)", - "restore_title_from_seed_keys": "Restaurer depuis une phrase secrète (seed) ou des clefs", - "restore_description_from_seed_keys": "Restaurez votre portefeuille (wallet) depuis une phrase secrète (seed) ou des clefs que vous avez stockées en lieu sûr", - "restore_next": "Suivant", - "restore_title_from_backup": "Restaurer depuis une sauvegarde", - "restore_description_from_backup": "Vous pouvez restaurer l'intégralité de l'application Cake Wallet depuis un fichier de sauvegarde", - "restore_seed_keys_restore": "Restaurer depuis Phrase secrète (seed)/Clefs", - "restore_title_from_seed": "Restaurer depuis une phrase secrète (seed)", - "restore_description_from_seed": "Restaurer votre portefeuille (wallet) depuis une phrase secrète (seed) de 25 ou 13 mots", - "restore_title_from_keys": "Restaurer depuis des clefs", - "restore_description_from_keys": "Restaurer votre portefeuille (wallet) d'après les séquences de touches générées d'après vos clefs privées", - "restore_wallet_name": "Nom du portefeuille (wallet)", - "restore_address": "Adresse", - "restore_view_key_private": "Clef d'audit (view key) (privée)", - "restore_spend_key_private": "Clef de dépense (spend key) (privée)", - "restore_recover": "Restaurer", - "restore_wallet_restore_description": "Description de la restauration de portefeuille (wallet)", - "restore_new_seed": "Nouvelle phrase secrète (seed)", - "restore_active_seed": "Phrase secrète (seed) active", - "restore_bitcoin_description_from_seed": "Restaurer votre portefeuille (wallet) à l'aide d'une phrase secrète (seed) de 24 mots", - "restore_bitcoin_description_from_keys": "Restaurer votre portefeuille (wallet) d'après la chaîne WIF générée d'après vos clefs privées", - "restore_bitcoin_title_from_keys": "Restaurer depuis la chaîne WIF", - "restore_from_date_or_blockheight": "Merci d'entrer une date antérieure de quelques jours à la date de création de votre portefeuille (wallet). Ou si vous connaissez la hauteur de bloc, merci de la spécifier plutôt qu'une date", - "seed_reminder": "Merci d'écrire votre phrase secrète (seed) au cas où vous perdriez ou effaceriez votre téléphone", - "seed_title": "Phrase secrète (seed)", - "seed_share": "Partager la phrase secrète (seed)", - "copy": "Copier", - "seed_language": "Langage de la phrase secrète", - "seed_choose": "Choisissez la langue de la phrase secrète (seed)", - "seed_language_next": "Suivant", - "seed_language_english": "Anglais", - "seed_language_chinese": "Chinois", - "seed_language_dutch": "Néerlandais", - "seed_language_german": "Allemand", - "seed_language_japanese": "Japonais", - "seed_language_portuguese": "Portugais", - "seed_language_russian": "Russe", - "seed_language_spanish": "Espagnol", - "seed_language_french": "Français", - "seed_language_italian": "Italien", - "send_title": "Envoyer", - "send_your_wallet": "Votre portefeuille (wallet)", - "send_address": "adresse ${cryptoCurrency}", - "send_payment_id": "ID de paiement (optionnel)", + "advanced_settings": "Réglages avancés", + "aggressive": "Agressif", + "agree": "d'accord", + "agree_and_continue": "Accepter et continuer", + "agree_to": "En créant un compte, vous acceptez les ", "all": "TOUT", - "send_error_minimum_value": "La valeur minimale du montant est 0.01", - "send_error_currency": "La monnaie ne peut contenir que des nombres", - "send_estimated_fee": "Estimation des frais :", - "send_priority": "Actuellement les frais sont positionnés à la priorité ${transactionPriority}.\nLa priorité de la transaction peut être modifiée dans les réglages", - "send_creating_transaction": "Création de la transaction", - "send_templates": "Modèles d'envois", - "send_new": "Nouveau", - "send_amount": "Montant :", - "send_fee": "Frais :", - "send_name": "Nom", - "got_it": "Compris", - "send_sending": "Envoi...", - "send_success": "Vos ${crypto} ont été envoyés avec succès", - "settings_title": "Réglages", - "settings_nodes": "Nœuds", - "settings_current_node": "Nœud actuel", - "settings_wallets": "Portefeuilles (Wallets)", - "settings_display_balance": "Affichage du solde", - "settings_currency": "Devise", - "settings_fee_priority": "Priorité des frais", - "settings_save_recipient_address": "Sauvegarder l'adresse du bénéficiaire", - "settings_personal": "Personnel", - "settings_change_pin": "Modifier le code PIN", - "settings_change_language": "Modifier la langue", - "settings_allow_biometrical_authentication": "Autoriser l'authentification biométrique", - "settings_dark_mode": "Mode sombre", - "settings_transactions": "Transactions", - "settings_trades": "Échanges", - "settings_display_on_dashboard_list": "Afficher sur la liste des tableaux de bord", - "settings_all": "TOUT", - "settings_only_trades": "Seulement les échanges", - "settings_only_transactions": "Seulement les transactions", - "settings_none": "Rien", - "settings_support": "Support", - "settings_terms_and_conditions": "Termes et Conditions", - "pin_is_incorrect": "Le code PIN est incorrect", - "setup_pin": "Configurer le code PIN", - "enter_your_pin_again": "Entrez à nouveau votre code PIN", - "setup_successful": "Votre code PIN a été configuré avec succès !", - "wallet_keys": "Phrase secrète (seed)/Clefs du portefeuille (wallet)", - "wallet_seed": "Phrase secrète (seed) du portefeuille (wallet)", - "private_key": "Clef privée", - "public_key": "Clef publique", - "view_key_private": "Clef d'audit (view key) (privée)", - "view_key_public": "Clef d'audit (view key) (publique)", - "spend_key_private": "Clef de dépense (spend key) (privée)", - "spend_key_public": "Clef de dépense (spend key) (publique)", - "copied_key_to_clipboard": "${key} copiée vers le presse-papier", - "new_subaddress_title": "Nouvelle adresse", - "new_subaddress_label_name": "Nom", - "new_subaddress_create": "Créer", - "address_label": "Nom de l'adresse", - "subaddress_title": "Liste des sous-adresses", - "trade_details_title": "Détails de l'échange", - "trade_details_id": "ID", - "trade_details_state": "Statut", - "trade_details_fetching": "Récupération", - "trade_details_provider": "Fournisseur", - "trade_details_created_at": "Créé le", - "trade_details_pair": "Paire", - "trade_details_copied": "${title} copié vers le presse-papier", - "trade_history_title": "Historique des échanges", - "transaction_details_title": "Détails de transaction", - "transaction_details_transaction_id": "ID de transaction", - "transaction_details_date": "Date", - "transaction_details_height": "Hauteur", - "transaction_details_amount": "Montant", - "transaction_details_fee": "Frais", - "transaction_details_copied": "${title} copié vers le presse-papier", - "transaction_details_recipient_address": "Adresse du bénéficiaire", - "wallet_list_title": "Portefeuille (Wallet) Monero", - "wallet_list_create_new_wallet": "Créer un Nouveau Portefeuille (Wallet)", - "wallet_list_edit_wallet": "Modifier le portefeuille", - "wallet_list_wallet_name": "Nom du portefeuille", - "wallet_list_restore_wallet": "Restaurer un Portefeuille (Wallet)", - "wallet_list_load_wallet": "Charger un Portefeuille (Wallet)", - "wallet_list_loading_wallet": "Chargement du portefeuille (wallet) ${wallet_name}", - "wallet_list_failed_to_load": "Échec de chargement du portefeuille (wallet) ${wallet_name}. ${error}", - "wallet_list_removing_wallet": "Suppression du portefeuille (wallet) ${wallet_name}", - "wallet_list_failed_to_remove": "Échec de la suppression du portefeuille (wallet) ${wallet_name}. ${error}", - "widgets_address": "Adresse", - "widgets_restore_from_blockheight": "Restaurer depuis une hauteur de bloc", - "widgets_restore_from_date": "Restaurer depuis une date", - "widgets_or": "ou", - "widgets_seed": "Phrase secrète (seed)", - "router_no_route": "Aucune route définie pour ${name}", - "error_text_account_name": "Le nom de compte ne peut contenir que des lettres et des chiffres\net sa longueur doit être comprise entre 1 et 15 caractères", - "error_text_contact_name": "Un nom de contact ne peut pas contenir les symboles ` , ' \"\net doit faire entre 1 et 32 caractères", - "error_text_address": "L'adresse du portefeuille (wallet) doit correspondre au type de\ncryptomonnaie", - "error_text_node_address": "Merci d'entrer une adresse IPv4", - "error_text_node_port": "Le port d'un nœud doit être un nombre compris entre 0 et 65535", - "error_text_node_proxy_address": "Veuillez saisir :, par exemple 127.0.0.1:9050", - "error_text_payment_id": "Un ID de paiement ne peut être constitué que de 16 à 64 caractères hexadécimaux", - "error_text_xmr": "La valeur de XMR dépasse le solde disponible.\nLa partie décimale doit comporter au plus 12 chiffres", - "error_text_fiat": "La valeur du montant ne peut dépasser le solde disponible.\nLa partie décimale doit comporter au plus 2 chiffres", - "error_text_subaddress_name": "Le nom de sous-adresse ne peut contenir les symboles ` , ' \"\net sa longueur doit être comprise entre 1 et 20 caractères", - "error_text_amount": "Le montant ne peut comporter que des nombres", - "error_text_wallet_name": "Le nom du portefeuille (wallet) ne peut contenir que des lettres et des chiffres\net sa longueur doit être comprise entre 1 et 15 caractères", - "error_text_keys": "Les clefs du portefeuille (wallet) ne peuvent être constituées que de 64 caractères hexadécimaux", - "error_text_crypto_currency": "La partie décimale\ndoit comporter au plus 12 chiffres", - "error_text_minimal_limit": "Échange pour ${provider} non créé. Le montant est inférieur au minimum : ${min} ${currency}", - "error_text_maximum_limit": "Échange pour ${provider} non créé. Le montant est supérieur au maximum : ${max} ${currency}", - "error_text_limits_loading_failed": "Échange pour ${provider} non créé. Échec de chargement des limites", - "error_text_template": "Le nom du modèle et l'adresse ne peuvent pas contenir les symboles ` , ' \"\net leur longueur doit être comprise entre 1 et 106 caractères", + "all_trades": "Tous échanges", + "all_transactions": "Toutes transactions", + "alphabetical": "Alphabétique", + "already_have_account": "Vous avez déjà un compte ?", + "always": "toujours", + "amount": "Montant : ", + "amount_is_estimate": "Le montant reçu est estimé", + "amount_is_guaranteed": "Le montant reçu est garanti", + "and": "et", + "anonpay_description": "Générez ${type}. Le destinataire peut ${method} avec n'importe quelle crypto-monnaie prise en charge, et vous recevrez des fonds dans ce portefeuille (wallet).", + "apk_update": "Mise à jour d'APK", + "approve": "Approuver", + "arrive_in_this_address": "${currency} ${tag}arrivera à cette adresse", + "ascending": "Ascendant", + "ask_each_time": "Demander à chaque fois", "auth_store_ban_timeout": "délai de bannisement", "auth_store_banned_for": "Banni pour ", "auth_store_banned_minutes": " minutes", "auth_store_incorrect_password": "Mauvais code PIN", - "wallet_store_monero_wallet": "Portefeuille (Wallet) Monero", - "wallet_restoration_store_incorrect_seed_length": "Longueur de phrase secrète (seed) incorrecte", - "full_balance": "Solde Complet", - "available_balance": "Solde Disponible", - "hidden_balance": "Solde Caché", - "sync_status_syncronizing": "SYNCHRONISATION EN COURS", - "sync_status_syncronized": "SYNCHRONISÉ", - "sync_status_not_connected": "NON CONNECTÉ", - "sync_status_starting_sync": "DÉBUT DE SYNCHRO", - "sync_status_failed_connect": "DÉCONNECTÉ", - "sync_status_connecting": "CONNEXION EN COURS", - "sync_status_connected": "CONNECTÉ", - "sync_status_attempting_sync": "TENTATIVE DE SYNCHRONISATION", - "transaction_priority_slow": "Lent", - "transaction_priority_regular": "Normal", - "transaction_priority_medium": "Moyen", - "transaction_priority_fast": "Rapide", - "transaction_priority_fastest": "Le plus rapide", - "trade_for_not_created": "L'échange pour ${title} n'est pas créé.", - "trade_not_created": "Échange non créé", - "trade_id_not_found": "Échange ${tradeId} de ${title} introuvable.", - "trade_not_found": "Échange introuvable.", - "trade_state_pending": "En cours", - "trade_state_confirming": "En cours de confirmation", - "trade_state_trading": "Échange en cours", - "trade_state_traded": "Échange terminé", - "trade_state_complete": "Finalisé", - "trade_state_to_be_created": "À créer", - "trade_state_unpaid": "Non payé", - "trade_state_underpaid": "Sous payé", - "trade_state_paid_unconfirmed": "Payé mais non confirmé", - "trade_state_paid": "Payé", - "trade_state_btc_sent": "Btc envoyés", - "trade_state_timeout": "Délai dépassé", - "trade_state_created": "Créé", - "trade_state_finished": "Terminé", - "change_language": "Changer de langue", - "change_language_to": "Changer la langue vers ${language} ?", - "paste": "Coller", - "restore_from_seed_placeholder": "Merci d'entrer ou de coller votre phrase secrète (seed) ici", - "add_new_word": "Ajouter un nouveau mot", - "incorrect_seed": "Le texte entré est invalide.", - "biometric_auth_reason": "Scannez votre empreinte digitale pour vous authentifier", - "version": "Version ${currentVersion}", - "extracted_address_content": "Vous allez envoyer des fonds à\n${recipient_name}", - "card_address": "Adresse :", - "buy": "Acheter", - "sell": "Vendre", - "placeholder_transactions": "Vos transactions apparaîtront ici", - "placeholder_contacts": "Vos contacts apparaîtront ici", - "template": "Modèle", - "confirm_delete_template": "Cette action va supprimer ce modèle. Souhaitez-vous continuer ?", - "confirm_delete_wallet": "Cette action va supprimer ce portefeuille (wallet). Souhaitez-vous contnuer ?", - "change_wallet_alert_title": "Changer le portefeuille (wallet) actuel", - "change_wallet_alert_content": "Souhaitez-vous changer le portefeuille (wallet) actuel vers ${wallet_name} ?", - "creating_new_wallet": "Création d'un nouveau portefeuille (wallet)", - "creating_new_wallet_error": "Erreur : ${description}", - "seed_alert_title": "Attention", - "seed_alert_content": "La phrase secrète (seed) est la seule façon de restaurer votre portefeuille (wallet). L'avez-vous correctement écrite ?", - "seed_alert_back": "Retour", - "seed_alert_yes": "Oui, je suis sûr", - "exchange_sync_alert_content": "Merci d'attendre que votre portefeuille (wallet) soit synchronisé", - "pre_seed_title": "IMPORTANT", - "pre_seed_description": "Sur la page suivante vous allez voir une série de ${words} mots. Ils constituent votre phrase secrète (seed) unique et privée et sont le SEUL moyen de restaurer votre portefeuille (wallet) en cas de perte ou de dysfonctionnement. Il est de VOTRE responsabilité d'écrire cette série de mots et de la stocker dans un lieu sûr en dehors de l'application Cake Wallet.", - "pre_seed_button_text": "J'ai compris. Montrez moi ma phrase secrète (seed)", - "xmr_to_error": "Erreur XMR.TO", - "xmr_to_error_description": "Montant invalide. La partie décimale doit contenir au plus 8 chiffres", - "provider_error": "Erreur de ${provider}", - "use_ssl": "Utiliser SSL", - "trusted": "de confiance", - "color_theme": "Thème", - "light_theme": "Clair", - "bright_theme": "Vif", - "dark_theme": "Sombre", - "enter_your_note": "Entrez votre note…", - "note_optional": "Note (optionnelle)", - "note_tap_to_change": "Note (appuyez pour changer)", - "view_in_block_explorer": "Voir dans l'Explorateur de Blocs", - "view_transaction_on": "Voir la Transaction sur ", - "transaction_key": "Clef de Transaction", - "confirmations": "Confirmations", - "recipient_address": "Adresse bénéficiaire", - "extra_id": "ID supplémentaire :", - "destination_tag": "Tag de destination :", - "memo": "Mémo :", - "backup": "Sauvegarde", - "change_password": "Changer le mot de passe", - "backup_password": "Mot de passe de sauvegarde", - "write_down_backup_password": "Merci d'écrire votre mot de passe de sauvegarde, vous en aurez besoin lors de la relecture de vos fichiers de sauvegarde.", - "export_backup": "Exporter la sauvegarde", - "save_backup_password": "Merci de vous assurer d'avoir bien sauvegardé votre mot de passe de sauvegarde. Vous ne pourrez pas restaurer vos fichiers de sauvegarde sans ce dernier.", - "backup_file": "Fichier de sauvegarde", - "edit_backup_password": "Modifier le Mot de Passe de Sauvegarde", - "save_backup_password_alert": "Enregistrer le mot de passe de sauvegarde", - "change_backup_password_alert": "Vos fichiers de sauvegarde précédents ne pourront pas être importés avec le nouveau mot de passe de sauvegarde. Le nouveau mot de passe ne sera utilisé que pour les nouveaux fichiers de sauvegarde. Êtes vous certain de vouloir modifier le mot de passe de sauvegarde ?", - "enter_backup_password": "Entrez le mot de passe de sauvegarde ici", - "select_backup_file": "Sélectionnez le fichier de sauvegarde", - "import": "Importer", - "please_select_backup_file": "Merci de sélectionner le fichier de sauvegarde et de rentrer le mot de passe associé.", - "fixed_rate": "Taux fixe", - "fixed_rate_alert": "Vous aurez la possibilité de rentrer le montant reçu lorsque le mode taux fixe est sélectionné. Souhaitez vous basculer en mode taux fixe ?", - "xlm_extra_info": "Merci de ne pas oublier de spécifier l'ID de mémo lors de l'envoi de la transaction XLM de l'échange", - "xrp_extra_info": "Merci de ne pas oublier de spécifier le tag de destination lors de l'envoi de la transaction XRP de l'échange", - "exchange_incorrect_current_wallet_for_xmr": "Si vous souhaitez échanger des XMR du solde Monero de votre Cake Wallet, merci de sélectionner votre portefeuille (wallet) Monero au préalable.", - "confirmed": "Solde confirmé", - "unconfirmed": "Solde non confirmé", - "displayable": "Visible", - "submit_request": "soumettre une requête", - "buy_alert_content": "Actuellement, nous ne prenons en charge que l'achat de Bitcoin, Ethereum, Litecoin et Monero. Veuillez créer ou basculer vers votre portefeuille Bitcoin, Ethereum, Litecoin ou Monero.", - "sell_alert_content": "Nous ne prenons actuellement en charge que la vente de Bitcoin, Ethereum et Litecoin. Veuillez créer ou basculer vers votre portefeuille Bitcoin, Ethereum ou Litecoin.", - "outdated_electrum_wallet_description": "Les nouveaux portefeuilles (wallets) Bitcoin créés dans Cake ont dorénavant une phrase secrète (seed) de 24 mots. Il est impératif que vous créiez un nouveau portefeuille Bitcoin, que vous y transfériez tous vos fonds puis que vous cessiez d'utiliser le portefeuille avec une phrase secrète de 12 mots. Merci de faire cela immédiatement pour assurer la sécurité de vos avoirs.", - "understand": "J'ai compris", - "apk_update": "Mise à jour d'APK", - "buy_bitcoin": "Acheter du Bitcoin", - "buy_with": "Acheter avec", - "moonpay_alert_text": "Le montant doit être au moins égal à ${minAmount} ${fiatCurrency}", - "outdated_electrum_wallet_receive_warning": "Si ce portefeuille (wallet) a une phrase secrète (seed) de 12 mots et a été créé dans Cake, NE PAS y déposer de Bitcoin. Tous les BTC transférés vers ce portefeuille seront perdus. Créez un nouveau portefeuille avec phrase secrète de 24 mots (appuyez sur le menu en haut à droite, sélectionnez Portefeuilles puis Créer un Nouveau Portefeuille et enfin Bitcoin) et transférez y IMMÉDIATEMENT vos BTC. Les nouveaux portefeuilles BTC Cake (avec phrase secrète de 24 mots) sont sécurisés", - "do_not_show_me": "Ne plus me montrer ceci à l'avenir", - "unspent_coins_title": "Pièces (coins) non dépensées", - "unspent_coins_details_title": "Détails des pièces (coins) non dépensées", - "freeze": "Geler", - "frozen": "Gelées", - "coin_control": "Contrôle optionnel des pièces (coins)", - "address_detected": "Adresse détectée", - "address_from_domain": "Cette adresse est issue de ${domain} sur Unstoppable Domains", - "add_receiver": "Ajouter un autre bénéficiaire (optionnel)", - "manage_yats": "Gérer les Yats", - "yat_alert_title": "Envoyez et recevez des cryptos plus facilement avec Yat", - "yat_alert_content": "Les utilisateurs de Cake Wallet peuvent maintenant envoyer et recevoir leurs monnaies favorites avec un utilisateur unique en son genre basé sur les emojis.", - "get_your_yat": "Obtenir votre Yat", - "connect_an_existing_yat": "Connecter un Yat existant", - "connect_yats": "Connecter Yats", - "yat_address": "Adresse Yat", - "yat": "Yat", - "address_from_yat": "Cette adresse est issue de ${emoji} sur Yat", - "yat_error": "Erreur Yat", - "yat_error_content": "Aucune adresse associée à ce Yat. Essayez un autre Yat", - "choose_address": "\n\nMerci de choisir l'adresse :", - "yat_popup_title": "L'adresse de votre portefeuille (wallet) peut être emojifiée.", - "yat_popup_content": "Vous pouvez à présent envoyer et recevoir des cryptos dans Cake Wallet à l'aide de votre Yat - un nom d'utilisateur court à base d'emoji. Gérér les Yats à tout moment depuis l'écran de paramétrage", - "second_intro_title": "Une adresse emoji pour les gouverner toutes", - "second_intro_content": "Votre Yat est une seule et unique adresse emoji qui remplace toutes vos longues adresses hexadécimales pour toutes vos cryptomonnaies.", - "third_intro_title": "Yat est universel", - "third_intro_content": "Les Yats existent aussi en dehors de Cake Wallet. Toute adresse sur terre peut être remplacée par un Yat !", - "learn_more": "En savoir plus", - "search": "Chercher", - "search_language": "Rechercher une langue", - "search_currency": "Rechercher une devise", - "new_template": "Nouveau Modèle", - "electrum_address_disclaimer": "Nous générons de nouvelles adresses à chaque fois que vous en utilisez une, mais les adresses précédentes continuent à fonctionner", - "wallet_name_exists": "Un portefeuille (wallet) portant ce nom existe déjà", - "market_place": "Place de marché", - "cake_pay_title": "Cartes cadeaux Cake Pay", - "cake_pay_subtitle": "Achetez des cartes-cadeaux à prix réduit (États-Unis uniquement)", - "cake_pay_web_cards_title": "Cartes Web Cake Pay", - "cake_pay_web_cards_subtitle": "Achetez des cartes prépayées et des cartes-cadeaux dans le monde entier", - "about_cake_pay": "Cake Pay vous permet d'acheter facilement des cartes-cadeaux avec des actifs virtuels, utilisables instantanément chez plus de 150 000 marchands aux États-Unis.", - "cake_pay_account_note": "Inscrivez-vous avec juste une adresse e-mail pour voir et acheter des cartes. Certaines sont même disponibles à prix réduit !", - "already_have_account": "Vous avez déjà un compte ?", - "create_account": "Créer un compte", - "privacy_policy": "Politique de confidentialité", - "welcome_to_cakepay": "Bienvenue sur Cake Pay !", - "sign_up": "S'inscrire", - "forgot_password": "Mot de passe oublié", - "reset_password": "Réinitialiser le mot de passe", - "setup_your_debit_card": "Configurer votre carte de débit", - "no_id_required": "Aucune pièce d'identité requise. Rechargez et dépensez n'importe où", - "how_to_use_card": "Comment utiliser cette carte", - "purchase_gift_card": "Acheter une carte-cadeau", - "verification": "Vérification", - "fill_code": "Veuillez remplir le code de vérification fourni sur votre e-mail", - "didnt_get_code": "Vous n'avez pas reçu le code ?", - "resend_code": "Veuillez le renvoyer", - "debit_card": "Carte de débit", - "cakepay_prepaid_card": "Carte de débit prépayée Cake Pay", - "no_id_needed": "Aucune pièce d'identité nécessaire !", - "frequently_asked_questions": "Foire aux questions", - "debit_card_terms": "Le stockage et l'utilisation de votre numéro de carte de paiement (et des informations d'identification correspondant à votre numéro de carte de paiement) dans ce portefeuille (wallet) numérique peuvent être soumis aux conditions générales de l'accord du titulaire de carte parfois en vigueur avec l'émetteur de la carte de paiement.", - "please_reference_document": "Veuillez vous référer aux documents ci-dessous pour plus d'informations.", - "cardholder_agreement": "Contrat de titulaire de carte", - "e_sign_consent": "Consentement de signature électronique", - "agree_and_continue": "Accepter et continuer", - "email_address": "Adresse e-mail", - "agree_to": "En créant un compte, vous acceptez les ", - "and": "et", - "enter_code": "Entrez le code", - "congratulations": "Félicitations !", - "you_now_have_debit_card": "Vous avez maintenant une carte de débit", - "min_amount": "Min : ${value}", - "max_amount": "Max : ${value}", - "enter_amount": "Entrez le montant", - "billing_address_info": "Si une adresse de facturation vous est demandée, indiquez votre adresse de livraison", - "order_physical_card": "Commander une carte physique", - "add_value": "Ajouter une valeur", - "activate": "Activer", - "get_a": "Obtenir un ", - "digital_and_physical_card": "carte de débit prépayée numérique et physique", - "get_card_note": " que vous pouvez recharger avec des devises numériques. Aucune information supplémentaire n'est nécessaire !", - "signup_for_card_accept_terms": "Inscrivez-vous pour la carte et acceptez les conditions.", - "add_fund_to_card": "Ajouter des fonds prépayés aux cartes (jusqu'à ${value})", - "use_card_info_two": "Les fonds sont convertis en USD lorsqu'ils sont détenus sur le compte prépayé, et non en devises numériques.", - "use_card_info_three": "Utilisez la carte numérique en ligne ou avec des méthodes de paiement sans contact.", - "optionally_order_card": "Commander éventuellement une carte physique.", - "hide_details": "Masquer les détails", - "show_details": "Afficher les détails", - "upto": "jusqu'à ${value}", - "discount": "Économisez ${value}%", - "gift_card_amount": "Montant de la carte-cadeau", - "bill_amount": "Montant de la facture", - "you_pay": "Vous payez", - "tip": "Pourboire :", - "custom": "personnalisé", - "by_cake_pay": "par Cake Pay", - "expires": "Expire", - "mm": "MM", - "yy": "AA", - "online": "En ligne", - "offline": "Hors ligne", - "gift_card_number": "Numéro de carte cadeau", - "pin_number": "Numéro PIN", - "total_saving": "Économies totales", - "last_30_days": "30 derniers jours", - "avg_savings": "Économies moy.", - "view_all": "Voir tout", - "active_cards": "Cartes actives", - "delete_account": "Supprimer le compte", - "cards": "Cartes", - "active": "Actives", - "redeemed": "Converties", - "gift_card_balance_note": "Les cartes-cadeaux avec un solde restant apparaîtront ici", - "gift_card_redeemed_note": "Les cartes-cadeaux que vous avez utilisées apparaîtront ici", - "logout": "Déconnexion", - "add_tip": "Ajouter un pourboire", - "percentageOf": "sur ${amount}", - "is_percentage": "est", - "search_category": "Catégorie de recherche", - "mark_as_redeemed": "Marquer comme convertie", - "more_options": "Plus d'options", - "awaiting_payment_confirmation": "En attente de confirmation de paiement", - "transaction_sent_notice": "Si l'écran ne continue pas après 1 minute, vérifiez un explorateur de blocs et votre e-mail.", - "agree": "d'accord", - "in_store": "En magasin", - "generating_gift_card": "Génération d'une carte-cadeau", - "payment_was_received": "Votre paiement a été reçu.", - "proceed_after_one_minute": "Si l'écran ne s'affiche pas après 1 minute, vérifiez vos e-mails.", - "order_id": "Numéro de commande", - "gift_card_is_generated": "La carte-cadeau est générée", - "open_gift_card": "Ouvrir la carte-cadeau", - "contact_support": "Contacter l'assistance", - "gift_cards_unavailable": "Les cartes-cadeaux ne sont disponibles à l'achat que via Monero, Bitcoin et Litecoin pour le moment", - "background_sync_mode": "Mode de synchronisation en arrière-plan", - "sync_all_wallets": "Synchroniser tous les portefeuilles", - "gift_cards": "Cartes-Cadeaux", - "introducing_cake_pay": "Présentation de Cake Pay !", - "cake_pay_learn_more": "Achetez et utilisez instantanément des cartes-cadeaux dans l'application !\nBalayer de gauche à droite pour en savoir plus.", + "authenticated": "Authentifié", + "authentication": "Authentification", + "auto_generate_subaddresses": "Générer automatiquement des sous-adresses", "automatic": "Automatique", - "fixed_pair_not_supported": "Cette paire fixe n'est pas prise en charge avec les échanges sélectionnés", - "variable_pair_not_supported": "Cette paire variable n'est pas prise en charge avec les échanges sélectionnés", - "none_of_selected_providers_can_exchange": "Aucun des prestataires sélectionnés ne peut effectuer cet échange", - "choose_one": "Choisissez-en un", - "choose_from_available_options": "Choisissez parmi les options disponibles :", - "custom_redeem_amount": "Montant d'échange personnalisé", - "add_custom_redemption": "Ajouter un remboursement personnalisé", - "remaining": "restant", - "delete_wallet": "Supprimer le portefeuille (wallet)", - "delete_wallet_confirm_message": "Êtes-vous sûr de vouloir supprimer le portefeuille (wallet) ${wallet_name}?", - "low_fee": "Frais modiques", - "low_fee_alert": "Vous utilisez actuellement une priorité de frais de réseau peu élevés. Cela pourrait entraîner de longues attentes, des taux différents ou des transactions annulées. Nous vous recommandons de fixer des frais plus élevés pour une meilleure expérience.", - "ignor": "Ignorer", - "use_suggested": "Suivre la suggestion", - "do_not_share_warning_text": "Ne les partagez avec personne, y compris avec l'assistance.\n\nVos fonds seraient inmanquablement volés !", - "help": "aide", - "all_transactions": "Toutes transactions", - "all_trades": "Tous échanges", - "connection_sync": "Connexion et synchronisation", - "security_and_backup": "Sécurité et sauvegarde", - "create_backup": "Créer une sauvegarde", - "privacy_settings": "Paramètres de confidentialité", - "privacy": "Confidentialité", - "display_settings": "Paramètres d'affichage", - "other_settings": "Autres paramètres", - "require_pin_after": "Code PIN requis après", - "always": "toujours", - "minutes_to_pin_code": "${minute} minutes", - "disable_exchange": "Désactiver l'échange", - "advanced_settings": "Réglages avancés", - "settings_can_be_changed_later": "Ces paramètres peuvent être modifiés ultérieurement dans les paramètres de l'application", - "add_custom_node": "Ajouter un nouveau nœud personnalisé", - "disable_fiat": "Désactiver les montants en fiat", - "fiat_api": "Fiat API", - "disabled": "Désactivé", - "enabled": "Activé", - "tor_only": "Tor uniquement", - "unmatched_currencies": "La devise de votre portefeuille (wallet) actuel ne correspond pas à celle du QR code scanné", - "orbot_running_alert": "Veuillez vous assurer qu'Orbot est en cours d'exécution avant de vous connecter à ce nœud.", - "contact_list_contacts": "Contacts", - "contact_list_wallets": "Mes portefeuilles (wallets)", - "bitcoin_payments_require_1_confirmation": "Les paiements Bitcoin nécessitent 1 confirmation, ce qui peut prendre 20 minutes ou plus. Merci pour votre patience ! Vous serez averti par e-mail lorsque le paiement sera confirmé.", - "send_to_this_address": "Envoyer ${currency} ${tag}à cette adresse", - "arrive_in_this_address": "${currency} ${tag}arrivera à cette adresse", - "do_not_send": "Ne pas envoyer", - "error_dialog_content": "Oups, nous avons rencontré une erreur.\n\nMerci d'envoyer le rapport d'erreur à notre équipe d'assistance afin de nous permettre d'améliorer l'application.", - "scan_qr_code": "Scannez le QR code", - "cold_or_recover_wallet": "Ajoutez un portefeuille froid (cold wallet) ou récupérez un portefeuille papier (paper wallet)", - "please_wait": "Merci de patienter", - "sweeping_wallet": "Portefeuille (wallet) de consolidation", - "sweeping_wallet_alert": "Cette opération ne devrait pas prendre longtemps. NE QUITTEZ PAS CET ÉCRAN OU LES FONDS CONSOLIDÉS POURRAIENT ÊTRE PERDUS", - "decimal_places_error": "Trop de décimales", - "edit_node": "Modifier le nœud", - "invoice_details": "Détails de la facture", - "donation_link_details": "Détails du lien de don", - "anonpay_description": "Générez ${type}. Le destinataire peut ${method} avec n'importe quelle crypto-monnaie prise en charge, et vous recevrez des fonds dans ce portefeuille (wallet).", - "create_invoice": "Créer une facture", - "create_donation_link": "Créer un lien de don", - "optional_email_hint": "E-mail de notification du bénéficiaire facultatif", - "optional_description": "Descriptif facultatif", - "optional_name": "Nom du destinataire facultatif", - "clearnet_link": "Lien Clearnet", - "settings": "Paramètres", - "onion_link": "Lien .onion", - "sell_monero_com_alert_content": "La vente de Monero n'est pas encore prise en charge", - "error_text_input_below_minimum_limit": "Le montant est inférieur au minimum", - "error_text_input_above_maximum_limit": "Le montant est supérieur au maximum", - "show_market_place": "Afficher la place de marché", - "prevent_screenshots": "Empêcher les captures d'écran et l'enregistrement d'écran", - "profile": "Profil", - "close": "Fermer", - "modify_2fa": "Modifier les paramètres Cake 2FA", - "disable_cake_2fa": "Désactiver Cake 2FA", - "question_to_disable_2fa": "Êtes-vous sûr de vouloir désactiver Cake 2FA ? Un code 2FA ne sera plus nécessaire pour accéder au portefeuille (wallet) et à certaines fonctions.", - "disable": "Désactiver", - "setup_2fa": "Paramétrer Cake 2FA", - "verify_with_2fa": "Vérifier avec Cake 2FA", - "totp_code": "Code TOTP", - "please_fill_totp": "Veuillez renseigner le code à 8 chiffres affiché sur votre autre appareil", - "totp_2fa_success": "Succès! Cake 2FA est activé pour ce portefeuille. N'oubliez pas de sauvegarder votre phrase secrète (seed) au cas où vous perdriez l'accès au portefeuille (wallet).", - "totp_verification_success": "Vérification réussie !", - "totp_2fa_failure": "Code incorrect. Veuillez essayer un code différent ou générer un nouveau secret TOTP. Utilisez une application 2FA compatible qui prend en charge les codes à 8 chiffres et SHA512.", - "enter_totp_code": "Veuillez entrer le code TOTP.", - "add_secret_code": "Ou ajoutez ce code secret à une application d'authentification", - "totp_secret_code": "Secret TOTP", - "setup_2fa_text": "Cake 2FA fonctionne en utilisant TOTP comme deuxième facteur d'authentification.\n\nLe TOTP de Cake 2FA nécessite la prise en charge de SHA-512 et de 8 chiffres ; cela offre une sécurité accrue. Plus d’informations et les applications prises en charge peuvent être trouvées dans le guide.", - "setup_totp_recommended": "Configurer TOTP", - "disable_buy": "Désactiver l'action d'achat", - "disable_sell": "Désactiver l'action de vente", - "cake_2fa_preset": "Cake 2FA prédéfini", - "monero_dark_theme": "Thème sombre Monero", + "available_balance": "Solde Disponible", + "available_balance_description": "Le solde disponible est le montant que vous pouvez dépenser immédiatement. Il est calculé en soustrayant le solde gelé du solde total.", + "avg_savings": "Économies moy.", + "awaitDAppProcessing": "Veuillez attendre que l'application décentralisée (dApp) termine le traitement.", + "awaiting_payment_confirmation": "En attente de confirmation de paiement", + "background_sync_mode": "Mode de synchronisation en arrière-plan", + "backup": "Sauvegarde", + "backup_file": "Fichier de sauvegarde", + "backup_password": "Mot de passe de sauvegarde", + "balance_page": "Page Solde", + "bill_amount": "Montant de la facture", + "billing_address_info": "Si une adresse de facturation vous est demandée, indiquez votre adresse de livraison", + "biometric_auth_reason": "Scannez votre empreinte digitale pour vous authentifier", "bitcoin_dark_theme": "Thème sombre Bitcoin", "bitcoin_light_theme": "Thème léger Bitcoin", - "high_contrast_theme": "Thème à contraste élevé", - "matrix_green_dark_theme": "Thème Matrix Green Dark", - "monero_light_theme": "Thème de lumière Monero", - "auto_generate_subaddresses": "Générer automatiquement des sous-adresses", - "narrow": "Étroit", - "normal": "Normal", - "aggressive": "Agressif", - "require_for_assessing_wallet": "Nécessaire pour accéder au portefeuille", - "require_for_sends_to_non_contacts": "Exiger pour les envois hors contacts", - "require_for_sends_to_contacts": "Exiger pour les envois aux contacts", - "require_for_sends_to_internal_wallets": "Exiger pour les envois vers des portefeuilles (wallets) internes", - "require_for_exchanges_to_internal_wallets": "Exiger pour les échanges vers des portefeuilles (wallets) internes", - "require_for_adding_contacts": "Requis pour ajouter des contacts", - "require_for_creating_new_wallets": "Nécessaire pour créer de nouveaux portefeuilles (wallets)", - "require_for_all_security_and_backup_settings": "Exiger pour tous les paramètres de sécurité et de sauvegarde", - "available_balance_description": "Le solde disponible est le montant que vous pouvez dépenser immédiatement. Il est calculé en soustrayant le solde gelé du solde total.", - "syncing_wallet_alert_title": "Votre portefeuille (wallet) est en cours de synchronisation", - "syncing_wallet_alert_content": "Votre solde et votre liste de transactions peuvent ne pas être à jour tant que la mention « SYNCHRONISÉ » n'apparaît en haut de l'écran. Cliquez/appuyez pour en savoir plus.", - "home_screen_settings": "Paramètres de l'écran d'accueil", - "sort_by": "Trier par", - "search_add_token": "Rechercher / Ajouter un token", - "edit_token": "Modifier le token", - "warning": "Avertissement", - "add_token_warning": "Ne modifiez pas ou n'ajoutez pas de tokens comme pourraient vous le suggérer des escrocs.\nConfirmez toujours les adresses de token auprès de sources fiables !", - "add_token_disclaimer_check": "J'ai confirmé l'adresse et les informations du contrat de token en utilisant une source fiable. L'ajout d'informations malveillantes ou incorrectes peut entraîner une perte de fonds.", - "token_contract_address": "Adresse du contrat de token", - "token_name": "Nom du token, par exemple : Tether", - "token_symbol": "Symbole de token, par exemple : USDT", - "token_decimal": "Décimales de token", - "field_required": "Ce champ est obligatoire", - "pin_at_top": "épingler ${token} en haut", - "invalid_input": "Entrée invalide", - "fiat_balance": "Solde fiat", - "gross_balance": "Solde brut", - "alphabetical": "Alphabétique", - "generate_name": "Générer un nom", - "balance_page": "Page Solde", - "share": "Partager", - "slidable": "Glissable", - "manage_nodes": "Gérer les nœuds", - "etherscan_history": "Historique d'Etherscan", - "template_name": "Nom du modèle", + "bitcoin_payments_require_1_confirmation": "Les paiements Bitcoin nécessitent 1 confirmation, ce qui peut prendre 20 minutes ou plus. Merci pour votre patience ! Vous serez averti par e-mail lorsque le paiement sera confirmé.", + "Blocks_remaining": "Blocs Restants : ${status}", + "bright_theme": "Vif", + "buy": "Acheter", + "buy_alert_content": "Actuellement, nous ne prenons en charge que l'achat de Bitcoin, Ethereum, Litecoin et Monero. Veuillez créer ou basculer vers votre portefeuille Bitcoin, Ethereum, Litecoin ou Monero.", + "buy_bitcoin": "Acheter du Bitcoin", + "buy_provider_unavailable": "Fournisseur actuellement indisponible.", + "buy_with": "Acheter avec", + "by_cake_pay": "par Cake Pay", + "cake_2fa_preset": "Cake 2FA prédéfini", + "cake_pay_account_note": "Inscrivez-vous avec juste une adresse e-mail pour voir et acheter des cartes. Certaines sont même disponibles à prix réduit !", + "cake_pay_learn_more": "Achetez et utilisez instantanément des cartes-cadeaux dans l'application !\nBalayer de gauche à droite pour en savoir plus.", + "cake_pay_subtitle": "Achetez des cartes-cadeaux à prix réduit (États-Unis uniquement)", + "cake_pay_title": "Cartes cadeaux Cake Pay", + "cake_pay_web_cards_subtitle": "Achetez des cartes prépayées et des cartes-cadeaux dans le monde entier", + "cake_pay_web_cards_title": "Cartes Web Cake Pay", + "cake_wallet": "Cake Wallet", + "cakepay_prepaid_card": "Carte de débit prépayée Cake Pay", + "camera_consent": "Votre appareil photo sera utilisé pour capturer une image à des fins d'identification par ${provider}. Veuillez consulter leur politique de confidentialité pour plus de détails.", + "camera_permission_is_required": "L'autorisation de la caméra est requise.\nVeuillez l'activer à partir des paramètres de l'application.", + "cancel": "Annuler", + "card_address": "Adresse :", + "cardholder_agreement": "Contrat de titulaire de carte", + "cards": "Cartes", + "chains": "Chaînes", + "change": "Changer", + "change_backup_password_alert": "Vos fichiers de sauvegarde précédents ne pourront pas être importés avec le nouveau mot de passe de sauvegarde. Le nouveau mot de passe ne sera utilisé que pour les nouveaux fichiers de sauvegarde. Êtes vous certain de vouloir modifier le mot de passe de sauvegarde ?", + "change_currency": "Changer de Devise", + "change_current_node": "Êtes vous certain de vouloir changer le nœud actuel pour ${node} ?", + "change_current_node_title": "Changer le nœud actuel", + "change_exchange_provider": "Changer de Plateforme d'Échange", + "change_language": "Changer de langue", + "change_language_to": "Changer la langue vers ${language} ?", + "change_password": "Changer le mot de passe", "change_rep": "Changer de représentant", "change_rep_message": "Êtes-vous sûr de vouloir changer de représentant ?", - "unsupported_asset": "Nous ne prenons pas en charge cette action pour cet élément. Veuillez créer ou passer à un portefeuille d'un type d'actif pris en charge.", - "manage_pow_nodes": "Gérer les nœuds PoW", - "support_title_live_chat": "Support en direct", - "support_description_live_chat": "GRATUIT ET RAPIDE ! Des représentants de soutien formé sont disponibles pour aider", - "support_title_guides": "Guides de Cake Wallet", - "support_description_guides": "Documentation et support pour les problèmes communs", - "support_title_other_links": "Autres liens d'assistance", - "support_description_other_links": "Rejoignez nos communautés ou contactez-nous ou nos partenaires à travers d'autres méthodes", + "change_rep_successful": "Représentant changé avec succès", + "change_wallet_alert_content": "Souhaitez-vous changer le portefeuille (wallet) actuel vers ${wallet_name} ?", + "change_wallet_alert_title": "Changer le portefeuille (wallet) actuel", + "choose_account": "Choisir le compte", + "choose_address": "\n\nMerci de choisir l'adresse :", "choose_derivation": "Choisissez le chemin de dérivation du portefeuille", - "new_first_wallet_text": "Gardez facilement votre crypto-monnaie en sécurité", - "select_destination": "Veuillez sélectionner la destination du fichier de sauvegarde.", - "save_to_downloads": "Enregistrer dans les téléchargements", - "select_buy_provider_notice": "Sélectionnez un fournisseur d'achat ci-dessus. Vous pouvez ignorer cet écran en définissant votre fournisseur d'achat par défaut dans les paramètres de l'application.", - "onramper_option_description": "Achetez rapidement des cryptomonnaies avec de nombreuses méthodes de paiement. Disponible dans la plupart des pays. Les spreads et les frais peuvent varier.", + "choose_from_available_options": "Choisissez parmi les options disponibles :", + "choose_one": "Choisissez-en un", + "choose_relay": "Veuillez choisir un relais à utiliser", + "choose_wallet_currency": "Merci de choisir la devise du portefeuille (wallet) :", + "clear": "Effacer", + "clearnet_link": "Lien Clearnet", + "close": "Fermer", + "coin_control": "Contrôle optionnel des pièces (coins)", + "cold_or_recover_wallet": "Ajoutez un portefeuille froid (cold wallet) ou récupérez un portefeuille papier (paper wallet)", + "color_theme": "Thème", + "commit_transaction_amount_fee": "Valider la transaction\nMontant : ${amount}\nFrais : ${fee}", + "confirm": "Confirmer", + "confirm_delete_template": "Cette action va supprimer ce modèle. Souhaitez-vous continuer ?", + "confirm_delete_wallet": "Cette action va supprimer ce portefeuille (wallet). Souhaitez-vous contnuer ?", + "confirm_sending": "Confirmer l'envoi", + "confirmations": "Confirmations", + "confirmed": "Solde confirmé", + "confirmed_tx": "Confirmé", + "congratulations": "Félicitations !", + "connect_an_existing_yat": "Connecter un Yat existant", + "connect_yats": "Connecter Yats", + "connection_sync": "Connexion et synchronisation", + "connectWalletPrompt": "Connectez votre portefeuille (wallet) avec WalletConnect pour effectuer des transactions", + "contact": "Contact", + "contact_list_contacts": "Contacts", + "contact_list_wallets": "Mes portefeuilles (wallets)", + "contact_name": "Nom de Contact", + "contact_support": "Contacter l'assistance", + "continue_text": "Continuer", + "contractName": "Nom du contrat", + "contractSymbol": "Symbole du contrat", + "copied_key_to_clipboard": "${key} copiée vers le presse-papier", + "copied_to_clipboard": "Copié vers le Presse-Papier", + "copy": "Copier", + "copy_address": "Copier l'Adresse", + "copy_id": "Copier l'ID", + "copyWalletConnectLink": "Copiez le lien WalletConnect depuis l'application décentralisée (dApp) et collez-le ici", + "create_account": "Créer un compte", + "create_backup": "Créer une sauvegarde", + "create_donation_link": "Créer un lien de don", + "create_invoice": "Créer une facture", + "create_new": "Créer un Nouveau Portefeuille (Wallet)", + "create_new_account": "Créer un nouveau compte", + "creating_new_wallet": "Création d'un nouveau portefeuille (wallet)", + "creating_new_wallet_error": "Erreur : ${description}", + "creation_date": "Date de création", + "custom": "personnalisé", + "custom_drag": "Custom (maintenir et traîner)", + "custom_redeem_amount": "Montant d'échange personnalisé", + "dark_theme": "Sombre", + "debit_card": "Carte de débit", + "debit_card_terms": "Le stockage et l'utilisation de votre numéro de carte de paiement (et des informations d'identification correspondant à votre numéro de carte de paiement) dans ce portefeuille (wallet) numérique peuvent être soumis aux conditions générales de l'accord du titulaire de carte parfois en vigueur avec l'émetteur de la carte de paiement.", + "decimal_places_error": "Trop de décimales", "default_buy_provider": "Fournisseur d'achat par défaut", - "ask_each_time": "Demander à chaque fois", - "buy_provider_unavailable": "Fournisseur actuellement indisponible.", - "signTransaction": "Signer une transaction", + "default_sell_provider": "Fournisseur de vente par défaut", + "delete": "Effacer", + "delete_account": "Supprimer le compte", + "delete_wallet": "Supprimer le portefeuille (wallet)", + "delete_wallet_confirm_message": "Êtes-vous sûr de vouloir supprimer le portefeuille (wallet) ${wallet_name}?", + "deleteConnectionConfirmationPrompt": "Êtes-vous sûr de vouloir supprimer la connexion à", + "descending": "Descendant", + "description": "Description", + "destination_tag": "Tag de destination :", + "dfx_option_description": "Achetez des crypto-monnaies avec EUR et CHF. Jusqu'à 990€ sans KYC supplémentaire. Pour les clients particuliers et entreprises en Europe", + "didnt_get_code": "Vous n'avez pas reçu le code ?", + "digit_pin": " chiffres", + "digital_and_physical_card": "carte de débit prépayée numérique et physique", + "disable": "Désactiver", + "disable_buy": "Désactiver l'action d'achat", + "disable_cake_2fa": "Désactiver Cake 2FA", + "disable_exchange": "Désactiver l'échange", + "disable_fiat": "Désactiver les montants en fiat", + "disable_sell": "Désactiver l'action de vente", + "disabled": "Désactivé", + "discount": "Économisez ${value}%", + "display_settings": "Paramètres d'affichage", + "displayable": "Visible", + "do_not_have_enough_gas_asset": "Vous n'avez pas assez de ${currency} pour effectuer une transaction avec les conditions actuelles du réseau blockchain. Vous avez besoin de plus de ${currency} pour payer les frais du réseau blockchain, même si vous envoyez un actif différent.", + "do_not_send": "Ne pas envoyer", + "do_not_share_warning_text": "Ne les partagez avec personne, y compris avec l'assistance.\n\nVos fonds seraient inmanquablement volés !", + "do_not_show_me": "Ne plus me montrer ceci à l'avenir", + "domain_looks_up": "Résolution de nom", + "donation_link_details": "Détails du lien de don", + "e_sign_consent": "Consentement de signature électronique", + "edit": "Modifier", + "edit_backup_password": "Modifier le Mot de Passe de Sauvegarde", + "edit_node": "Modifier le nœud", + "edit_token": "Modifier le token", + "electrum_address_disclaimer": "Nous générons de nouvelles adresses à chaque fois que vous en utilisez une, mais les adresses précédentes continuent à fonctionner", + "email_address": "Adresse e-mail", + "enabled": "Activé", + "enter_amount": "Entrez le montant", + "enter_backup_password": "Entrez le mot de passe de sauvegarde ici", + "enter_code": "Entrez le code", + "enter_seed_phrase": "Entrez votre phrase secrète (seed)", + "enter_totp_code": "Veuillez entrer le code TOTP.", + "enter_your_note": "Entrez votre note…", + "enter_your_pin": "Entrez votre code PIN", + "enter_your_pin_again": "Entrez à nouveau votre code PIN", + "enterTokenID": "Entrez l'ID du jeton", + "enterWalletConnectURI": "Saisissez l'URI de WalletConnect.", + "error": "Erreur", + "error_dialog_content": "Oups, nous avons rencontré une erreur.\n\nMerci d'envoyer le rapport d'erreur à notre équipe d'assistance afin de nous permettre d'améliorer l'application.", + "error_text_account_name": "Le nom de compte ne peut contenir que des lettres et des chiffres\net sa longueur doit être comprise entre 1 et 15 caractères", + "error_text_address": "L'adresse du portefeuille (wallet) doit correspondre au type de\ncryptomonnaie", + "error_text_amount": "Le montant ne peut comporter que des nombres", + "error_text_contact_name": "Un nom de contact ne peut pas contenir les symboles ` , ' \"\net doit faire entre 1 et 32 caractères", + "error_text_crypto_currency": "La partie décimale\ndoit comporter au plus 12 chiffres", + "error_text_fiat": "La valeur du montant ne peut dépasser le solde disponible.\nLa partie décimale doit comporter au plus 2 chiffres", + "error_text_input_above_maximum_limit": "Le montant est supérieur au maximum", + "error_text_input_below_minimum_limit": "Le montant est inférieur au minimum", + "error_text_keys": "Les clefs du portefeuille (wallet) ne peuvent être constituées que de 64 caractères hexadécimaux", + "error_text_limits_loading_failed": "Échange pour ${provider} non créé. Échec de chargement des limites", + "error_text_maximum_limit": "Échange pour ${provider} non créé. Le montant est supérieur au maximum : ${max} ${currency}", + "error_text_minimal_limit": "Échange pour ${provider} non créé. Le montant est inférieur au minimum : ${min} ${currency}", + "error_text_node_address": "Merci d'entrer une adresse IPv4", + "error_text_node_port": "Le port d'un nœud doit être un nombre compris entre 0 et 65535", + "error_text_node_proxy_address": "Veuillez saisir :, par exemple 127.0.0.1:9050", + "error_text_payment_id": "Un ID de paiement ne peut être constitué que de 16 à 64 caractères hexadécimaux", + "error_text_subaddress_name": "Le nom de sous-adresse ne peut contenir les symboles ` , ' \"\net sa longueur doit être comprise entre 1 et 20 caractères", + "error_text_template": "Le nom du modèle et l'adresse ne peuvent pas contenir les symboles ` , ' \"\net leur longueur doit être comprise entre 1 et 106 caractères", + "error_text_wallet_name": "Le nom du portefeuille (wallet) ne peut contenir que des lettres et des chiffres\net sa longueur doit être comprise entre 1 et 15 caractères", + "error_text_xmr": "La valeur de XMR dépasse le solde disponible.\nLa partie décimale doit comporter au plus 12 chiffres", "errorGettingCredentials": "Échec : erreur lors de l'obtention des informations d'identification", "errorSigningTransaction": "Une erreur s'est produite lors de la signature de la transaction", - "pairingInvalidEvent": "Événement de couplage non valide", - "chains": "Chaînes", - "methods": "Méthodes", - "events": "Événements", - "reject": "Rejeter", - "approve": "Approuver", - "expiresOn": "Expire le", - "walletConnect": "WalletConnect", - "nullURIError": "L'URI est nul", - "connectWalletPrompt": "Connectez votre portefeuille (wallet) avec WalletConnect pour effectuer des transactions", - "newConnection": "Nouvelle connexion", - "activeConnectionsPrompt": "Les connexions actives apparaîtront ici", - "deleteConnectionConfirmationPrompt": "Êtes-vous sûr de vouloir supprimer la connexion à", + "estimated": "Estimé", + "etherscan_history": "Historique d'Etherscan", "event": "Événement", - "successful": "Réussi", - "wouoldLikeToConnect": "je voudrais me connecter", - "message": "Message", - "do_not_have_enough_gas_asset": "Vous n'avez pas assez de ${currency} pour effectuer une transaction avec les conditions actuelles du réseau blockchain. Vous avez besoin de plus de ${currency} pour payer les frais du réseau blockchain, même si vous envoyez un actif différent.", - "totp_auth_url": "URL D'AUTORISATION TOTP", - "awaitDAppProcessing": "Veuillez attendre que l'application décentralisée (dApp) termine le traitement.", - "copyWalletConnectLink": "Copiez le lien WalletConnect depuis l'application décentralisée (dApp) et collez-le ici", - "enterWalletConnectURI": "Saisissez l'URI de WalletConnect.", - "seed_key": "Clé secrète (seed key)", - "enter_seed_phrase": "Entrez votre phrase secrète (seed)", - "change_rep_successful": "Représentant changé avec succès", - "add_contact": "Ajouter le contact", + "events": "Événements", + "exchange": "Échanger", + "exchange_incorrect_current_wallet_for_xmr": "Si vous souhaitez échanger des XMR du solde Monero de votre Cake Wallet, merci de sélectionner votre portefeuille (wallet) Monero au préalable.", + "exchange_new_template": "Nouveau modèle d'échange", "exchange_provider_unsupported": "${providerName} n'est plus pris en charge !", - "domain_looks_up": "Résolution de nom", - "require_for_exchanges_to_external_wallets": "Exiger pour les échanges vers des portefeuilles externes", - "camera_permission_is_required": "L'autorisation de la caméra est requise.\nVeuillez l'activer à partir des paramètres de l'application.", - "importNFTs": "Importer des NFT", - "noNFTYet": "Pas encore de NFT", - "address": "Adresse", - "enterTokenID": "Entrez l'ID du jeton", - "tokenID": "IDENTIFIANT", - "name": "Nom", - "symbol": "Symbole", - "seed_phrase_length": "Longueur de la phrase de départ", - "unavailable_balance": "Solde indisponible", - "unavailable_balance_description": "Solde indisponible : ce total comprend les fonds bloqués dans les transactions en attente et ceux que vous avez activement gelés dans vos paramètres de contrôle des pièces. Les soldes bloqués deviendront disponibles une fois leurs transactions respectives terminées, tandis que les soldes gelés resteront inaccessibles aux transactions jusqu'à ce que vous décidiez de les débloquer.", - "switchToETHWallet": "Veuillez passer à un portefeuille (wallet) Ethereum et réessayer", - "unspent_change": "Changement", - "order_by": "Commandé par", - "creation_date": "Date de création", + "exchange_result_confirm": "En pressant confirmer, vous enverrez ${fetchingLabel} ${from} depuis votre portefeuille (wallet) nommé ${walletName} vers l'adresse ci-dessous. Vous pouvez aussi envoyer depuis votre portefeuille externe vers l'adresse/QR code ci-dessous.\n\nMerci d'appuyer sur confirmer pour continuer ou retournez en arrière pour modifier les montants.", + "exchange_result_description": "Vous devez envoyer un minimum de ${fetchingLabel} ${from} à l'adresse indiquée page suivante. Si vous envoyez un montant inférieur à ${fetchingLabel} ${from} il pourrait ne pas être converti et ne pas être remboursé.", + "exchange_result_write_down_ID": "*Merci de copier ou écrire votre ID présenté ci-dessus.", + "exchange_result_write_down_trade_id": "Merci de copier ou d'écrire l'ID d'échange pour continuer.", + "exchange_sync_alert_content": "Merci d'attendre que votre portefeuille (wallet) soit synchronisé", + "expired": "Expirée", + "expires": "Expire", + "expiresOn": "Expire le", + "export_backup": "Exporter la sauvegarde", + "extra_id": "ID supplémentaire :", + "extracted_address_content": "Vous allez envoyer des fonds à\n${recipient_name}", + "failed_authentication": "Échec d'authentification. ${state_error}", + "faq": "FAQ", + "fetching": "Récupération", + "fiat_api": "Fiat API", + "fiat_balance": "Solde fiat", + "field_required": "Ce champ est obligatoire", + "fill_code": "Veuillez remplir le code de vérification fourni sur votre e-mail", + "filter_by": "Filtrer par", + "first_wallet_text": "Super portefeuille (wallet) pour Monero, Bitcoin, Ethereum, Litecoin et Haven", + "fixed_pair_not_supported": "Cette paire fixe n'est pas prise en charge avec les échanges sélectionnés", + "fixed_rate": "Taux fixe", + "fixed_rate_alert": "Vous aurez la possibilité de rentrer le montant reçu lorsque le mode taux fixe est sélectionné. Souhaitez vous basculer en mode taux fixe ?", + "forgot_password": "Mot de passe oublié", + "freeze": "Geler", + "frequently_asked_questions": "Foire aux questions", + "frozen": "Gelées", + "full_balance": "Solde Complet", + "generate_name": "Générer un nom", + "generating_gift_card": "Génération d'une carte-cadeau", + "get_a": "Obtenir un ", + "get_card_note": " que vous pouvez recharger avec des devises numériques. Aucune information supplémentaire n'est nécessaire !", + "get_your_yat": "Obtenir votre Yat", + "gift_card_amount": "Montant de la carte-cadeau", + "gift_card_balance_note": "Les cartes-cadeaux avec un solde restant apparaîtront ici", + "gift_card_is_generated": "La carte-cadeau est générée", + "gift_card_number": "Numéro de carte cadeau", + "gift_card_redeemed_note": "Les cartes-cadeaux que vous avez utilisées apparaîtront ici", + "gift_cards": "Cartes-Cadeaux", + "gift_cards_unavailable": "Les cartes-cadeaux ne sont disponibles à l'achat que via Monero, Bitcoin et Litecoin pour le moment", + "got_it": "Compris", + "gross_balance": "Solde brut", "group_by_type": "Groupe par type", - "tor_connection": "Connexion Tor", - "setup_warning_2fa_text": "Vous devrez restaurer votre portefeuille à partir de la graine mnémonique.\n\nLe support Cake ne pourra pas vous aider si vous perdez l'accès à vos graines 2FA ou mnémoniques.\nCake 2FA est une seconde authentification pour certaines actions dans le portefeuille. Avant d'utiliser Cake 2FA, nous vous recommandons de lire le guide.Ce n’est PAS aussi sécurisé que l’entreposage frigorifique.\n\nSi vous perdez l'accès à votre application 2FA ou à vos clés TOTP, vous perdrez l'accès à ce portefeuille. ", - "scan_qr_on_device": "Scannez ce code QR sur un autre appareil", + "haven_app": "Haven par Cake Wallet", + "haven_app_wallet_text": "Super portefeuille (wallet) pour Haven", + "help": "aide", + "hidden_balance": "Solde Caché", + "hide_details": "Masquer les détails", + "high_contrast_theme": "Thème à contraste élevé", + "home_screen_settings": "Paramètres de l'écran d'accueil", "how_to_use": "Comment utiliser", + "how_to_use_card": "Comment utiliser cette carte", + "id": "ID : ", + "ignor": "Ignorer", + "import": "Importer", + "importNFTs": "Importer des NFT", + "in_store": "En magasin", + "incoming": "Entrantes", + "incorrect_seed": "Le texte entré est invalide.", + "introducing_cake_pay": "Présentation de Cake Pay !", + "invalid_input": "Entrée invalide", + "invoice_details": "Détails de la facture", + "is_percentage": "est", + "last_30_days": "30 derniers jours", + "learn_more": "En savoir plus", + "light_theme": "Clair", + "loading_your_wallet": "Chargement de votre portefeuille (wallet)", + "login": "Utilisateur", + "logout": "Déconnexion", + "low_fee": "Frais modiques", + "low_fee_alert": "Vous utilisez actuellement une priorité de frais de réseau peu élevés. Cela pourrait entraîner de longues attentes, des taux différents ou des transactions annulées. Nous vous recommandons de fixer des frais plus élevés pour une meilleure expérience.", + "manage_nodes": "Gérer les nœuds", + "manage_pow_nodes": "Gérer les nœuds PoW", + "manage_yats": "Gérer les Yats", + "mark_as_redeemed": "Marquer comme convertie", + "market_place": "Place de marché", + "matrix_green_dark_theme": "Thème Matrix Green Dark", + "max_amount": "Max : ${value}", + "max_value": "Max: ${value} ${currency}", + "memo": "Mémo :", + "message": "Message", + "methods": "Méthodes", + "min_amount": "Min : ${value}", + "min_value": "Min: ${value} ${currency}", + "minutes_to_pin_code": "${minute} minutes", + "mm": "MM", + "modify_2fa": "Modifier les paramètres Cake 2FA", + "monero_com": "Monero.com par Cake Wallet", + "monero_com_wallet_text": "Super portefeuille (wallet) pour Monero", + "monero_dark_theme": "Thème sombre Monero", + "monero_light_theme": "Thème de lumière Monero", + "moonpay_alert_text": "Le montant doit être au moins égal à ${minAmount} ${fiatCurrency}", + "more_options": "Plus d'options", + "name": "Nom", + "narrow": "Étroit", + "new_first_wallet_text": "Gardez facilement votre crypto-monnaie en sécurité", + "new_node_testing": "Test du nouveau nœud", + "new_subaddress_create": "Créer", + "new_subaddress_label_name": "Nom", + "new_subaddress_title": "Nouvelle adresse", + "new_template": "Nouveau Modèle", + "new_wallet": "Nouveau Portefeuille (Wallet)", + "newConnection": "Nouvelle connexion", + "no_id_needed": "Aucune pièce d'identité nécessaire !", + "no_id_required": "Aucune pièce d'identité requise. Rechargez et dépensez n'importe où", + "no_relay_on_domain": "Il n'existe pas de relais pour le domaine de l'utilisateur ou le relais n'est pas disponible. Veuillez choisir un relais à utiliser.", + "no_relays": "Pas de relais", + "no_relays_message": "Nous avons trouvé un enregistrement Nostr NIP-05 pour cet utilisateur, mais il ne contient aucun relais. Veuillez demander au destinataire d'ajouter des relais à son enregistrement Nostr.", + "node_address": "Adresse du Nœud", + "node_connection_failed": "La connexion a échoué", + "node_connection_successful": "Connexion établie avec succès", + "node_new": "Nouveau Nœud", + "node_port": "Port du Nœud", + "node_reset_settings_title": "Réinitialisation des réglages", + "node_test": "Tester", + "nodes": "Nœuds", + "nodes_list_reset_to_default_message": "Êtes vous certain de vouloir revenir aux réglages par défaut ?", + "none_of_selected_providers_can_exchange": "Aucun des prestataires sélectionnés ne peut effectuer cet échange", + "noNFTYet": "Pas encore de NFT", + "normal": "Normal", + "note_optional": "Note (optionnelle)", + "note_tap_to_change": "Note (appuyez pour changer)", + "nullURIError": "L'URI est nul", + "offer_expires_in": "L'Offre expire dans : ", + "offline": "Hors ligne", + "ok": "OK", + "onion_link": "Lien .onion", + "online": "En ligne", + "onramper_option_description": "Achetez rapidement des cryptomonnaies avec de nombreuses méthodes de paiement. Disponible dans la plupart des pays. Les spreads et les frais peuvent varier.", + "open_gift_card": "Ouvrir la carte-cadeau", + "optional_description": "Descriptif facultatif", + "optional_email_hint": "E-mail de notification du bénéficiaire facultatif", + "optional_name": "Nom du destinataire facultatif", + "optionally_order_card": "Commander éventuellement une carte physique.", + "orbot_running_alert": "Veuillez vous assurer qu'Orbot est en cours d'exécution avant de vous connecter à ce nœud.", + "order_by": "Commandé par", + "order_id": "Numéro de commande", + "order_physical_card": "Commander une carte physique", + "other_settings": "Autres paramètres", + "outdated_electrum_wallet_description": "Les nouveaux portefeuilles (wallets) Bitcoin créés dans Cake ont dorénavant une phrase secrète (seed) de 24 mots. Il est impératif que vous créiez un nouveau portefeuille Bitcoin, que vous y transfériez tous vos fonds puis que vous cessiez d'utiliser le portefeuille avec une phrase secrète de 12 mots. Merci de faire cela immédiatement pour assurer la sécurité de vos avoirs.", + "outdated_electrum_wallet_receive_warning": "Si ce portefeuille (wallet) a une phrase secrète (seed) de 12 mots et a été créé dans Cake, NE PAS y déposer de Bitcoin. Tous les BTC transférés vers ce portefeuille seront perdus. Créez un nouveau portefeuille avec phrase secrète de 24 mots (appuyez sur le menu en haut à droite, sélectionnez Portefeuilles puis Créer un Nouveau Portefeuille et enfin Bitcoin) et transférez y IMMÉDIATEMENT vos BTC. Les nouveaux portefeuilles BTC Cake (avec phrase secrète de 24 mots) sont sécurisés", + "outgoing": "Sortantes", + "overwrite_amount": "Remplacer le montant", + "pairingInvalidEvent": "Événement de couplage non valide", + "password": "Mot de passe", + "paste": "Coller", + "pause_wallet_creation": "La possibilité de créer Haven Wallet est actuellement suspendue.", + "payment_id": "ID de Paiement : ", + "payment_was_received": "Votre paiement a été reçu.", + "pending": " (en attente)", + "percentageOf": "sur ${amount}", + "pin_at_top": "épingler ${token} en haut", + "pin_is_incorrect": "Le code PIN est incorrect", + "pin_number": "Numéro PIN", + "placeholder_contacts": "Vos contacts apparaîtront ici", + "placeholder_transactions": "Vos transactions apparaîtront ici", + "please_fill_totp": "Veuillez renseigner le code à 8 chiffres affiché sur votre autre appareil", + "please_make_selection": "Merci de faire un choix ci-dessous pour créer ou restaurer votre portefeuille (wallet).", + "please_reference_document": "Veuillez vous référer aux documents ci-dessous pour plus d'informations.", + "please_select": "Merci de sélectionner :", + "please_select_backup_file": "Merci de sélectionner le fichier de sauvegarde et de rentrer le mot de passe associé.", + "please_try_to_connect_to_another_node": "Merci d'essayer la connexion vers un autre nœud", + "please_wait": "Merci de patienter", + "polygonscan_history": "Historique de PolygonScan", + "powered_by": "Proposé par ${title}", + "pre_seed_button_text": "J'ai compris. Montrez moi ma phrase secrète (seed)", + "pre_seed_description": "Sur la page suivante vous allez voir une série de ${words} mots. Ils constituent votre phrase secrète (seed) unique et privée et sont le SEUL moyen de restaurer votre portefeuille (wallet) en cas de perte ou de dysfonctionnement. Il est de VOTRE responsabilité d'écrire cette série de mots et de la stocker dans un lieu sûr en dehors de l'application Cake Wallet.", + "pre_seed_title": "IMPORTANT", + "prevent_screenshots": "Empêcher les captures d'écran et l'enregistrement d'écran", + "privacy": "Confidentialité", + "privacy_policy": "Politique de confidentialité", + "privacy_settings": "Paramètres de confidentialité", + "private_key": "Clef privée", + "proceed_after_one_minute": "Si l'écran ne s'affiche pas après 1 minute, vérifiez vos e-mails.", + "profile": "Profil", + "provider_error": "Erreur de ${provider}", + "public_key": "Clef publique", + "purchase_gift_card": "Acheter une carte-cadeau", + "qr_fullscreen": "Appuyez pour ouvrir le QR code en mode plein écran", + "qr_payment_amount": "Ce QR code contient un montant de paiement. Voulez-vous remplacer la valeur actuelle ?", + "question_to_disable_2fa": "Êtes-vous sûr de vouloir désactiver Cake 2FA ? Un code 2FA ne sera plus nécessaire pour accéder au portefeuille (wallet) et à certaines fonctions.", + "receivable_balance": "Solde de créances", + "receive": "Recevoir", + "receive_amount": "Montant", + "received": "Reçus", + "recipient_address": "Adresse bénéficiaire", + "reconnect": "Reconnecter", + "reconnect_alert_text": "Êtes vous certain de vouloir vous reconnecter ?", + "reconnection": "Reconnexion", + "redeemed": "Converties", + "refund_address": "Adresse de Remboursement", + "reject": "Rejeter", + "remaining": "restant", + "remove": "Supprimer", + "remove_node": "Supprimer le nœud", + "remove_node_message": "Êtes vous certain de vouloir supprimer le nœud sélectionné ?", + "rename": "Renommer", + "require_for_adding_contacts": "Requis pour ajouter des contacts", + "require_for_all_security_and_backup_settings": "Exiger pour tous les paramètres de sécurité et de sauvegarde", + "require_for_assessing_wallet": "Nécessaire pour accéder au portefeuille", + "require_for_creating_new_wallets": "Nécessaire pour créer de nouveaux portefeuilles (wallets)", + "require_for_exchanges_to_external_wallets": "Exiger pour les échanges vers des portefeuilles externes", + "require_for_exchanges_to_internal_wallets": "Exiger pour les échanges vers des portefeuilles (wallets) internes", + "require_for_sends_to_contacts": "Exiger pour les envois aux contacts", + "require_for_sends_to_internal_wallets": "Exiger pour les envois vers des portefeuilles (wallets) internes", + "require_for_sends_to_non_contacts": "Exiger pour les envois hors contacts", + "require_pin_after": "Code PIN requis après", + "rescan": "Analyser la blockchain", + "resend_code": "Veuillez le renvoyer", + "reset": "Réinitialiser", + "reset_password": "Réinitialiser le mot de passe", + "restore_active_seed": "Phrase secrète (seed) active", + "restore_address": "Adresse", + "restore_bitcoin_description_from_keys": "Restaurer votre portefeuille (wallet) d'après la chaîne WIF générée d'après vos clefs privées", + "restore_bitcoin_description_from_seed": "Restaurer votre portefeuille (wallet) à l'aide d'une phrase secrète (seed) de 24 mots", + "restore_bitcoin_title_from_keys": "Restaurer depuis la chaîne WIF", + "restore_description_from_backup": "Vous pouvez restaurer l'intégralité de l'application Cake Wallet depuis un fichier de sauvegarde", + "restore_description_from_keys": "Restaurer votre portefeuille (wallet) d'après les séquences de touches générées d'après vos clefs privées", + "restore_description_from_seed": "Restaurer votre portefeuille (wallet) depuis une phrase secrète (seed) de 25 ou 13 mots", + "restore_description_from_seed_keys": "Restaurez votre portefeuille (wallet) depuis une phrase secrète (seed) ou des clefs que vous avez stockées en lieu sûr", + "restore_from_date_or_blockheight": "Merci d'entrer une date antérieure de quelques jours à la date de création de votre portefeuille (wallet). Ou si vous connaissez la hauteur de bloc, merci de la spécifier plutôt qu'une date", + "restore_from_seed_placeholder": "Merci d'entrer ou de coller votre phrase secrète (seed) ici", + "restore_new_seed": "Nouvelle phrase secrète (seed)", + "restore_next": "Suivant", + "restore_recover": "Restaurer", + "restore_restore_wallet": "Restaurer le Portefeuille (Wallet)", + "restore_seed_keys_restore": "Restaurer depuis Phrase secrète (seed)/Clefs", + "restore_spend_key_private": "Clef de dépense (spend key) (privée)", + "restore_title_from_backup": "Restaurer depuis une sauvegarde", + "restore_title_from_keys": "Restaurer depuis des clefs", + "restore_title_from_seed": "Restaurer depuis une phrase secrète (seed)", + "restore_title_from_seed_keys": "Restaurer depuis une phrase secrète (seed) ou des clefs", + "restore_view_key_private": "Clef d'audit (view key) (privée)", + "restore_wallet": "Restaurer un Portefeuille (Wallet)", + "restore_wallet_name": "Nom du portefeuille (wallet)", + "restore_wallet_restore_description": "Description de la restauration de portefeuille (wallet)", + "router_no_route": "Aucune route définie pour ${name}", + "save": "Sauvegarder", + "save_backup_password": "Merci de vous assurer d'avoir bien sauvegardé votre mot de passe de sauvegarde. Vous ne pourrez pas restaurer vos fichiers de sauvegarde sans ce dernier.", + "save_backup_password_alert": "Enregistrer le mot de passe de sauvegarde", + "save_to_downloads": "Enregistrer dans les téléchargements", + "saved_the_trade_id": "J'ai sauvegardé l'ID d'échange", + "scan_qr_code": "Scannez le QR code", + "scan_qr_code_to_get_address": "Scannez le QR code pour obtenir l'adresse", + "scan_qr_on_device": "Scannez ce code QR sur un autre appareil", + "search": "Chercher", + "search_add_token": "Rechercher / Ajouter un token", + "search_category": "Catégorie de recherche", + "search_currency": "Rechercher une devise", + "search_language": "Rechercher une langue", + "second_intro_content": "Votre Yat est une seule et unique adresse emoji qui remplace toutes vos longues adresses hexadécimales pour toutes vos cryptomonnaies.", + "second_intro_title": "Une adresse emoji pour les gouverner toutes", + "security_and_backup": "Sécurité et sauvegarde", + "seed_alert_back": "Retour", + "seed_alert_content": "La phrase secrète (seed) est la seule façon de restaurer votre portefeuille (wallet). L'avez-vous correctement écrite ?", + "seed_alert_title": "Attention", + "seed_alert_yes": "Oui, je suis sûr", + "seed_choose": "Choisissez la langue de la phrase secrète (seed)", "seed_hex_form": "Graine du portefeuille (forme hexagonale)", + "seed_key": "Clé secrète (seed key)", + "seed_language": "Langage de la phrase secrète", + "seed_language_chinese": "Chinois", + "seed_language_chinese_traditional": "Chinois (Traditionnel)", + "seed_language_czech": "tchèque", + "seed_language_dutch": "Néerlandais", + "seed_language_english": "Anglais", + "seed_language_french": "Français", + "seed_language_german": "Allemand", + "seed_language_italian": "Italien", + "seed_language_japanese": "Japonais", + "seed_language_korean": "coréen", + "seed_language_next": "Suivant", + "seed_language_portuguese": "Portugais", + "seed_language_russian": "Russe", + "seed_language_spanish": "Espagnol", + "seed_phrase_length": "Longueur de la phrase de départ", + "seed_reminder": "Merci d'écrire votre phrase secrète (seed) au cas où vous perdriez ou effaceriez votre téléphone", + "seed_share": "Partager la phrase secrète (seed)", + "seed_title": "Phrase secrète (seed)", "seedtype": "Type de type graine", "seedtype_legacy": "Héritage (25 mots)", "seedtype_polyseed": "Polyseed (16 mots)", - "seed_language_czech": "tchèque", - "seed_language_korean": "coréen", - "seed_language_chinese_traditional": "Chinois (Traditionnel)", - "ascending": "Ascendant", - "descending": "Descendant", - "dfx_option_description": "Achetez des crypto-monnaies avec EUR et CHF. Jusqu'à 990€ sans KYC supplémentaire. Pour les clients particuliers et entreprises en Europe", - "polygonscan_history": "Historique de PolygonScan", - "wallet_seed_legacy": "Graine de portefeuille hérité", - "default_sell_provider": "Fournisseur de vente par défaut", + "select_backup_file": "Sélectionnez le fichier de sauvegarde", + "select_buy_provider_notice": "Sélectionnez un fournisseur d'achat ci-dessus. Vous pouvez ignorer cet écran en définissant votre fournisseur d'achat par défaut dans les paramètres de l'application.", + "select_destination": "Veuillez sélectionner la destination du fichier de sauvegarde.", "select_sell_provider_notice": "Sélectionnez un fournisseur de vente ci-dessus. Vous pouvez ignorer cet écran en définissant votre fournisseur de vente par défaut dans les paramètres de l'application.", - "custom_drag": "Custom (maintenir et traîner)", + "sell": "Vendre", + "sell_alert_content": "Nous ne prenons actuellement en charge que la vente de Bitcoin, Ethereum et Litecoin. Veuillez créer ou basculer vers votre portefeuille Bitcoin, Ethereum ou Litecoin.", + "sell_monero_com_alert_content": "La vente de Monero n'est pas encore prise en charge", + "send": "Envoyer", + "send_address": "adresse ${cryptoCurrency}", + "send_amount": "Montant :", + "send_creating_transaction": "Création de la transaction", + "send_error_currency": "La monnaie ne peut contenir que des nombres", + "send_error_minimum_value": "La valeur minimale du montant est 0.01", + "send_estimated_fee": "Estimation des frais :", + "send_fee": "Frais :", + "send_name": "Nom", + "send_new": "Nouveau", + "send_payment_id": "ID de paiement (optionnel)", + "send_priority": "Actuellement les frais sont positionnés à la priorité ${transactionPriority}.\nLa priorité de la transaction peut être modifiée dans les réglages", + "send_sending": "Envoi...", + "send_success": "Vos ${crypto} ont été envoyés avec succès", + "send_templates": "Modèles d'envois", + "send_title": "Envoyer", + "send_to_this_address": "Envoyer ${currency} ${tag}à cette adresse", + "send_xmr": "Envoyer XMR", + "send_your_wallet": "Votre portefeuille (wallet)", + "sending": "Envoi", + "sent": "Envoyés", + "settings": "Paramètres", + "settings_all": "TOUT", + "settings_allow_biometrical_authentication": "Autoriser l'authentification biométrique", + "settings_can_be_changed_later": "Ces paramètres peuvent être modifiés ultérieurement dans les paramètres de l'application", + "settings_change_language": "Modifier la langue", + "settings_change_pin": "Modifier le code PIN", + "settings_currency": "Devise", + "settings_current_node": "Nœud actuel", + "settings_dark_mode": "Mode sombre", + "settings_display_balance": "Affichage du solde", + "settings_display_on_dashboard_list": "Afficher sur la liste des tableaux de bord", + "settings_fee_priority": "Priorité des frais", + "settings_nodes": "Nœuds", + "settings_none": "Rien", + "settings_only_trades": "Seulement les échanges", + "settings_only_transactions": "Seulement les transactions", + "settings_personal": "Personnel", + "settings_save_recipient_address": "Sauvegarder l'adresse du bénéficiaire", + "settings_support": "Support", + "settings_terms_and_conditions": "Termes et Conditions", + "settings_title": "Réglages", + "settings_trades": "Échanges", + "settings_transactions": "Transactions", + "settings_wallets": "Portefeuilles (Wallets)", + "setup_2fa": "Paramétrer Cake 2FA", + "setup_2fa_text": "Cake 2FA fonctionne en utilisant TOTP comme deuxième facteur d'authentification.\n\nLe TOTP de Cake 2FA nécessite la prise en charge de SHA-512 et de 8 chiffres ; cela offre une sécurité accrue. Plus d’informations et les applications prises en charge peuvent être trouvées dans le guide.", + "setup_pin": "Configurer le code PIN", + "setup_successful": "Votre code PIN a été configuré avec succès !", + "setup_totp_recommended": "Configurer TOTP", + "setup_warning_2fa_text": "Vous devrez restaurer votre portefeuille à partir de la graine mnémonique.\n\nLe support Cake ne pourra pas vous aider si vous perdez l'accès à vos graines 2FA ou mnémoniques.\nCake 2FA est une seconde authentification pour certaines actions dans le portefeuille. Avant d'utiliser Cake 2FA, nous vous recommandons de lire le guide.Ce n’est PAS aussi sécurisé que l’entreposage frigorifique.\n\nSi vous perdez l'accès à votre application 2FA ou à vos clés TOTP, vous perdrez l'accès à ce portefeuille. ", + "setup_your_debit_card": "Configurer votre carte de débit", + "share": "Partager", + "share_address": "Partager l'adresse", + "show_details": "Afficher les détails", + "show_keys": "Visualiser la phrase secrète (seed) et les clefs", + "show_market_place": "Afficher la place de marché", + "show_seed": "Visualiser la phrase secrète (seed)", + "sign_up": "S'inscrire", + "signTransaction": "Signer une transaction", + "signup_for_card_accept_terms": "Inscrivez-vous pour la carte et acceptez les conditions.", + "slidable": "Glissable", + "sort_by": "Trier par", + "spend_key_private": "Clef de dépense (spend key) (privée)", + "spend_key_public": "Clef de dépense (spend key) (publique)", + "status": "Statut : ", + "subaddress_title": "Liste des sous-adresses", + "subaddresses": "Sous-adresses", + "submit_request": "soumettre une requête", + "successful": "Réussi", + "support_description_guides": "Documentation et support pour les problèmes communs", + "support_description_live_chat": "GRATUIT ET RAPIDE ! Des représentants de soutien formé sont disponibles pour aider", + "support_description_other_links": "Rejoignez nos communautés ou contactez-nous ou nos partenaires à travers d'autres méthodes", + "support_title_guides": "Guides de Cake Wallet", + "support_title_live_chat": "Support en direct", + "support_title_other_links": "Autres liens d'assistance", + "sweeping_wallet": "Portefeuille (wallet) de consolidation", + "sweeping_wallet_alert": "Cette opération ne devrait pas prendre longtemps. NE QUITTEZ PAS CET ÉCRAN OU LES FONDS CONSOLIDÉS POURRAIENT ÊTRE PERDUS", + "switchToETHWallet": "Veuillez passer à un portefeuille (wallet) Ethereum et réessayer", "switchToEVMCompatibleWallet": "Veuillez passer à un portefeuille compatible EVM et réessayer (Ethereum, Polygon)", - "receivable_balance": "Solde de créances", - "confirmed_tx": "Confirmé", + "symbol": "Symbole", + "sync_all_wallets": "Synchroniser tous les portefeuilles", + "sync_status_attempting_sync": "TENTATIVE DE SYNCHRONISATION", + "sync_status_connected": "CONNECTÉ", + "sync_status_connecting": "CONNEXION EN COURS", + "sync_status_failed_connect": "DÉCONNECTÉ", + "sync_status_not_connected": "NON CONNECTÉ", + "sync_status_starting_sync": "DÉBUT DE SYNCHRO", + "sync_status_syncronized": "SYNCHRONISÉ", + "sync_status_syncronizing": "SYNCHRONISATION EN COURS", + "syncing_wallet_alert_content": "Votre solde et votre liste de transactions peuvent ne pas être à jour tant que la mention « SYNCHRONISÉ » n'apparaît en haut de l'écran. Cliquez/appuyez pour en savoir plus.", + "syncing_wallet_alert_title": "Votre portefeuille (wallet) est en cours de synchronisation", + "template": "Modèle", + "template_name": "Nom du modèle", + "third_intro_content": "Les Yats existent aussi en dehors de Cake Wallet. Toute adresse sur terre peut être remplacée par un Yat !", + "third_intro_title": "Yat est universel", + "time": "${minutes}m ${seconds}s", + "tip": "Pourboire :", + "today": "Aujourd'hui", + "token_contract_address": "Adresse du contrat de token", + "token_decimal": "Décimales de token", + "token_name": "Nom du token, par exemple : Tether", + "token_symbol": "Symbole de token, par exemple : USDT", + "tokenID": "IDENTIFIANT", + "tor_connection": "Connexion Tor", + "tor_only": "Tor uniquement", + "total_saving": "Économies totales", + "totp_2fa_failure": "Code incorrect. Veuillez essayer un code différent ou générer un nouveau secret TOTP. Utilisez une application 2FA compatible qui prend en charge les codes à 8 chiffres et SHA512.", + "totp_2fa_success": "Succès! Cake 2FA est activé pour ce portefeuille. N'oubliez pas de sauvegarder votre phrase secrète (seed) au cas où vous perdriez l'accès au portefeuille (wallet).", + "totp_auth_url": "URL D'AUTORISATION TOTP", + "totp_code": "Code TOTP", + "totp_secret_code": "Secret TOTP", + "totp_verification_success": "Vérification réussie !", + "trade_details_copied": "${title} copié vers le presse-papier", + "trade_details_created_at": "Créé le", + "trade_details_fetching": "Récupération", + "trade_details_id": "ID", + "trade_details_pair": "Paire", + "trade_details_provider": "Fournisseur", + "trade_details_state": "Statut", + "trade_details_title": "Détails de l'échange", + "trade_for_not_created": "L'échange pour ${title} n'est pas créé.", + "trade_history_title": "Historique des échanges", + "trade_id": "ID d'échange :", + "trade_id_not_found": "Échange ${tradeId} de ${title} introuvable.", + "trade_is_powered_by": "Cet échange est proposé par ${provider}", + "trade_not_created": "Échange non créé", + "trade_not_found": "Échange introuvable.", + "trade_state_btc_sent": "Btc envoyés", + "trade_state_complete": "Finalisé", + "trade_state_confirming": "En cours de confirmation", + "trade_state_created": "Créé", + "trade_state_finished": "Terminé", + "trade_state_paid": "Payé", + "trade_state_paid_unconfirmed": "Payé mais non confirmé", + "trade_state_pending": "En cours", + "trade_state_timeout": "Délai dépassé", + "trade_state_to_be_created": "À créer", + "trade_state_traded": "Échange terminé", + "trade_state_trading": "Échange en cours", + "trade_state_underpaid": "Sous payé", + "trade_state_unpaid": "Non payé", + "trades": "Échanges", + "transaction_details_amount": "Montant", + "transaction_details_copied": "${title} copié vers le presse-papier", + "transaction_details_date": "Date", + "transaction_details_fee": "Frais", + "transaction_details_height": "Hauteur", + "transaction_details_recipient_address": "Adresse du bénéficiaire", "transaction_details_source_address": "Adresse source", - "pause_wallet_creation": "La possibilité de créer Haven Wallet est actuellement suspendue.", - "contractName": "Nom du contrat", - "contractSymbol": "Symbole du contrat", - "description": "Description", - "camera_consent": "Votre appareil photo sera utilisé pour capturer une image à des fins d'identification par ${provider}. Veuillez consulter leur politique de confidentialité pour plus de détails.", - "no_relays": "Pas de relais", - "choose_relay": "Veuillez choisir un relais à utiliser", - "no_relays_message": "Nous avons trouvé un enregistrement Nostr NIP-05 pour cet utilisateur, mais il ne contient aucun relais. Veuillez demander au destinataire d'ajouter des relais à son enregistrement Nostr.", - "no_relay_on_domain": "Il n'existe pas de relais pour le domaine de l'utilisateur ou le relais n'est pas disponible. Veuillez choisir un relais à utiliser." -} + "transaction_details_title": "Détails de transaction", + "transaction_details_transaction_id": "ID de transaction", + "transaction_key": "Clef de Transaction", + "transaction_priority_fast": "Rapide", + "transaction_priority_fastest": "Le plus rapide", + "transaction_priority_medium": "Moyen", + "transaction_priority_regular": "Normal", + "transaction_priority_slow": "Lent", + "transaction_sent": "Transaction émise !", + "transaction_sent_notice": "Si l'écran ne continue pas après 1 minute, vérifiez un explorateur de blocs et votre e-mail.", + "transactions": "Transactions", + "transactions_by_date": "Transactions par date", + "trusted": "de confiance", + "unavailable_balance": "Solde indisponible", + "unavailable_balance_description": "Solde indisponible : ce total comprend les fonds bloqués dans les transactions en attente et ceux que vous avez activement gelés dans vos paramètres de contrôle des pièces. Les soldes bloqués deviendront disponibles une fois leurs transactions respectives terminées, tandis que les soldes gelés resteront inaccessibles aux transactions jusqu'à ce que vous décidiez de les débloquer.", + "unconfirmed": "Solde non confirmé", + "understand": "J'ai compris", + "unmatched_currencies": "La devise de votre portefeuille (wallet) actuel ne correspond pas à celle du QR code scanné", + "unspent_change": "Changement", + "unspent_coins_details_title": "Détails des pièces (coins) non dépensées", + "unspent_coins_title": "Pièces (coins) non dépensées", + "unsupported_asset": "Nous ne prenons pas en charge cette action pour cet élément. Veuillez créer ou passer à un portefeuille d'un type d'actif pris en charge.", + "upto": "jusqu'à ${value}", + "use": "Changer vers code PIN à ", + "use_card_info_three": "Utilisez la carte numérique en ligne ou avec des méthodes de paiement sans contact.", + "use_card_info_two": "Les fonds sont convertis en USD lorsqu'ils sont détenus sur le compte prépayé, et non en devises numériques.", + "use_ssl": "Utiliser SSL", + "use_suggested": "Suivre la suggestion", + "variable_pair_not_supported": "Cette paire variable n'est pas prise en charge avec les échanges sélectionnés", + "verification": "Vérification", + "verify_with_2fa": "Vérifier avec Cake 2FA", + "version": "Version ${currentVersion}", + "view_all": "Voir tout", + "view_in_block_explorer": "Voir dans l'Explorateur de Blocs", + "view_key_private": "Clef d'audit (view key) (privée)", + "view_key_public": "Clef d'audit (view key) (publique)", + "view_transaction_on": "Voir la Transaction sur ", + "wallet_keys": "Phrase secrète (seed)/Clefs du portefeuille (wallet)", + "wallet_list_create_new_wallet": "Créer un Nouveau Portefeuille (Wallet)", + "wallet_list_edit_wallet": "Modifier le portefeuille", + "wallet_list_failed_to_load": "Échec de chargement du portefeuille (wallet) ${wallet_name}. ${error}", + "wallet_list_failed_to_remove": "Échec de la suppression du portefeuille (wallet) ${wallet_name}. ${error}", + "wallet_list_load_wallet": "Charger un Portefeuille (Wallet)", + "wallet_list_loading_wallet": "Chargement du portefeuille (wallet) ${wallet_name}", + "wallet_list_removing_wallet": "Suppression du portefeuille (wallet) ${wallet_name}", + "wallet_list_restore_wallet": "Restaurer un Portefeuille (Wallet)", + "wallet_list_title": "Portefeuille (Wallet) Monero", + "wallet_list_wallet_name": "Nom du portefeuille", + "wallet_menu": "Menu", + "wallet_name": "Nom du Portefeuille (Wallet)", + "wallet_name_exists": "Un portefeuille (wallet) portant ce nom existe déjà", + "wallet_restoration_store_incorrect_seed_length": "Longueur de phrase secrète (seed) incorrecte", + "wallet_seed": "Phrase secrète (seed) du portefeuille (wallet)", + "wallet_seed_legacy": "Graine de portefeuille hérité", + "wallet_store_monero_wallet": "Portefeuille (Wallet) Monero", + "walletConnect": "WalletConnect", + "wallets": "Portefeuilles (Wallets)", + "warning": "Avertissement", + "welcome": "Bienvenue sur", + "welcome_to_cakepay": "Bienvenue sur Cake Pay !", + "widgets_address": "Adresse", + "widgets_or": "ou", + "widgets_restore_from_blockheight": "Restaurer depuis une hauteur de bloc", + "widgets_restore_from_date": "Restaurer depuis une date", + "widgets_seed": "Phrase secrète (seed)", + "wouoldLikeToConnect": "je voudrais me connecter", + "write_down_backup_password": "Merci d'écrire votre mot de passe de sauvegarde, vous en aurez besoin lors de la relecture de vos fichiers de sauvegarde.", + "xlm_extra_info": "Merci de ne pas oublier de spécifier l'ID de mémo lors de l'envoi de la transaction XLM de l'échange", + "xmr_available_balance": "Solde Disponible", + "xmr_full_balance": "Solde Total", + "xmr_hidden": "Caché", + "xmr_to_error": "Erreur XMR.TO", + "xmr_to_error_description": "Montant invalide. La partie décimale doit contenir au plus 8 chiffres", + "xrp_extra_info": "Merci de ne pas oublier de spécifier le tag de destination lors de l'envoi de la transaction XRP de l'échange", + "yat": "Yat", + "yat_address": "Adresse Yat", + "yat_alert_content": "Les utilisateurs de Cake Wallet peuvent maintenant envoyer et recevoir leurs monnaies favorites avec un utilisateur unique en son genre basé sur les emojis.", + "yat_alert_title": "Envoyez et recevez des cryptos plus facilement avec Yat", + "yat_error": "Erreur Yat", + "yat_error_content": "Aucune adresse associée à ce Yat. Essayez un autre Yat", + "yat_popup_content": "Vous pouvez à présent envoyer et recevoir des cryptos dans Cake Wallet à l'aide de votre Yat - un nom d'utilisateur court à base d'emoji. Gérér les Yats à tout moment depuis l'écran de paramétrage", + "yat_popup_title": "L'adresse de votre portefeuille (wallet) peut être emojifiée.", + "yesterday": "Hier", + "you_now_have_debit_card": "Vous avez maintenant une carte de débit", + "you_pay": "Vous payez", + "you_will_get": "Convertir vers", + "you_will_send": "Convertir depuis", + "yy": "AA", + "zzzz": "zzzz" +} \ No newline at end of file diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index 2f2343434..748c134c6 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -1,761 +1,762 @@ { - "welcome": "Barka da zuwa", - "cake_wallet": "Cake Wallet", - "first_wallet_text": "Aikace-aikacen e-wallet ga Monero, Bitcoin, Ethereum, Litecoin, da kuma Haven", - "please_make_selection": "Don Allah zaɓi ƙasa don ƙirƙira ko dawo da kwalinku.", - "create_new": "Ƙirƙira Sabon Kwalinku", - "restore_wallet": "Dawo da Kwalinku", - "monero_com": "Monero.com ta Cake Wallet", - "monero_com_wallet_text": "Aikace-aikacen e-wallet ga Monero", - "haven_app": "Haven da Cake Wallet", - "haven_app_wallet_text": "Aikace-aikacen e-wallet ga Haven", - "accounts": "Lissafi", - "edit": "Gyara", + "about_cake_pay": "Biyan Cake yana ba ku damar sauƙin siyan katunan kyauta tare da kadarorin kama-da-wane, wanda za'a iya kashewa nan take a sama da yan kasuwa 150,000 a Amurka.", "account": "Asusu", + "accounts": "Lissafi", + "accounts_subaddresses": "Accounts da subaddresses", + "activate": "Kunna", + "active": "Mai aiki", + "active_cards": "Katunan aiki", + "activeConnectionsPrompt": "Haɗin kai mai aiki zai bayyana a nan", "add": "Ƙara", + "add_contact": "Ƙara lamba", + "add_custom_node": "Ƙara Sabon Kulli na Custom", + "add_custom_redemption": "Ƙara Ceto na Musamman", + "add_fund_to_card": "Ƙara kuɗin da aka riga aka biya a katunan (har zuwa ${value})", + "add_new_node": "Ƙara sabon node", + "add_new_word": "Ƙara kalma sabuwa", + "add_receiver": "Ƙara wani mai karɓa (na zaɓi)", + "add_secret_code": "Ko, ƙara wannan lambar sirrin zuwa ƙa'idar mai tabbatarwa", + "add_tip": "Ƙara Tukwici", + "add_token_disclaimer_check": "Na tabbatar da adireshin kwangilar alamar da bayanin ta amfani da ingantaccen tushe. Ƙara bayanan ƙeta ko kuskure na iya haifar da asarar kuɗi.", + "add_token_warning": "Kar a gyara ko ƙara alamu kamar yadda masu zamba suka umarta.\nKoyaushe tabbatar da adiresoshin alamar tare da sanannun tushe!", + "add_value": "Ƙara ƙima", + "address": "Adireshi", "address_book": "Littafin adireshi", - "contact": "Tuntuɓar", - "please_select": "Don Allah zaɓi:", - "cancel": "Soke", - "ok": "OK", - "contact_name": "Sunan Tuntuɓi", - "reset": "Sake saiti", - "save": "Ajiye", + "address_book_menu": "Littafin adireshi", + "address_detected": "An gano adireshin", + "address_from_domain": "Wannan adireshin ya fito daga ${domain} akan Unstoppable Domain", + "address_from_yat": "Wannan adireshin daga ${emoji} ne akan Yat", + "address_label": "Labari adireshi", "address_remove_contact": "Cire lamba", "address_remove_content": "Kuna tabbatar kuna so ku cire wannan Contact?", - "authenticated": "Ingantacce", - "authentication": "Tabbatarwa", - "failed_authentication": "Binne wajen shiga. ${state_error}", - "wallet_menu": "Menu", - "Blocks_remaining": "${status} Katanga ya rage", - "please_try_to_connect_to_another_node": "Don Allah yi ƙoƙarin haɗa da wani node", - "xmr_hidden": "Boye", - "xmr_available_balance": "Akwai Ma'auni", - "xmr_full_balance": "Cikakken Ma'auni", - "send": "Aika", - "receive": "Samu", - "transactions": "Ma'amaloli", - "incoming": "Mai shigowa", - "outgoing": "Mai fita", - "transactions_by_date": "Ma'amaloli ta kwanan wata", - "trades": "Cinikai", - "filter_by": "Tace ta", - "today": "Yau", - "yesterday": "Jiya", - "received": "Samu", - "sent": "Aika", - "pending": "(pending)", - "rescan": "Rescan", - "reconnect": "Sake haɗawa", - "wallets": "Wallets", - "show_seed": "Nuna iri", - "show_keys": "Nuna iri/maɓallai", - "address_book_menu": "Littafin adireshi", - "reconnection": "Sake haɗawa", - "reconnect_alert_text": "Shin kun tabbata kuna son sake haɗawa?", - "exchange": "Exchange", - "clear": "Share", - "refund_address": "Adireshin maidowa", - "change_exchange_provider": "Canza Mai Bayar da Musanya", - "you_will_send": "Maida daga", - "you_will_get": "Maida zuwa", - "amount_is_guaranteed": "Adadin da aka karɓa yana da garanti", - "amount_is_estimate": "Adadin da aka karɓa shine kimantawa", - "powered_by": "An ƙarfafa shi ta ${title}", - "error": "Kuskure", - "estimated": "Kiyasta", - "min_value": "Min: ${value} ${currency}", - "max_value": "Max: ${value} ${currency}", - "change_currency": "Canja Kuɗi", - "overwrite_amount": "Rubuta adadin", - "qr_payment_amount": "Wannan QR code yana da adadin kuɗi. Kuna so ku overwrite wannan adadi?", - "copy_id": "Kwafi ID", - "exchange_result_write_down_trade_id": "Da fatan za a kwafa ko rubuta ID ɗin ciniki don ci gaba.", - "trade_id": "ID na kasuwanci:", - "copied_to_clipboard": "An kwafi zuwa Clipboard", - "saved_the_trade_id": "Na ajiye ID na ciniki", - "fetching": "Daukewa", - "id": "ID:", - "amount": "Adadi:", - "payment_id": "ID na biyan kuɗi:", - "status": "Matsayi:", - "offer_expires_in": "tayin zai ƙare a:", - "trade_is_powered_by": "Ana yin wannan ciniki ta hanyar ${provider}", - "copy_address": "Kwafi Adireshin", - "exchange_result_confirm": "Ta danna tabbatarwa, zaku aika ${fetchingLabel} ${from} daga walat ɗin ku mai suna ${walletName} zuwa address dake kasa. Ko zaka iya aika daga kwalinku na external zuwa address/QR code dake kasa.\n\nDon Allah shigar da confirm don ci gaba ko dawo ka canja adadinku.", - "exchange_result_description": "Dole ne ku aika mafi ƙarancin ${fetchingLabel} ${from} zuwa adireshin da aka nuna akan shafi na gaba. Idan ka aika adadi kasa da ${fetchingLabel} ${from} bazai yi converting ba kuma ba zai koma ba.", - "exchange_result_write_down_ID": "*Don Allah kwafi ko rubuta ID dake nuna sama.", - "confirm": "Tabbatar", - "confirm_sending": "Tabbatar da aikawa", - "commit_transaction_amount_fee": "Aikata ciniki\nAdadi: ${amount}\nKuda: ${fee}", - "sending": "Aika", - "transaction_sent": "An aika ciniki!", - "expired": "Karewa", - "time": "${minutes}m ${seconds}s", - "send_xmr": "Aika XMR", - "exchange_new_template": "Sabon template", - "faq": "FAQ", - "enter_your_pin": "Shigar da PIN", - "loading_your_wallet": "Ana loda walat ɗin ku", - "new_wallet": "Sabuwar Wallet", - "wallet_name": "Sunan walat", - "continue_text": "Ci gaba", - "choose_wallet_currency": "Da fatan za a zaɓi kuɗin walat:", - "node_new": "Sabon Node", - "node_address": "Address Node", - "node_port": "Node tashar jiragen ruwa", - "login": "Shiga", - "password": "Kalmar wucewa", - "nodes": "Nodes", - "node_reset_settings_title": "Sake saitunan", - "nodes_list_reset_to_default_message": "Kuna tabbatar kuna so ku sake saitunan zuwa default?", - "change_current_node": "Kuna tabbatar kuna so ku canja node yanzu zuwa ${node}?", - "change": "Canja", - "remove_node": "Cire node", - "remove_node_message": "Kuna tabbatar kuna so ku cire wannan node?", - "remove": "Cire", - "delete": "Share", - "add_new_node": "Ƙara sabon node", - "change_current_node_title": "Canja node yanzu", - "node_test": "Gwaji", - "node_connection_successful": "Haɗin ya yi nasara", - "node_connection_failed": "Haɗin ya gaza", - "new_node_testing": "Sabbin gwajin kumburi", - "use": "Canja zuwa", - "digit_pin": "-lambar PIN", - "share_address": "Raba adireshin", - "receive_amount": "Adadi", - "subaddresses": "Subaddresses", "addresses": "Addresses", - "scan_qr_code": "Gani QR kodin", - "qr_fullscreen": "Matsa don buɗe lambar QR na cikakken allo", - "rename": "Sake suna", - "choose_account": "Zaɓi asusu", - "create_new_account": "Ƙirƙiri sabon asusu", - "accounts_subaddresses": "Accounts da subaddresses", - "restore_restore_wallet": "Maida Wallet", - "restore_title_from_seed_keys": "Dawo da iri/maɓallai", - "restore_description_from_seed_keys": "Maido da walat ɗin ku daga iri/maɓallan da kuka adana don amintaccen wuri", - "restore_next": "Na gaba", - "restore_title_from_backup": "Dawo daga madadin", - "restore_description_from_backup": "Kuna iya dawo da duk aikace-aikacen Wallet ɗin Cake daga fayil ɗin ajiyar ku", - "restore_seed_keys_restore": "Mayar da iri/Maɓallai", - "restore_title_from_seed": "Maidowa daga iri", - "restore_description_from_seed": "Dawo da kwalinku daga 25 ko 13 lambar haɗin kalma", - "restore_title_from_keys": "Dawo daga maɓallai", - "restore_description_from_keys": "Maido da walat ɗin ku daga maɓallan maɓalli da aka ƙera da aka ajiye daga maɓallan ku na sirri", - "restore_wallet_name": "Sunan kwalinku", - "restore_address": "Address", - "restore_view_key_private": "Maɓallin Duba (key kalmar sirri)", - "restore_spend_key_private": "Maɓallin kashewa (key kalmar sirri)", - "restore_recover": "Maida", - "restore_wallet_restore_description": "Bayanin dawo da walat", - "restore_new_seed": "Sabon iri", - "restore_active_seed": "iri mai aiki", - "restore_bitcoin_description_from_seed": "Dawo da kwalinku daga 24 lambar haɗin kalma", - "restore_bitcoin_description_from_keys": "Dawo da kwalinku daga WIF string dake generate daga maɓallan sirri", - "restore_bitcoin_title_from_keys": "Dawo daga WIF", - "restore_from_date_or_blockheight": "Don Allah shigar da wata kwanan a kafin ku ƙirƙirar wannan kwalinku. Ko idan kun san blockheight, don Allah shigar da shi", - "seed_reminder": "Don Allah rubuta wadannan in case ka manta ko ka sake kwallon wayarka", - "seed_title": "iri", - "seed_share": "Raba iri", - "copy": "Kwafi", - "seed_language": "Harshen Magani", - "seed_choose": "Zaɓi harshen seed", - "seed_language_next": "Na gaba", - "seed_language_english": "Ingilishi", - "seed_language_chinese": "Sinanci", - "seed_language_dutch": "Dutch", - "seed_language_german": "Jamus", - "seed_language_japanese": "Jafananci", - "seed_language_portuguese": "Fotigal", - "seed_language_russian": "Rashanci", - "seed_language_spanish": "Spanish", - "seed_language_french": "Faransanci", - "seed_language_italian": "Italiyanci", - "send_title": "Aika", - "send_your_wallet": "Walat ɗin ku", - "send_address": "${cryptoCurrency} address", - "send_payment_id": "ID na biyan kuɗi (optional)", + "advanced_settings": "Saitunan ci gaba", + "aggressive": "Mai tsananin kishi", + "agree": "Yarda", + "agree_and_continue": "Amincewa & Ci gaba", + "agree_to": "Ta hanyar ƙirƙirar asusu kun yarda da", "all": "DUK", - "send_error_minimum_value": "Mafi ƙarancin ƙimar adadin shine 0.01", - "send_error_currency": "Kudi zai iya ƙunsar lambobi kawai", - "send_estimated_fee": "Ƙimar kuɗi:", - "send_priority": "Yanzu haka fee yana set a ${transactionPriority} fifiko.\nAna iya daidaita fifikon ciniki a cikin saitunan", - "send_creating_transaction": "Ƙirƙirar ciniki", - "send_templates": "Samfura", - "send_new": "Sabon", - "send_amount": "Adadi:", - "send_fee": "Kudin:", - "send_name": "Sunan", - "got_it": "Gama", - "send_sending": "Aika...", - "send_success": "${crypto} kwalinku ya aika da nasara", - "settings_title": "Saitunan", - "settings_nodes": "Nodes", - "settings_current_node": "Node yanzu", - "settings_wallets": "Wallets", - "settings_display_balance": "Nuna ma'auni", - "settings_currency": "Kudi", - "settings_fee_priority": "fifikon kuɗi", - "settings_save_recipient_address": "Ajiye adireshin mai karɓa", - "settings_personal": "Na sirri", - "settings_change_pin": "Canja PIN", - "settings_change_language": "Canja yaren", - "settings_allow_biometrical_authentication": "Bada izinin tantance sawun yatsa", - "settings_dark_mode": "Launi mai duhu", - "settings_transactions": "Ma'amaloli", - "settings_trades": "Cinikai", - "settings_display_on_dashboard_list": "Nuna a kan tebur na bayanan", - "settings_all": "DUK", - "settings_only_trades": "Kawai kasuwancin", - "settings_only_transactions": "Kawai ayyuka", - "settings_none": "Babu", - "settings_support": "Taimako", - "settings_terms_and_conditions": "Sharuɗɗa da Ka'idoji", - "pin_is_incorrect": "PIN ba daidai ba ne", - "setup_pin": "Saita PIN", - "enter_your_pin_again": "Shigar da PIN ɗinku na sake", - "setup_successful": "An saita PIN ɗinku da nasara!", - "wallet_keys": "Iri/maɓalli na walat", - "wallet_seed": "kalmar sirri na walat", - "private_key": "Keɓaɓɓen maɓalli", - "public_key": "Maɓallin jama'a", - "view_key_private": "Duba maɓallin (maɓallin kalmar sirri)", - "view_key_public": "Maɓallin Duba (maɓallin jama'a)", - "spend_key_private": "makullin biya (maɓallin kalmar sirri)", - "spend_key_public": "makullin biya (maɓallin jama'a)", - "copied_key_to_clipboard": "An kwafa ${key} a cikin kwafin", - "new_subaddress_title": "Adireshin sabuwa", - "new_subaddress_label_name": "Lakabin suna", - "new_subaddress_create": "Ƙirƙiri", - "address_label": "Labari adireshi", - "subaddress_title": "Jagorar subaddress", - "trade_details_title": "Bayanai game da kasuwancin", - "trade_details_id": "ID", - "trade_details_state": "Matsayi", - "trade_details_fetching": "Daukewa", - "trade_details_provider": "Mai bayarwa", - "trade_details_created_at": "An ƙirƙira a", - "trade_details_pair": "miji da matarsa", - "trade_details_copied": "${title} an kwafa zuwa cikin kwafin", - "trade_history_title": "Tarihin kasuwancin", - "transaction_details_title": "Bayanai game da aikace-aikacen", - "transaction_details_transaction_id": "ID na kasuwanci", - "transaction_details_date": "Kwanan wata", - "transaction_details_height": "tsawo", - "transaction_details_amount": "Adadin", - "transaction_details_fee": "Kudin", - "transaction_details_copied": "${title} an kwafa zuwa cikin kwafin", - "transaction_details_recipient_address": "Adireshin masu amfani", - "wallet_list_title": "Monero walat", - "wallet_list_create_new_wallet": "Ƙirƙiri Sabon Wallet", - "wallet_list_edit_wallet": "Gyara walat", - "wallet_list_wallet_name": "Sunan walat", - "wallet_list_restore_wallet": "Maida Wallet", - "wallet_list_load_wallet": "Ana loda wallet na Monero", - "wallet_list_loading_wallet": "Ana loda ${wallet_name} walat", - "wallet_list_failed_to_load": "An kasa loda ${wallet_name} walat. ${error}", - "wallet_list_removing_wallet": "Cirewa ${wallet_name} walat", - "wallet_list_failed_to_remove": "Ba a iya cirewa ${wallet_name} walat. ${error}", - "widgets_address": "Adireshin", - "widgets_restore_from_blockheight": "Sake dawo da daga blockheight", - "widgets_restore_from_date": "Sake dawo da daga kwanan wata", - "widgets_or": "ko", - "widgets_seed": "iri", - "router_no_route": "Babu wata hanya da aka bayyana don ${name}", - "error_text_account_name": "Sunan ajiya zai iya ɗauka ne kawai da haruffa, lambobi\nkuma ya zama tsakanin 1 zuwa 15 haruffa", - "error_text_contact_name": "Sunan kira ba zai iya ɗaukar ` , ' \" haruffa\nkuma ya zama tsakanin 1 zuwa 32 haruffa", - "error_text_address": "Adireshin hujja ya kamata ya dace da irin\nna cryptocurrency", - "error_text_node_address": "Da fatan a shigar da iPv4 adireshin", - "error_text_node_port": "Node tashar jiragen ruwa zai iya ƙunsar lambobi tsakanin 0 zuwa 65535 kawai", - "error_text_node_proxy_address": "Da fatan za a shigar da :, misali 127.0.0.1:9050", - "error_text_payment_id": "ID na biyan kudi kawai zai iya ɗaukar daga 16 zuwa 64 haruffa a cikin hex", - "error_text_xmr": "XMR adadin ba zai iya wuce available balance.\nAdadin haruffan gaba zai kamata ya zama ko ƙasa daga na 12", - "error_text_fiat": "Adadin kudin ba zai iya wuce available balance.\nAdadin haruffan gaba zai kamata ya zama ko ƙasa daga na 2", - "error_text_subaddress_name": "Sunan subaddress ba zai iya ɗaukar `, ', \" haruffa\nkuma ya zama tsakanin 1 zuwa 20 haruffa", - "error_text_amount": "Adadin biya zai iya ƙunsar lambobi kawai", - "error_text_wallet_name": "Sunan hujja kawai zai iya ɗauka ne haruffa, lambobi, _ - haruffa\nkuma ya zama tsakanin 1 zuwa 33 haruffa", - "error_text_keys": "Ƙunci na hujja kawai zai iya ɗaukar 64 haruffa a cikin hex", - "error_text_crypto_currency": "Adadin haruffan gaba\n zai kamata ya zama ko ƙasa daga na 12", - "error_text_minimal_limit": "Kasuwanci ga ${provider} ba a yi ba. Adadin shine ƙasa fiye da ƙananan: ${min} ${currency}", - "error_text_maximum_limit": "Kasuwanci ga ${provider} ba a yi ba. Adadin shine fiye da ƙimanin: ${max} ${currency}", - "error_text_limits_loading_failed": "Kasuwanci ga ${provider} ba a yi ba. An kasa saukewa masanan", - "error_text_template": "Sunan na tushe da adireshin ba zai iya ɗaukar ` , ' \" haruffa\nkuma ya zama tsakanin 1 zuwa 106 haruffa", + "all_trades": "Duk ciniki", + "all_transactions": "Dukan Ma'amaloli", + "alphabetical": "Harafi", + "already_have_account": "Kuna da asusu?", + "always": "Koyaushe", + "amount": "Adadi:", + "amount_is_estimate": "Adadin da aka karɓa shine kimantawa", + "amount_is_guaranteed": "Adadin da aka karɓa yana da garanti", + "and": "kuma", + "anonpay_description": "Ƙirƙirar ${type}. Maƙiyantun mai nasara zai iya ${method} da duk abubuwan da ke samun lambar waya, kuma zaku samu kuɗin dama a wannan kashi.", + "apk_update": "apk sabunta", + "approve": "Amincewa", + "arrive_in_this_address": "${currency} ${tag} zai je wurin wannan adireshi", + "ascending": "Hau", + "ask_each_time": "Tambaya kowane lokaci", "auth_store_ban_timeout": "ban_timeout", "auth_store_banned_for": "An haramta don", "auth_store_banned_minutes": "da minti", "auth_store_incorrect_password": "PIN na gaskiya", - "wallet_store_monero_wallet": "Monero walat", - "wallet_restoration_store_incorrect_seed_length": "kalmar sirrin iri ba daidai ba", - "full_balance": "DUKAN KUDI", - "available_balance": "KUDI", - "hidden_balance": "BOYE KUDI", - "sync_status_syncronizing": "KWAFI", - "sync_status_syncronized": "KYAU", - "sync_status_not_connected": "BABU INTERNET", - "sync_status_starting_sync": "KWAFI", - "sync_status_failed_connect": "BABU INTERNET", - "sync_status_connecting": "HADA", - "sync_status_connected": "HANNU", - "sync_status_attempting_sync": "KWAFI", - "transaction_priority_slow": "SAURI DA SAURI", - "transaction_priority_regular": "SAURI NORMAL", - "transaction_priority_medium": "SAURI DA DADI", - "transaction_priority_fast": "sauri", - "transaction_priority_fastest": "mafi sauri", - "trade_for_not_created": "Ba a ƙirƙira ciniki don ${title} ba.", - "trade_not_created": "Ba a ƙirƙira ciniki ba", - "trade_id_not_found": "Ba a samo cinikin ${tradeId} na ${title} ba.", - "trade_not_found": "Ba a sami ciniki ba.", - "trade_state_pending": "Jira", - "trade_state_confirming": "Tabbatar", - "trade_state_trading": "Ciniki", - "trade_state_traded": "Ciniki", - "trade_state_complete": "Cikakkun", - "trade_state_to_be_created": "za a halicci", - "trade_state_unpaid": "ba a biya ba", - "trade_state_underpaid": "ba a biya gaba ɗaya ba", - "trade_state_paid_unconfirmed": "an biya amma ba a tabbatar ba", - "trade_state_paid": "an biya", - "trade_state_btc_sent": "Btc an aika", - "trade_state_timeout": "lokacin da ya ƙare", - "trade_state_created": "an halicci", - "trade_state_finished": "an kammala", - "change_language": "canja harshen", - "change_language_to": "canja harshen zuwa ${language}?", - "paste": "Manna", - "restore_from_seed_placeholder": "Da fatan za a shigar da ko manna maɓallin ku a nan", - "add_new_word": "Ƙara kalma sabuwa", - "incorrect_seed": "rubutun da aka shigar ba shi da inganci.", - "biometric_auth_reason": "Duba hoton yatsa don tantancewa", - "version": "Sigar ${currentVersion}", - "openalias_alert_title": "An gano adireshin", - "openalias_alert_content": "Zaka aika kuɗi zuwa \n${recipient_name}", - "card_address": "Adireshin:", - "buy": "Sayi", - "sell": "sayar", - "placeholder_transactions": "Za a nuna ma'amalolin ku anan", - "placeholder_contacts": "Za a nuna lambobin sadarwar ku anan", - "template": "Samfura", - "confirm_delete_template": "Wannan aikin zai share wannan samfuri. Kuna so ku ci gaba?", - "confirm_delete_wallet": "Wannan aikin zai share wannan walat. Kuna so ku ci gaba?", - "change_wallet_alert_title": "Canja walat yanzu", - "change_wallet_alert_content": "Kana so ka canja walat yanzu zuwa ${wallet_name}?", - "creating_new_wallet": "Haliccin walat sabuwa", - "creating_new_wallet_error": "Kuskure: ${description}", - "seed_alert_title": "Hankali", - "seed_alert_content": "Irin ita ce kawai hanya don dawo da walat ɗin ku. Kun rubuta shi?", - "seed_alert_back": "juya baya", - "seed_alert_yes": "E, Na yi", - "exchange_sync_alert_content": "Da fatan za a jira har sai an daidaita walat ɗin ku", - "pre_seed_title": "MUHIMMANCI", - "pre_seed_description": "A kan shafin nan za ku ga wata ƙungiya na ${words} kalmomi. Wannan shine tsarin daban-daban ku kuma na sirri kuma shine hanya ɗaya kadai don mai da purse dinku a cikin yanayin rasa ko rashin aiki. Yana da damar da kuke a cikin tabbatar da kuyi rubuta shi kuma kuyi ajiye shi a wuri na aminci wanda ya wuce wurin app na Cake Wallet.", - "pre_seed_button_text": "Ina fahimta. Nuna mini seed din nawa", - "xmr_to_error": "XMR.TO kuskure", - "xmr_to_error_description": "Adadin ba shi da inganci. Maksimum ɗaura 8 digiri bayan decimal point", - "provider_error": "${provider} kuskure", - "use_ssl": "Yi amfani da SSL", - "trusted": "Amintacce", - "color_theme": "Jigon launi", - "light_theme": "Haske", - "bright_theme": "Mai haske", - "dark_theme": "Duhu", - "enter_your_note": "Shigar da bayanin kula…", - "note_optional": "Bayani (optional)", - "note_tap_to_change": "Bayani (tap don canja)", - "view_in_block_explorer": "Dubo a cikin Block Explorer", - "view_transaction_on": "Dubo aikace-aikacen akan", - "transaction_key": "Aikace-aikacen key", - "confirmations": "Tabbatar", - "recipient_address": "Adireshin mai karɓa", - "extra_id": "Karin ID:", - "destination_tag": "Tambarin makoma:", - "memo": "Memo:", - "backup": "Ajiyayyen", - "change_password": "Canza kalmar shiga", - "backup_password": "Ajiyayyen kalmar sirri", - "write_down_backup_password": "Da fatan za a rubuta kalmar sirrin ajiyar ku, wacce ake amfani da ita don shigo da fayilolin ajiyar ku.", - "export_backup": "Ajiyayyen fitarwa", - "save_backup_password": "Da fatan za a tabbatar cewa kun adana kalmar sirrin ajiyar ku. Ba za ku iya shigo da fayilolin ajiyar ku ba tare da shi ba.", - "backup_file": "Ajiyayyen fayil", - "edit_backup_password": "Shirya Kalmar wucewa ta Ajiyayyen", - "save_backup_password_alert": "Ajiye kalmar sirri ta ajiya", - "change_backup_password_alert": "Fayilolin madadin ku na baya ba za su kasance don shigo da sabon kalmar sirri ta madadin ba. Sabuwar kalmar sirri ta ajiya za a yi amfani da ita kawai don sabbin fayilolin madadin. Shin kun tabbata cewa kuna son canza kalmar wucewa?", - "enter_backup_password": "Shigar da kalmar wucewa ta madadin nan", - "select_backup_file": "Zaɓi fayil ɗin madadin", - "import": "Shigo da", - "please_select_backup_file": "Da fatan za a zaɓi fayil ɗin madadin kuma shigar da kalmar wucewa ta madadin.", - "fixed_rate": "Kafaffen ƙima", - "fixed_rate_alert": "Za ku iya shigar da adadin karɓa lokacin da aka duba ƙayyadadden zaɓin ƙimar kuɗi. Kuna so ku canza zuwa ƙayyadadden yanayin ƙimar kuɗi?", - "xlm_extra_info": "Don Allah kar a manta da saka Memo ID yayin aika ma'amalar XLM don musayar", - "xrp_extra_info": "Don Allah kar a manta da saka alamar Ƙaddamarwa yayin aika ma'amalar XRP don musayar", - "exchange_incorrect_current_wallet_for_xmr": "Idan kana son musanya XMR daga ma'aunin Cake Wallet Monero, da fatan za a fara canza wallet ɗin Monero ɗin ku.", - "confirmed": "An tabbatar", - "unconfirmed": "Ba a tabbatar ba", - "displayable": "Ana iya nunawa", - "submit_request": "gabatar da bukata", - "buy_alert_content": "A halin yanzu muna tallafawa kawai siyan Bitcoin, Ethereum, Litecoin, da Monero. Da fatan za a ƙirƙiri ko canza zuwa Bitcoin, Ethereum, Litecoin, ko Monero walat.", - "sell_alert_content": "A halin yanzu muna tallafawa kawai siyar da Bitcoin, Ethereum da Litecoin. Da fatan za a ƙirƙiri ko canza zuwa walat ɗin ku na Bitcoin, Ethereum ko Litecoin.", - "outdated_electrum_wallet_description": "Sabbin walat ɗin Bitcoin da aka kirkira a cikin Cake yanzu suna da nau'in kalma 24. Ya zama dole ka ƙirƙiri sabon walat ɗin Bitcoin kuma canza duk kuɗin ku zuwa sabon walat ɗin kalmomi 24, kuma ku daina amfani da walat tare da iri mai kalma 12. Da fatan za a yi haka nan take don samun kuɗin ku.", - "understand": "na gane", - "apk_update": "apk sabunta", - "buy_bitcoin": "Sayi Bitcoin", - "buy_with": "Saya da", - "moonpay_alert_text": "Darajar adadin dole ne ya zama fiye ko daidai da ${minAmount} ${fiatCurrency}", - "outdated_electrum_wallet_receive_warning": "Idan wannan walat ɗin yana da nau'in kalma 12 kuma an ƙirƙira shi a cikin Cake, KAR KA saka Bitcoin cikin wannan jakar. Duk wani BTC da aka canjawa wuri zuwa wannan walat na iya ɓacewa. Ƙirƙiri sabon walat mai kalmomi 24 (matsa menu a saman dama, zaɓi Wallets, zaɓi Ƙirƙiri Sabon Wallet, sannan zaɓi Bitcoin) kuma NAN nan take matsar da BTC ɗin ku a can. Sabbin (kalmomi 24) BTC wallets daga Cake suna da tsaro", - "do_not_show_me": "Kar ka sake nuna min wannan", - "unspent_coins_title": "Tsabar da ba a kashe ba", - "unspent_coins_details_title": "Bayanan tsabar kudi da ba a kashe ba", - "freeze": "Daskare", - "frozen": "Daskararre", - "coin_control": "Sarrafa tsabar kuɗi (na zaɓi)", - "address_detected": "An gano adireshin", - "address_from_domain": "Wannan adireshin ya fito daga ${domain} akan Unstoppable Domain", - "add_receiver": "Ƙara wani mai karɓa (na zaɓi)", - "manage_yats": "Sarrafa Yats", - "yat_alert_title": "Aika da karɓar crypto cikin sauƙi tare da Yat", - "yat_alert_content": "Masu amfani da Wallet ɗin Cake yanzu za su iya aikawa da karɓar duk kuɗin da suka fi so tare da sunan mai amfani na tushen emoji iri ɗaya.", - "get_your_yat": "Samun Yat ka", - "connect_an_existing_yat": "Haɗa Yat da ke akwai", - "connect_yats": "Haɗa Yats", - "yat_address": "Yat Address", - "yat": "Yat", - "address_from_yat": "Wannan adireshin daga ${emoji} ne akan Yat", - "yat_error": "Kuskure", - "yat_error_content": "Babu adireshi da ke da alaƙa da wannan Yat. Gwada wani Yat", - "choose_address": "\n\n Da fatan za a zaɓi adireshin:", - "yat_popup_title": "Adireshin jakar ku na iya zama emojifid.", - "yat_popup_content": "Yanzu zaku iya aikawa da karɓar crypto a cikin Cake Wallet tare da Yat - gajere, sunan mai amfani na tushen emoji. Sarrafa Yats a kowane lokaci akan allon saiti", - "second_intro_title": "Adireshin emoji ɗaya don sarrafa su duka", - "second_intro_content": "Your Yat adireshi ne na musamman na Emoji guda ɗaya wanda ke maye gurbin duk dogayen adiresoshin ku na hexadecimal na duk kudaden ku.", - "third_intro_title": "Yat yana wasa da kyau tare da wasu", - "third_intro_content": "Yats suna zaune a wajen Kek Wallet, kuma. Ana iya maye gurbin kowane adireshin walat a duniya da Yat!", - "learn_more": "Ƙara Koyi", - "search": "Bincika", - "search_language": "Bincika harshe", - "search_currency": "Neman kudin waje", - "new_template": "Sabon Samfura", - "electrum_address_disclaimer": "Muna samar da sababbin adireshi duk lokacin da kuka yi amfani da ɗaya, amma adiresoshin da suka gabata suna ci gaba da aiki", - "wallet_name_exists": "Wallet mai wannan sunan ya riga ya wanzu. Da fatan za a zaɓi wani suna daban ko sake suna ɗayan walat tukuna.", - "market_place": "Kasuwa", - "cake_pay_title": "Cake Pay Gift Cards", - "cake_pay_subtitle": "Sayi katunan kyauta masu rahusa (Amurka kawai)", - "cake_pay_web_cards_title": "Cake Pay Web Cards", - "cake_pay_web_cards_subtitle": "Sayi katunan da aka riga aka biya na duniya da katunan kyauta", - "about_cake_pay": "Biyan Cake yana ba ku damar sauƙin siyan katunan kyauta tare da kadarorin kama-da-wane, wanda za'a iya kashewa nan take a sama da yan kasuwa 150,000 a Amurka.", - "cake_pay_account_note": "Yi rajista tare da adireshin imel kawai don gani da siyan katunan. Wasu ma suna samuwa a rangwame!", - "already_have_account": "Kuna da asusu?", - "create_account": "Kirkira ajiya", - "privacy_policy": "takardar kebantawa", - "welcome_to_cakepay": "Barka da zuwa Cake Pay!", - "sign_up": "Shiga", - "forgot_password": "Manta Kalmar wucewa", - "reset_password": "Sake saita kalmar wucewa", - "gift_cards": "Katunan Kyauta", - "setup_your_debit_card": "Saita katin zare kudi", - "no_id_required": "Babu ID da ake buƙata. Yi da kuma ciyar a ko'ina", - "how_to_use_card": "Yadda ake amfani da wannan kati", - "purchase_gift_card": "Katin Kyautar Sayi", - "verification": "tabbatar", - "fill_code": "Da fatan za a cika lambar tabbatarwa da aka bayar zuwa imel ɗin ku", - "didnt_get_code": "Ba a samun code?", - "resend_code": "Da fatan za a sake aika shi", - "debit_card": "Katin Zare kudi", - "cakepay_prepaid_card": "Katin zare kudi na CakePay", - "no_id_needed": "Babu ID da ake buƙata!", - "frequently_asked_questions": "Tambayoyin da ake yawan yi", - "debit_card_terms": "Adana da amfani da lambar katin kuɗin ku (da takaddun shaida masu dacewa da lambar katin kuɗin ku) a cikin wannan walat ɗin dijital suna ƙarƙashin Sharuɗɗa da Sharuɗɗa na yarjejeniya mai amfani da katin tare da mai fitar da katin biyan kuɗi, kamar yadda yake aiki daga lokaci zuwa lokaci.", - "please_reference_document": "Da fatan za a nemi takaddun da ke ƙasa don ƙarin bayani.", - "cardholder_agreement": "Yarjejeniyar mai katin", - "e_sign_consent": "Izinin Alamar E-Sign", - "agree_and_continue": "Amincewa & Ci gaba", - "email_address": "Adireshin i-mel", - "agree_to": "Ta hanyar ƙirƙirar asusu kun yarda da", - "and": "kuma", - "enter_code": "Shigar da lamba", - "congratulations": "Taya murna!", - "you_now_have_debit_card": "Yanzu kana da katin zare kudi", - "min_amount": "Min: ${value}", - "max_amount": "Max: ${value}", - "enter_amount": "Shigar da Adadi", - "billing_address_info": "Idan an nemi adireshin biyan kuɗi, samar da adireshin jigilar kaya", - "order_physical_card": "Yi Oda Katin Jiki", - "add_value": "Ƙara ƙima", - "activate": "Kunna", - "get_a": "Samu a", - "digital_and_physical_card": "katin zare kudi na dijital da na zahiri", - "get_card_note": "cewa zaku iya sake lodawa tare da kudaden dijital. Babu ƙarin bayani da ake buƙata!", - "signup_for_card_accept_terms": "Yi rajista don katin kuma karɓi sharuɗɗan.", - "add_fund_to_card": "Ƙara kuɗin da aka riga aka biya a katunan (har zuwa ${value})", - "use_card_info_two": "Ana canza kuɗi zuwa dalar Amurka lokacin da ake riƙe su a cikin asusun da aka riga aka biya, ba cikin agogon dijital ba.", - "use_card_info_three": "Yi amfani da katin dijital akan layi ko tare da hanyoyin biyan kuɗi mara lamba.", - "optionally_order_card": "Zaɓin yin odar katin zahiri.", - "hide_details": "Ɓoye cikakkun bayanai", - "show_details": "Nuna Cikakkun bayanai", - "upto": "har zuwa ${value}", - "discount": "Ajiye ${value}%", - "gift_card_amount": "Adadin Katin Kyauta", - "bill_amount": "Adadin Bill", - "you_pay": "Ka Bayar", - "tip": "Tukwici:", - "custom": "al'ada", - "by_cake_pay": "da Cake Pay", - "expires": "Ya ƙare", - "mm": "MM", - "yy": "YY", - "online": "Kan layi", - "offline": "Offline", - "gift_card_number": "Lambar katin kyauta", - "pin_number": "Lambar PIN", - "total_saving": "Jimlar Adana", - "last_30_days": "Kwanaki 30 na ƙarshe", - "avg_savings": "Matsakaici Adana", - "view_all": "Duba duka", - "active_cards": "Katunan aiki", - "delete_account": "Share Account", - "cards": "Katuna", - "active": "Mai aiki", - "redeemed": "An fanshi", - "gift_card_balance_note": "Katunan kyauta tare da ragowar ma'auni zasu bayyana anan", - "gift_card_redeemed_note": "Katunan kyauta da kuka fanshi zasu bayyana anan", - "logout": "Fita", - "add_tip": "Ƙara Tukwici", - "percentageOf": "na ${amount}", - "is_percentage": "shine", - "search_category": "Nemo nau'in", - "mark_as_redeemed": "Yi Alama Kamar An Fansa", - "more_options": "Ƙarin Zaɓuɓɓuka", - "awaiting_payment_confirmation": "Ana jiran Tabbacin Biyan Kuɗi", - "transaction_sent_notice": "Idan allon bai ci gaba ba bayan minti 1, duba mai binciken toshewa da imel ɗin ku.", - "agree": "Yarda", - "in_store": "A cikin Store", - "generating_gift_card": "Samar da Katin Kyauta", - "payment_was_received": "An karɓi kuɗin ku.", - "proceed_after_one_minute": "Idan allon bai ci gaba ba bayan minti 1, duba imel ɗin ku.", - "order_id": "Oda ID", - "gift_card_is_generated": "An samar da Katin Kyauta", - "open_gift_card": "Bude Katin Kyauta", - "contact_support": "Tuntuɓi Support", - "gift_cards_unavailable": "Ana samun katunan kyauta don siye kawai tare da Monero, Bitcoin, da Litecoin a wannan lokacin", - "introducing_cake_pay": "Gabatar da Cake Pay!", - "cake_pay_learn_more": "Nan take siya ku kwaso katunan kyaututtuka a cikin app!\nTake hagu zuwa dama don ƙarin koyo.", + "authenticated": "Ingantacce", + "authentication": "Tabbatarwa", + "auto_generate_subaddresses": "Saɓaƙa subaddresses ta kai tsaye", "automatic": "Na atomatik", - "fixed_pair_not_supported": "Wannan kafaffen guda biyu ba shi da tallafi tare da zaɓaɓɓun musayar", - "variable_pair_not_supported": "Ba a samun goyan bayan wannan m biyu tare da zaɓaɓɓun musayar", - "none_of_selected_providers_can_exchange": "Babu ɗaya daga cikin zaɓaɓɓun masu samarwa da zai iya yin wannan musayar", - "choose_one": "Zaɓi ɗaya", - "choose_from_available_options": "Zaɓi daga zaɓuɓɓukan da ake da su:", - "custom_redeem_amount": "Adadin Fansa na Musamman", - "add_custom_redemption": "Ƙara Ceto na Musamman", - "remaining": "saura", - "delete_wallet": "Share walat", - "delete_wallet_confirm_message": "Shin kun tabbata cewa kuna son share jakar ${wallet_name}?", - "low_fee": "maras tsada", - "low_fee_alert": "A halin yanzu kuna amfani da ƙarancin fifikon kuɗin hanyar sadarwa. Wannan na iya haifar da dogon jira, farashi daban-daban, ko soke kasuwancin. Muna ba da shawarar saita farashi mafi girma don ƙwarewa mafi kyau.", - "ignor": "Yi watsi da shi", - "use_suggested": "Amfani da Shawarwari", - "do_not_share_warning_text": "Kada ku raba waɗannan ga kowa, gami da tallafi.\n\nZa a iya sace kuɗin ku kuma za a sace!", - "help": "taimako", - "all_transactions": "Dukan Ma'amaloli", - "all_trades": "Duk ciniki", - "connection_sync": "Haɗi da daidaitawa", - "security_and_backup": "Tsaro da madadin", - "create_backup": "Ƙirƙiri madadin", - "privacy_settings": "Saitunan sirri", - "privacy": "Keɓantawa", - "display_settings": "Nuni saituna", - "other_settings": "Sauran saituna", - "require_pin_after": "Bukatar PIN bayan", - "always": "Koyaushe", - "minutes_to_pin_code": "${minute} minti", - "disable_exchange": "Kashe musanya", - "advanced_settings": "Saitunan ci gaba", - "settings_can_be_changed_later": "Ana iya canza waɗannan saitunan daga baya a cikin saitunan app", - "add_custom_node": "Ƙara Sabon Kulli na Custom", - "disable_fiat": "Dakatar da fiat", - "fiat_api": "API ɗin Fiat", - "disabled": "tsaya", - "enabled": "An kunna", - "tor_only": "Tor kawai", - "unmatched_currencies": "Nau'in walat ɗin ku na yanzu bai dace da na lambar QR da aka bincika ba", - "contact_list_contacts": "Lambobin sadarwa", - "contact_list_wallets": "Wallets dina", - "bitcoin_payments_require_1_confirmation": "Akwatin Bitcoin na buɗe 1 sambumbu, da yake za ta samu mintuna 20 ko yawa. Ina kira ga sabuwar lafiya! Zaka sanarwa ta email lokacin da aka samu akwatin samun lambar waya.", - "send_to_this_address": "Aiko ${currency} ${tag} zuwa adireshin wannan", - "arrive_in_this_address": "${currency} ${tag} zai je wurin wannan adireshi", - "do_not_send": "Kada ka aika", - "error_dialog_content": "Ai, yanzu muka ga alamar kuskure. \n\nDa fatan, aika rahoton kuskuren da muka kira zuwa gasar tsarinmu don gaskiyar shirya.", - "cold_or_recover_wallet": "Samun kashi na baya ko samun kashi na kasa", - "please_wait": "Don Allah a rufe", - "sweeping_wallet": "Kashi na kasa", - "sweeping_wallet_alert": "Wannan ba zai samu lokacin mai tsaski. KADA KA SAMU KUNGIYARAN KUHON, ZAMAN DADIN BANKUNCI ZAI HAŘA", - "invoice_details": "Bayanin wadannan", - "donation_link_details": "Bayanin hanyar sadaka", - "anonpay_description": "Ƙirƙirar ${type}. Maƙiyantun mai nasara zai iya ${method} da duk abubuwan da ke samun lambar waya, kuma zaku samu kuɗin dama a wannan kashi.", - "create_invoice": "Sanya bayanin wadannan", - "create_donation_link": "Sanya hanyar sadaka", - "optional_email_hint": "Email na kayan taimako ga wadanda basu ba da maki", - "optional_description": "Bayanin zai iya ba da maki", - "optional_name": "Sunan mawallin zai iya ba da maki", - "clearnet_link": "Lambar makomar kwayoyi", - "onion_link": "Lambar onion", - "decimal_places_error": "Wadannan suna da tsawon harsuna", - "edit_node": "Shirya Node", - "settings": "Saiti", - "sell_monero_com_alert_content": "Selling Monero bai sami ƙarshen mai bukatar samun ba", - "error_text_input_below_minimum_limit": "Kudin ba a kamai", - "error_text_input_above_maximum_limit": "Kudin da ya kamata", - "show_market_place": "Nuna dan kasuwa", - "prevent_screenshots": "Fada lambobi da jarrabobi na kayan lambobi", - "disable_buy": "Kashe alama", - "disable_sell": "Kashe karbuwa", - "cake_2fa_preset": "Cake 2FA saiti", - "monero_dark_theme": "Monero Dark Jigo", + "available_balance": "KUDI", + "available_balance_description": "Ma'auni mai samuwa” ko ”,Tabbataccen Ma'auni”, kudade ne da za a iya kashewa nan da nan. Idan kudade sun bayyana a cikin ƙananan ma'auni amma ba babban ma'auni ba, to dole ne ku jira 'yan mintoci kaɗan don kudaden shiga don samun ƙarin tabbaci na hanyar sadarwa. Bayan sun sami ƙarin tabbaci, za a kashe su.", + "avg_savings": "Matsakaici Adana", + "awaitDAppProcessing": "Da fatan za a jira dApp ya gama aiki.", + "awaiting_payment_confirmation": "Ana jiran Tabbacin Biyan Kuɗi", + "backup": "Ajiyayyen", + "backup_file": "Ajiyayyen fayil", + "backup_password": "Ajiyayyen kalmar sirri", + "balance_page": "Ma'auni Page", + "bill_amount": "Adadin Bill", + "billing_address_info": "Idan an nemi adireshin biyan kuɗi, samar da adireshin jigilar kaya", + "biometric_auth_reason": "Duba hoton yatsa don tantancewa", "bitcoin_dark_theme": "Bitcoin Dark Jigo", "bitcoin_light_theme": "Jigon Hasken Bitcoin", - "high_contrast_theme": "Babban Jigon Kwatance", - "matrix_green_dark_theme": "Matrix Green Dark Jigo", - "monero_light_theme": "Jigon Hasken Monero", - "auto_generate_subaddresses": "Saɓaƙa subaddresses ta kai tsaye", - "narrow": "kunkuntar", - "normal": "Na al'ada", - "aggressive": "Mai tsananin kishi", - "require_for_assessing_wallet": "Bukatar samun damar walat", - "require_for_sends_to_non_contacts": "Bukatar aika zuwa waɗanda ba lambobin sadarwa ba", - "require_for_sends_to_contacts": "Bukatar aika zuwa lambobin sadarwa", - "require_for_sends_to_internal_wallets": "Bukatar aika zuwa wallet na ciki", - "require_for_exchanges_to_internal_wallets": "Bukatar musanya zuwa wallet na ciki", - "require_for_adding_contacts": "Bukatar ƙara lambobin sadarwa", - "require_for_creating_new_wallets": "Bukatar ƙirƙirar sabbin wallet", - "require_for_all_security_and_backup_settings": "Bukatar duk tsaro da saitunan wariyar ajiya", - "available_balance_description": "Ma'auni mai samuwa” ko ”,Tabbataccen Ma'auni”, kudade ne da za a iya kashewa nan da nan. Idan kudade sun bayyana a cikin ƙananan ma'auni amma ba babban ma'auni ba, to dole ne ku jira 'yan mintoci kaɗan don kudaden shiga don samun ƙarin tabbaci na hanyar sadarwa. Bayan sun sami ƙarin tabbaci, za a kashe su.", - "syncing_wallet_alert_title": "Walat ɗin ku yana aiki tare", - "syncing_wallet_alert_content": "Ma'aunin ku da lissafin ma'amala bazai cika ba har sai an ce \"SYNCHRONIZED\" a saman. Danna/matsa don ƙarin koyo.", - "home_screen_settings": "Saitunan allo na gida", - "sort_by": "Kasa", - "search_add_token": "Bincika / Ƙara alama", - "edit_token": "Gyara alamar", - "warning": "Gargadi", - "add_token_warning": "Kar a gyara ko ƙara alamu kamar yadda masu zamba suka umarta.\nKoyaushe tabbatar da adiresoshin alamar tare da sanannun tushe!", - "add_token_disclaimer_check": "Na tabbatar da adireshin kwangilar alamar da bayanin ta amfani da ingantaccen tushe. Ƙara bayanan ƙeta ko kuskure na iya haifar da asarar kuɗi.", - "token_contract_address": "Adireshin kwangilar Token", - "token_name": "Alamar sunan misali: Tether", - "token_symbol": "Alamar alama misali: USDT", - "token_decimal": "Alamar ƙima", - "field_required": "wannan fillin ana bukatansa", - "pin_at_top": "pin ${token} a sama", - "invalid_input": "Shigar da ba daidai ba", - "fiat_balance": "Fiat Balance", - "gross_balance": "Babban Ma'auni", - "alphabetical": "Harafi", - "generate_name": "Ƙirƙirar Suna", - "balance_page": "Ma'auni Page", - "share": "Raba", - "slidable": "Mai iya zamewa", - "etherscan_history": "Etherscan tarihin kowane zamani", - "template_name": "Sunan Samfura", + "bitcoin_payments_require_1_confirmation": "Akwatin Bitcoin na buɗe 1 sambumbu, da yake za ta samu mintuna 20 ko yawa. Ina kira ga sabuwar lafiya! Zaka sanarwa ta email lokacin da aka samu akwatin samun lambar waya.", + "Blocks_remaining": "${status} Katanga ya rage", + "bright_theme": "Mai haske", + "buy": "Sayi", + "buy_alert_content": "A halin yanzu muna tallafawa kawai siyan Bitcoin, Ethereum, Litecoin, da Monero. Da fatan za a ƙirƙiri ko canza zuwa Bitcoin, Ethereum, Litecoin, ko Monero walat.", + "buy_bitcoin": "Sayi Bitcoin", + "buy_provider_unavailable": "Mai ba da kyauta a halin yanzu babu.", + "buy_with": "Saya da", + "by_cake_pay": "da Cake Pay", + "cake_2fa_preset": "Cake 2FA saiti", + "cake_pay_account_note": "Yi rajista tare da adireshin imel kawai don gani da siyan katunan. Wasu ma suna samuwa a rangwame!", + "cake_pay_learn_more": "Nan take siya ku kwaso katunan kyaututtuka a cikin app!\nTake hagu zuwa dama don ƙarin koyo.", + "cake_pay_subtitle": "Sayi katunan kyauta masu rahusa (Amurka kawai)", + "cake_pay_title": "Cake Pay Gift Cards", + "cake_pay_web_cards_subtitle": "Sayi katunan da aka riga aka biya na duniya da katunan kyauta", + "cake_pay_web_cards_title": "Cake Pay Web Cards", + "cake_wallet": "Cake Wallet", + "cakepay_prepaid_card": "Katin zare kudi na CakePay", + "camera_consent": "Za a yi amfani da kyamarar ku don ɗaukar hoto don dalilai na tantancewa ta ${provider}. Da fatan za a duba Manufar Sirri don cikakkun bayanai.", + "camera_permission_is_required": "Ana buƙatar izinin kyamara.\nDa fatan za a kunna shi daga saitunan app.", + "cancel": "Soke", + "card_address": "Adireshin:", + "cardholder_agreement": "Yarjejeniyar mai katin", + "cards": "Katuna", + "chains": "Sarkoki", + "change": "Canja", + "change_backup_password_alert": "Fayilolin madadin ku na baya ba za su kasance don shigo da sabon kalmar sirri ta madadin ba. Sabuwar kalmar sirri ta ajiya za a yi amfani da ita kawai don sabbin fayilolin madadin. Shin kun tabbata cewa kuna son canza kalmar wucewa?", + "change_currency": "Canja Kuɗi", + "change_current_node": "Kuna tabbatar kuna so ku canja node yanzu zuwa ${node}?", + "change_current_node_title": "Canja node yanzu", + "change_exchange_provider": "Canza Mai Bayar da Musanya", + "change_language": "canja harshen", + "change_language_to": "canja harshen zuwa ${language}?", + "change_password": "Canza kalmar shiga", "change_rep": "Canza Wakili", "change_rep_message": "Shin kun tabbata kuna son canza wakilai?", - "manage_nodes": "Sarrafa nodes", - "unsupported_asset": "Ba mu goyi bayan wannan aikin don wannan kadara. Da fatan za a ƙirƙira ko canza zuwa walat na nau'in kadara mai tallafi.", - "manage_pow_nodes": "Sarrafa PoW Nodes", - "support_title_live_chat": "Tallafi na Live", - "support_description_live_chat": "Kyauta da sauri! An horar da wakilan tallafi na tallafi don taimakawa", - "support_title_guides": "Jagorar Cake", - "support_description_guides": "Tallafi da tallafi don batutuwa na yau da kullun", - "support_title_other_links": "Sauran hanyoyin tallafi", - "support_description_other_links": "Kasance tare da al'ummominmu ko kuma ka kai mu abokanmu ta hanyar wasu hanyoyi", + "change_rep_successful": "An samu nasarar canzawa wakilin", + "change_wallet_alert_content": "Kana so ka canja walat yanzu zuwa ${wallet_name}?", + "change_wallet_alert_title": "Canja walat yanzu", + "choose_account": "Zaɓi asusu", + "choose_address": "\n\n Da fatan za a zaɓi adireshin:", "choose_derivation": "Zaɓi walatawa", - "new_first_wallet_text": "A sauƙaƙe kiyaye kuzarin ku", - "select_destination": "Da fatan za a zaɓi wurin da za a yi wa madadin fayil ɗin.", - "save_to_downloads": "Ajiye zuwa Zazzagewa", - "select_buy_provider_notice": "Zaɓi mai ba da kyauta a sama. Zaka iya tsallake wannan allon ta hanyar saita mai ba da isasshen busasshen mai ba da isasshen busasshiyar saiti.", - "onramper_option_description": "Da sauri sayi Crypto tare da hanyoyin biyan kuɗi da yawa. Akwai a yawancin ƙasashe. Yaduwa da kudade sun bambanta.", + "choose_from_available_options": "Zaɓi daga zaɓuɓɓukan da ake da su:", + "choose_one": "Zaɓi ɗaya", + "choose_relay": "Da fatan za a zaɓi gudun ba da sanda don amfani", + "choose_wallet_currency": "Da fatan za a zaɓi kuɗin walat:", + "clear": "Share", + "clearnet_link": "Lambar makomar kwayoyi", + "coin_control": "Sarrafa tsabar kuɗi (na zaɓi)", + "cold_or_recover_wallet": "Samun kashi na baya ko samun kashi na kasa", + "color_theme": "Jigon launi", + "commit_transaction_amount_fee": "Aikata ciniki\nAdadi: ${amount}\nKuda: ${fee}", + "confirm": "Tabbatar", + "confirm_delete_template": "Wannan aikin zai share wannan samfuri. Kuna so ku ci gaba?", + "confirm_delete_wallet": "Wannan aikin zai share wannan walat. Kuna so ku ci gaba?", + "confirm_sending": "Tabbatar da aikawa", + "confirmations": "Tabbatar", + "confirmed": "An tabbatar", + "confirmed_tx": "Tabbatar", + "congratulations": "Taya murna!", + "connect_an_existing_yat": "Haɗa Yat da ke akwai", + "connect_yats": "Haɗa Yats", + "connection_sync": "Haɗi da daidaitawa", + "connectWalletPrompt": "Haɗa walat ɗin ku tare da WalletConnect don yin ma'amala", + "contact": "Tuntuɓar", + "contact_list_contacts": "Lambobin sadarwa", + "contact_list_wallets": "Wallets dina", + "contact_name": "Sunan Tuntuɓi", + "contact_support": "Tuntuɓi Support", + "continue_text": "Ci gaba", + "contractName": "Sunan Kwangila", + "contractSymbol": "Alamar Kwangila", + "copied_key_to_clipboard": "An kwafa ${key} a cikin kwafin", + "copied_to_clipboard": "An kwafi zuwa Clipboard", + "copy": "Kwafi", + "copy_address": "Kwafi Adireshin", + "copy_id": "Kwafi ID", + "copyWalletConnectLink": "Kwafi hanyar haɗin WalletConnect daga dApp kuma liƙa a nan", + "create_account": "Kirkira ajiya", + "create_backup": "Ƙirƙiri madadin", + "create_donation_link": "Sanya hanyar sadaka", + "create_invoice": "Sanya bayanin wadannan", + "create_new": "Ƙirƙira Sabon Kwalinku", + "create_new_account": "Ƙirƙiri sabon asusu", + "creating_new_wallet": "Haliccin walat sabuwa", + "creating_new_wallet_error": "Kuskure: ${description}", + "creation_date": "Ranar halitta", + "custom": "al'ada", + "custom_drag": "Al'ada (riƙe da ja)", + "custom_redeem_amount": "Adadin Fansa na Musamman", + "dark_theme": "Duhu", + "debit_card": "Katin Zare kudi", + "debit_card_terms": "Adana da amfani da lambar katin kuɗin ku (da takaddun shaida masu dacewa da lambar katin kuɗin ku) a cikin wannan walat ɗin dijital suna ƙarƙashin Sharuɗɗa da Sharuɗɗa na yarjejeniya mai amfani da katin tare da mai fitar da katin biyan kuɗi, kamar yadda yake aiki daga lokaci zuwa lokaci.", + "decimal_places_error": "Wadannan suna da tsawon harsuna", "default_buy_provider": "Tsohuwar Siyarwa", - "ask_each_time": "Tambaya kowane lokaci", - "buy_provider_unavailable": "Mai ba da kyauta a halin yanzu babu.", - "signTransaction": "Sa hannu Ma'amala", + "default_sell_provider": "Tsohuwar Mai Bayar Siyarwa", + "delete": "Share", + "delete_account": "Share Account", + "delete_wallet": "Share walat", + "delete_wallet_confirm_message": "Shin kun tabbata cewa kuna son share jakar ${wallet_name}?", + "deleteConnectionConfirmationPrompt": "Shin kun tabbata cewa kuna son share haɗin zuwa", + "descending": "Saukowa", + "description": "Bayani", + "destination_tag": "Tambarin makoma:", + "dfx_option_description": "Sayi crypto tare da EUR & CHF. Har zuwa € 990 ba tare da ƙarin KYC ba. Don 'yan kasuwa da abokan ciniki na kamfanoni a Turai", + "didnt_get_code": "Ba a samun code?", + "digit_pin": "-lambar PIN", + "digital_and_physical_card": "katin zare kudi na dijital da na zahiri", + "disable_buy": "Kashe alama", + "disable_exchange": "Kashe musanya", + "disable_fiat": "Dakatar da fiat", + "disable_sell": "Kashe karbuwa", + "disabled": "tsaya", + "discount": "Ajiye ${value}%", + "display_settings": "Nuni saituna", + "displayable": "Ana iya nunawa", + "do_not_have_enough_gas_asset": "Ba ku da isassun ${currency} don yin ma'amala tare da yanayin cibiyar sadarwar blockchain na yanzu. Kuna buƙatar ƙarin ${currency} don biyan kuɗaɗen cibiyar sadarwar blockchain, koda kuwa kuna aika wata kadara daban.", + "do_not_send": "Kada ka aika", + "do_not_share_warning_text": "Kada ku raba waɗannan ga kowa, gami da tallafi.\n\nZa a iya sace kuɗin ku kuma za a sace!", + "do_not_show_me": "Kar ka sake nuna min wannan", + "domain_looks_up": "Binciken yanki", + "donation_link_details": "Bayanin hanyar sadaka", + "e_sign_consent": "Izinin Alamar E-Sign", + "edit": "Gyara", + "edit_backup_password": "Shirya Kalmar wucewa ta Ajiyayyen", + "edit_node": "Shirya Node", + "edit_token": "Gyara alamar", + "electrum_address_disclaimer": "Muna samar da sababbin adireshi duk lokacin da kuka yi amfani da ɗaya, amma adiresoshin da suka gabata suna ci gaba da aiki", + "email_address": "Adireshin i-mel", + "enabled": "An kunna", + "enter_amount": "Shigar da Adadi", + "enter_backup_password": "Shigar da kalmar wucewa ta madadin nan", + "enter_code": "Shigar da lamba", + "enter_seed_phrase": "Shigar da Sert Sentarku", + "enter_your_note": "Shigar da bayanin kula…", + "enter_your_pin": "Shigar da PIN", + "enter_your_pin_again": "Shigar da PIN ɗinku na sake", + "enterTokenID": "Shigar da alamar alama", + "enterWalletConnectURI": "Shigar da WalletConnect URI", + "error": "Kuskure", + "error_dialog_content": "Ai, yanzu muka ga alamar kuskure. \n\nDa fatan, aika rahoton kuskuren da muka kira zuwa gasar tsarinmu don gaskiyar shirya.", + "error_text_account_name": "Sunan ajiya zai iya ɗauka ne kawai da haruffa, lambobi\nkuma ya zama tsakanin 1 zuwa 15 haruffa", + "error_text_address": "Adireshin hujja ya kamata ya dace da irin\nna cryptocurrency", + "error_text_amount": "Adadin biya zai iya ƙunsar lambobi kawai", + "error_text_contact_name": "Sunan kira ba zai iya ɗaukar ` , ' \" haruffa\nkuma ya zama tsakanin 1 zuwa 32 haruffa", + "error_text_crypto_currency": "Adadin haruffan gaba\n zai kamata ya zama ko ƙasa daga na 12", + "error_text_fiat": "Adadin kudin ba zai iya wuce available balance.\nAdadin haruffan gaba zai kamata ya zama ko ƙasa daga na 2", + "error_text_input_above_maximum_limit": "Kudin da ya kamata", + "error_text_input_below_minimum_limit": "Kudin ba a kamai", + "error_text_keys": "Ƙunci na hujja kawai zai iya ɗaukar 64 haruffa a cikin hex", + "error_text_limits_loading_failed": "Kasuwanci ga ${provider} ba a yi ba. An kasa saukewa masanan", + "error_text_maximum_limit": "Kasuwanci ga ${provider} ba a yi ba. Adadin shine fiye da ƙimanin: ${max} ${currency}", + "error_text_minimal_limit": "Kasuwanci ga ${provider} ba a yi ba. Adadin shine ƙasa fiye da ƙananan: ${min} ${currency}", + "error_text_node_address": "Da fatan a shigar da iPv4 adireshin", + "error_text_node_port": "Node tashar jiragen ruwa zai iya ƙunsar lambobi tsakanin 0 zuwa 65535 kawai", + "error_text_node_proxy_address": "Da fatan za a shigar da :, misali 127.0.0.1:9050", + "error_text_payment_id": "ID na biyan kudi kawai zai iya ɗaukar daga 16 zuwa 64 haruffa a cikin hex", + "error_text_subaddress_name": "Sunan subaddress ba zai iya ɗaukar `, ', \" haruffa\nkuma ya zama tsakanin 1 zuwa 20 haruffa", + "error_text_template": "Sunan na tushe da adireshin ba zai iya ɗaukar ` , ' \" haruffa\nkuma ya zama tsakanin 1 zuwa 106 haruffa", + "error_text_wallet_name": "Sunan hujja kawai zai iya ɗauka ne haruffa, lambobi, _ - haruffa\nkuma ya zama tsakanin 1 zuwa 33 haruffa", + "error_text_xmr": "XMR adadin ba zai iya wuce available balance.\nAdadin haruffan gaba zai kamata ya zama ko ƙasa daga na 12", "errorGettingCredentials": "Ba a yi nasara ba: Kuskure yayin samun takaddun shaida", "errorSigningTransaction": "An sami kuskure yayin sanya hannu kan ciniki", - "pairingInvalidEvent": "Haɗa Lamarin mara inganci", - "chains": "Sarkoki", - "methods": "Hanyoyin", - "events": "Abubuwan da suka faru", - "reject": "Ƙi", - "approve": "Amincewa", - "expiresOn": "Yana ƙarewa", - "walletConnect": "WalletConnect", - "nullURIError": "URI banza ne", - "connectWalletPrompt": "Haɗa walat ɗin ku tare da WalletConnect don yin ma'amala", - "newConnection": "Sabuwar Haɗi", - "activeConnectionsPrompt": "Haɗin kai mai aiki zai bayyana a nan", - "deleteConnectionConfirmationPrompt": "Shin kun tabbata cewa kuna son share haɗin zuwa", + "estimated": "Kiyasta", + "etherscan_history": "Etherscan tarihin kowane zamani", "event": "Lamarin", - "successful": "Nasara", - "wouoldLikeToConnect": "ina son haɗi", - "message": "Sako", - "do_not_have_enough_gas_asset": "Ba ku da isassun ${currency} don yin ma'amala tare da yanayin cibiyar sadarwar blockchain na yanzu. Kuna buƙatar ƙarin ${currency} don biyan kuɗaɗen cibiyar sadarwar blockchain, koda kuwa kuna aika wata kadara daban.", - "totp_auth_url": "TOTP AUTH URL", - "awaitDAppProcessing": "Da fatan za a jira dApp ya gama aiki.", - "copyWalletConnectLink": "Kwafi hanyar haɗin WalletConnect daga dApp kuma liƙa a nan", - "enterWalletConnectURI": "Shigar da WalletConnect URI", - "seed_key": "Maɓallin iri", - "enter_seed_phrase": "Shigar da Sert Sentarku", - "change_rep_successful": "An samu nasarar canzawa wakilin", - "add_contact": "Ƙara lamba", + "events": "Abubuwan da suka faru", + "exchange": "Exchange", + "exchange_incorrect_current_wallet_for_xmr": "Idan kana son musanya XMR daga ma'aunin Cake Wallet Monero, da fatan za a fara canza wallet ɗin Monero ɗin ku.", + "exchange_new_template": "Sabon template", "exchange_provider_unsupported": "${providerName}", - "domain_looks_up": "Binciken yanki", - "require_for_exchanges_to_external_wallets": "Bukatar musanya zuwa wallet na waje", - "camera_permission_is_required": "Ana buƙatar izinin kyamara.\nDa fatan za a kunna shi daga saitunan app.", - "switchToETHWallet": "Da fatan za a canza zuwa walat ɗin Ethereum kuma a sake gwadawa", - "order_by": "Oda ta", - "creation_date": "Ranar halitta", + "exchange_result_confirm": "Ta danna tabbatarwa, zaku aika ${fetchingLabel} ${from} daga walat ɗin ku mai suna ${walletName} zuwa address dake kasa. Ko zaka iya aika daga kwalinku na external zuwa address/QR code dake kasa.\n\nDon Allah shigar da confirm don ci gaba ko dawo ka canja adadinku.", + "exchange_result_description": "Dole ne ku aika mafi ƙarancin ${fetchingLabel} ${from} zuwa adireshin da aka nuna akan shafi na gaba. Idan ka aika adadi kasa da ${fetchingLabel} ${from} bazai yi converting ba kuma ba zai koma ba.", + "exchange_result_write_down_ID": "*Don Allah kwafi ko rubuta ID dake nuna sama.", + "exchange_result_write_down_trade_id": "Da fatan za a kwafa ko rubuta ID ɗin ciniki don ci gaba.", + "exchange_sync_alert_content": "Da fatan za a jira har sai an daidaita walat ɗin ku", + "expired": "Karewa", + "expires": "Ya ƙare", + "expiresOn": "Yana ƙarewa", + "export_backup": "Ajiyayyen fitarwa", + "extra_id": "Karin ID:", + "failed_authentication": "Binne wajen shiga. ${state_error}", + "faq": "FAQ", + "fetching": "Daukewa", + "fiat_api": "API ɗin Fiat", + "fiat_balance": "Fiat Balance", + "field_required": "wannan fillin ana bukatansa", + "fill_code": "Da fatan za a cika lambar tabbatarwa da aka bayar zuwa imel ɗin ku", + "filter_by": "Tace ta", + "first_wallet_text": "Aikace-aikacen e-wallet ga Monero, Bitcoin, Ethereum, Litecoin, da kuma Haven", + "fixed_pair_not_supported": "Wannan kafaffen guda biyu ba shi da tallafi tare da zaɓaɓɓun musayar", + "fixed_rate": "Kafaffen ƙima", + "fixed_rate_alert": "Za ku iya shigar da adadin karɓa lokacin da aka duba ƙayyadadden zaɓin ƙimar kuɗi. Kuna so ku canza zuwa ƙayyadadden yanayin ƙimar kuɗi?", + "forgot_password": "Manta Kalmar wucewa", + "freeze": "Daskare", + "frequently_asked_questions": "Tambayoyin da ake yawan yi", + "frozen": "Daskararre", + "full_balance": "DUKAN KUDI", + "generate_name": "Ƙirƙirar Suna", + "generating_gift_card": "Samar da Katin Kyauta", + "get_a": "Samu a", + "get_card_note": "cewa zaku iya sake lodawa tare da kudaden dijital. Babu ƙarin bayani da ake buƙata!", + "get_your_yat": "Samun Yat ka", + "gift_card_amount": "Adadin Katin Kyauta", + "gift_card_balance_note": "Katunan kyauta tare da ragowar ma'auni zasu bayyana anan", + "gift_card_is_generated": "An samar da Katin Kyauta", + "gift_card_number": "Lambar katin kyauta", + "gift_card_redeemed_note": "Katunan kyauta da kuka fanshi zasu bayyana anan", + "gift_cards": "Katunan Kyauta", + "gift_cards_unavailable": "Ana samun katunan kyauta don siye kawai tare da Monero, Bitcoin, da Litecoin a wannan lokacin", + "got_it": "Gama", + "gross_balance": "Babban Ma'auni", "group_by_type": "Rukuni ta nau'in", - "importNFTs": "Shigo da NFTs", - "noNFTYet": "Babu NFTs tukuna", - "address": "Adireshi", - "enterTokenID": "Shigar da alamar alama", - "tokenID": "ID", - "name": "Suna", - "symbol": "Alama", - "seed_phrase_length": "Tsawon jimlar iri", - "unavailable_balance": "Ma'aunin da ba ya samuwa", - "unavailable_balance_description": "Ma'auni Babu: Wannan jimlar ya haɗa da kuɗi waɗanda ke kulle a cikin ma'amaloli da ke jiran aiki da waɗanda kuka daskare sosai a cikin saitunan sarrafa kuɗin ku. Ma'auni da aka kulle za su kasance da zarar an kammala ma'amalolinsu, yayin da daskararrun ma'auni ba za su iya samun damar yin ciniki ba har sai kun yanke shawarar cire su.", - "unspent_change": "Canza", - "tor_connection": "Tor haɗin gwiwa", - "setup_2fa_text": "Cake 2FA yana aiki ta amfani da TOTP azaman ƙimar tabbatarwa ta biyu.\n\nCake 2FA's TOTP yana buƙatar tallafin lambobi SHA-512 da 8; wannan yana ba da ƙarin tsaro. Ana iya samun ƙarin bayani da ƙa'idodi masu goyan baya a cikin jagorar.", - "setup_warning_2fa_text": "Kuna buƙatar dawo da walat ɗin ku daga zuriyar mnemonic.\n\nTallafin kek ba zai iya taimaka muku ba idan kun rasa damar yin amfani da 2FA ko tsaba na mnemonic.\nCake 2FA tabbaci ne na biyu don wasu ayyuka a cikin walat. Kafin amfani da Cake 2FA, muna ba da shawarar karanta ta cikin jagorar.BA shi da tsaro kamar ajiyar sanyi.\n\nIdan ka rasa damar yin amfani da app ɗinka na 2FA ko maɓallan TOTP, ZA KA rasa damar shiga wannan wallet ɗin. ", - "add_secret_code": "Ko, ƙara wannan lambar sirrin zuwa ƙa'idar mai tabbatarwa", - "scan_qr_on_device": "Duba wannan lambar QR akan wata na'ura", + "haven_app": "Haven da Cake Wallet", + "haven_app_wallet_text": "Aikace-aikacen e-wallet ga Haven", + "help": "taimako", + "hidden_balance": "BOYE KUDI", + "hide_details": "Ɓoye cikakkun bayanai", + "high_contrast_theme": "Babban Jigon Kwatance", + "home_screen_settings": "Saitunan allo na gida", "how_to_use": "Yadda ake amfani da shi", + "how_to_use_card": "Yadda ake amfani da wannan kati", + "id": "ID:", + "ignor": "Yi watsi da shi", + "import": "Shigo da", + "importNFTs": "Shigo da NFTs", + "in_store": "A cikin Store", + "incoming": "Mai shigowa", + "incorrect_seed": "rubutun da aka shigar ba shi da inganci.", + "introducing_cake_pay": "Gabatar da Cake Pay!", + "invalid_input": "Shigar da ba daidai ba", + "invoice_details": "Bayanin wadannan", + "is_percentage": "shine", + "last_30_days": "Kwanaki 30 na ƙarshe", + "learn_more": "Ƙara Koyi", + "light_theme": "Haske", + "loading_your_wallet": "Ana loda walat ɗin ku", + "login": "Shiga", + "logout": "Fita", + "low_fee": "maras tsada", + "low_fee_alert": "A halin yanzu kuna amfani da ƙarancin fifikon kuɗin hanyar sadarwa. Wannan na iya haifar da dogon jira, farashi daban-daban, ko soke kasuwancin. Muna ba da shawarar saita farashi mafi girma don ƙwarewa mafi kyau.", + "manage_nodes": "Sarrafa nodes", + "manage_pow_nodes": "Sarrafa PoW Nodes", + "manage_yats": "Sarrafa Yats", + "mark_as_redeemed": "Yi Alama Kamar An Fansa", + "market_place": "Kasuwa", + "matrix_green_dark_theme": "Matrix Green Dark Jigo", + "max_amount": "Max: ${value}", + "max_value": "Max: ${value} ${currency}", + "memo": "Memo:", + "message": "Sako", + "methods": "Hanyoyin", + "min_amount": "Min: ${value}", + "min_value": "Min: ${value} ${currency}", + "minutes_to_pin_code": "${minute} minti", + "mm": "MM", + "monero_com": "Monero.com ta Cake Wallet", + "monero_com_wallet_text": "Aikace-aikacen e-wallet ga Monero", + "monero_dark_theme": "Monero Dark Jigo", + "monero_light_theme": "Jigon Hasken Monero", + "moonpay_alert_text": "Darajar adadin dole ne ya zama fiye ko daidai da ${minAmount} ${fiatCurrency}", + "more_options": "Ƙarin Zaɓuɓɓuka", + "name": "Suna", + "narrow": "kunkuntar", + "new_first_wallet_text": "A sauƙaƙe kiyaye kuzarin ku", + "new_node_testing": "Sabbin gwajin kumburi", + "new_subaddress_create": "Ƙirƙiri", + "new_subaddress_label_name": "Lakabin suna", + "new_subaddress_title": "Adireshin sabuwa", + "new_template": "Sabon Samfura", + "new_wallet": "Sabuwar Wallet", + "newConnection": "Sabuwar Haɗi", + "no_id_needed": "Babu ID da ake buƙata!", + "no_id_required": "Babu ID da ake buƙata. Yi da kuma ciyar a ko'ina", + "no_relay_on_domain": "Babu gudun ba da sanda ga yankin mai amfani ko kuma ba a samu ba. Da fatan za a zaɓi gudun ba da sanda don amfani.", + "no_relays": "Babu relays", + "no_relays_message": "Mun sami rikodin Nostr NIP-05 don wannan mai amfani, amma ba ya ƙunshe da kowane relays. Da fatan za a umurci mai karɓa ya ƙara relays zuwa rikodin su na Nostr.", + "node_address": "Address Node", + "node_connection_failed": "Haɗin ya gaza", + "node_connection_successful": "Haɗin ya yi nasara", + "node_new": "Sabon Node", + "node_port": "Node tashar jiragen ruwa", + "node_reset_settings_title": "Sake saitunan", + "node_test": "Gwaji", + "nodes": "Nodes", + "nodes_list_reset_to_default_message": "Kuna tabbatar kuna so ku sake saitunan zuwa default?", + "none_of_selected_providers_can_exchange": "Babu ɗaya daga cikin zaɓaɓɓun masu samarwa da zai iya yin wannan musayar", + "noNFTYet": "Babu NFTs tukuna", + "normal": "Na al'ada", + "note_optional": "Bayani (optional)", + "note_tap_to_change": "Bayani (tap don canja)", + "nullURIError": "URI banza ne", + "offer_expires_in": "tayin zai ƙare a:", + "offline": "Offline", + "ok": "OK", + "onion_link": "Lambar onion", + "online": "Kan layi", + "onramper_option_description": "Da sauri sayi Crypto tare da hanyoyin biyan kuɗi da yawa. Akwai a yawancin ƙasashe. Yaduwa da kudade sun bambanta.", + "open_gift_card": "Bude Katin Kyauta", + "openalias_alert_content": "Zaka aika kuɗi zuwa \n${recipient_name}", + "openalias_alert_title": "An gano adireshin", + "optional_description": "Bayanin zai iya ba da maki", + "optional_email_hint": "Email na kayan taimako ga wadanda basu ba da maki", + "optional_name": "Sunan mawallin zai iya ba da maki", + "optionally_order_card": "Zaɓin yin odar katin zahiri.", + "order_by": "Oda ta", + "order_id": "Oda ID", + "order_physical_card": "Yi Oda Katin Jiki", + "other_settings": "Sauran saituna", + "outdated_electrum_wallet_description": "Sabbin walat ɗin Bitcoin da aka kirkira a cikin Cake yanzu suna da nau'in kalma 24. Ya zama dole ka ƙirƙiri sabon walat ɗin Bitcoin kuma canza duk kuɗin ku zuwa sabon walat ɗin kalmomi 24, kuma ku daina amfani da walat tare da iri mai kalma 12. Da fatan za a yi haka nan take don samun kuɗin ku.", + "outdated_electrum_wallet_receive_warning": "Idan wannan walat ɗin yana da nau'in kalma 12 kuma an ƙirƙira shi a cikin Cake, KAR KA saka Bitcoin cikin wannan jakar. Duk wani BTC da aka canjawa wuri zuwa wannan walat na iya ɓacewa. Ƙirƙiri sabon walat mai kalmomi 24 (matsa menu a saman dama, zaɓi Wallets, zaɓi Ƙirƙiri Sabon Wallet, sannan zaɓi Bitcoin) kuma NAN nan take matsar da BTC ɗin ku a can. Sabbin (kalmomi 24) BTC wallets daga Cake suna da tsaro", + "outgoing": "Mai fita", + "overwrite_amount": "Rubuta adadin", + "pairingInvalidEvent": "Haɗa Lamarin mara inganci", + "password": "Kalmar wucewa", + "paste": "Manna", + "pause_wallet_creation": "A halin yanzu an dakatar da ikon ƙirƙirar Haven Wallet.", + "payment_id": "ID na biyan kuɗi:", + "payment_was_received": "An karɓi kuɗin ku.", + "pending": "(pending)", + "percentageOf": "na ${amount}", + "pin_at_top": "pin ${token} a sama", + "pin_is_incorrect": "PIN ba daidai ba ne", + "pin_number": "Lambar PIN", + "placeholder_contacts": "Za a nuna lambobin sadarwar ku anan", + "placeholder_transactions": "Za a nuna ma'amalolin ku anan", + "please_make_selection": "Don Allah zaɓi ƙasa don ƙirƙira ko dawo da kwalinku.", + "please_reference_document": "Da fatan za a nemi takaddun da ke ƙasa don ƙarin bayani.", + "please_select": "Don Allah zaɓi:", + "please_select_backup_file": "Da fatan za a zaɓi fayil ɗin madadin kuma shigar da kalmar wucewa ta madadin.", + "please_try_to_connect_to_another_node": "Don Allah yi ƙoƙarin haɗa da wani node", + "please_wait": "Don Allah a rufe", + "polygonscan_history": "PolygonScan tarihin kowane zamani", + "powered_by": "An ƙarfafa shi ta ${title}", + "pre_seed_button_text": "Ina fahimta. Nuna mini seed din nawa", + "pre_seed_description": "A kan shafin nan za ku ga wata ƙungiya na ${words} kalmomi. Wannan shine tsarin daban-daban ku kuma na sirri kuma shine hanya ɗaya kadai don mai da purse dinku a cikin yanayin rasa ko rashin aiki. Yana da damar da kuke a cikin tabbatar da kuyi rubuta shi kuma kuyi ajiye shi a wuri na aminci wanda ya wuce wurin app na Cake Wallet.", + "pre_seed_title": "MUHIMMANCI", + "prevent_screenshots": "Fada lambobi da jarrabobi na kayan lambobi", + "privacy": "Keɓantawa", + "privacy_policy": "takardar kebantawa", + "privacy_settings": "Saitunan sirri", + "private_key": "Keɓaɓɓen maɓalli", + "proceed_after_one_minute": "Idan allon bai ci gaba ba bayan minti 1, duba imel ɗin ku.", + "provider_error": "${provider} kuskure", + "public_key": "Maɓallin jama'a", + "purchase_gift_card": "Katin Kyautar Sayi", + "qr_fullscreen": "Matsa don buɗe lambar QR na cikakken allo", + "qr_payment_amount": "Wannan QR code yana da adadin kuɗi. Kuna so ku overwrite wannan adadi?", + "receivable_balance": "Daidaituwa da daidaituwa", + "receive": "Samu", + "receive_amount": "Adadi", + "received": "Samu", + "recipient_address": "Adireshin mai karɓa", + "reconnect": "Sake haɗawa", + "reconnect_alert_text": "Shin kun tabbata kuna son sake haɗawa?", + "reconnection": "Sake haɗawa", + "redeemed": "An fanshi", + "refund_address": "Adireshin maidowa", + "reject": "Ƙi", + "remaining": "saura", + "remove": "Cire", + "remove_node": "Cire node", + "remove_node_message": "Kuna tabbatar kuna so ku cire wannan node?", + "rename": "Sake suna", + "require_for_adding_contacts": "Bukatar ƙara lambobin sadarwa", + "require_for_all_security_and_backup_settings": "Bukatar duk tsaro da saitunan wariyar ajiya", + "require_for_assessing_wallet": "Bukatar samun damar walat", + "require_for_creating_new_wallets": "Bukatar ƙirƙirar sabbin wallet", + "require_for_exchanges_to_external_wallets": "Bukatar musanya zuwa wallet na waje", + "require_for_exchanges_to_internal_wallets": "Bukatar musanya zuwa wallet na ciki", + "require_for_sends_to_contacts": "Bukatar aika zuwa lambobin sadarwa", + "require_for_sends_to_internal_wallets": "Bukatar aika zuwa wallet na ciki", + "require_for_sends_to_non_contacts": "Bukatar aika zuwa waɗanda ba lambobin sadarwa ba", + "require_pin_after": "Bukatar PIN bayan", + "rescan": "Rescan", + "resend_code": "Da fatan za a sake aika shi", + "reset": "Sake saiti", + "reset_password": "Sake saita kalmar wucewa", + "restore_active_seed": "iri mai aiki", + "restore_address": "Address", + "restore_bitcoin_description_from_keys": "Dawo da kwalinku daga WIF string dake generate daga maɓallan sirri", + "restore_bitcoin_description_from_seed": "Dawo da kwalinku daga 24 lambar haɗin kalma", + "restore_bitcoin_title_from_keys": "Dawo daga WIF", + "restore_description_from_backup": "Kuna iya dawo da duk aikace-aikacen Wallet ɗin Cake daga fayil ɗin ajiyar ku", + "restore_description_from_keys": "Maido da walat ɗin ku daga maɓallan maɓalli da aka ƙera da aka ajiye daga maɓallan ku na sirri", + "restore_description_from_seed": "Dawo da kwalinku daga 25 ko 13 lambar haɗin kalma", + "restore_description_from_seed_keys": "Maido da walat ɗin ku daga iri/maɓallan da kuka adana don amintaccen wuri", + "restore_from_date_or_blockheight": "Don Allah shigar da wata kwanan a kafin ku ƙirƙirar wannan kwalinku. Ko idan kun san blockheight, don Allah shigar da shi", + "restore_from_seed_placeholder": "Da fatan za a shigar da ko manna maɓallin ku a nan", + "restore_new_seed": "Sabon iri", + "restore_next": "Na gaba", + "restore_recover": "Maida", + "restore_restore_wallet": "Maida Wallet", + "restore_seed_keys_restore": "Mayar da iri/Maɓallai", + "restore_spend_key_private": "Maɓallin kashewa (key kalmar sirri)", + "restore_title_from_backup": "Dawo daga madadin", + "restore_title_from_keys": "Dawo daga maɓallai", + "restore_title_from_seed": "Maidowa daga iri", + "restore_title_from_seed_keys": "Dawo da iri/maɓallai", + "restore_view_key_private": "Maɓallin Duba (key kalmar sirri)", + "restore_wallet": "Dawo da Kwalinku", + "restore_wallet_name": "Sunan kwalinku", + "restore_wallet_restore_description": "Bayanin dawo da walat", + "router_no_route": "Babu wata hanya da aka bayyana don ${name}", + "save": "Ajiye", + "save_backup_password": "Da fatan za a tabbatar cewa kun adana kalmar sirrin ajiyar ku. Ba za ku iya shigo da fayilolin ajiyar ku ba tare da shi ba.", + "save_backup_password_alert": "Ajiye kalmar sirri ta ajiya", + "save_to_downloads": "Ajiye zuwa Zazzagewa", + "saved_the_trade_id": "Na ajiye ID na ciniki", + "scan_qr_code": "Gani QR kodin", + "scan_qr_on_device": "Duba wannan lambar QR akan wata na'ura", + "search": "Bincika", + "search_add_token": "Bincika / Ƙara alama", + "search_category": "Nemo nau'in", + "search_currency": "Neman kudin waje", + "search_language": "Bincika harshe", + "second_intro_content": "Your Yat adireshi ne na musamman na Emoji guda ɗaya wanda ke maye gurbin duk dogayen adiresoshin ku na hexadecimal na duk kudaden ku.", + "second_intro_title": "Adireshin emoji ɗaya don sarrafa su duka", + "security_and_backup": "Tsaro da madadin", + "seed_alert_back": "juya baya", + "seed_alert_content": "Irin ita ce kawai hanya don dawo da walat ɗin ku. Kun rubuta shi?", + "seed_alert_title": "Hankali", + "seed_alert_yes": "E, Na yi", + "seed_choose": "Zaɓi harshen seed", "seed_hex_form": "Gany Sero (form form)", + "seed_key": "Maɓallin iri", + "seed_language": "Harshen Magani", + "seed_language_chinese": "Sinanci", + "seed_language_chinese_traditional": "Sinanci (na gargajiya)", + "seed_language_czech": "Czech", + "seed_language_dutch": "Dutch", + "seed_language_english": "Ingilishi", + "seed_language_french": "Faransanci", + "seed_language_german": "Jamus", + "seed_language_italian": "Italiyanci", + "seed_language_japanese": "Jafananci", + "seed_language_korean": "Yaren Koriya", + "seed_language_next": "Na gaba", + "seed_language_portuguese": "Fotigal", + "seed_language_russian": "Rashanci", + "seed_language_spanish": "Spanish", + "seed_phrase_length": "Tsawon jimlar iri", + "seed_reminder": "Don Allah rubuta wadannan in case ka manta ko ka sake kwallon wayarka", + "seed_share": "Raba iri", + "seed_title": "iri", "seedtype": "Seedtype", "seedtype_legacy": "Legacy (25 kalmomi)", "seedtype_polyseed": "Polyseed (16 kalmomi)", - "seed_language_czech": "Czech", - "seed_language_korean": "Yaren Koriya", - "seed_language_chinese_traditional": "Sinanci (na gargajiya)", - "ascending": "Hau", - "descending": "Saukowa", - "dfx_option_description": "Sayi crypto tare da EUR & CHF. Har zuwa € 990 ba tare da ƙarin KYC ba. Don 'yan kasuwa da abokan ciniki na kamfanoni a Turai", - "polygonscan_history": "PolygonScan tarihin kowane zamani", - "wallet_seed_legacy": "Tallarin walat walat", - "setup_totp_recommended": "Saita TOTP", - "default_sell_provider": "Tsohuwar Mai Bayar Siyarwa", + "select_backup_file": "Zaɓi fayil ɗin madadin", + "select_buy_provider_notice": "Zaɓi mai ba da kyauta a sama. Zaka iya tsallake wannan allon ta hanyar saita mai ba da isasshen busasshen mai ba da isasshen busasshiyar saiti.", + "select_destination": "Da fatan za a zaɓi wurin da za a yi wa madadin fayil ɗin.", "select_sell_provider_notice": "Zaɓi mai bada siyarwa a sama. Kuna iya tsallake wannan allon ta saita mai bada siyar da ku a cikin saitunan app.", - "custom_drag": "Al'ada (riƙe da ja)", + "sell": "sayar", + "sell_alert_content": "A halin yanzu muna tallafawa kawai siyar da Bitcoin, Ethereum da Litecoin. Da fatan za a ƙirƙiri ko canza zuwa walat ɗin ku na Bitcoin, Ethereum ko Litecoin.", + "sell_monero_com_alert_content": "Selling Monero bai sami ƙarshen mai bukatar samun ba", + "send": "Aika", + "send_address": "${cryptoCurrency} address", + "send_amount": "Adadi:", + "send_creating_transaction": "Ƙirƙirar ciniki", + "send_error_currency": "Kudi zai iya ƙunsar lambobi kawai", + "send_error_minimum_value": "Mafi ƙarancin ƙimar adadin shine 0.01", + "send_estimated_fee": "Ƙimar kuɗi:", + "send_fee": "Kudin:", + "send_name": "Sunan", + "send_new": "Sabon", + "send_payment_id": "ID na biyan kuɗi (optional)", + "send_priority": "Yanzu haka fee yana set a ${transactionPriority} fifiko.\nAna iya daidaita fifikon ciniki a cikin saitunan", + "send_sending": "Aika...", + "send_success": "${crypto} kwalinku ya aika da nasara", + "send_templates": "Samfura", + "send_title": "Aika", + "send_to_this_address": "Aiko ${currency} ${tag} zuwa adireshin wannan", + "send_xmr": "Aika XMR", + "send_your_wallet": "Walat ɗin ku", + "sending": "Aika", + "sent": "Aika", + "settings": "Saiti", + "settings_all": "DUK", + "settings_allow_biometrical_authentication": "Bada izinin tantance sawun yatsa", + "settings_can_be_changed_later": "Ana iya canza waɗannan saitunan daga baya a cikin saitunan app", + "settings_change_language": "Canja yaren", + "settings_change_pin": "Canja PIN", + "settings_currency": "Kudi", + "settings_current_node": "Node yanzu", + "settings_dark_mode": "Launi mai duhu", + "settings_display_balance": "Nuna ma'auni", + "settings_display_on_dashboard_list": "Nuna a kan tebur na bayanan", + "settings_fee_priority": "fifikon kuɗi", + "settings_nodes": "Nodes", + "settings_none": "Babu", + "settings_only_trades": "Kawai kasuwancin", + "settings_only_transactions": "Kawai ayyuka", + "settings_personal": "Na sirri", + "settings_save_recipient_address": "Ajiye adireshin mai karɓa", + "settings_support": "Taimako", + "settings_terms_and_conditions": "Sharuɗɗa da Ka'idoji", + "settings_title": "Saitunan", + "settings_trades": "Cinikai", + "settings_transactions": "Ma'amaloli", + "settings_wallets": "Wallets", + "setup_2fa_text": "Cake 2FA yana aiki ta amfani da TOTP azaman ƙimar tabbatarwa ta biyu.\n\nCake 2FA's TOTP yana buƙatar tallafin lambobi SHA-512 da 8; wannan yana ba da ƙarin tsaro. Ana iya samun ƙarin bayani da ƙa'idodi masu goyan baya a cikin jagorar.", + "setup_pin": "Saita PIN", + "setup_successful": "An saita PIN ɗinku da nasara!", + "setup_totp_recommended": "Saita TOTP", + "setup_warning_2fa_text": "Kuna buƙatar dawo da walat ɗin ku daga zuriyar mnemonic.\n\nTallafin kek ba zai iya taimaka muku ba idan kun rasa damar yin amfani da 2FA ko tsaba na mnemonic.\nCake 2FA tabbaci ne na biyu don wasu ayyuka a cikin walat. Kafin amfani da Cake 2FA, muna ba da shawarar karanta ta cikin jagorar.BA shi da tsaro kamar ajiyar sanyi.\n\nIdan ka rasa damar yin amfani da app ɗinka na 2FA ko maɓallan TOTP, ZA KA rasa damar shiga wannan wallet ɗin. ", + "setup_your_debit_card": "Saita katin zare kudi", + "share": "Raba", + "share_address": "Raba adireshin", + "show_details": "Nuna Cikakkun bayanai", + "show_keys": "Nuna iri/maɓallai", + "show_market_place": "Nuna dan kasuwa", + "show_seed": "Nuna iri", + "sign_up": "Shiga", + "signTransaction": "Sa hannu Ma'amala", + "signup_for_card_accept_terms": "Yi rajista don katin kuma karɓi sharuɗɗan.", + "slidable": "Mai iya zamewa", + "sort_by": "Kasa", + "spend_key_private": "makullin biya (maɓallin kalmar sirri)", + "spend_key_public": "makullin biya (maɓallin jama'a)", + "status": "Matsayi:", + "subaddress_title": "Jagorar subaddress", + "subaddresses": "Subaddresses", + "submit_request": "gabatar da bukata", + "successful": "Nasara", + "support_description_guides": "Tallafi da tallafi don batutuwa na yau da kullun", + "support_description_live_chat": "Kyauta da sauri! An horar da wakilan tallafi na tallafi don taimakawa", + "support_description_other_links": "Kasance tare da al'ummominmu ko kuma ka kai mu abokanmu ta hanyar wasu hanyoyi", + "support_title_guides": "Jagorar Cake", + "support_title_live_chat": "Tallafi na Live", + "support_title_other_links": "Sauran hanyoyin tallafi", + "sweeping_wallet": "Kashi na kasa", + "sweeping_wallet_alert": "Wannan ba zai samu lokacin mai tsaski. KADA KA SAMU KUNGIYARAN KUHON, ZAMAN DADIN BANKUNCI ZAI HAŘA", + "switchToETHWallet": "Da fatan za a canza zuwa walat ɗin Ethereum kuma a sake gwadawa", "switchToEVMCompatibleWallet": "Da fatan za a canza zuwa walat ɗin EVM mai jituwa kuma a sake gwadawa (Ethereum, Polygon)", - "receivable_balance": "Daidaituwa da daidaituwa", - "confirmed_tx": "Tabbatar", + "symbol": "Alama", + "sync_status_attempting_sync": "KWAFI", + "sync_status_connected": "HANNU", + "sync_status_connecting": "HADA", + "sync_status_failed_connect": "BABU INTERNET", + "sync_status_not_connected": "BABU INTERNET", + "sync_status_starting_sync": "KWAFI", + "sync_status_syncronized": "KYAU", + "sync_status_syncronizing": "KWAFI", + "syncing_wallet_alert_content": "Ma'aunin ku da lissafin ma'amala bazai cika ba har sai an ce \"SYNCHRONIZED\" a saman. Danna/matsa don ƙarin koyo.", + "syncing_wallet_alert_title": "Walat ɗin ku yana aiki tare", + "template": "Samfura", + "template_name": "Sunan Samfura", + "third_intro_content": "Yats suna zaune a wajen Kek Wallet, kuma. Ana iya maye gurbin kowane adireshin walat a duniya da Yat!", + "third_intro_title": "Yat yana wasa da kyau tare da wasu", + "time": "${minutes}m ${seconds}s", + "tip": "Tukwici:", + "today": "Yau", + "token_contract_address": "Adireshin kwangilar Token", + "token_decimal": "Alamar ƙima", + "token_name": "Alamar sunan misali: Tether", + "token_symbol": "Alamar alama misali: USDT", + "tokenID": "ID", + "tor_connection": "Tor haɗin gwiwa", + "tor_only": "Tor kawai", + "total_saving": "Jimlar Adana", + "totp_auth_url": "TOTP AUTH URL", + "trade_details_copied": "${title} an kwafa zuwa cikin kwafin", + "trade_details_created_at": "An ƙirƙira a", + "trade_details_fetching": "Daukewa", + "trade_details_id": "ID", + "trade_details_pair": "miji da matarsa", + "trade_details_provider": "Mai bayarwa", + "trade_details_state": "Matsayi", + "trade_details_title": "Bayanai game da kasuwancin", + "trade_for_not_created": "Ba a ƙirƙira ciniki don ${title} ba.", + "trade_history_title": "Tarihin kasuwancin", + "trade_id": "ID na kasuwanci:", + "trade_id_not_found": "Ba a samo cinikin ${tradeId} na ${title} ba.", + "trade_is_powered_by": "Ana yin wannan ciniki ta hanyar ${provider}", + "trade_not_created": "Ba a ƙirƙira ciniki ba", + "trade_not_found": "Ba a sami ciniki ba.", + "trade_state_btc_sent": "Btc an aika", + "trade_state_complete": "Cikakkun", + "trade_state_confirming": "Tabbatar", + "trade_state_created": "an halicci", + "trade_state_finished": "an kammala", + "trade_state_paid": "an biya", + "trade_state_paid_unconfirmed": "an biya amma ba a tabbatar ba", + "trade_state_pending": "Jira", + "trade_state_timeout": "lokacin da ya ƙare", + "trade_state_to_be_created": "za a halicci", + "trade_state_traded": "Ciniki", + "trade_state_trading": "Ciniki", + "trade_state_underpaid": "ba a biya gaba ɗaya ba", + "trade_state_unpaid": "ba a biya ba", + "trades": "Cinikai", + "transaction_details_amount": "Adadin", + "transaction_details_copied": "${title} an kwafa zuwa cikin kwafin", + "transaction_details_date": "Kwanan wata", + "transaction_details_fee": "Kudin", + "transaction_details_height": "tsawo", + "transaction_details_recipient_address": "Adireshin masu amfani", "transaction_details_source_address": "Adireshin Incord", - "pause_wallet_creation": "A halin yanzu an dakatar da ikon ƙirƙirar Haven Wallet.", - "contractName": "Sunan Kwangila", - "contractSymbol": "Alamar Kwangila", - "description": "Bayani", - "camera_consent": "Za a yi amfani da kyamarar ku don ɗaukar hoto don dalilai na tantancewa ta ${provider}. Da fatan za a duba Manufar Sirri don cikakkun bayanai.", - "no_relays": "Babu relays", - "choose_relay": "Da fatan za a zaɓi gudun ba da sanda don amfani", - "no_relays_message": "Mun sami rikodin Nostr NIP-05 don wannan mai amfani, amma ba ya ƙunshe da kowane relays. Da fatan za a umurci mai karɓa ya ƙara relays zuwa rikodin su na Nostr.", - "no_relay_on_domain": "Babu gudun ba da sanda ga yankin mai amfani ko kuma ba a samu ba. Da fatan za a zaɓi gudun ba da sanda don amfani." -} + "transaction_details_title": "Bayanai game da aikace-aikacen", + "transaction_details_transaction_id": "ID na kasuwanci", + "transaction_key": "Aikace-aikacen key", + "transaction_priority_fast": "sauri", + "transaction_priority_fastest": "mafi sauri", + "transaction_priority_medium": "SAURI DA DADI", + "transaction_priority_regular": "SAURI NORMAL", + "transaction_priority_slow": "SAURI DA SAURI", + "transaction_sent": "An aika ciniki!", + "transaction_sent_notice": "Idan allon bai ci gaba ba bayan minti 1, duba mai binciken toshewa da imel ɗin ku.", + "transactions": "Ma'amaloli", + "transactions_by_date": "Ma'amaloli ta kwanan wata", + "trusted": "Amintacce", + "unavailable_balance": "Ma'aunin da ba ya samuwa", + "unavailable_balance_description": "Ma'auni Babu: Wannan jimlar ya haɗa da kuɗi waɗanda ke kulle a cikin ma'amaloli da ke jiran aiki da waɗanda kuka daskare sosai a cikin saitunan sarrafa kuɗin ku. Ma'auni da aka kulle za su kasance da zarar an kammala ma'amalolinsu, yayin da daskararrun ma'auni ba za su iya samun damar yin ciniki ba har sai kun yanke shawarar cire su.", + "unconfirmed": "Ba a tabbatar ba", + "understand": "na gane", + "unmatched_currencies": "Nau'in walat ɗin ku na yanzu bai dace da na lambar QR da aka bincika ba", + "unspent_change": "Canza", + "unspent_coins_details_title": "Bayanan tsabar kudi da ba a kashe ba", + "unspent_coins_title": "Tsabar da ba a kashe ba", + "unsupported_asset": "Ba mu goyi bayan wannan aikin don wannan kadara. Da fatan za a ƙirƙira ko canza zuwa walat na nau'in kadara mai tallafi.", + "upto": "har zuwa ${value}", + "use": "Canja zuwa", + "use_card_info_three": "Yi amfani da katin dijital akan layi ko tare da hanyoyin biyan kuɗi mara lamba.", + "use_card_info_two": "Ana canza kuɗi zuwa dalar Amurka lokacin da ake riƙe su a cikin asusun da aka riga aka biya, ba cikin agogon dijital ba.", + "use_ssl": "Yi amfani da SSL", + "use_suggested": "Amfani da Shawarwari", + "variable_pair_not_supported": "Ba a samun goyan bayan wannan m biyu tare da zaɓaɓɓun musayar", + "verification": "tabbatar", + "version": "Sigar ${currentVersion}", + "view_all": "Duba duka", + "view_in_block_explorer": "Dubo a cikin Block Explorer", + "view_key_private": "Duba maɓallin (maɓallin kalmar sirri)", + "view_key_public": "Maɓallin Duba (maɓallin jama'a)", + "view_transaction_on": "Dubo aikace-aikacen akan", + "wallet_keys": "Iri/maɓalli na walat", + "wallet_list_create_new_wallet": "Ƙirƙiri Sabon Wallet", + "wallet_list_edit_wallet": "Gyara walat", + "wallet_list_failed_to_load": "An kasa loda ${wallet_name} walat. ${error}", + "wallet_list_failed_to_remove": "Ba a iya cirewa ${wallet_name} walat. ${error}", + "wallet_list_load_wallet": "Ana loda wallet na Monero", + "wallet_list_loading_wallet": "Ana loda ${wallet_name} walat", + "wallet_list_removing_wallet": "Cirewa ${wallet_name} walat", + "wallet_list_restore_wallet": "Maida Wallet", + "wallet_list_title": "Monero walat", + "wallet_list_wallet_name": "Sunan walat", + "wallet_menu": "Menu", + "wallet_name": "Sunan walat", + "wallet_name_exists": "Wallet mai wannan sunan ya riga ya wanzu. Da fatan za a zaɓi wani suna daban ko sake suna ɗayan walat tukuna.", + "wallet_restoration_store_incorrect_seed_length": "kalmar sirrin iri ba daidai ba", + "wallet_seed": "kalmar sirri na walat", + "wallet_seed_legacy": "Tallarin walat walat", + "wallet_store_monero_wallet": "Monero walat", + "walletConnect": "WalletConnect", + "wallets": "Wallets", + "warning": "Gargadi", + "welcome": "Barka da zuwa", + "welcome_to_cakepay": "Barka da zuwa Cake Pay!", + "widgets_address": "Adireshin", + "widgets_or": "ko", + "widgets_restore_from_blockheight": "Sake dawo da daga blockheight", + "widgets_restore_from_date": "Sake dawo da daga kwanan wata", + "widgets_seed": "iri", + "wouoldLikeToConnect": "ina son haɗi", + "write_down_backup_password": "Da fatan za a rubuta kalmar sirrin ajiyar ku, wacce ake amfani da ita don shigo da fayilolin ajiyar ku.", + "xlm_extra_info": "Don Allah kar a manta da saka Memo ID yayin aika ma'amalar XLM don musayar", + "xmr_available_balance": "Akwai Ma'auni", + "xmr_full_balance": "Cikakken Ma'auni", + "xmr_hidden": "Boye", + "xmr_to_error": "XMR.TO kuskure", + "xmr_to_error_description": "Adadin ba shi da inganci. Maksimum ɗaura 8 digiri bayan decimal point", + "xrp_extra_info": "Don Allah kar a manta da saka alamar Ƙaddamarwa yayin aika ma'amalar XRP don musayar", + "yat": "Yat", + "yat_address": "Yat Address", + "yat_alert_content": "Masu amfani da Wallet ɗin Cake yanzu za su iya aikawa da karɓar duk kuɗin da suka fi so tare da sunan mai amfani na tushen emoji iri ɗaya.", + "yat_alert_title": "Aika da karɓar crypto cikin sauƙi tare da Yat", + "yat_error": "Kuskure", + "yat_error_content": "Babu adireshi da ke da alaƙa da wannan Yat. Gwada wani Yat", + "yat_popup_content": "Yanzu zaku iya aikawa da karɓar crypto a cikin Cake Wallet tare da Yat - gajere, sunan mai amfani na tushen emoji. Sarrafa Yats a kowane lokaci akan allon saiti", + "yat_popup_title": "Adireshin jakar ku na iya zama emojifid.", + "yesterday": "Jiya", + "you_now_have_debit_card": "Yanzu kana da katin zare kudi", + "you_pay": "Ka Bayar", + "you_will_get": "Maida zuwa", + "you_will_send": "Maida daga", + "yy": "YY", + "zzzz": "zzzz" +} \ No newline at end of file diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index a3950b44e..53347a69a 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -1,779 +1,780 @@ { - "welcome": "स्वागत हे सेवा मेरे", - "cake_wallet": "Cake Wallet", - "first_wallet_text": "Monero, Bitcoin, Ethereum, Litecoin, और Haven के लिए बहुत बढ़िया बटुआ", - "please_make_selection": "कृपया नीचे चयन करें अपना बटुआ बनाएं या पुनर्प्राप्त करें.", - "create_new": "नया बटुआ बनाएँ", - "restore_wallet": "वॉलेट को पुनर्स्थापित करें", - "monero_com": "Monero.com by Cake Wallet", - "monero_com_wallet_text": "Awesome wallet for Monero", - "haven_app": "Haven by Cake Wallet", - "haven_app_wallet_text": "Awesome wallet for Haven", - "accounts": "हिसाब किताब", - "edit": "संपादित करें", + "about_cake_pay": "केक पे आपको वर्चुअल संपत्ति के साथ आसानी से उपहार कार्ड खरीदने की अनुमति देता है, जिसे संयुक्त राज्य में 150,000 से अधिक व्यापारियों पर तुरंत खर्च किया जा सकता है।", "account": "लेखा", + "accounts": "हिसाब किताब", + "accounts_subaddresses": "लेखा और उपदेस", + "activate": "सक्रिय करें", + "active": "सक्रिय", + "active_cards": "सक्रिय कार्ड", + "activeConnectionsPrompt": "सक्रिय कनेक्शन यहां दिखाई देंगे", "add": "जोड़ना", + "add_contact": "संपर्क जोड़ें", + "add_custom_node": "नया कस्टम नोड जोड़ें", + "add_custom_redemption": "कस्टम रिडेम्पशन जोड़ें", + "add_fund_to_card": "कार्ड में प्रीपेड धनराशि जोड़ें (${value} तक)", + "add_new_node": "नया नोड जोड़ें", + "add_new_word": "नया शब्द जोड़ें", + "add_receiver": "एक और रिसीवर जोड़ें (वैकल्पिक)", + "add_secret_code": "या, इस गुप्त कोड को प्रमाणक ऐप में जोड़ें", + "add_tip": "टिप जोड़ें", + "add_token_disclaimer_check": "मैंने एक प्रतिष्ठित स्रोत का उपयोग करके टोकन अनुबंध पते और जानकारी की पुष्टि की है। दुर्भावनापूर्ण या गलत जानकारी जोड़ने से धन की हानि हो सकती है।", + "add_token_warning": "स्कैमर्स के निर्देशानुसार टोकन संपादित या जोड़ें न करें।\nहमेशा प्रतिष्ठित स्रोतों से टोकन पते की पुष्टि करें!", + "add_value": "मूल्य जोड़ें", + "address": "पता", "address_book": "पता पुस्तिका", - "contact": "संपर्क करें", - "please_select": "कृपया चुने:", - "cancel": "रद्द करना", - "ok": "ठीक है", - "contact_name": "संपर्क नाम", - "reset": "रीसेट", - "save": "बचाना", + "address_book_menu": "पता पुस्तिका", + "address_detected": "पता लग गया", + "address_from_domain": "यह पता ${domain} से है Unstoppable Domains", + "address_from_yat": "यह पता ${emoji} से है Yat", + "address_label": "Address label", "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": "ट्रेडों", - "filter_by": "के द्वारा छनित", - "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": "द्वारा संचालित ${title}", - "error": "त्रुटि", - "estimated": "अनुमानित", - "min_value": "मिन: ${value} ${currency}", - "max_value": "मैक्स: ${value} ${currency}", - "change_currency": "मुद्रा परिवर्तन करें", - "overwrite_amount": "Overwrite amount", - "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", - "copy_id": "प्रतिलिपि ID", - "exchange_result_write_down_trade_id": "जारी रखने के लिए कृपया ट्रेड ID की प्रतिलिपि बनाएँ या लिखें.", - "trade_id": "व्यापार ID:", - "copied_to_clipboard": "क्लिपबोर्ड पर नकल", - "saved_the_trade_id": "मैंने व्यापार बचा लिया है 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} नीचे दिखाए गए पते पर। या आप अपने बाहरी वॉलेट से नीचे के पते पर भेज सकते हैं / क्यूआर कोड पर भेज सकते हैं।\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": "-अंक पिन", - "share_address": "पता साझा करें", - "receive_amount": "रकम", - "subaddresses": "उप पते", "addresses": "पतों", - "scan_qr_code_to_get_address": "पता प्राप्त करने के लिए QR कोड स्कैन करें", - "qr_fullscreen": "फ़ुल स्क्रीन क्यूआर कोड खोलने के लिए टैप करें", - "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": "आप से पूरे केक वॉलेट एप्लिकेशन को पुनर्स्थापित कर सकते हैं आपकी बैक-अप फ़ाइल", - "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": "कुंजी देखें (निजी)", - "restore_spend_key_private": "कुंजी खर्च करें (निजीe)", - "restore_recover": "वसूली", - "restore_wallet_restore_description": "बटुआ विवरण पुनर्स्थापित करें", - "restore_new_seed": "नया बीज", - "restore_active_seed": "सक्रिय बीज", - "restore_bitcoin_description_from_seed": "24 शब्द संयोजन कोड से अपने वॉलेट को पुनर्स्थापित करें", - "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": "बीज", - "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": "स्पेनिश", - "seed_language_french": "फ्रेंच", - "seed_language_italian": "इतालवी", - "send_title": "संदेश", - "send_your_wallet": "आपका बटुआ", - "send_address": "${cryptoCurrency} पता", - "send_payment_id": "भुगतान ID (ऐच्छिक)", + "advanced_settings": "एडवांस सेटिंग", + "aggressive": "ज्यादा", + "agree": "सहमत", + "agree_and_continue": "सहमत और जारी रखें", + "agree_to": "खाता बनाकर आप इससे सहमत होते हैं ", "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": "नाम", - "got_it": "समझ गया", - "send_sending": "भेजना...", - "send_success": "आपका ${crypto} सफलतापूर्वक भेजा गया", - "settings_title": "सेटिंग्स", - "settings_nodes": "नोड्स", - "settings_current_node": "वर्तमान नोड", - "settings_wallets": "पर्स", - "settings_display_balance": "प्रदर्शन संतुलन", - "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": "पिन गलत है", - "setup_pin": "पिन सेट करें", - "enter_your_pin_again": "फिर से अपना पिन डालें", - "setup_successful": "आपका पिन सफलतापूर्वक सेट हो गया है", - "wallet_keys": "बटुआ बीज / चाबियाँ", - "wallet_seed": "बटुआ का बीज", - "private_key": "निजी चाबी", - "public_key": "सार्वजनिक कुंजी", - "view_key_private": "कुंजी देखें(निजी)", - "view_key_public": "कुंजी देखें (जनता)", - "spend_key_private": "खर्च करना (निजी)", - "spend_key_public": "खर्च करना (जनता)", - "copied_key_to_clipboard": "की नकल की ${key} क्लिपबोर्ड पर", - "new_subaddress_title": "नया पता", - "new_subaddress_label_name": "लेबल का नाम", - "new_subaddress_create": "सर्जन करना", - "address_label": "Address label", - "subaddress_title": "उपखंड सूची", - "trade_details_title": "व्यापार विवरण", - "trade_details_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_edit_wallet": "बटुआ संपादित करें", - "wallet_list_wallet_name": "बटुआ नाम", - "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_node_proxy_address": "कृपया दर्ज करें: <पोर्ट>, उदाहरण के लिए 127.0.0.1:9050", - "error_text_payment_id": "पेमेंट आईडी केवल हेक्स में 16 से 64 चार्ट तक हो सकती है", - "error_text_xmr": "एक्सएमआर मूल्य उपलब्ध शेष राशि से अधिक नहीं हो सकता.\nअंश अंकों की संख्या 12 से कम या इसके बराबर होनी चाहिए", - "error_text_fiat": "राशि का मूल्य उपलब्ध शेष राशि से अधिक नहीं हो सकता.\nअंश अंकों की संख्या कम या 2 के बराबर होनी चाहिए", - "error_text_subaddress_name": "सबड्रेस नाम नहीं हो सकता` , ' \" प्रतीकों\nऔर 1 और 20 वर्णों के बीच लंबा होना चाहिए", - "error_text_amount": "राशि में केवल संख्याएँ हो सकती हैं", - "error_text_wallet_name": "वॉलेट नाम में केवल अक्षर, संख्याएं, _ - प्रतीक हो सकते हैं\nऔर 1 और 33 वर्णों के बीच लंबा होना चाहिए", - "error_text_keys": "वॉलेट कीज़ में हेक्स में केवल 64 वर्ण हो सकते हैं", - "error_text_crypto_currency": "अंश अंकों की संख्या\n12 से कम या इसके बराबर होना चाहिए", - "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 वर्णों के बीच लंबा होना चाहिए", + "all_trades": "सभी व्यापार", + "all_transactions": "सभी लेन - देन", + "alphabetical": "वर्णमाला", + "always": "हमेशा", + "amount": "रकम: ", + "amount_is_estimate": "प्राप्त राशि एक अनुमान है", + "amount_is_guaranteed": "प्राप्त राशि की गारंटी है", + "and": "और", + "anonpay_description": "${type} उत्पन्न करें। प्राप्तकर्ता किसी भी समर्थित क्रिप्टोकरेंसी के साथ ${method} कर सकता है, और आपको इस वॉलेट में धन प्राप्त होगा।", + "apk_update": "APK अद्यतन", + "approve": "मंज़ूरी देना", + "arrive_in_this_address": "${currency} ${tag}इस पते पर पहुंचेंगे", + "ascending": "आरोही", + "ask_each_time": "हर बार पूछें", "auth_store_ban_timeout": "समय की पाबंदी", "auth_store_banned_for": "के लिए प्रतिबंधित है ", "auth_store_banned_minutes": " मिनट", "auth_store_incorrect_password": "गलत पिन", - "wallet_store_monero_wallet": "मोनरो वॉलेट", - "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": "जुड़े हुए", - "sync_status_attempting_sync": "सिंक करने का प्रयास", - "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} of ${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}", - "extracted_address_content": "आपको धनराशि भेजी जाएगी\n${recipient_name}", - "card_address": "पता:", - "buy": "खरीदें", - "sell": "बेचना", - "placeholder_transactions": "आपके लेनदेन यहां प्रदर्शित होंगे", - "placeholder_contacts": "आपके संपर्क यहां प्रदर्शित होंगे", - "template": "खाका", - "confirm_delete_template": "यह क्रिया इस टेम्पलेट को हटा देगी। क्या आप जारी रखना चाहते हैं?", - "confirm_delete_wallet": "यह क्रिया इस वॉलेट को हटा देगी। क्या आप जारी रखना चाहते हैं?", - "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", - "trusted": "भरोसा", - "color_theme": "रंग विषय", - "light_theme": "रोशनी", - "bright_theme": "उज्ज्वल", - "dark_theme": "अंधेरा", - "enter_your_note": "अपना नोट दर्ज करें ...", - "note_optional": "नोट (वैकल्पिक)", - "note_tap_to_change": "नोट (टैप टू चेंज)", - "view_in_block_explorer": "View in Block Explorer", - "view_transaction_on": "View Transaction on ", - "transaction_key": "लेन-देन की", - "confirmations": "पुष्टिकरण", - "recipient_address": "प्राप्तकर्ता का पता", - "extra_id": "अतिरिक्त आईडी:", - "destination_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 ट्रांजेक्शन भेजते समय मेमो आईडी निर्दिष्ट करना न भूलें", - "xrp_extra_info": "एक्सचेंज के लिए एक्सआरपी लेनदेन भेजते समय कृपया गंतव्य टैग निर्दिष्ट करना न भूलें", - "exchange_incorrect_current_wallet_for_xmr": "यदि आप अपने केक वॉलेट मोनेरो बैलेंस से एक्सएमआर का आदान-प्रदान करना चाहते हैं, तो कृपया अपने मोनेरो वॉलेट में जाएं।", - "confirmed": "पुष्टि की गई शेष राशिी", - "unconfirmed": "अपुष्ट शेष राशि", - "displayable": "प्रदर्शन योग्य", - "submit_request": "एक अनुरोध सबमिट करें", - "buy_alert_content": "वर्तमान में हम केवल बिटकॉइन, एथेरियम, लाइटकॉइन और मोनेरो की खरीद का समर्थन करते हैं। कृपया अपना बिटकॉइन, एथेरियम, लाइटकॉइन, या मोनेरो वॉलेट बनाएं या उस पर स्विच करें।", - "sell_alert_content": "हम वर्तमान में केवल बिटकॉइन, एथेरियम और लाइटकॉइन की बिक्री का समर्थन करते हैं। कृपया अपना बिटकॉइन, एथेरियम या लाइटकॉइन वॉलेट बनाएं या उसमें स्विच करें।", - "outdated_electrum_wallet_description": "केक में बनाए गए नए बिटकॉइन वॉलेट में अब 24-शब्द का बीज है। यह अनिवार्य है कि आप एक नया बिटकॉइन वॉलेट बनाएं और अपने सभी फंड को नए 24-शब्द वाले वॉलेट में स्थानांतरित करें, और 12-शब्द बीज वाले वॉलेट का उपयोग करना बंद करें। कृपया अपने धन को सुरक्षित करने के लिए इसे तुरंत करें।", - "understand": "मुझे समझ", - "apk_update": "APK अद्यतन", - "buy_bitcoin": "बिटकॉइन खरीदें", - "buy_with": "के साथ खरीदें", - "moonpay_alert_text": "राशि का मूल्य अधिक है या करने के लिए बराबर होना चाहिए ${minAmount} ${fiatCurrency}", - "outdated_electrum_wallet_receive_warning": "अगर इस वॉलेट में 12 शब्दों का बीज है और इसे केक में बनाया गया है, तो इस वॉलेट में बिटकॉइन जमा न करें। इस वॉलेट में स्थानांतरित किया गया कोई भी बीटीसी खो सकता है। एक नया 24-शब्द वॉलेट बनाएं (ऊपर दाईं ओर स्थित मेनू पर टैप करें, वॉलेट चुनें, नया वॉलेट बनाएं चुनें, फिर बिटकॉइन चुनें) और तुरंत अपना बीटीसी वहां ले जाएं। केक से नए (24-शब्द) बीटीसी वॉलेट सुरक्षित हैं", - "do_not_show_me": "मुझे यह फिर न दिखाएं", - "unspent_coins_title": "खर्च न किए गए सिक्के", - "unspent_coins_details_title": "अव्ययित सिक्कों का विवरण", - "freeze": "फ्रीज", - "frozen": "जमा हुआ", - "coin_control": "सिक्का नियंत्रण (वैकल्पिक)", - "address_detected": "पता लग गया", - "address_from_domain": "यह पता ${domain} से है Unstoppable Domains", - "add_receiver": "एक और रिसीवर जोड़ें (वैकल्पिक)", - "manage_yats": "Yats प्रबंधित करें", - "yat_alert_title": "के साथ अधिक आसानी से क्रिप्टो भेजें और प्राप्त करें Yat", - "yat_alert_content": "Cake Wallet उपयोगकर्ता अब अपनी सभी पसंदीदा मुद्राओं को एक-एक तरह के इमोजी-आधारित उपयोगकर्ता नाम के साथ भेज और प्राप्त कर सकते हैं।", - "get_your_yat": "अपना प्राप्त करें Yat", - "connect_an_existing_yat": "मौजूदा Yat कनेक्ट करें", - "yat_address": "Yat पता", - "yat": "Yat", - "connect_yats": "कनेक्ट Yats", - "address_from_yat": "यह पता ${emoji} से है Yat", - "yat_error": "Yat त्रुटि", - "yat_error_content": "इसके साथ कोई पता लिंक नहीं है Yat. कोई दूसरा आज़माएं Yat", - "choose_address": "\n\nकृपया पता चुनें:", - "yat_popup_title": "आपका वॉलेट पता इमोजी किया जा सकता है।", - "yat_popup_content": "अब आप क्रिप्टो भेज और प्राप्त कर सकते हैं Cake Wallet अपने Yat के साथ - एक छोटा, इमोजी-आधारित उपयोगकर्ता नाम। सेटिंग स्क्रीन पर किसी भी समय Yats को प्रबंधित करें", - "second_intro_title": "उन सभी पर राज करने के लिए एक इमोजी पता", - "second_intro_content": "आपका Yat एक अद्वितीय इमोजी पता है जो आपकी सभी मुद्राओं के लिए आपके सभी लंबे हेक्साडेसिमल पतों को बदल देता है।", - "third_intro_title": "Yat दूसरों के साथ अच्छा खेलता है", - "third_intro_content": "Yats Cake Wallet के बाहर भी रहता है। धरती पर किसी भी वॉलेट पते को Yat से बदला जा सकता है!", - "learn_more": "और अधिक जानें", - "search": "खोज", - "search_language": "भाषा खोजें", - "search_currency": "मुद्रा खोजें", - "new_template": "नया टेम्पलेट", - "electrum_address_disclaimer": "हर बार जब आप एक का उपयोग करते हैं तो हम नए पते उत्पन्न करते हैं, लेकिन पिछले पते काम करना जारी रखते हैं", - "wallet_name_exists": "उस नाम वाला वॉलेट पहले से मौजूद है", - "market_place": "मार्केटप्लेस", - "cake_pay_title": "केक पे गिफ्ट कार्ड्स", - "cake_pay_subtitle": "रियायती उपहार कार्ड खरीदें (केवल यूएसए)", - "cake_pay_web_cards_title": "केक भुगतान वेब कार्ड", - "cake_pay_web_cards_subtitle": "दुनिया भर में प्रीपेड कार्ड और गिफ्ट कार्ड खरीदें", - "about_cake_pay": "केक पे आपको वर्चुअल संपत्ति के साथ आसानी से उपहार कार्ड खरीदने की अनुमति देता है, जिसे संयुक्त राज्य में 150,000 से अधिक व्यापारियों पर तुरंत खर्च किया जा सकता है।", - "cake_pay_account_note": "कार्ड देखने और खरीदने के लिए केवल एक ईमेल पते के साथ साइन अप करें। कुछ छूट पर भी उपलब्ध हैं!", - "ready_have_account": "क्या आपके पास पहले से ही एक खाता है?", - "create_account": "खाता बनाएं", - "privacy_policy": "गोपनीयता नीति", - "welcome_to_cakepay": "केकपे में आपका स्वागत है!", - "sign_up": "साइन अप करें", - "forgot_password": "पासवर्ड भूल गए", - "reset_password": "पासवर्ड रीसेट करें", - "gift_cards": "उपहार कार्ड", - "setup_your_debit_card": "अपना डेबिट कार्ड सेट करें", - "no_id_required": "कोई आईडी आवश्यक नहीं है। टॉप अप करें और कहीं भी खर्च करें", - "how_to_use_card": "इस कार्ड का उपयोग कैसे करें", - "purchase_gift_card": "गिफ्ट कार्ड खरीदें", - "verification": "सत्यापन", - "fill_code": "कृपया अपने ईमेल पर प्रदान किया गया सत्यापन कोड भरें", - "didnt_get_code": "कोड नहीं मिला?", - "resend_code": "कृपया इसे फिर से भेजें", - "debit_card": "डेबिट कार्ड", - "cakepay_prepaid_card": "केकपे प्रीपेड डेबिट कार्ड", - "no_id_needed": "कोई आईडी नहीं चाहिए!", - "frequently_asked_questions": "अक्सर पूछे जाने वाले प्रश्न", - "debit_card_terms": "इस डिजिटल वॉलेट में आपके भुगतान कार्ड नंबर (और आपके भुगतान कार्ड नंबर से संबंधित क्रेडेंशियल) का भंडारण और उपयोग भुगतान कार्ड जारीकर्ता के साथ लागू कार्डधारक समझौते के नियमों और शर्तों के अधीन है, जैसा कि प्रभावी है समय - समय पर।", - "please_reference_document": "कृपया अधिक जानकारी के लिए नीचे दिए गए दस्तावेज़ देखें।", - "cardholder_agreement": "कार्डधारक अनुबंध", - "e_sign_consent": "ई-साइन सहमति", - "agree_and_continue": "सहमत और जारी रखें", - "email_address": "ईमेल पता", - "agree_to": "खाता बनाकर आप इससे सहमत होते हैं ", - "and": "और", - "enter_code": "कोड दर्ज करें", - "congratulations": "बधाई!", - "you_now_have_debit_card": "अब आपके पास डेबिट कार्ड है", - "min_amount": "न्यूनतम: ${value}", - "max_amount": "अधिकतम: ${value}", - "enter_amount": "राशि दर्ज करें", - "billing_address_info": "यदि बिलिंग पता मांगा जाए, तो अपना शिपिंग पता प्रदान करें", - "order_physical_card": "फिजिकल कार्ड ऑर्डर करें", - "add_value": "मूल्य जोड़ें", - "activate": "सक्रिय करें", - "get_a": "एक प्राप्त करें", - "digital_and_physical_card": "डिजिटल और भौतिक प्रीपेड डेबिट कार्ड", - "get_card_note": " कि आप डिजिटल मुद्राओं के साथ पुनः लोड कर सकते हैं। कोई अतिरिक्त जानकारी की आवश्यकता नहीं है!", - "signup_for_card_accept_terms": "कार्ड के लिए साइन अप करें और शर्तें स्वीकार करें।", - "add_fund_to_card": "कार्ड में प्रीपेड धनराशि जोड़ें (${value} तक)", - "use_card_info_two": "डिजिटल मुद्राओं में नहीं, प्रीपेड खाते में रखे जाने पर निधियों को यूएसडी में बदल दिया जाता है।", - "use_card_info_three": "डिजिटल कार्ड का ऑनलाइन या संपर्क रहित भुगतान विधियों के साथ उपयोग करें।", - "optionally_order_card": "वैकल्पिक रूप से एक भौतिक कार्ड ऑर्डर करें।", - "hide_details": "विवरण छुपाएं", - "show_details": "विवरण दिखाएं", - "upto": "${value} तक", - "discount": "${value}% बचाएं", - "gift_card_amount": "गिफ्ट कार्ड राशि", - "bill_amount": "बिल राशि", - "you_pay": "आप भुगतान करते हैं", - "tip": "टिप:", - "custom": "कस्टम", - "by_cake_pay": "केकपे द्वारा", - "expires": "समाप्त हो जाता है", - "mm": "एमएम", - "yy": "वाईवाई", - "online": "ऑनलाइन", - "offline": "ऑफ़लाइन", - "gift_card_number": "गिफ्ट कार्ड नंबर", - "pin_number": "पिन नंबर", - "total_saving": "कुल बचत", - "last_30_days": "पिछले 30 दिन", - "avg_savings": "औसत बचत", - "view_all": "सभी देखें", - "active_cards": "सक्रिय कार्ड", - "delete_account": "खाता हटाएं", - "cards": "कार्ड", - "active": "सक्रिय", - "redeemed": "रिडीम किया गया", - "gift_card_balance_note": "गिफ्ट कार्ड शेष राशि के साथ यहां दिखाई देंगे", - "gift_card_redeemed_note": "आपके द्वारा भुनाए गए उपहार कार्ड यहां दिखाई देंगे", - "logout": "लॉगआउट", - "add_tip": "टिप जोड़ें", - "percentageOf": "${amount} का", - "is_percentage": "है", - "search_category": "खोज श्रेणी", - "mark_as_redeemed": "रिडीम किए गए के रूप में चिह्नित करें", - "more_options": "और विकल्प", - "awaiting_payment_confirmation": "भुगतान की पुष्टि की प्रतीक्षा में", - "transaction_sent_notice": "अगर 1 मिनट के बाद भी स्क्रीन आगे नहीं बढ़ती है, तो ब्लॉक एक्सप्लोरर और अपना ईमेल देखें।", - "agree": "सहमत", - "in_store": "स्टोर में", - "generating_gift_card": "गिफ्ट कार्ड जनरेट कर रहा है", - "Payment_was_received": "आपका भुगतान प्राप्त हो गया था।", - "proceed_after_one_minute": "यदि 1 मिनट के बाद भी स्क्रीन आगे नहीं बढ़ती है, तो अपना ईमेल देखें।", - "order_id": "ऑर्डर आईडी", - "gift_card_is_generated": "गिफ्ट कार्ड जनरेट हुआ", - "open_gift_card": "गिफ्ट कार्ड खोलें", - "contact_support": "सहायता से संपर्क करें", - "gift_cards_unavailable": "उपहार कार्ड इस समय केवल मोनेरो, बिटकॉइन और लिटकोइन के माध्यम से खरीदने के लिए उपलब्ध हैं", - "background_sync_mode": "बैकग्राउंड सिंक मोड", - "sync_all_wallets": "सभी वॉलेट सिंक करें", - "introducing_cake_pay": "परिचय Cake Pay!", - "cake_pay_learn_more": "ऐप में उपहार कार्ड तुरंत खरीदें और रिडीम करें!\nअधिक जानने के लिए बाएं से दाएं स्वाइप करें।", + "authenticated": "प्रमाणीकृत", + "authentication": "प्रमाणीकरण", + "auto_generate_subaddresses": "स्वचालित रूप से उप-पते उत्पन्न करें", "automatic": "स्वचालित", - "fixed_pair_not_supported": "यह निश्चित जोड़ी चयनित एक्सचेंजों के साथ समर्थित नहीं है", - "variable_pair_not_supported": "यह परिवर्तनीय जोड़ी चयनित एक्सचेंजों के साथ समर्थित नहीं है", - "none_of_selected_providers_can_exchange": "चयनित प्रदाताओं में से कोई भी इस एक्सचेंज को नहीं बना सकता", - "choose_one": "एक का चयन", - "choose_from_available_options": "उपलब्ध विकल्पों में से चुनें:", - "custom_redeem_amount": "कस्टम रिडीम राशि", - "add_custom_redemption": "कस्टम रिडेम्पशन जोड़ें", - "remaining": "शेष", - "delete_wallet": "वॉलेट हटाएं", - "delete_wallet_confirm_message": "क्या आप वाकई ${wallet_name} वॉलेट हटाना चाहते हैं?", - "low_fee": "कम शुल्क", - "low_fee_alert": "आप वर्तमान में कम नेटवर्क शुल्क प्राथमिकता का उपयोग कर रहे हैं। यह लंबे इंतजार, अलग-अलग दरों या रद्द किए गए ट्रेडों का कारण बन सकता है। हम बेहतर अनुभव के लिए अधिक शुल्क निर्धारित करने की सलाह देते हैं।", - "ignor": "नज़रअंदाज़ करना", - "use_suggested": "सुझाए गए का प्रयोग करें", - "do_not_share_warning_text": "समर्थन सहित, इन्हें किसी और के साथ साझा न करें।\n\nआपके धन की चोरी हो सकती है और होगी!", - "help": "मदद करना", - "all_transactions": "सभी लेन - देन", - "all_trades": "सभी व्यापार", - "connection_sync": "कनेक्शन और सिंक", - "security_and_backup": "सुरक्षा और बैकअप", - "create_backup": "बैकअप बनाएँ", - "privacy_settings": "गोपनीयता सेटिंग्स", - "privacy": "गोपनीयता", - "display_settings": "प्रदर्शन सेटिंग्स", - "other_settings": "अन्य सेटिंग्स", - "require_pin_after": "इसके बाद पिन आवश्यक है", - "always": "हमेशा", - "minutes_to_pin_code": "${minute} मिनट", - "disable_exchange": "एक्सचेंज अक्षम करें", - "advanced_settings": "एडवांस सेटिंग", - "settings_can_be_changed_later": "इन सेटिंग्स को बाद में ऐप सेटिंग में बदला जा सकता है", - "add_custom_node": "नया कस्टम नोड जोड़ें", - "disable_fiat": "िएट को अक्षम करें", - "fiat_api": "फिएट पैसे API", - "disabled": "अक्षम", - "enabled": "सक्रिय", - "tor_only": "Tor केवल", - "unmatched_currencies": "आपके वर्तमान वॉलेट की मुद्रा स्कैन किए गए क्यूआर से मेल नहीं खाती", - "orbot_running_alert": "कृपया सुनिश्चित करें कि इस नोड से कनेक्ट करने से पहले Orbot चल रहा है।", - "contact_list_contacts": "संपर्क", - "contact_list_wallets": "मेरा बटुआ", - "bitcoin_payments_require_1_confirmation": "बिटकॉइन भुगतान के लिए 1 पुष्टिकरण की आवश्यकता होती है, जिसमें 20 मिनट या अधिक समय लग सकता है। आपके धैर्य के लिए धन्यवाद! भुगतान की पुष्टि होने पर आपको ईमेल किया जाएगा।", - "send_to_this_address": "इस पते पर ${currency} ${tag}भेजें", - "arrive_in_this_address": "${currency} ${tag}इस पते पर पहुंचेंगे", - "do_not_send": "मत भेजो", - "error_dialog_content": "ओह, हमसे कुछ गड़बड़ी हुई है.\n\nएप्लिकेशन को बेहतर बनाने के लिए कृपया क्रैश रिपोर्ट हमारी सहायता टीम को भेजें।", - "scan_qr_code": "स्कैन क्यू आर कोड", - "cold_or_recover_wallet": "कोल्ड वॉलेट जोड़ें या पेपर वॉलेट पुनर्प्राप्त करें", - "please_wait": "कृपया प्रतीक्षा करें", - "sweeping_wallet": "स्वीपिंग वॉलेट", - "sweeping_wallet_alert": "इसमें अधिक समय नहीं लगना चाहिए। इस स्क्रीन को न छोड़ें या स्वैप्ट फंड खो सकते हैं", - "decimal_places_error": "बहुत अधिक दशमलव स्थान", - "edit_node": "नोड संपादित करें", - "invoice_details": "चालान विवरण", - "donation_link_details": "दान लिंक विवरण", - "anonpay_description": "${type} उत्पन्न करें। प्राप्तकर्ता किसी भी समर्थित क्रिप्टोकरेंसी के साथ ${method} कर सकता है, और आपको इस वॉलेट में धन प्राप्त होगा।", - "create_invoice": "इनवॉयस बनाएँ", - "create_donation_link": "दान लिंक बनाएं", - "optional_email_hint": "वैकल्पिक प्राप्तकर्ता सूचना ईमेल", - "optional_description": "वैकल्पिक विवरण", - "optional_name": "वैकल्पिक प्राप्तकर्ता नाम", - "clearnet_link": "क्लियरनेट लिंक", - "onion_link": "प्याज का लिंक", - "settings": "समायोजन", - "sell_monero_com_alert_content": "मोनेरो बेचना अभी तक समर्थित नहीं है", - "error_text_input_below_minimum_limit": "राशि न्यूनतम से कम है", - "error_text_input_above_maximum_limit": "राशि अधिकतम से अधिक है", - "show_market_place": "बाज़ार दिखाएँ", - "prevent_screenshots": "स्क्रीनशॉट और स्क्रीन रिकॉर्डिंग रोकें", - "profile": "प्रोफ़ाइल", - "close": "बंद करना", - "modify_2fa": "केक 2FA संशोधित करें", - "disable_cake_2fa": "केक 2FA अक्षम करें", - "question_to_disable_2fa": "क्या आप सुनिश्चित हैं कि आप Cake 2FA को अक्षम करना चाहते हैं? वॉलेट और कुछ कार्यों तक पहुँचने के लिए अब 2FA कोड की आवश्यकता नहीं होगी।", - "disable": "अक्षम करना", - "setup_2fa": "सेटअप केक 2FA", - "verify_with_2fa": "केक 2FA के साथ सत्यापित करें", - "totp_code": "टीओटीपी कोड", - "please_fill_totp": "कृपया अपने दूसरे डिवाइस पर मौजूद 8 अंकों का कोड भरें", - "totp_2fa_success": "सफलता! इस वॉलेट के लिए Cake 2FA सक्षम है। यदि आप वॉलेट एक्सेस खो देते हैं तो अपने स्मरक बीज को सहेजना याद रखें।", - "totp_verification_success": "सत्यापन सफल!", - "totp_2fa_failure": "गलत कोड़। कृपया एक अलग कोड का प्रयास करें या एक नई गुप्त कुंजी उत्पन्न करें। 8-अंकीय कोड और SHA512 का समर्थन करने वाले संगत 2FA ऐप का उपयोग करें।", - "enter_totp_code": "कृपया TOTP कोड दर्ज करें।", - "add_secret_code": "या, इस गुप्त कोड को प्रमाणक ऐप में जोड़ें", - "totp_secret_code": "टीओटीपी गुप्त कोड", - "setup_2fa_text": "केक 2FA दूसरे प्रमाणीकरण कारक के रूप में TOTP का उपयोग करके काम करता है।\n\nकेक 2FA के TOTP को SHA-512 और 8 अंकों के समर्थन की आवश्यकता है; इससे अधिक सुरक्षा मिलती है. अधिक जानकारी और समर्थित ऐप्स गाइड में पाए जा सकते हैं।", - "setup_totp_recommended": "सेटअप टीओटीपी", - "disable_buy": "खरीद कार्रवाई अक्षम करें", - "disable_sell": "बेचने की कार्रवाई अक्षम करें", - "cake_2fa_preset": "केक 2एफए प्रीसेट", - "monero_dark_theme": "मोनेरो डार्क थीम", + "available_balance": "उपलब्ध शेष राशि", + "available_balance_description": "उपलब्ध शेष या ”पुष्टिकृत शेष”, वे धनराशि हैं जिन्हें तुरंत खर्च किया जा सकता है। यदि फंड निचले बैलेंस में दिखाई देते हैं, लेकिन शीर्ष बैलेंस में नहीं, तो आपको आने वाले फंड के लिए अधिक नेटवर्क पुष्टिकरण प्राप्त करने के लिए कुछ मिनट इंतजार करना होगा। अधिक पुष्टि मिलने के बाद, वे खर्च करने योग्य हो जाएंगे।", + "avg_savings": "औसत बचत", + "awaitDAppProcessing": "कृपया डीएपी की प्रोसेसिंग पूरी होने तक प्रतीक्षा करें।", + "awaiting_payment_confirmation": "भुगतान की पुष्टि की प्रतीक्षा में", + "background_sync_mode": "बैकग्राउंड सिंक मोड", + "backup": "बैकअप", + "backup_file": "बैकअपफ़ाइल", + "backup_password": "बैकअप पासवर्ड", + "balance_page": "बैलेंस पेज", + "bill_amount": "बिल राशि", + "billing_address_info": "यदि बिलिंग पता मांगा जाए, तो अपना शिपिंग पता प्रदान करें", + "biometric_auth_reason": "प्रमाणित करने के लिए अपने फ़िंगरप्रिंट को स्कैन करें", "bitcoin_dark_theme": "बिटकॉइन डार्क थीम", "bitcoin_light_theme": "बिटकॉइन लाइट थीम", - "high_contrast_theme": "उच्च कंट्रास्ट थीम", - "matrix_green_dark_theme": "मैट्रिक्स ग्रीन डार्क थीम", - "monero_light_theme": "मोनेरो लाइट थीम", - "auto_generate_subaddresses": "स्वचालित रूप से उप-पते उत्पन्न करें", - "narrow": "सँकरा", - "normal": "सामान्य", - "aggressive": "ज्यादा", - "require_for_assessing_wallet": "वॉलेट तक पहुँचने के लिए आवश्यकता है", - "require_for_sends_to_non_contacts": "गैर-संपर्कों को भेजने की आवश्यकता", - "require_for_sends_to_contacts": "संपर्कों को भेजने के लिए आवश्यक है", - "require_for_sends_to_internal_wallets": "आंतरिक वॉलेट में भेजने की आवश्यकता है", - "require_for_exchanges_to_internal_wallets": "आंतरिक वॉलेट में आदान-प्रदान की आवश्यकता है", - "require_for_adding_contacts": "संपर्क जोड़ने के लिए आवश्यकता है", - "require_for_creating_new_wallets": "नए वॉलेट बनाने की आवश्यकता है", - "require_for_all_security_and_backup_settings": "सभी सुरक्षा और बैकअप सेटिंग्स की आवश्यकता है", - "available_balance_description": "उपलब्ध शेष या ”पुष्टिकृत शेष”, वे धनराशि हैं जिन्हें तुरंत खर्च किया जा सकता है। यदि फंड निचले बैलेंस में दिखाई देते हैं, लेकिन शीर्ष बैलेंस में नहीं, तो आपको आने वाले फंड के लिए अधिक नेटवर्क पुष्टिकरण प्राप्त करने के लिए कुछ मिनट इंतजार करना होगा। अधिक पुष्टि मिलने के बाद, वे खर्च करने योग्य हो जाएंगे।", - "syncing_wallet_alert_title": "आपका वॉलेट सिंक हो रहा है", - "syncing_wallet_alert_content": "आपकी शेष राशि और लेनदेन सूची तब तक पूरी नहीं हो सकती जब तक कि शीर्ष पर \"सिंक्रनाइज़्ड\" न लिखा हो। अधिक जानने के लिए क्लिक/टैप करें।", - "home_screen_settings": "होम स्क्रीन सेटिंग्स", - "sort_by": "इसके अनुसार क्रमबद्ध करें", - "search_add_token": "खोजें/टोकन जोड़ें", - "edit_token": "टोकन संपादित करें", - "warning": "चेतावनी", - "add_token_warning": "स्कैमर्स के निर्देशानुसार टोकन संपादित या जोड़ें न करें।\nहमेशा प्रतिष्ठित स्रोतों से टोकन पते की पुष्टि करें!", - "add_token_disclaimer_check": "मैंने एक प्रतिष्ठित स्रोत का उपयोग करके टोकन अनुबंध पते और जानकारी की पुष्टि की है। दुर्भावनापूर्ण या गलत जानकारी जोड़ने से धन की हानि हो सकती है।", - "token_contract_address": "टोकन अनुबंध पता", - "token_name": "टोकन नाम जैसे: टीथर", - "token_symbol": "टोकन प्रतीक जैसे: यूएसडीटी", - "token_decimal": "सांकेतिक दशमलव", - "field_required": "यह फ़ील्ड आवश्यक है", - "pin_at_top": "शीर्ष पर ${token} पिन करें", - "invalid_input": "अमान्य निवेश", - "fiat_balance": "फिएट बैलेंस", - "gross_balance": "सकल संतुलन", - "alphabetical": "वर्णमाला", - "generate_name": "नाम जनरेट करें", - "balance_page": "बैलेंस पेज", - "share": "शेयर करना", - "slidable": "फिसलने लायक", - "manage_nodes": "नोड्स प्रबंधित करें", - "etherscan_history": "इथरस्कैन इतिहास", - "template_name": "टेम्पलेट नाम", + "bitcoin_payments_require_1_confirmation": "बिटकॉइन भुगतान के लिए 1 पुष्टिकरण की आवश्यकता होती है, जिसमें 20 मिनट या अधिक समय लग सकता है। आपके धैर्य के लिए धन्यवाद! भुगतान की पुष्टि होने पर आपको ईमेल किया जाएगा।", + "Blocks_remaining": "${status} शेष रहते हैं", + "bright_theme": "उज्ज्वल", + "buy": "खरीदें", + "buy_alert_content": "वर्तमान में हम केवल बिटकॉइन, एथेरियम, लाइटकॉइन और मोनेरो की खरीद का समर्थन करते हैं। कृपया अपना बिटकॉइन, एथेरियम, लाइटकॉइन, या मोनेरो वॉलेट बनाएं या उस पर स्विच करें।", + "buy_bitcoin": "बिटकॉइन खरीदें", + "buy_provider_unavailable": "वर्तमान में प्रदाता अनुपलब्ध है।", + "buy_with": "के साथ खरीदें", + "by_cake_pay": "केकपे द्वारा", + "cake_2fa_preset": "केक 2एफए प्रीसेट", + "cake_pay_account_note": "कार्ड देखने और खरीदने के लिए केवल एक ईमेल पते के साथ साइन अप करें। कुछ छूट पर भी उपलब्ध हैं!", + "cake_pay_learn_more": "ऐप में उपहार कार्ड तुरंत खरीदें और रिडीम करें!\nअधिक जानने के लिए बाएं से दाएं स्वाइप करें।", + "cake_pay_subtitle": "रियायती उपहार कार्ड खरीदें (केवल यूएसए)", + "cake_pay_title": "केक पे गिफ्ट कार्ड्स", + "cake_pay_web_cards_subtitle": "दुनिया भर में प्रीपेड कार्ड और गिफ्ट कार्ड खरीदें", + "cake_pay_web_cards_title": "केक भुगतान वेब कार्ड", + "cake_wallet": "Cake Wallet", + "cakepay_prepaid_card": "केकपे प्रीपेड डेबिट कार्ड", + "camera_consent": "आपके कैमरे का उपयोग ${provider} द्वारा पहचान उद्देश्यों के लिए एक छवि कैप्चर करने के लिए किया जाएगा। विवरण के लिए कृपया उनकी गोपनीयता नीति जांचें।", + "camera_permission_is_required": "कैमरे की अनुमति आवश्यक है.\nकृपया इसे ऐप सेटिंग से सक्षम करें।", + "cancel": "रद्द करना", + "card_address": "पता:", + "cardholder_agreement": "कार्डधारक अनुबंध", + "cards": "कार्ड", + "chains": "चेन", + "change": "परिवर्तन", + "change_backup_password_alert": "आपकी पिछली बैकअप फाइलें नए बैकअप पासवर्ड के साथ आयात करने के लिए उपलब्ध नहीं होंगी। नए बैकअप पासवर्ड का उपयोग केवल नई बैकअप फ़ाइलों के लिए किया जाएगा। क्या आप वाकई बैकअप पासवर्ड बदलना चाहते हैं?", + "change_currency": "मुद्रा परिवर्तन करें", + "change_current_node": "क्या आप वर्तमान नोड को बदलना सुनिश्चित करते हैं ${node}?", + "change_current_node_title": "वर्तमान नोड बदलें", + "change_exchange_provider": "एक्सचेंज प्रदाता बदलें", + "change_language": "भाषा बदलो", + "change_language_to": "को भाषा बदलें ${language}?", + "change_password": "पासवर्ड बदलें", "change_rep": "प्रतिनिधि बदलें", "change_rep_message": "क्या आप वाकई प्रतिनिधियों को बदलना चाहते हैं?", - "unsupported_asset": "हम इस संपत्ति के लिए इस कार्रवाई का समर्थन नहीं करते हैं. कृपया समर्थित परिसंपत्ति प्रकार का वॉलेट बनाएं या उस पर स्विच करें।", - "manage_pow_nodes": "PoW नोड्स प्रबंधित करें", - "support_title_live_chat": "लाइव सहायता", - "support_description_live_chat": "मुक्त और तेजी से! प्रशिक्षित सहायता प्रतिनिधि सहायता के लिए उपलब्ध हैं", - "support_title_guides": "केक वॉलेट गाइड", - "support_description_guides": "सामान्य मुद्दों के लिए प्रलेखन और समर्थन", - "support_title_other_links": "अन्य समर्थन लिंक", - "support_description_other_links": "हमारे समुदायों में शामिल हों या अन्य तरीकों के माध्यम से हमारे साथी तक पहुंचें", + "change_rep_successful": "सफलतापूर्वक बदलकर प्रतिनिधि", + "change_wallet_alert_content": "क्या आप करंट वॉलेट को बदलना चाहते हैं ${wallet_name}?", + "change_wallet_alert_title": "वर्तमान बटुआ बदलें", + "choose_account": "खाता चुनें", + "choose_address": "\n\nकृपया पता चुनें:", "choose_derivation": "वॉलेट व्युत्पत्ति चुनें", - "new_first_wallet_text": "आसानी से अपनी क्रिप्टोक्यूरेंसी को सुरक्षित रखें", - "select_destination": "कृपया बैकअप फ़ाइल के लिए गंतव्य का चयन करें।", - "save_to_downloads": "डाउनलोड में सहेजें", - "select_buy_provider_notice": "ऊपर एक खरीद प्रदाता का चयन करें। आप इस स्क्रीन को ऐप सेटिंग्स में अपना डिफ़ॉल्ट बाय प्रदाता सेट करके छोड़ सकते हैं।", - "onramper_option_description": "जल्दी से कई भुगतान विधियों के साथ क्रिप्टो खरीदें। अधिकांश देशों में उपलब्ध है। फैलता है और फीस अलग -अलग होती है।", + "choose_from_available_options": "उपलब्ध विकल्पों में से चुनें:", + "choose_one": "एक का चयन", + "choose_relay": "कृपया उपयोग करने के लिए एक रिले चुनें", + "choose_wallet_currency": "कृपया बटुआ मुद्रा चुनें:", + "clear": "स्पष्ट", + "clearnet_link": "क्लियरनेट लिंक", + "close": "बंद करना", + "coin_control": "सिक्का नियंत्रण (वैकल्पिक)", + "cold_or_recover_wallet": "कोल्ड वॉलेट जोड़ें या पेपर वॉलेट पुनर्प्राप्त करें", + "color_theme": "रंग विषय", + "commit_transaction_amount_fee": "लेन-देन करें\nरकम: ${amount}\nशुल्क: ${fee}", + "confirm": "की पुष्टि करें", + "confirm_delete_template": "यह क्रिया इस टेम्पलेट को हटा देगी। क्या आप जारी रखना चाहते हैं?", + "confirm_delete_wallet": "यह क्रिया इस वॉलेट को हटा देगी। क्या आप जारी रखना चाहते हैं?", + "confirm_sending": "भेजने की पुष्टि करें", + "confirmations": "पुष्टिकरण", + "confirmed": "पुष्टि की गई शेष राशिी", + "confirmed_tx": "की पुष्टि", + "congratulations": "बधाई!", + "connect_an_existing_yat": "मौजूदा Yat कनेक्ट करें", + "connect_yats": "कनेक्ट Yats", + "connection_sync": "कनेक्शन और सिंक", + "connectWalletPrompt": "लेन-देन करने के लिए अपने वॉलेट को वॉलेटकनेक्ट से कनेक्ट करें", + "contact": "संपर्क करें", + "contact_list_contacts": "संपर्क", + "contact_list_wallets": "मेरा बटुआ", + "contact_name": "संपर्क नाम", + "contact_support": "सहायता से संपर्क करें", + "continue_text": "जारी रहना", + "contractName": "अनुबंध का नाम", + "contractSymbol": "अनुबंध चिह्न", + "copied_key_to_clipboard": "की नकल की ${key} क्लिपबोर्ड पर", + "copied_to_clipboard": "क्लिपबोर्ड पर नकल", + "copy": "प्रतिलिपि", + "copy_address": "पता कॉपी करें", + "copy_id": "प्रतिलिपि ID", + "copyWalletConnectLink": "dApp से वॉलेटकनेक्ट लिंक को कॉपी करें और यहां पेस्ट करें", + "create_account": "खाता बनाएं", + "create_backup": "बैकअप बनाएँ", + "create_donation_link": "दान लिंक बनाएं", + "create_invoice": "इनवॉयस बनाएँ", + "create_new": "नया बटुआ बनाएँ", + "create_new_account": "नया खाता बनाएँ", + "creating_new_wallet": "नया बटुआ बनाना", + "creating_new_wallet_error": "त्रुटि: ${description}", + "creation_date": "निर्माण तिथि", + "custom": "कस्टम", + "custom_drag": "कस्टम (पकड़ और खींचें)", + "custom_redeem_amount": "कस्टम रिडीम राशि", + "dark_theme": "अंधेरा", + "debit_card": "डेबिट कार्ड", + "debit_card_terms": "इस डिजिटल वॉलेट में आपके भुगतान कार्ड नंबर (और आपके भुगतान कार्ड नंबर से संबंधित क्रेडेंशियल) का भंडारण और उपयोग भुगतान कार्ड जारीकर्ता के साथ लागू कार्डधारक समझौते के नियमों और शर्तों के अधीन है, जैसा कि प्रभावी है समय - समय पर।", + "decimal_places_error": "बहुत अधिक दशमलव स्थान", "default_buy_provider": "डिफ़ॉल्ट खरीद प्रदाता", - "ask_each_time": "हर बार पूछें", - "buy_provider_unavailable": "वर्तमान में प्रदाता अनुपलब्ध है।", - "signTransaction": "लेन-देन पर हस्ताक्षर करें", + "default_sell_provider": "डिफ़ॉल्ट विक्रय प्रदाता", + "delete": "हटाएं", + "delete_account": "खाता हटाएं", + "delete_wallet": "वॉलेट हटाएं", + "delete_wallet_confirm_message": "क्या आप वाकई ${wallet_name} वॉलेट हटाना चाहते हैं?", + "deleteConnectionConfirmationPrompt": "क्या आप वाकई कनेक्शन हटाना चाहते हैं?", + "descending": "अवरोही", + "description": "विवरण", + "destination_tag": "गंतव्य टैग:", + "dfx_option_description": "EUR और CHF के साथ क्रिप्टो खरीदें। अतिरिक्त केवाईसी के बिना 990€ तक। यूरोप में खुदरा और कॉर्पोरेट ग्राहकों के लिए", + "didnt_get_code": "कोड नहीं मिला?", + "digit_pin": "-अंक पिन", + "digital_and_physical_card": "डिजिटल और भौतिक प्रीपेड डेबिट कार्ड", + "disable": "अक्षम करना", + "disable_buy": "खरीद कार्रवाई अक्षम करें", + "disable_cake_2fa": "केक 2FA अक्षम करें", + "disable_exchange": "एक्सचेंज अक्षम करें", + "disable_fiat": "िएट को अक्षम करें", + "disable_sell": "बेचने की कार्रवाई अक्षम करें", + "disabled": "अक्षम", + "discount": "${value}% बचाएं", + "display_settings": "प्रदर्शन सेटिंग्स", + "displayable": "प्रदर्शन योग्य", + "do_not_have_enough_gas_asset": "वर्तमान ब्लॉकचेन नेटवर्क स्थितियों में लेनदेन करने के लिए आपके पास पर्याप्त ${currency} नहीं है। ब्लॉकचेन नेटवर्क शुल्क का भुगतान करने के लिए आपको अधिक ${currency} की आवश्यकता है, भले ही आप एक अलग संपत्ति भेज रहे हों।", + "do_not_send": "मत भेजो", + "do_not_share_warning_text": "समर्थन सहित, इन्हें किसी और के साथ साझा न करें।\n\nआपके धन की चोरी हो सकती है और होगी!", + "do_not_show_me": "मुझे यह फिर न दिखाएं", + "domain_looks_up": "डोमेन लुकअप", + "donation_link_details": "दान लिंक विवरण", + "e_sign_consent": "ई-साइन सहमति", + "edit": "संपादित करें", + "edit_backup_password": "बैकअप पासवर्ड संपादित करें", + "edit_node": "नोड संपादित करें", + "edit_token": "टोकन संपादित करें", + "electrum_address_disclaimer": "हर बार जब आप एक का उपयोग करते हैं तो हम नए पते उत्पन्न करते हैं, लेकिन पिछले पते काम करना जारी रखते हैं", + "email_address": "ईमेल पता", + "enabled": "सक्रिय", + "enter_amount": "राशि दर्ज करें", + "enter_backup_password": "यहां बैकअप पासवर्ड डालें", + "enter_code": "कोड दर्ज करें", + "enter_seed_phrase": "अपना बीज वाक्यांश दर्ज करें", + "enter_totp_code": "कृपया TOTP कोड दर्ज करें।", + "enter_your_note": "अपना नोट दर्ज करें ...", + "enter_your_pin": "अपना पिन दर्ज करो", + "enter_your_pin_again": "फिर से अपना पिन डालें", + "enterTokenID": "टोकन आईडी दर्ज करें", + "enterWalletConnectURI": "वॉलेटकनेक्ट यूआरआई दर्ज करें", + "error": "त्रुटि", + "error_dialog_content": "ओह, हमसे कुछ गड़बड़ी हुई है.\n\nएप्लिकेशन को बेहतर बनाने के लिए कृपया क्रैश रिपोर्ट हमारी सहायता टीम को भेजें।", + "error_text_account_name": "खाता नाम में केवल अक्षर, संख्याएं हो सकती हैं\nऔर 1 और 15 वर्णों के बीच लंबा होना चाहिए", + "error_text_address": "वॉलेट पता प्रकार के अनुरूप होना चाहिए\nक्रिप्टोकरेंसी का", + "error_text_amount": "राशि में केवल संख्याएँ हो सकती हैं", + "error_text_contact_name": "संपर्क नाम शामिल नहीं हो सकता ` , ' \" प्रतीकों\nऔर 1 और 32 वर्णों के बीच लंबा होना चाहिए", + "error_text_crypto_currency": "अंश अंकों की संख्या\n12 से कम या इसके बराबर होना चाहिए", + "error_text_fiat": "राशि का मूल्य उपलब्ध शेष राशि से अधिक नहीं हो सकता.\nअंश अंकों की संख्या कम या 2 के बराबर होनी चाहिए", + "error_text_input_above_maximum_limit": "राशि अधिकतम से अधिक है", + "error_text_input_below_minimum_limit": "राशि न्यूनतम से कम है", + "error_text_keys": "वॉलेट कीज़ में हेक्स में केवल 64 वर्ण हो सकते हैं", + "error_text_limits_loading_failed": "व्यापार ${provider} के लिए नहीं बनाया गया है। लोडिंग की सीमाएं विफल रहीं", + "error_text_maximum_limit": "व्यापार ${provider} के लिए नहीं बनाया गया है। राशि अधिक है तो अधिकतम: ${max} ${currency}", + "error_text_minimal_limit": "व्यापार ${provider} के लिए नहीं बनाया गया है। राशि कम है तो न्यूनतम: ${min} ${currency}", + "error_text_node_address": "कृपया एक IPv4 पता दर्ज करें", + "error_text_node_port": "नोड पोर्ट में केवल 0 और 65535 के बीच संख्याएँ हो सकती हैं", + "error_text_node_proxy_address": "कृपया दर्ज करें: <पोर्ट>, उदाहरण के लिए 127.0.0.1:9050", + "error_text_payment_id": "पेमेंट आईडी केवल हेक्स में 16 से 64 चार्ट तक हो सकती है", + "error_text_subaddress_name": "सबड्रेस नाम नहीं हो सकता` , ' \" प्रतीकों\nऔर 1 और 20 वर्णों के बीच लंबा होना चाहिए", + "error_text_template": "टेम्प्लेट का नाम और पता नहीं हो सकता ` , ' \" प्रतीकों\nऔर 1 और 106 वर्णों के बीच लंबा होना चाहिए", + "error_text_wallet_name": "वॉलेट नाम में केवल अक्षर, संख्याएं, _ - प्रतीक हो सकते हैं\nऔर 1 और 33 वर्णों के बीच लंबा होना चाहिए", + "error_text_xmr": "एक्सएमआर मूल्य उपलब्ध शेष राशि से अधिक नहीं हो सकता.\nअंश अंकों की संख्या 12 से कम या इसके बराबर होनी चाहिए", "errorGettingCredentials": "विफल: क्रेडेंशियल प्राप्त करते समय त्रुटि", "errorSigningTransaction": "लेन-देन पर हस्ताक्षर करते समय एक त्रुटि उत्पन्न हुई है", - "pairingInvalidEvent": "अमान्य ईवेंट युग्मित करना", - "chains": "चेन", - "methods": "तरीकों", - "events": "आयोजन", - "reject": "अस्वीकार करना", - "approve": "मंज़ूरी देना", - "expiresOn": "पर समय सीमा समाप्त", - "walletConnect": "वॉलेटकनेक्ट", - "nullURIError": "यूआरआई शून्य है", - "connectWalletPrompt": "लेन-देन करने के लिए अपने वॉलेट को वॉलेटकनेक्ट से कनेक्ट करें", - "newConnection": "नया कनेक्शन", - "activeConnectionsPrompt": "सक्रिय कनेक्शन यहां दिखाई देंगे", - "deleteConnectionConfirmationPrompt": "क्या आप वाकई कनेक्शन हटाना चाहते हैं?", + "estimated": "अनुमानित", + "etherscan_history": "इथरस्कैन इतिहास", "event": "आयोजन", - "successful": "सफल", - "wouoldLikeToConnect": "जुड़ना चाहेंगे", - "message": "संदेश", - "do_not_have_enough_gas_asset": "वर्तमान ब्लॉकचेन नेटवर्क स्थितियों में लेनदेन करने के लिए आपके पास पर्याप्त ${currency} नहीं है। ब्लॉकचेन नेटवर्क शुल्क का भुगतान करने के लिए आपको अधिक ${currency} की आवश्यकता है, भले ही आप एक अलग संपत्ति भेज रहे हों।", - "totp_auth_url": "TOTP प्रामाणिक यूआरएल", - "awaitDAppProcessing": "कृपया डीएपी की प्रोसेसिंग पूरी होने तक प्रतीक्षा करें।", - "copyWalletConnectLink": "dApp से वॉलेटकनेक्ट लिंक को कॉपी करें और यहां पेस्ट करें", - "enterWalletConnectURI": "वॉलेटकनेक्ट यूआरआई दर्ज करें", - "seed_key": "बीज कुंजी", - "enter_seed_phrase": "अपना बीज वाक्यांश दर्ज करें", - "change_rep_successful": "सफलतापूर्वक बदलकर प्रतिनिधि", - "add_contact": "संपर्क जोड़ें", + "events": "आयोजन", + "exchange": "अदला बदली", + "exchange_incorrect_current_wallet_for_xmr": "यदि आप अपने केक वॉलेट मोनेरो बैलेंस से एक्सएमआर का आदान-प्रदान करना चाहते हैं, तो कृपया अपने मोनेरो वॉलेट में जाएं।", + "exchange_new_template": "नया टेम्पलेट", "exchange_provider_unsupported": "${providerName} अब समर्थित नहीं है!", - "domain_looks_up": "डोमेन लुकअप", - "require_for_exchanges_to_external_wallets": "बाहरी वॉलेट में एक्सचेंज की आवश्यकता है", - "camera_permission_is_required": "कैमरे की अनुमति आवश्यक है.\nकृपया इसे ऐप सेटिंग से सक्षम करें।", - "switchToETHWallet": "कृपया एथेरियम वॉलेट पर स्विच करें और पुनः प्रयास करें", - "order_by": "द्वारा आदेश", - "creation_date": "निर्माण तिथि", + "exchange_result_confirm": "पुष्टि दबाकर, आप भेज रहे होंगे ${fetchingLabel} ${from} अपने बटुए से ${walletName} नीचे दिखाए गए पते पर। या आप अपने बाहरी वॉलेट से नीचे के पते पर भेज सकते हैं / क्यूआर कोड पर भेज सकते हैं।\n\nकृपया जारी रखने या राशि बदलने के लिए वापस जाने के लिए पुष्टि करें दबाएं.", + "exchange_result_description": "आपको अगले पृष्ठ पर दिखाए गए पते पर न्यूनतम ${fetchingLabel} ${from} भेजना होगा। यदि आप ${fetchingLabel} ${from} से कम राशि भेजते हैं तो यह परिवर्तित नहीं हो सकती है और इसे वापस नहीं किया जा सकता है।", + "exchange_result_write_down_ID": "*कृपया ऊपर दिखाए गए अपने ID को कॉपी या लिख लें.", + "exchange_result_write_down_trade_id": "जारी रखने के लिए कृपया ट्रेड ID की प्रतिलिपि बनाएँ या लिखें.", + "exchange_sync_alert_content": "कृपया प्रतीक्षा करें जब तक आपका बटुआ सिंक्रनाइज़ नहीं किया जाता है", + "expired": "समय सीमा समाप्त", + "expires": "समाप्त हो जाता है", + "expiresOn": "पर समय सीमा समाप्त", + "export_backup": "निर्यात बैकअप", + "extra_id": "अतिरिक्त आईडी:", + "extracted_address_content": "आपको धनराशि भेजी जाएगी\n${recipient_name}", + "failed_authentication": "प्रमाणीकरण विफल. ${state_error}", + "faq": "FAQ", + "fetching": "ला रहा है", + "fiat_api": "फिएट पैसे API", + "fiat_balance": "फिएट बैलेंस", + "field_required": "यह फ़ील्ड आवश्यक है", + "fill_code": "कृपया अपने ईमेल पर प्रदान किया गया सत्यापन कोड भरें", + "filter_by": "के द्वारा छनित", + "first_wallet_text": "Monero, Bitcoin, Ethereum, Litecoin, और Haven के लिए बहुत बढ़िया बटुआ", + "fixed_pair_not_supported": "यह निश्चित जोड़ी चयनित एक्सचेंजों के साथ समर्थित नहीं है", + "fixed_rate": "निर्धारित दर", + "fixed_rate_alert": "फिक्स्ड रेट मोड की जांच करने पर आप प्राप्त राशि दर्ज कर पाएंगे। क्या आप निश्चित दर मोड पर स्विच करना चाहते हैं?", + "forgot_password": "पासवर्ड भूल गए", + "freeze": "फ्रीज", + "frequently_asked_questions": "अक्सर पूछे जाने वाले प्रश्न", + "frozen": "जमा हुआ", + "full_balance": "पूर्ण संतुलन", + "generate_name": "नाम जनरेट करें", + "generating_gift_card": "गिफ्ट कार्ड जनरेट कर रहा है", + "get_a": "एक प्राप्त करें", + "get_card_note": " कि आप डिजिटल मुद्राओं के साथ पुनः लोड कर सकते हैं। कोई अतिरिक्त जानकारी की आवश्यकता नहीं है!", + "get_your_yat": "अपना प्राप्त करें Yat", + "gift_card_amount": "गिफ्ट कार्ड राशि", + "gift_card_balance_note": "गिफ्ट कार्ड शेष राशि के साथ यहां दिखाई देंगे", + "gift_card_is_generated": "गिफ्ट कार्ड जनरेट हुआ", + "gift_card_number": "गिफ्ट कार्ड नंबर", + "gift_card_redeemed_note": "आपके द्वारा भुनाए गए उपहार कार्ड यहां दिखाई देंगे", + "gift_cards": "उपहार कार्ड", + "gift_cards_unavailable": "उपहार कार्ड इस समय केवल मोनेरो, बिटकॉइन और लिटकोइन के माध्यम से खरीदने के लिए उपलब्ध हैं", + "got_it": "समझ गया", + "gross_balance": "सकल संतुलन", "group_by_type": "प्रकार द्वारा समूह", - "importNFTs": "एनएफटी आयात करें", - "noNFTYet": "अभी तक कोई एनएफटी नहीं", - "address": "पता", - "enterTokenID": "टोकन आईडी दर्ज करें", - "tokenID": "पहचान", - "name": "नाम", - "symbol": "प्रतीक", - "seed_phrase_length": "बीज वाक्यांश की लंबाई", - "unavailable_balance": "अनुपलब्ध शेष", - "unavailable_balance_description": "अनुपलब्ध शेष राशि: इस कुल में वे धनराशि शामिल हैं जो लंबित लेनदेन में बंद हैं और जिन्हें आपने अपनी सिक्का नियंत्रण सेटिंग्स में सक्रिय रूप से जमा कर रखा है। लॉक किए गए शेष उनके संबंधित लेन-देन पूरे होने के बाद उपलब्ध हो जाएंगे, जबकि जमे हुए शेष लेन-देन के लिए अप्राप्य रहेंगे जब तक कि आप उन्हें अनफ्रीज करने का निर्णय नहीं लेते।", - "unspent_change": "परिवर्तन", - "tor_connection": "टोर कनेक्शन", - "setup_warning_2fa_text": "केक 2एफए वॉलेट में कुछ कार्यों के लिए दूसरा प्रमाणीकरण है। यह कोल्ड स्टोरेज जितना सुरक्षित नहीं है।\n\nयदि आप अपने 2एफए ऐप या टीओटीपी कुंजियों तक पहुंच खो देते हैं, तो आप इस वॉलेट तक पहुंच खो देंगे। आपको अपने बटुए को स्मरक बीज से पुनर्स्थापित करने की आवश्यकता होगी।\n\nयदि आप अपने 2एफए या निमोनिक बीजों तक पहुंच खो देते हैं तो केक समर्थन आपकी सहायता करने में असमर्थ होगा।\nकेक 2एफए का उपयोग करने से पहले, हम गाइड को पढ़ने की सलाह देते हैं।", - "scan_qr_on_device": "इस QR कोड को किसी अन्य डिवाइस पर स्कैन करें", + "haven_app": "Haven by Cake Wallet", + "haven_app_wallet_text": "Awesome wallet for Haven", + "help": "मदद करना", + "hidden_balance": "छिपा हुआ संतुलन", + "hide_details": "विवरण छुपाएं", + "high_contrast_theme": "उच्च कंट्रास्ट थीम", + "home_screen_settings": "होम स्क्रीन सेटिंग्स", "how_to_use": "का उपयोग कैसे करें", + "how_to_use_card": "इस कार्ड का उपयोग कैसे करें", + "id": "ID: ", + "ignor": "नज़रअंदाज़ करना", + "import": "आयात", + "importNFTs": "एनएफटी आयात करें", + "in_store": "स्टोर में", + "incoming": "आने वाली", + "incorrect_seed": "दर्ज किया गया पाठ मान्य नहीं है।", + "introducing_cake_pay": "परिचय Cake Pay!", + "invalid_input": "अमान्य निवेश", + "invoice_details": "चालान विवरण", + "is_percentage": "है", + "last_30_days": "पिछले 30 दिन", + "learn_more": "और अधिक जानें", + "light_theme": "रोशनी", + "loading_your_wallet": "अपना बटुआ लोड कर रहा है", + "login": "लॉग इन करें", + "logout": "लॉगआउट", + "low_fee": "कम शुल्क", + "low_fee_alert": "आप वर्तमान में कम नेटवर्क शुल्क प्राथमिकता का उपयोग कर रहे हैं। यह लंबे इंतजार, अलग-अलग दरों या रद्द किए गए ट्रेडों का कारण बन सकता है। हम बेहतर अनुभव के लिए अधिक शुल्क निर्धारित करने की सलाह देते हैं।", + "manage_nodes": "नोड्स प्रबंधित करें", + "manage_pow_nodes": "PoW नोड्स प्रबंधित करें", + "manage_yats": "Yats प्रबंधित करें", + "mark_as_redeemed": "रिडीम किए गए के रूप में चिह्नित करें", + "market_place": "मार्केटप्लेस", + "matrix_green_dark_theme": "मैट्रिक्स ग्रीन डार्क थीम", + "max_amount": "अधिकतम: ${value}", + "max_value": "मैक्स: ${value} ${currency}", + "memo": "ज्ञापन:", + "message": "संदेश", + "methods": "तरीकों", + "min_amount": "न्यूनतम: ${value}", + "min_value": "मिन: ${value} ${currency}", + "minutes_to_pin_code": "${minute} मिनट", + "mm": "एमएम", + "modify_2fa": "केक 2FA संशोधित करें", + "monero_com": "Monero.com by Cake Wallet", + "monero_com_wallet_text": "Awesome wallet for Monero", + "monero_dark_theme": "मोनेरो डार्क थीम", + "monero_light_theme": "मोनेरो लाइट थीम", + "moonpay_alert_text": "राशि का मूल्य अधिक है या करने के लिए बराबर होना चाहिए ${minAmount} ${fiatCurrency}", + "more_options": "और विकल्प", + "name": "नाम", + "narrow": "सँकरा", + "new_first_wallet_text": "आसानी से अपनी क्रिप्टोक्यूरेंसी को सुरक्षित रखें", + "new_node_testing": "नई नोड परीक्षण", + "new_subaddress_create": "सर्जन करना", + "new_subaddress_label_name": "लेबल का नाम", + "new_subaddress_title": "नया पता", + "new_template": "नया टेम्पलेट", + "new_wallet": "नया बटुआ", + "newConnection": "नया कनेक्शन", + "no_id_needed": "कोई आईडी नहीं चाहिए!", + "no_id_required": "कोई आईडी आवश्यक नहीं है। टॉप अप करें और कहीं भी खर्च करें", + "no_relay_on_domain": "उपयोगकर्ता के डोमेन के लिए कोई रिले नहीं है या रिले अनुपलब्ध है। कृपया उपयोग करने के लिए एक रिले चुनें।", + "no_relays": "कोई रिले नहीं", + "no_relays_message": "हमें इस उपयोगकर्ता के लिए एक Nostr NIP-05 रिकॉर्ड मिला, लेकिन इसमें कोई रिले नहीं है। कृपया प्राप्तकर्ता को अपने नॉस्ट्र रिकॉर्ड में रिले जोड़ने का निर्देश दें।", + "node_address": "नोड पता", + "node_connection_failed": "कनेक्शन विफल रहा", + "node_connection_successful": "कनेक्शन सफल रहा", + "node_new": "नया नोड", + "node_port": "नोड पोर्ट", + "node_reset_settings_title": "सेटिंग्स को दुबारा करें", + "node_test": "परीक्षा", + "nodes": "नोड्स", + "nodes_list_reset_to_default_message": "क्या आप वाकई सेटिंग को डिफ़ॉल्ट पर रीसेट करना चाहते हैं?", + "none_of_selected_providers_can_exchange": "चयनित प्रदाताओं में से कोई भी इस एक्सचेंज को नहीं बना सकता", + "noNFTYet": "अभी तक कोई एनएफटी नहीं", + "normal": "सामान्य", + "note_optional": "नोट (वैकल्पिक)", + "note_tap_to_change": "नोट (टैप टू चेंज)", + "nullURIError": "यूआरआई शून्य है", + "offer_expires_in": "में ऑफर समाप्त हो रहा है: ", + "offline": "ऑफ़लाइन", + "ok": "ठीक है", + "onion_link": "प्याज का लिंक", + "online": "ऑनलाइन", + "onramper_option_description": "जल्दी से कई भुगतान विधियों के साथ क्रिप्टो खरीदें। अधिकांश देशों में उपलब्ध है। फैलता है और फीस अलग -अलग होती है।", + "open_gift_card": "गिफ्ट कार्ड खोलें", + "optional_description": "वैकल्पिक विवरण", + "optional_email_hint": "वैकल्पिक प्राप्तकर्ता सूचना ईमेल", + "optional_name": "वैकल्पिक प्राप्तकर्ता नाम", + "optionally_order_card": "वैकल्पिक रूप से एक भौतिक कार्ड ऑर्डर करें।", + "orbot_running_alert": "कृपया सुनिश्चित करें कि इस नोड से कनेक्ट करने से पहले Orbot चल रहा है।", + "order_by": "द्वारा आदेश", + "order_id": "ऑर्डर आईडी", + "order_physical_card": "फिजिकल कार्ड ऑर्डर करें", + "other_settings": "अन्य सेटिंग्स", + "outdated_electrum_wallet_description": "केक में बनाए गए नए बिटकॉइन वॉलेट में अब 24-शब्द का बीज है। यह अनिवार्य है कि आप एक नया बिटकॉइन वॉलेट बनाएं और अपने सभी फंड को नए 24-शब्द वाले वॉलेट में स्थानांतरित करें, और 12-शब्द बीज वाले वॉलेट का उपयोग करना बंद करें। कृपया अपने धन को सुरक्षित करने के लिए इसे तुरंत करें।", + "outdated_electrum_wallet_receive_warning": "अगर इस वॉलेट में 12 शब्दों का बीज है और इसे केक में बनाया गया है, तो इस वॉलेट में बिटकॉइन जमा न करें। इस वॉलेट में स्थानांतरित किया गया कोई भी बीटीसी खो सकता है। एक नया 24-शब्द वॉलेट बनाएं (ऊपर दाईं ओर स्थित मेनू पर टैप करें, वॉलेट चुनें, नया वॉलेट बनाएं चुनें, फिर बिटकॉइन चुनें) और तुरंत अपना बीटीसी वहां ले जाएं। केक से नए (24-शब्द) बीटीसी वॉलेट सुरक्षित हैं", + "outgoing": "निवर्तमान", + "overwrite_amount": "Overwrite amount", + "pairingInvalidEvent": "अमान्य ईवेंट युग्मित करना", + "password": "पारण शब्द", + "paste": "पेस्ट करें", + "pause_wallet_creation": "हेवन वॉलेट बनाने की क्षमता फिलहाल रुकी हुई है।", + "payment_id": "भुगतान ID: ", + "Payment_was_received": "आपका भुगतान प्राप्त हो गया था।", + "pending": " (अपूर्ण)", + "percentageOf": "${amount} का", + "pin_at_top": "शीर्ष पर ${token} पिन करें", + "pin_is_incorrect": "पिन गलत है", + "pin_number": "पिन नंबर", + "placeholder_contacts": "आपके संपर्क यहां प्रदर्शित होंगे", + "placeholder_transactions": "आपके लेनदेन यहां प्रदर्शित होंगे", + "please_fill_totp": "कृपया अपने दूसरे डिवाइस पर मौजूद 8 अंकों का कोड भरें", + "please_make_selection": "कृपया नीचे चयन करें अपना बटुआ बनाएं या पुनर्प्राप्त करें.", + "please_reference_document": "कृपया अधिक जानकारी के लिए नीचे दिए गए दस्तावेज़ देखें।", + "please_select": "कृपया चुने:", + "please_select_backup_file": "कृपया बैकअप फ़ाइल चुनें और बैकअप पासवर्ड डालें।", + "please_try_to_connect_to_another_node": "कृपया दूसरे नोड से कनेक्ट करने का प्रयास करें", + "please_wait": "कृपया प्रतीक्षा करें", + "polygonscan_history": "पॉलीगॉनस्कैन इतिहास", + "powered_by": "द्वारा संचालित ${title}", + "pre_seed_button_text": "मै समझता हुँ। मुझे अपना बीज दिखाओ", + "pre_seed_description": "अगले पेज पर आपको ${words} शब्दों की एक श्रृंखला दिखाई देगी। यह आपका अद्वितीय और निजी बीज है और नुकसान या खराबी के मामले में अपने बटुए को पुनर्प्राप्त करने का एकमात्र तरीका है। यह आपकी जिम्मेदारी है कि इसे नीचे लिखें और इसे Cake Wallet ऐप के बाहर सुरक्षित स्थान पर संग्रहीत करें।", + "pre_seed_title": "महत्वपूर्ण", + "prevent_screenshots": "स्क्रीनशॉट और स्क्रीन रिकॉर्डिंग रोकें", + "privacy": "गोपनीयता", + "privacy_policy": "गोपनीयता नीति", + "privacy_settings": "गोपनीयता सेटिंग्स", + "private_key": "निजी चाबी", + "proceed_after_one_minute": "यदि 1 मिनट के बाद भी स्क्रीन आगे नहीं बढ़ती है, तो अपना ईमेल देखें।", + "profile": "प्रोफ़ाइल", + "provider_error": "${provider} त्रुटि", + "public_key": "सार्वजनिक कुंजी", + "purchase_gift_card": "गिफ्ट कार्ड खरीदें", + "qr_fullscreen": "फ़ुल स्क्रीन क्यूआर कोड खोलने के लिए टैप करें", + "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", + "question_to_disable_2fa": "क्या आप सुनिश्चित हैं कि आप Cake 2FA को अक्षम करना चाहते हैं? वॉलेट और कुछ कार्यों तक पहुँचने के लिए अब 2FA कोड की आवश्यकता नहीं होगी।", + "ready_have_account": "क्या आपके पास पहले से ही एक खाता है?", + "receivable_balance": "प्राप्य शेष", + "receive": "प्राप्त करना", + "receive_amount": "रकम", + "received": "प्राप्त किया", + "recipient_address": "प्राप्तकर्ता का पता", + "reconnect": "रिकनेक्ट", + "reconnect_alert_text": "क्या आप पुन: कनेक्ट होना सुनिश्चित करते हैं?", + "reconnection": "पुनर्संयोजन", + "redeemed": "रिडीम किया गया", + "refund_address": "वापसी का पता", + "reject": "अस्वीकार करना", + "remaining": "शेष", + "remove": "हटाना", + "remove_node": "नोड निकालें", + "remove_node_message": "क्या आप वाकई चयनित नोड को निकालना चाहते हैं?", + "rename": "नाम बदलें", + "require_for_adding_contacts": "संपर्क जोड़ने के लिए आवश्यकता है", + "require_for_all_security_and_backup_settings": "सभी सुरक्षा और बैकअप सेटिंग्स की आवश्यकता है", + "require_for_assessing_wallet": "वॉलेट तक पहुँचने के लिए आवश्यकता है", + "require_for_creating_new_wallets": "नए वॉलेट बनाने की आवश्यकता है", + "require_for_exchanges_to_external_wallets": "बाहरी वॉलेट में एक्सचेंज की आवश्यकता है", + "require_for_exchanges_to_internal_wallets": "आंतरिक वॉलेट में आदान-प्रदान की आवश्यकता है", + "require_for_sends_to_contacts": "संपर्कों को भेजने के लिए आवश्यक है", + "require_for_sends_to_internal_wallets": "आंतरिक वॉलेट में भेजने की आवश्यकता है", + "require_for_sends_to_non_contacts": "गैर-संपर्कों को भेजने की आवश्यकता", + "require_pin_after": "इसके बाद पिन आवश्यक है", + "rescan": "पुन: स्कैन", + "resend_code": "कृपया इसे फिर से भेजें", + "reset": "रीसेट", + "reset_password": "पासवर्ड रीसेट करें", + "restore_active_seed": "सक्रिय बीज", + "restore_address": "पता", + "restore_bitcoin_description_from_keys": "अपने निजी कुंजी से उत्पन्न WIF स्ट्रिंग से अपने वॉलेट को पुनर्स्थापित करें", + "restore_bitcoin_description_from_seed": "24 शब्द संयोजन कोड से अपने वॉलेट को पुनर्स्थापित करें", + "restore_bitcoin_title_from_keys": "WIF से पुनर्स्थापित करें", + "restore_description_from_backup": "आप से पूरे केक वॉलेट एप्लिकेशन को पुनर्स्थापित कर सकते हैं आपकी बैक-अप फ़ाइल", + "restore_description_from_keys": "अपने वॉलेट को जेनरेट से पुनर्स्थापित करें आपकी निजी कुंजी से कीस्ट्रोक्स सहेजे गए", + "restore_description_from_seed": "या तो 25 शब्द से अपने वॉलेट को पुनर्स्थापित करें या 13 शब्द संयोजन कोड", + "restore_description_from_seed_keys": "अपने बटुए को बीज से वापस लें/वे कुंजियाँ जिन्हें आपने सुरक्षित स्थान पर सहेजा है", + "restore_from_date_or_blockheight": "कृपया इस वॉलेट को बनाने से कुछ दिन पहले एक तारीख दर्ज करें। या यदि आप ब्लॉकचेट जानते हैं, तो कृपया इसके बजाय इसे दर्ज करें", + "restore_from_seed_placeholder": "कृपया अपना कोड वाक्यांश यहां दर्ज करें या पेस्ट करें", + "restore_new_seed": "नया बीज", + "restore_next": "आगामी", + "restore_recover": "वसूली", + "restore_restore_wallet": "वॉलेट को पुनर्स्थापित करें", + "restore_seed_keys_restore": "बीज / कुंजी पुनर्स्थापित करें", + "restore_spend_key_private": "कुंजी खर्च करें (निजीe)", + "restore_title_from_backup": "बैक-अप फ़ाइल से पुनर्स्थापित करें", + "restore_title_from_keys": "कुंजी से पुनर्स्थापित करें", + "restore_title_from_seed": "बीज से पुनर्स्थापित करें", + "restore_title_from_seed_keys": "बीज / कुंजियों से पुनर्स्थापित करें", + "restore_view_key_private": "कुंजी देखें (निजी)", + "restore_wallet": "वॉलेट को पुनर्स्थापित करें", + "restore_wallet_name": "बटुए का नाम", + "restore_wallet_restore_description": "बटुआ विवरण पुनर्स्थापित करें", + "router_no_route": "के लिए कोई मार्ग निर्धारित नहीं है ${name}", + "save": "बचाना", + "save_backup_password": "कृपया सुनिश्चित करें कि आपने अपना बैकअप पासवर्ड सहेज लिया है। आप इसके बिना अपनी बैकअप फ़ाइलों को आयात नहीं कर पाएंगे।", + "save_backup_password_alert": "बैकअप पासवर्ड सेव करें", + "save_to_downloads": "डाउनलोड में सहेजें", + "saved_the_trade_id": "मैंने व्यापार बचा लिया है ID", + "scan_qr_code": "स्कैन क्यू आर कोड", + "scan_qr_code_to_get_address": "पता प्राप्त करने के लिए QR कोड स्कैन करें", + "scan_qr_on_device": "इस QR कोड को किसी अन्य डिवाइस पर स्कैन करें", + "search": "खोज", + "search_add_token": "खोजें/टोकन जोड़ें", + "search_category": "खोज श्रेणी", + "search_currency": "मुद्रा खोजें", + "search_language": "भाषा खोजें", + "second_intro_content": "आपका Yat एक अद्वितीय इमोजी पता है जो आपकी सभी मुद्राओं के लिए आपके सभी लंबे हेक्साडेसिमल पतों को बदल देता है।", + "second_intro_title": "उन सभी पर राज करने के लिए एक इमोजी पता", + "security_and_backup": "सुरक्षा और बैकअप", + "seed_alert_back": "वापस जाओ", + "seed_alert_content": "बीज आपके बटुए को पुनर्प्राप्त करने का एकमात्र तरीका है। क्या आपने इसे लिखा है?", + "seed_alert_title": "ध्यान", + "seed_alert_yes": "हाँ मेरे पास है", + "seed_choose": "बीज भाषा चुनें", "seed_hex_form": "वॉलेट सीड (हेक्स फॉर्म)", + "seed_key": "बीज कुंजी", + "seed_language": "बीज", + "seed_language_chinese": "चीनी", + "seed_language_chinese_traditional": "चीनी पारंपरिक)", + "seed_language_czech": "चेक", + "seed_language_dutch": "डच", + "seed_language_english": "अंग्रेज़ी", + "seed_language_french": "फ्रेंच", + "seed_language_german": "जर्मन", + "seed_language_italian": "इतालवी", + "seed_language_japanese": "जापानी", + "seed_language_korean": "कोरियाई", + "seed_language_next": "आगामी", + "seed_language_portuguese": "पुर्तगाली", + "seed_language_russian": "रूसी", + "seed_language_spanish": "स्पेनिश", + "seed_phrase_length": "बीज वाक्यांश की लंबाई", + "seed_reminder": "यदि आप अपना फोन खो देते हैं या मिटा देते हैं तो कृपया इन्हें लिख लें", + "seed_share": "बीज साझा करें", + "seed_title": "बीज", "seedtype": "बीज", "seedtype_legacy": "विरासत (25 शब्द)", "seedtype_polyseed": "पॉलीसीड (16 शब्द)", - "seed_language_czech": "चेक", - "seed_language_korean": "कोरियाई", - "seed_language_chinese_traditional": "चीनी पारंपरिक)", - "ascending": "आरोही", - "descending": "अवरोही", - "dfx_option_description": "EUR और CHF के साथ क्रिप्टो खरीदें। अतिरिक्त केवाईसी के बिना 990€ तक। यूरोप में खुदरा और कॉर्पोरेट ग्राहकों के लिए", - "polygonscan_history": "पॉलीगॉनस्कैन इतिहास", - "wallet_seed_legacy": "विरासत बटुए बीज", - "default_sell_provider": "डिफ़ॉल्ट विक्रय प्रदाता", + "select_backup_file": "बैकअप फ़ाइल का चयन करें", + "select_buy_provider_notice": "ऊपर एक खरीद प्रदाता का चयन करें। आप इस स्क्रीन को ऐप सेटिंग्स में अपना डिफ़ॉल्ट बाय प्रदाता सेट करके छोड़ सकते हैं।", + "select_destination": "कृपया बैकअप फ़ाइल के लिए गंतव्य का चयन करें।", "select_sell_provider_notice": "ऊपर एक विक्रय प्रदाता का चयन करें। आप ऐप सेटिंग में अपना डिफ़ॉल्ट विक्रय प्रदाता सेट करके इस स्क्रीन को छोड़ सकते हैं।", - "custom_drag": "कस्टम (पकड़ और खींचें)", + "sell": "बेचना", + "sell_alert_content": "हम वर्तमान में केवल बिटकॉइन, एथेरियम और लाइटकॉइन की बिक्री का समर्थन करते हैं। कृपया अपना बिटकॉइन, एथेरियम या लाइटकॉइन वॉलेट बनाएं या उसमें स्विच करें।", + "sell_monero_com_alert_content": "मोनेरो बेचना अभी तक समर्थित नहीं है", + "send": "संदेश", + "send_address": "${cryptoCurrency} पता", + "send_amount": "रकम:", + "send_creating_transaction": "लेन-देन बनाना", + "send_error_currency": "मुद्रा में केवल संख्याएँ हो सकती हैं", + "send_error_minimum_value": "राशि का न्यूनतम मूल्य 0.01 है", + "send_estimated_fee": "अनुमानित शुल्क:", + "send_fee": "शुल्क:", + "send_name": "नाम", + "send_new": "नया", + "send_payment_id": "भुगतान ID (ऐच्छिक)", + "send_priority": "वर्तमान में शुल्क निर्धारित है ${transactionPriority} प्राथमिकता.\nलेन-देन की प्राथमिकता को सेटिंग्स में समायोजित किया जा सकता है", + "send_sending": "भेजना...", + "send_success": "आपका ${crypto} सफलतापूर्वक भेजा गया", + "send_templates": "टेम्पलेट्स", + "send_title": "संदेश", + "send_to_this_address": "इस पते पर ${currency} ${tag}भेजें", + "send_xmr": "संदेश XMR", + "send_your_wallet": "आपका बटुआ", + "sending": "भेजना", + "sent": "भेज दिया", + "settings": "समायोजन", + "settings_all": "सब", + "settings_allow_biometrical_authentication": "बायोमेट्रिक प्रमाणीकरण की अनुमति दें", + "settings_can_be_changed_later": "इन सेटिंग्स को बाद में ऐप सेटिंग में बदला जा सकता है", + "settings_change_language": "भाषा बदलो", + "settings_change_pin": "पिन बदलें", + "settings_currency": "मुद्रा", + "settings_current_node": "वर्तमान नोड", + "settings_dark_mode": "डार्क मोड", + "settings_display_balance": "प्रदर्शन संतुलन", + "settings_display_on_dashboard_list": "डैशबोर्ड सूची पर प्रदर्शित करें", + "settings_fee_priority": "शुल्क प्राथमिकता", + "settings_nodes": "नोड्स", + "settings_none": "कोई नहीं", + "settings_only_trades": "केवल ट्रेड करता है", + "settings_only_transactions": "केवल लेन-देन", + "settings_personal": "निजी", + "settings_save_recipient_address": "प्राप्तकर्ता का पता सहेजें", + "settings_support": "समर्थन", + "settings_terms_and_conditions": "नियम और शर्तें", + "settings_title": "सेटिंग्स", + "settings_trades": "ट्रेडों", + "settings_transactions": "लेन-देन", + "settings_wallets": "पर्स", + "setup_2fa": "सेटअप केक 2FA", + "setup_2fa_text": "केक 2FA दूसरे प्रमाणीकरण कारक के रूप में TOTP का उपयोग करके काम करता है।\n\nकेक 2FA के TOTP को SHA-512 और 8 अंकों के समर्थन की आवश्यकता है; इससे अधिक सुरक्षा मिलती है. अधिक जानकारी और समर्थित ऐप्स गाइड में पाए जा सकते हैं।", + "setup_pin": "पिन सेट करें", + "setup_successful": "आपका पिन सफलतापूर्वक सेट हो गया है", + "setup_totp_recommended": "सेटअप टीओटीपी", + "setup_warning_2fa_text": "केक 2एफए वॉलेट में कुछ कार्यों के लिए दूसरा प्रमाणीकरण है। यह कोल्ड स्टोरेज जितना सुरक्षित नहीं है।\n\nयदि आप अपने 2एफए ऐप या टीओटीपी कुंजियों तक पहुंच खो देते हैं, तो आप इस वॉलेट तक पहुंच खो देंगे। आपको अपने बटुए को स्मरक बीज से पुनर्स्थापित करने की आवश्यकता होगी।\n\nयदि आप अपने 2एफए या निमोनिक बीजों तक पहुंच खो देते हैं तो केक समर्थन आपकी सहायता करने में असमर्थ होगा।\nकेक 2एफए का उपयोग करने से पहले, हम गाइड को पढ़ने की सलाह देते हैं।", + "setup_your_debit_card": "अपना डेबिट कार्ड सेट करें", + "share": "शेयर करना", + "share_address": "पता साझा करें", + "show_details": "विवरण दिखाएं", + "show_keys": "बीज / कुंजियाँ दिखाएँ", + "show_market_place": "बाज़ार दिखाएँ", + "show_seed": "बीज दिखाओ", + "sign_up": "साइन अप करें", + "signTransaction": "लेन-देन पर हस्ताक्षर करें", + "signup_for_card_accept_terms": "कार्ड के लिए साइन अप करें और शर्तें स्वीकार करें।", + "slidable": "फिसलने लायक", + "sort_by": "इसके अनुसार क्रमबद्ध करें", + "spend_key_private": "खर्च करना (निजी)", + "spend_key_public": "खर्च करना (जनता)", + "status": "स्थिति: ", + "subaddress_title": "उपखंड सूची", + "subaddresses": "उप पते", + "submit_request": "एक अनुरोध सबमिट करें", + "successful": "सफल", + "support_description_guides": "सामान्य मुद्दों के लिए प्रलेखन और समर्थन", + "support_description_live_chat": "मुक्त और तेजी से! प्रशिक्षित सहायता प्रतिनिधि सहायता के लिए उपलब्ध हैं", + "support_description_other_links": "हमारे समुदायों में शामिल हों या अन्य तरीकों के माध्यम से हमारे साथी तक पहुंचें", + "support_title_guides": "केक वॉलेट गाइड", + "support_title_live_chat": "लाइव सहायता", + "support_title_other_links": "अन्य समर्थन लिंक", + "sweeping_wallet": "स्वीपिंग वॉलेट", + "sweeping_wallet_alert": "इसमें अधिक समय नहीं लगना चाहिए। इस स्क्रीन को न छोड़ें या स्वैप्ट फंड खो सकते हैं", + "switchToETHWallet": "कृपया एथेरियम वॉलेट पर स्विच करें और पुनः प्रयास करें", "switchToEVMCompatibleWallet": "कृपया ईवीएम संगत वॉलेट पर स्विच करें और पुनः प्रयास करें (एथेरियम, पॉलीगॉन)", - "receivable_balance": "प्राप्य शेष", - "confirmed_tx": "की पुष्टि", + "symbol": "प्रतीक", + "sync_all_wallets": "सभी वॉलेट सिंक करें", + "sync_status_attempting_sync": "सिंक करने का प्रयास", + "sync_status_connected": "जुड़े हुए", + "sync_status_connecting": "कनेक्ट", + "sync_status_failed_connect": "डिस्कनेक्ट किया गया", + "sync_status_not_connected": "जुड़े नहीं हैं", + "sync_status_starting_sync": "सिताज़ा करना", + "sync_status_syncronized": "सिंक्रनाइज़", + "sync_status_syncronizing": "सिंक्रनाइज़ करने", + "syncing_wallet_alert_content": "आपकी शेष राशि और लेनदेन सूची तब तक पूरी नहीं हो सकती जब तक कि शीर्ष पर \"सिंक्रनाइज़्ड\" न लिखा हो। अधिक जानने के लिए क्लिक/टैप करें।", + "syncing_wallet_alert_title": "आपका वॉलेट सिंक हो रहा है", + "template": "खाका", + "template_name": "टेम्पलेट नाम", + "third_intro_content": "Yats Cake Wallet के बाहर भी रहता है। धरती पर किसी भी वॉलेट पते को Yat से बदला जा सकता है!", + "third_intro_title": "Yat दूसरों के साथ अच्छा खेलता है", + "time": "${minutes}m ${seconds}s", + "tip": "टिप:", + "today": "आज", + "token_contract_address": "टोकन अनुबंध पता", + "token_decimal": "सांकेतिक दशमलव", + "token_name": "टोकन नाम जैसे: टीथर", + "token_symbol": "टोकन प्रतीक जैसे: यूएसडीटी", + "tokenID": "पहचान", + "tor_connection": "टोर कनेक्शन", + "tor_only": "Tor केवल", + "total_saving": "कुल बचत", + "totp_2fa_failure": "गलत कोड़। कृपया एक अलग कोड का प्रयास करें या एक नई गुप्त कुंजी उत्पन्न करें। 8-अंकीय कोड और SHA512 का समर्थन करने वाले संगत 2FA ऐप का उपयोग करें।", + "totp_2fa_success": "सफलता! इस वॉलेट के लिए Cake 2FA सक्षम है। यदि आप वॉलेट एक्सेस खो देते हैं तो अपने स्मरक बीज को सहेजना याद रखें।", + "totp_auth_url": "TOTP प्रामाणिक यूआरएल", + "totp_code": "टीओटीपी कोड", + "totp_secret_code": "टीओटीपी गुप्त कोड", + "totp_verification_success": "सत्यापन सफल!", + "trade_details_copied": "${title} क्लिपबोर्ड पर नकल", + "trade_details_created_at": "पर बनाया गया", + "trade_details_fetching": "ला रहा है", + "trade_details_id": "आईडी", + "trade_details_pair": "जोड़ा", + "trade_details_provider": "प्रदाता", + "trade_details_state": "दर्जा", + "trade_details_title": "व्यापार विवरण", + "trade_for_not_created": "के लिए व्यापार ${title} निर्मित नहीं है.", + "trade_history_title": "व्यापार का इतिहास", + "trade_id": "व्यापार ID:", + "trade_id_not_found": "व्यापार ${tradeId} of ${title} नहीं मिला.", + "trade_is_powered_by": "यह व्यापार द्वारा संचालित है ${provider}", + "trade_not_created": "व्यापार नहीं बनाया गया", + "trade_not_found": "व्यापार नहीं मिला", + "trade_state_btc_sent": "भेज दिया", + "trade_state_complete": "पूर्ण", + "trade_state_confirming": "पुष्टि", + "trade_state_created": "बनाया था", + "trade_state_finished": "ख़त्म होना", + "trade_state_paid": "भुगतान किया है", + "trade_state_paid_unconfirmed": "अपुष्ट भुगतान किया", + "trade_state_pending": "विचाराधीन", + "trade_state_timeout": "समय समाप्त", + "trade_state_to_be_created": "बनाए जाने के लिए", + "trade_state_traded": "ट्रेडेड", + "trade_state_trading": "व्यापार", + "trade_state_underpaid": "के तहत भुगतान किया", + "trade_state_unpaid": "अवैतनिक", + "trades": "ट्रेडों", + "transaction_details_amount": "रकम", + "transaction_details_copied": "${title} क्लिपबोर्ड पर नकल", + "transaction_details_date": "तारीख", + "transaction_details_fee": "शुल्क", + "transaction_details_height": "ऊंचाई", + "transaction_details_recipient_address": "प्राप्तकर्ता के पते", "transaction_details_source_address": "स्रोत पता", - "pause_wallet_creation": "हेवन वॉलेट बनाने की क्षमता फिलहाल रुकी हुई है।", - "contractName": "अनुबंध का नाम", - "contractSymbol": "अनुबंध चिह्न", - "description": "विवरण", - "camera_consent": "आपके कैमरे का उपयोग ${provider} द्वारा पहचान उद्देश्यों के लिए एक छवि कैप्चर करने के लिए किया जाएगा। विवरण के लिए कृपया उनकी गोपनीयता नीति जांचें।", - "no_relays": "कोई रिले नहीं", - "choose_relay": "कृपया उपयोग करने के लिए एक रिले चुनें", - "no_relays_message": "हमें इस उपयोगकर्ता के लिए एक Nostr NIP-05 रिकॉर्ड मिला, लेकिन इसमें कोई रिले नहीं है। कृपया प्राप्तकर्ता को अपने नॉस्ट्र रिकॉर्ड में रिले जोड़ने का निर्देश दें।", - "no_relay_on_domain": "उपयोगकर्ता के डोमेन के लिए कोई रिले नहीं है या रिले अनुपलब्ध है। कृपया उपयोग करने के लिए एक रिले चुनें।" -} + "transaction_details_title": "लेनदेन का विवरण", + "transaction_details_transaction_id": "लेनदेन आईडी", + "transaction_key": "लेन-देन की", + "transaction_priority_fast": "उपवास", + "transaction_priority_fastest": "सबसे तेजी से", + "transaction_priority_medium": "मध्यम", + "transaction_priority_regular": "नियमित", + "transaction_priority_slow": "धीरे", + "transaction_sent": "भेजा गया लेन-देन", + "transaction_sent_notice": "अगर 1 मिनट के बाद भी स्क्रीन आगे नहीं बढ़ती है, तो ब्लॉक एक्सप्लोरर और अपना ईमेल देखें।", + "transactions": "लेन-देन", + "transactions_by_date": "तारीख से लेन-देन", + "trusted": "भरोसा", + "unavailable_balance": "अनुपलब्ध शेष", + "unavailable_balance_description": "अनुपलब्ध शेष राशि: इस कुल में वे धनराशि शामिल हैं जो लंबित लेनदेन में बंद हैं और जिन्हें आपने अपनी सिक्का नियंत्रण सेटिंग्स में सक्रिय रूप से जमा कर रखा है। लॉक किए गए शेष उनके संबंधित लेन-देन पूरे होने के बाद उपलब्ध हो जाएंगे, जबकि जमे हुए शेष लेन-देन के लिए अप्राप्य रहेंगे जब तक कि आप उन्हें अनफ्रीज करने का निर्णय नहीं लेते।", + "unconfirmed": "अपुष्ट शेष राशि", + "understand": "मुझे समझ", + "unmatched_currencies": "आपके वर्तमान वॉलेट की मुद्रा स्कैन किए गए क्यूआर से मेल नहीं खाती", + "unspent_change": "परिवर्तन", + "unspent_coins_details_title": "अव्ययित सिक्कों का विवरण", + "unspent_coins_title": "खर्च न किए गए सिक्के", + "unsupported_asset": "हम इस संपत्ति के लिए इस कार्रवाई का समर्थन नहीं करते हैं. कृपया समर्थित परिसंपत्ति प्रकार का वॉलेट बनाएं या उस पर स्विच करें।", + "upto": "${value} तक", + "use": "उपयोग ", + "use_card_info_three": "डिजिटल कार्ड का ऑनलाइन या संपर्क रहित भुगतान विधियों के साथ उपयोग करें।", + "use_card_info_two": "डिजिटल मुद्राओं में नहीं, प्रीपेड खाते में रखे जाने पर निधियों को यूएसडी में बदल दिया जाता है।", + "use_ssl": "उपयोग SSL", + "use_suggested": "सुझाए गए का प्रयोग करें", + "variable_pair_not_supported": "यह परिवर्तनीय जोड़ी चयनित एक्सचेंजों के साथ समर्थित नहीं है", + "verification": "सत्यापन", + "verify_with_2fa": "केक 2FA के साथ सत्यापित करें", + "version": "संस्करण ${currentVersion}", + "view_all": "सभी देखें", + "view_in_block_explorer": "View in Block Explorer", + "view_key_private": "कुंजी देखें(निजी)", + "view_key_public": "कुंजी देखें (जनता)", + "view_transaction_on": "View Transaction on ", + "wallet_keys": "बटुआ बीज / चाबियाँ", + "wallet_list_create_new_wallet": "नया बटुआ बनाएँ", + "wallet_list_edit_wallet": "बटुआ संपादित करें", + "wallet_list_failed_to_load": "लोड करने में विफल ${wallet_name} बटुआ. ${error}", + "wallet_list_failed_to_remove": "निकालने में विफल ${wallet_name} बटुआ. ${error}", + "wallet_list_load_wallet": "वॉलेट लोड करें", + "wallet_list_loading_wallet": "लोड हो रहा है ${wallet_name} बटुआ", + "wallet_list_removing_wallet": "निकाला जा रहा है ${wallet_name} बटुआ", + "wallet_list_restore_wallet": "वॉलेट को पुनर्स्थापित करें", + "wallet_list_title": "Monero बटुआ", + "wallet_list_wallet_name": "बटुआ नाम", + "wallet_menu": "बटुआ मेनू", + "wallet_name": "बटुए का नाम", + "wallet_name_exists": "उस नाम वाला वॉलेट पहले से मौजूद है", + "wallet_restoration_store_incorrect_seed_length": "गलत बीज की लंबाई", + "wallet_seed": "बटुआ का बीज", + "wallet_seed_legacy": "विरासत बटुए बीज", + "wallet_store_monero_wallet": "मोनरो वॉलेट", + "walletConnect": "वॉलेटकनेक्ट", + "wallets": "पर्स", + "warning": "चेतावनी", + "welcome": "स्वागत हे सेवा मेरे", + "welcome_to_cakepay": "केकपे में आपका स्वागत है!", + "widgets_address": "पता", + "widgets_or": "या", + "widgets_restore_from_blockheight": "ब्लॉकचेन से पुनर्स्थापित करें", + "widgets_restore_from_date": "दिनांक से पुनर्स्थापित करें", + "widgets_seed": "बीज", + "wouoldLikeToConnect": "जुड़ना चाहेंगे", + "write_down_backup_password": "कृपया अपना बैकअप पासवर्ड लिखें, जिसका उपयोग आपकी बैकअप फ़ाइलों के आयात के लिए किया जाता है।", + "xlm_extra_info": "एक्सचेंज के लिए XLM ट्रांजेक्शन भेजते समय मेमो आईडी निर्दिष्ट करना न भूलें", + "xmr_available_balance": "उपलब्ध शेष राशि", + "xmr_full_balance": "पूरा संतुलन", + "xmr_hidden": "छिपा हुआ", + "xmr_to_error": "XMR.TO त्रुटि", + "xmr_to_error_description": "अवैध राशि। दशमलव बिंदु के बाद अधिकतम सीमा 8 अंक", + "xrp_extra_info": "एक्सचेंज के लिए एक्सआरपी लेनदेन भेजते समय कृपया गंतव्य टैग निर्दिष्ट करना न भूलें", + "yat": "Yat", + "yat_address": "Yat पता", + "yat_alert_content": "Cake Wallet उपयोगकर्ता अब अपनी सभी पसंदीदा मुद्राओं को एक-एक तरह के इमोजी-आधारित उपयोगकर्ता नाम के साथ भेज और प्राप्त कर सकते हैं।", + "yat_alert_title": "के साथ अधिक आसानी से क्रिप्टो भेजें और प्राप्त करें Yat", + "yat_error": "Yat त्रुटि", + "yat_error_content": "इसके साथ कोई पता लिंक नहीं है Yat. कोई दूसरा आज़माएं Yat", + "yat_popup_content": "अब आप क्रिप्टो भेज और प्राप्त कर सकते हैं Cake Wallet अपने Yat के साथ - एक छोटा, इमोजी-आधारित उपयोगकर्ता नाम। सेटिंग स्क्रीन पर किसी भी समय Yats को प्रबंधित करें", + "yat_popup_title": "आपका वॉलेट पता इमोजी किया जा सकता है।", + "yesterday": "बिता कल", + "you_now_have_debit_card": "अब आपके पास डेबिट कार्ड है", + "you_pay": "आप भुगतान करते हैं", + "you_will_get": "में बदलें", + "you_will_send": "से रूपांतरित करें", + "yy": "वाईवाई", + "zzzz": "ज़ज़्ज़" +} \ No newline at end of file diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 8e3365c96..7d251e867 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -1,777 +1,778 @@ { - "welcome": "Dobrodošli na", - "cake_wallet": "Cake Wallet", - "first_wallet_text": "Odličan novčanik za Monero, Bitcoin, Ethereum, Litecoin, i Haven", - "please_make_selection": "Molimo odaberite opcije niže za izradu novog novčanika ili za oporavak postojećeg.", - "create_new": "Izradi novi novčanik", - "restore_wallet": "Oporavi novčanik", - "monero_com": "Monero.com by Cake Wallet", - "monero_com_wallet_text": "Awesome wallet for Monero", - "haven_app": "Haven by Cake Wallet", - "haven_app_wallet_text": "Awesome wallet for Haven", - "accounts": "Računi", - "edit": "Uredi", + "about_cake_pay": "Cake Pay vam omogućuje jednostavnu kupnju darovnih kartica s virtualnim sredstvima, koja se trenutno mogu potrošiti kod više od 150 000 trgovaca u Sjedinjenim Državama.", "account": "Račun", + "accounts": "Računi", + "accounts_subaddresses": "Računi i podadrese", + "activate": "Aktiviraj", + "active": "Aktivno", + "active_cards": "Aktivne kartice", + "activeConnectionsPrompt": "Ovdje će se pojaviti aktivne veze", "add": "Dodaj", + "add_contact": "Dodaj kontakt", + "add_custom_node": "Dodaj novi prilagođeni čvor", + "add_custom_redemption": "Dodaj prilagođeni otkup", + "add_fund_to_card": "Dodajte unaprijed uplaćena sredstva na kartice (do ${value})", + "add_new_node": "Dodaj novi node", + "add_new_word": "Dodaj novu riječ", + "add_receiver": "Dodajte drugi prijemnik (izborno)", + "add_secret_code": "Ili dodajte ovaj tajni kod u aplikaciju za autentifikaciju", + "add_tip": "Dodaj savjet", + "add_token_disclaimer_check": "Potvrdio sam adresu i informacije o ugovoru o tokenu koristeći ugledni izvor. Dodavanje zlonamjernih ili netočnih informacija može dovesti do gubitka sredstava.", + "add_token_warning": "Nemojte uređivati niti dodavati tokene prema uputama prevaranata.\nUvijek potvrdite adrese tokena s uglednim izvorima!", + "add_value": "Dodaj vrijednost", + "address": "Adresa", "address_book": "Imenik", - "contact": "Kontakt", - "please_select": "Molimo odaberite:", - "cancel": "Poništi", - "ok": "OK", - "contact_name": "Ime kontakta", - "reset": "Resetiraj", - "save": "Spremi", + "address_book_menu": "Imenik", + "address_detected": "Adresa je otkrivena", + "address_from_domain": "To je adresa od ${domain} na Unstoppable Domains", + "address_from_yat": "To je adresa od ${emoji} na Yat", + "address_label": "Address label", "address_remove_contact": "Ukloni kontakt", "address_remove_content": "Jeste li sigurni da želite ukloniti odabrani kontakt?", - "authenticated": "Autentificiran", - "authentication": "Autentifikacija", - "failed_authentication": "Autentifikacija neuspješna. ${state_error}", - "wallet_menu": "Izbornik", - "Blocks_remaining": "${status} preostalih blokova", - "please_try_to_connect_to_another_node": "Molimo pokušajte se spojiti na drugi node.", - "xmr_hidden": "Sakriven", - "xmr_available_balance": "Raspoloživ iznos", - "xmr_full_balance": "Ukupan iznos", - "send": "Pošalji", - "receive": "Primi", - "transactions": "Transakcije", - "incoming": "Dolazno", - "outgoing": "Odlazno", - "transactions_by_date": "Transakcije prema datumu", - "trades": "Razmjene", - "filter_by": "Filtrirati po", - "today": "Danas", - "yesterday": "Jučer", - "received": "Primljeno", - "sent": "Poslano", - "pending": " (u tijeku)", - "rescan": "Ponovno skeniranje", - "reconnect": "Ponovno povezivanje", - "wallets": "Novčanici", - "show_seed": "Prikaži pristupni izraz", - "show_keys": "Prikaži pristupni izraz/ključ", - "address_book_menu": "Imenik", - "reconnection": "Ponovno povezivanje", - "reconnect_alert_text": "Jeste li sigurni da se želite ponovno povezati?", - "exchange": "Razmijeni", - "clear": "Izbriši", - "refund_address": "Adresa za povrat", - "change_exchange_provider": "Promjena davatelja usluge razmjene", - "you_will_send": "Razmijeni iz", - "you_will_get": "Razmijeni u", - "amount_is_guaranteed": "Iznos koji ćete primiti je zajamčen", - "amount_is_estimate": "Iznos koji ćete primiti je okviran", - "powered_by": "Omogućio ${title}", - "error": "Greška", - "estimated": "procijenjen", - "min_value": "Min.: ${value} ${currency}", - "max_value": "Maks.: ${value} ${currency}", - "change_currency": "Promijenite valutu", - "overwrite_amount": "Overwrite amount", - "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", - "copy_id": "Kopirati ID", - "exchange_result_write_down_trade_id": "Molimo kopirajte ili zapišite transakcijski ID za nastavak.", - "trade_id": "Transakcijski ID:", - "copied_to_clipboard": "Kopirano u međuspremnik", - "saved_the_trade_id": "Spremio/la sam transakcijski ID", - "fetching": "Dohvaćanje", - "id": "ID: ", - "amount": "Iznos: ", - "payment_id": "ID plaćanja: ", - "status": "Status: ", - "offer_expires_in": "Ponuda istječe za: ", - "trade_is_powered_by": "Razmjenu je omogućio ${provider}", - "copy_address": "Kopiraj adresu", - "exchange_result_confirm": "Pritiskom na potvrdi, poslat ćete ${fetchingLabel} ${from} sa svog novčanika pod nazivom ${walletName} na adresu prikazanu ispod ili iznos možete poslati s vanjskog novčanika na niže navedenu adresu. /QR code.\n\nMolimo potvrdite za nastavak ili se vratite natrag za promjenu iznosa.", - "exchange_result_description": "Potrebno poslati minimalno ${fetchingLabel} ${from} na adresu prikazanu na sljedećoj stranici. Ukoliko pošaljete iznos manji od ${fetchingLabel} ${from}, postoji mogućnost da razmjena neće biti uspješna i da iznos neće biti vraćen.", - "exchange_result_write_down_ID": "*Molimo kopirajte ili zapišite svoj ID prikazan ispod.", - "confirm": "Potvrdi", - "confirm_sending": "Potvrdi slanje", - "commit_transaction_amount_fee": "Izvrši transakciju \nAmount: ${amount}\nFee: ${fee}", - "sending": "Slanje", - "transaction_sent": "Transakcija provedena!", - "expired": "Isteklo", - "time": "${minutes}m ${seconds}s", - "send_xmr": "Pošalji XMR", - "exchange_new_template": "Novi predložak", - "faq": "FAQ", - "enter_your_pin": "Upišite PIN", - "loading_your_wallet": "Novčanik se učitava", - "new_wallet": "Novi novčanik", - "wallet_name": "Ime novčanika", - "continue_text": "Nastavak", - "choose_wallet_currency": "Molimo odaberite valutu novčanika:", - "node_new": "Novi node", - "node_address": "Node adresa", - "node_port": "Node port", - "login": "Prijava", - "password": "Lozinka", - "nodes": "Nodes", - "node_reset_settings_title": "Resetiraj postavke", - "nodes_list_reset_to_default_message": "Jeste li sigurni da se želite vratiti na početne postavke?", - "change_current_node": "Jeste li sigurni da želite promijeniti trenutni node na ${node}?", - "change": "Promijeni", - "remove_node": "Ukloni node", - "remove_node_message": "Jeste li sigurni da želite ukloniti odabrani node?", - "remove": "Ukloni", - "delete": "Izbriši", - "add_new_node": "Dodaj novi node", - "change_current_node_title": "Promijeni trenutni node", - "node_test": "Provjeri", - "node_connection_successful": "Uspješno spajanje", - "node_connection_failed": "Neuspješno spajanje", - "new_node_testing": "Provjera novog nodea", - "use": "Prebaci na", - "digit_pin": "-znamenkasti PIN", - "share_address": "Podijeli adresu", - "receive_amount": "Iznos", - "subaddresses": "Podadrese", "addresses": "Adrese", - "scan_qr_code_to_get_address": "Skeniraj QR kod za dobivanje adrese", - "qr_fullscreen": "Dodirnite za otvaranje QR koda preko cijelog zaslona", - "rename": "Preimenuj", - "choose_account": "Odaberi račun", - "create_new_account": "Izradi novi račun", - "accounts_subaddresses": "Računi i podadrese", - "restore_restore_wallet": "Oporavi novčanik", - "restore_title_from_seed_keys": "Oporavi pomoću pristupnog izraza/ključa", - "restore_description_from_seed_keys": "Oporavi novčanik pomoću pristupnog izraza/ključa spremljenog na sigurno mjesto", - "restore_next": "Dalje", - "restore_title_from_backup": "Oporavak pomoću sigurnosne kopije", - "restore_description_from_backup": "Možete oporaviti cijelu Cake Wallet aplikaciju pomoću vlastite datoteke sa sigurnosnom kopijom", - "restore_seed_keys_restore": "Oporavak pomoću pristupnog izraza/ključa", - "restore_title_from_seed": "Oporavi pomoću pristupnog izraza", - "restore_description_from_seed": "Oporavi novčanik pomoću koda koji sadrži kombinaciju od 25 ili 13 riječi", - "restore_title_from_keys": "Oporavi pomoću ključa", - "restore_description_from_keys": "Oporavi novčanik pomoću generiranih pritisaka na tipke spremljenih od vlastitih privatnih ključeva (keys)", - "restore_wallet_name": "Ime novčanika", - "restore_address": "Adresa", - "restore_view_key_private": "View key (privatni)", - "restore_spend_key_private": "Spend key (privatni)", - "restore_recover": "Oporavi", - "restore_wallet_restore_description": "Opis oporavka novčanika", - "restore_new_seed": "Novi pristupi izraz", - "restore_active_seed": "Aktivan pristupni izraz", - "restore_bitcoin_description_from_seed": "Oporavi novčanik pomoću koda od 12 riječi", - "restore_bitcoin_description_from_keys": "Oporavi novčanik pomoću WIF niza generiranog iz vlastitih privatnih ključeva (keys)", - "restore_bitcoin_title_from_keys": "Oporavi pomoću formata uvoza novčanika (WIF)", - "restore_from_date_or_blockheight": "Molimo unesite datum od nekoliko dana prije nego što ste izradili ovaj novčanik ili ako znate visinu bloka, molimo unesite je.", - "seed_reminder": "Molimo zapišite ih u slučaju da izgubite mobitel ili izbrišete podatke", - "seed_title": "Prisupni izraz", - "seed_share": "Podijeli pristupni izraz", - "copy": "Kopiraj", - "seed_language": "Sjemeni jezik", - "seed_choose": "Odaberi jezik pristupnog izraza", - "seed_language_next": "Dalje", - "seed_language_english": "Engleski", - "seed_language_chinese": "Kineski", - "seed_language_dutch": "Nizozemski", - "seed_language_german": "Njemački", - "seed_language_japanese": "Japanski", - "seed_language_portuguese": "Portugalski", - "seed_language_russian": "Ruski", - "seed_language_spanish": "Španjolski", - "seed_language_french": "Francuski", - "seed_language_italian": "Talijanski", - "send_title": "Pošalji", - "send_your_wallet": "Tvoj novčanik", - "send_address": "${cryptoCurrency} adresa", - "send_payment_id": "ID plaćanja (nije obvezno)", + "advanced_settings": "Napredne postavke", + "aggressive": "Preterano", + "agree": "Slažem se", + "agree_and_continue": "Slažem se i nastavi", + "agree_to": "Stvaranjem računa pristajete na ", "all": "SVE", - "send_error_minimum_value": "Minimalna vrijednost iznosa je 0.01", - "send_error_currency": "Iznos smije sadržavati samo brojeve", - "send_estimated_fee": "Procijenjena naknada:", - "send_priority": "Trenutno se naknada nalazi na ${transactionPriority} mjestu prioriteta.\nPrioritet transakcije moguće je prilagoditi u postavkama", - "send_creating_transaction": "Izrada transakcije", - "send_templates": "Predlošci", - "send_new": "Novi", - "send_amount": "Iznos:", - "send_fee": "Naknada:", - "send_name": "Ime", - "got_it": "U redu", - "send_sending": "Slanje...", - "send_success": "Vaš ${crypto} je uspješno poslan", - "settings_title": "Postavke", - "settings_nodes": "Nodovi", - "settings_current_node": "Trenutni node", - "settings_wallets": "Novčanik", - "settings_display_balance": "Prikaži stanje računa", - "settings_currency": "Valuta", - "settings_fee_priority": "Prioritet naknade", - "settings_save_recipient_address": "Spremi primateljevu adresu", - "settings_personal": "Osobni", - "settings_change_pin": "Promijeni PIN", - "settings_change_language": "Promijeni jezik", - "settings_allow_biometrical_authentication": "Dopusti biometrijsku autentifikaciju", - "settings_dark_mode": "Tamni način rada", - "settings_transactions": "Transakcije", - "settings_trades": "Razmjene", - "settings_display_on_dashboard_list": "Prikaži na listi kontrolne ploče", - "settings_all": "SVE", - "settings_only_trades": "Samo razmjene", - "settings_only_transactions": "Samo transakcije", - "settings_none": "Nijedno", - "settings_support": "Podrška", - "settings_terms_and_conditions": "Uvjeti i odredbe", - "pin_is_incorrect": "Netočan PIN", - "setup_pin": "Podesi PIN", - "enter_your_pin_again": "Ponovno upišite pin", - "setup_successful": "Vaš je pin uspješno postavljen!", - "wallet_keys": "Pristupni izraz/ključ novčanika", - "wallet_seed": "Pristupni izraz novčanika", - "private_key": "Privatni ključ", - "public_key": "Javni ključ", - "view_key_private": "View key (privatni)", - "view_key_public": "View key (javni)", - "spend_key_private": "Spend key (privatni)", - "spend_key_public": "Spend key (javni)", - "copied_key_to_clipboard": "${key} kopiran u međuspremnik", - "new_subaddress_title": "Nova adresa", - "new_subaddress_label_name": "Oznaka", - "new_subaddress_create": "Izradi", - "address_label": "Address label", - "subaddress_title": "Lista podadresa", - "trade_details_title": "Detalji razmjene", - "trade_details_id": "ID", - "trade_details_state": "Status", - "trade_details_fetching": "Dohvaćanje", - "trade_details_provider": "Pružatelj", - "trade_details_created_at": "Stvoreno u", - "trade_details_pair": "Upari", - "trade_details_copied": "${title} kopiran u međuspremnik", - "trade_history_title": "Povijest razmjena", - "transaction_details_title": "Detalji transakcije", - "transaction_details_transaction_id": "Transakcijski ID", - "transaction_details_date": "Datum", - "transaction_details_height": "Visina", - "transaction_details_amount": "Iznos", - "transaction_details_fee": "Naknada", - "transaction_details_copied": "${title} kopiran u međuspremnik", - "transaction_details_recipient_address": "Adrese primatelja", - "wallet_list_title": "Monero novčanik", - "wallet_list_create_new_wallet": "Izradi novi novčanik", - "wallet_list_edit_wallet": "Uredi novčanik", - "wallet_list_wallet_name": "Naziv novčanika", - "wallet_list_restore_wallet": "Oporavi novčanik", - "wallet_list_load_wallet": "Učitaj novčanik", - "wallet_list_loading_wallet": "Učitavanje novčanika ${wallet_name}", - "wallet_list_failed_to_load": "Neuspješno učitavanje novčanika ${wallet_name}. ${error}", - "wallet_list_removing_wallet": "Uklanjanje novčanika ${wallet_name}", - "wallet_list_failed_to_remove": "Neuspješno uklanjanje novčanika ${wallet_name}. ${error}", - "widgets_address": "Adresa", - "widgets_restore_from_blockheight": "Oporavi pomoću visine bloka", - "widgets_restore_from_date": "Oporavi pomoću datuma", - "widgets_or": "ili", - "widgets_seed": "pristupnog izraza", - "router_no_route": "Nije definirana ruta za ${name}", - "error_text_account_name": "Ime računa smije sadržavati samo slova i brojeve\nte mora biti dužine između 1 i 15 znakova", - "error_text_contact_name": "Ime kontakta ne smije sadržavati znakove ` , ' \" \ni mora biti dužine između 1 i 32 znaka", - "error_text_address": "Adresa novčanika mora odgovarati\nvrsti kriptovalute", - "error_text_node_address": "Molimo unesite iPv4 adresu", - "error_text_node_port": "Node port smije sadržavati samo brojeve između 0 i 65535", - "error_text_node_proxy_address": "Unesite :, na primjer 127.0.0.1:9050", - "error_text_payment_id": "ID plaćanja smije sadržavati samo od 16 do 64 znakova hex vrijednosti", - "error_text_xmr": "XMR vrijednost ne smije biti veća od raspoloživog iznosa.\nBroj decimala smije biti 12 ili manji.", - "error_text_fiat": "Vrijednost iznosa ne smije biti veća od raspoloživog iznosa.\nBroj decimala smije biti 2 ili manji.", - "error_text_subaddress_name": "Ime podadrese ne smije sadržavati znakove ` , ' \" \ni mora biti dužine između 1 i 20 znakova", - "error_text_amount": "Iznos smije sadržavati samo brojeve", - "error_text_wallet_name": "Naziv novčanika može sadržavati samo slova, brojeve, _ - simbole\ni mora imati između 1 i 33 znaka", - "error_text_keys": "Novčanik smije sadržavati samo 64 znakova hex vrijednosti", - "error_text_crypto_currency": "Broj decimala mora\nbiti 12 ili manji", - "error_text_minimal_limit": "Razmjena za ${provider} nije izrađena. Iznos je manji od minimalnog: ${min} ${currency}", - "error_text_maximum_limit": "Razmjena za ${provider} nije izrađena. Iznos je veći od maskimalnog: ${max} ${currency}", - "error_text_limits_loading_failed": "Razmjena za ${provider} nije izrađena. Neuspješno učitavanje limita", - "error_text_template": "Ime i adresa predloška ne smiju sadržavati znakove ` , ' \" \ni moraju biti dužine između 1 i 106 znakova", + "all_trades": "Svi obrti", + "all_transactions": "Sve transakcije", + "alphabetical": "Abecedno", + "already_have_account": "Već imate račun?", + "always": "Uvijek", + "amount": "Iznos: ", + "amount_is_estimate": "Iznos koji ćete primiti je okviran", + "amount_is_guaranteed": "Iznos koji ćete primiti je zajamčen", + "and": "i", + "anonpay_description": "Generiraj ${type}. Primatelj može ${method} s bilo kojom podržanom kriptovalutom, a vi ćete primiti sredstva u ovaj novčanik.", + "apk_update": "APK ažuriranje", + "approve": "Odobriti", + "arrive_in_this_address": "${currency} ${tag}će stići na ovu adresu", + "ascending": "Uzlazni", + "ask_each_time": "Pitajte svaki put", "auth_store_ban_timeout": "ban_timeout", "auth_store_banned_for": "Suspendiran na ", "auth_store_banned_minutes": " minute", "auth_store_incorrect_password": "Pogrešan PIN", - "wallet_store_monero_wallet": "Monero novčanik", - "wallet_restoration_store_incorrect_seed_length": "Netočna dužina pristupnog izraza", - "full_balance": "Pun iznos", - "available_balance": "Raspoloživ iznos", - "hidden_balance": "Skriven iznos", - "sync_status_syncronizing": "SINKRONIZIRANJE", - "sync_status_syncronized": "SINKRONIZIRANO", - "sync_status_not_connected": "NIJE POVEZANO", - "sync_status_starting_sync": "ZAPOČINJEMO SINKRONIZIRANJE", - "sync_status_failed_connect": "ISKLJUČENO", - "sync_status_connecting": "SPAJANJE", - "sync_status_connected": "SPOJENO", - "sync_status_attempting_sync": "POKUŠAJ SINKRONIZACIJE", - "transaction_priority_slow": "Sporo", - "transaction_priority_regular": "Uobičajeno", - "transaction_priority_medium": "Srednje", - "transaction_priority_fast": "Brzo", - "transaction_priority_fastest": "Najbrže", - "trade_for_not_created": "Razmjena za ${title} nije izrađena.", - "trade_not_created": "Razmjena nije izrađena", - "trade_id_not_found": "Razmjena ${tradeId} za ${title} nije pronađena.", - "trade_not_found": "Razmjena nije pronađena.", - "trade_state_pending": "U tijeku", - "trade_state_confirming": "Potvrđivanje", - "trade_state_trading": "Razmjenjivanje", - "trade_state_traded": "Razmijenjeno", - "trade_state_complete": "Dovršeno", - "trade_state_to_be_created": "Stvaranje", - "trade_state_unpaid": "Neplaćen", - "trade_state_underpaid": "Nedovoljno plaćen", - "trade_state_paid_unconfirmed": "Plaćanje nije potrđeno", - "trade_state_paid": "Plaćen", - "trade_state_btc_sent": "BTC poslan", - "trade_state_timeout": "Isteklo", - "trade_state_created": "Stvoreno", - "trade_state_finished": "Završeno", - "change_language": "Promijeni jezik", - "change_language_to": "Promijeni jezik u ${language}?", - "paste": "Zalijepi", - "restore_from_seed_placeholder": "Molimo unesite ili zalijepite svoj pristupni izraz ovdje", - "add_new_word": "Dodaj novu riječ", - "incorrect_seed": "Uneseni tekst nije valjan.", - "biometric_auth_reason": "Skenirajte svoj otisak prsta za autentifikaciju", - "version": "Verzija ${currentVersion}", - "extracted_address_content": "Poslat ćete sredstva primatelju\n${recipient_name}", - "card_address": "Adresa:", - "buy": "Kupi", - "sell": "Prodavati", - "placeholder_transactions": "Vaše će transakcije biti prikazane ovdje", - "placeholder_contacts": "Vaši će kontakti biti prikazani ovdje", - "template": "Predložak", - "confirm_delete_template": "Ovom ćete radnjom izbrisati ovaj predložak. Želite li nastaviti?", - "confirm_delete_wallet": "Ovom ćete radnjom izbrisati ovaj novčanik. Želite li nastaviti?", - "change_wallet_alert_title": "Izmijeni trenutni novčanik", - "change_wallet_alert_content": "Želite li promijeniti trenutni novčanik u ${wallet_name}?", - "creating_new_wallet": "Stvaranje novog novčanika", - "creating_new_wallet_error": "Greška: ${description}", - "seed_alert_title": "Upozorenje", - "seed_alert_content": "Pristupni izraz jedini je način za oporavak novčanika. Jeste li ga zapisali?", - "seed_alert_back": "Vrati se natrag", - "seed_alert_yes": "Jesam", - "exchange_sync_alert_content": "Molimo pričekajte dok se Vaš novčanik ne sinkronizira.", - "pre_seed_title": "VAŽNO", - "pre_seed_description": "Na sljedećoj ćete stranici vidjeti niz ${words} riječi. Radi se o Vašem jedinstvenom i tajnom pristupnom izrazu koji je ujedno i JEDINI način na koji možete oporaviti svoj novčanik u slučaju gubitka ili kvara. VAŠA je odgovornost zapisati ga te pohraniti na sigurno mjesto izvan Cake Wallet aplikacije.", - "pre_seed_button_text": "Razumijem. Prikaži mi moj pristupni izraz", - "xmr_to_error": "XMR.TO greška", - "xmr_to_error_description": "Nevažeći iznos. Dopušteno je najviše 8 znamenki iza točke", - "provider_error": "${provider} greška", - "use_ssl": "Koristi SSL", - "trusted": "vjerovao", - "color_theme": "Shema boja", - "light_theme": "Svijetla", - "bright_theme": "Jarka", - "dark_theme": "Tamna", - "enter_your_note": "Unesite svoju poruku…", - "note_optional": "Poruka (nije obvezno)", - "note_tap_to_change": "Poruka (dodirnite za promjenu)", - "view_in_block_explorer": "View in Block Explorer", - "view_transaction_on": "View Transaction on ", - "transaction_key": "Transakcijski ključ", - "confirmations": "Potvrde", - "recipient_address": "Primateljeva adresa", - "extra_id": "Dodatni ID:", - "destination_tag": "Odredišna oznaka:", - "memo": "Memo:", - "backup": "Sigurnosna kopija", - "change_password": "Promijeni lozinku", - "backup_password": "Lozinka za sigurnosnu kopiju", - "write_down_backup_password": "Molimo zapišite svoju lozinku za sigurnosnu kopiju koja se koristi za uvoz datoteka sigurnosne kopije.", - "export_backup": "Izvezi sigurnosnu kopiju", - "save_backup_password": "Molimo pobrinite se da spremite svoju lozinku za sigurnosnu kopiju. Bez nje nećete moći uvesti datoteke sigurnosne kopije.", - "backup_file": "Sigurnosna kopija datoteke", - "edit_backup_password": "Uredi lozinku za sigurnosnu kopiju", - "save_backup_password_alert": "Spremi lozinku za sigurnosnu kopiju", - "change_backup_password_alert": "Nećemo moći uvesti Vaše prethodne datoteke sigurnosne kopije s novom lozinkom za sigurnosnu kopiju. Novu lozinku za sigurnosnu kopiju moći ćete koristiti samo za nove datoteke sigurnosne kopije. Jeste li sigurni da želite promijeniti lozinku za sigurnosnu kopiju?", - "enter_backup_password": "Unesite svoju lozinku za sigurnosnu kopiju ovdje", - "select_backup_file": "Odaberite datoteku sigurnosne kopije", - "import": "Uvoz", - "please_select_backup_file": "Molimo odaberite datoteku sigurnosne kopije i unesite lozinku za sigurnosnu kopiju.", - "fixed_rate": "Fiksna stopa", - "fixed_rate_alert": "Moći ćete unijeti iznos koji želite primiti nakon što označite način rada fiksne stope. Želite li se prebaciti na način rada fiksne stope?", - "xlm_extra_info": "Molimo ne zaboravite navesti memo ID prilikom slanja XLM transakcije na razmjenu", - "xrp_extra_info": "Molimo ne zaboravite navesti odredišnu oznaku prilikom slanja XRP transakcije na razmjenu", - "exchange_incorrect_current_wallet_for_xmr": "Ako želite razmijeniti XMR s vlastitog Monero računa na Cake Wallet novčaniku, molimo prvo se prebacite na svoj Monero novčanik.", - "confirmed": "Potvrđeno stanje", - "unconfirmed": "Nepotvrđeno stanje", - "displayable": "Dostupno za prikaz", - "submit_request": "podnesi zahtjev", - "buy_alert_content": "Trenutno podržavamo samo kupnju Bitcoina, Ethereuma, Litecoina i Monera. Izradite ili prijeđite na svoj Bitcoin, Ethereum, Litecoin ili Monero novčanik.", - "sell_alert_content": "Trenutno podržavamo samo prodaju Bitcoina, Ethereuma i Litecoina. Izradite ili prijeđite na svoj Bitcoin, Ethereum ili Litecoin novčanik.", - "outdated_electrum_wallet_description": "Novi Bitcoin novčanici stvoreni u Cakeu sada imaju sjeme od 24 riječi. Obavezno je stvoriti novi Bitcoin novčanik i prenijeti sva svoja sredstva u novi novčanik od 24 riječi te prestati koristiti novčanike s sjemenkom od 12 riječi. Učinite to odmah kako biste osigurali svoja sredstva.", - "understand": "Razumijem", - "apk_update": "APK ažuriranje", - "buy_bitcoin": "Kupite Bitcoin", - "buy_with": "Kupite s", - "moonpay_alert_text": "Vrijednost iznosa mora biti veća ili jednaka ${minAmount} ${fiatCurrency}", - "outdated_electrum_wallet_receive_warning": "Ako ovaj novčanik sadrži sjeme od 12 riječi i stvoren je u Torti, NEMOJTE polagati Bitcoin u ovaj novčanik. Bilo koji BTC prebačen u ovaj novčanik može se izgubiti. Stvorite novi novčanik od 24 riječi (taknite izbornik u gornjem desnom dijelu, odaberite Novčanici, odaberite Stvori novi novčanik, a zatim odaberite Bitcoin) i ODMAH premjestite svoj BTC tamo. Novi BTC novčanici (s 24 riječi) tvrtke Cake sigurni su", - "do_not_show_me": "Ne pokazuj mi ovo više", - "unspent_coins_title": "Nepotrošeni novčići", - "unspent_coins_details_title": "Nepotrošeni detalji o novčićima", - "freeze": "Zamrznuti", - "frozen": "Smrznuto", - "coin_control": "Kontrola novca (nije obavezno)", - "address_detected": "Adresa je otkrivena", - "address_from_domain": "To je adresa od ${domain} na Unstoppable Domains", - "add_receiver": "Dodajte drugi prijemnik (izborno)", - "manage_yats": "Upravljanje Yat", - "yat_alert_title": "Lakše šaljite i primajte kriptovalute s Yatom", - "yat_alert_content": "Korisnici Cake Wallet sada mogu slati i primati sve svoje omiljene valute s jedinstvenim korisničkim imenom na temelju emojija.", - "get_your_yat": "Uzmi svoj Yat", - "connect_an_existing_yat": "Povežite postojeći Yat", - "yat_address": "Yat adresa", - "yat": "Yat", - "connect_yats": "Povežite Yats", - "address_from_yat": "To je adresa od ${emoji} na Yat", - "yat_error": "Yat pogreška", - "yat_error_content": "Nema adresa povezanih s ovim Yat -om. Pokušajte s drugim Yat -om", - "choose_address": "\n\nOdaberite adresu:", - "yat_popup_title": "Adresa vašeg novčanika može biti emojificirana.", - "yat_popup_content": "Sada možete slati i primati kriptovalute u Cake Wallet s vašim Yat - kratkim korisničkim imenom zasnovanim na emojijima. Upravljajte Yatsom u bilo kojem trenutku na zaslonu postavki", - "second_intro_title": "Jedna adresa emojija koja će svima njima vladati", - "second_intro_content": "Vaš Yat jedinstvena je adresa emojija koja zamjenjuje sve vaše duge heksadecimalne adrese za sve vaše valute.", - "third_intro_title": "Yat se lijepo igra s drugima", - "third_intro_content": "Yats žive i izvan Cake Wallet -a. Bilo koja adresa novčanika na svijetu može se zamijeniti Yat!", - "learn_more": "Saznajte više", - "search": "Traži", - "search_language": "Jezik pretraživanja", - "search_currency": "Traži valutu", - "new_template": "novi predložak", - "electrum_address_disclaimer": "Minden egyes alkalommal új címeket generálunk, de a korábbi címek továbbra is működnek", - "wallet_name_exists": "Novčanik s tim nazivom već postoji", - "market_place": "Tržnica", - "cake_pay_title": "Cake Pay poklon kartice", - "cake_pay_subtitle": "Kupite darovne kartice s popustom (samo SAD)", - "cake_pay_web_cards_title": "Cake Pay Web kartice", - "cake_pay_web_cards_subtitle": "Kupujte prepaid kartice i poklon kartice diljem svijeta", - "about_cake_pay": "Cake Pay vam omogućuje jednostavnu kupnju darovnih kartica s virtualnim sredstvima, koja se trenutno mogu potrošiti kod više od 150 000 trgovaca u Sjedinjenim Državama.", - "cake_pay_account_note": "Prijavite se samo s adresom e-pošte da biste vidjeli i kupili kartice. Neke su čak dostupne uz popust!", - "already_have_account": "Već imate račun?", - "create_account": "Stvori račun", - "privacy_policy": "Pravila privatnosti", - "welcome_to_cakepay": "Dobro došli u Cake Pay!", - "sign_up": "Prijavite se", - "forgot_password": "Zaboravljena lozinka", - "reset_password": "Poništi lozinku", - "gift_cards": "Ajándékkártya", - "setup_your_debit_card": "Postavite svoju debitnu karticu", - "no_id_required": "Nije potreban ID. Nadopunite i potrošite bilo gdje", - "how_to_use_card": "Kako koristiti ovu karticu", - "purchase_gift_card": "Kupnja darovne kartice", - "verification": "Potvrda", - "fill_code": "Molimo vas da ispunite kontrolni kod koji ste dobili na svojoj e-pošti", - "didnt_get_code": "Ne dobivate kod?", - "resend_code": "Molimo da ga ponovno pošaljete", - "debit_card": "Debitna kartica", - "cakepay_prepaid_card": "CakePay unaprijed plaćena debitna kartica", - "no_id_needed": "Nije potreban ID!", - "frequently_asked_questions": "Često postavljana pitanja", - "debit_card_terms": "Pohranjivanje i korištenje broja vaše platne kartice (i vjerodajnica koje odgovaraju broju vaše platne kartice) u ovom digitalnom novčaniku podliježu Uvjetima i odredbama važećeg ugovora vlasnika kartice s izdavateljem platne kartice, koji su na snazi ​​od S vremena na vrijeme.", - "please_reference_document": "Molimo pogledajte dokumente ispod za više informacija.", - "cardholder_agreement": "Ugovor s vlasnikom kartice", - "e_sign_consent": "E-Sign pristanak", - "agree_and_continue": "Slažem se i nastavi", - "email_address": "Adresa e-pošte", - "agree_to": "Stvaranjem računa pristajete na ", - "and": "i", - "enter_code": "Unesite kod", - "congratulations": "Čestitamo!", - "you_now_have_debit_card": "Sada imate debitnu karticu", - "min_amount": "Minimalno: ${value}", - "max_amount": "Maksimum: ${value}", - "enter_amount": "Unesite iznos", - "billing_address_info": "Ako se od vas zatraži adresa za naplatu, navedite svoju adresu za dostavu", - "order_physical_card": "Naručite fizičku karticu", - "add_value": "Dodaj vrijednost", - "activate": "Aktiviraj", - "get_a": "Nabavite ", - "digital_and_physical_card": "digitalna i fizička unaprijed plaćena debitna kartica", - "get_card_note": " koju možete ponovno napuniti digitalnim valutama. Nisu potrebne dodatne informacije!", - "signup_for_card_accept_terms": "Prijavite se za karticu i prihvatite uvjete.", - "add_fund_to_card": "Dodajte unaprijed uplaćena sredstva na kartice (do ${value})", - "use_card_info_two": "Sredstva se pretvaraju u USD kada se drže na prepaid računu, a ne u digitalnim valutama.", - "use_card_info_three": "Koristite digitalnu karticu online ili s beskontaktnim metodama plaćanja.", - "optionally_order_card": "Opcionalno naručite fizičku karticu.", - "hide_details": "Sakrij pojedinosti", - "show_details": "Prikaži pojedinosti", - "upto": "do ${value}", - "discount": "Uštedite ${value}%", - "gift_card_amount": "Iznos darovne kartice", - "bill_amount": "Iznos računa", - "you_pay": "Vi plaćate", - "tip": "Savjet:", - "custom": "prilagođeno", - "by_cake_pay": "od Cake Paya", - "expires": "Ističe", - "mm": "MM", - "yy": "GG", - "online": "Na mreži", - "offline": "izvan mreže", - "gift_card_number": "Broj darovne kartice", - "pin_number": "PIN broj", - "total_saving": "Ukupna ušteda", - "last_30_days": "Zadnjih 30 dana", - "avg_savings": "Prosj. ušteda", - "view_all": "Prikaži sve", - "active_cards": "Aktivne kartice", - "delete_account": "Izbriši račun", - "cards": "Kartice", - "active": "Aktivno", - "redeemed": "otkupljeno", - "gift_card_balance_note": "Ovdje će se pojaviti darovne kartice s preostalim saldom", - "gift_card_redeemed_note": "Poklon kartice koje ste iskoristili pojavit će se ovdje", - "logout": "Odjava", - "add_tip": "Dodaj savjet", - "percentageOf": "od ${amount}", - "is_percentage": "je", - "search_category": "Kategorija pretraživanja", - "mark_as_redeemed": "Označi kao otkupljeno", - "more_options": "Više opcija", - "awaiting_payment_confirmation": "Čeka se potvrda plaćanja", - "transaction_sent_notice": "Ako se zaslon ne nastavi nakon 1 minute, provjerite block explorer i svoju e-poštu.", - "agree": "Slažem se", - "in_store": "U trgovini", - "generating_gift_card": "Generiranje darovne kartice", - "payment_was_received": "Vaša uplata je primljena.", - "proceed_after_one_minute": "Ako se zaslon ne nastavi nakon 1 minute, provjerite svoju e-poštu.", - "order_id": "ID narudžbe", - "gift_card_is_generated": "Poklon kartica je generirana", - "open_gift_card": "Otvori darovnu karticu", - "contact_support": "Kontaktirajte podršku", - "gift_cards_unavailable": "Poklon kartice trenutno su dostupne za kupnju samo putem Monera, Bitcoina i Litecoina", - "background_sync_mode": "Sinkronizacija u pozadini", - "sync_all_wallets": "Sinkronizirajte sve novčanike", - "introducing_cake_pay": "Predstavljamo Cake Pay!", - "cake_pay_learn_more": "Azonnal vásárolhat és válthat be ajándékutalványokat az alkalmazásban!\nTovábbi információért csúsztassa balról jobbra az ujját.", + "authenticated": "Autentificiran", + "authentication": "Autentifikacija", + "auto_generate_subaddresses": "Automatski generirajte podadrese", "automatic": "Automatski", - "fixed_pair_not_supported": "Ovaj fiksni par nije podržan s odabranim burzama", - "variable_pair_not_supported": "Ovaj par varijabli nije podržan s odabranim burzama", - "none_of_selected_providers_can_exchange": "Niti jedan od odabranih pružatelja usluga ne može izvršiti ovu razmjenu", - "choose_one": "Izaberi jedan", - "choose_from_available_options": "Odaberite neku od dostupnih opcija:", - "custom_redeem_amount": "Prilagođeni iznos otkupa", - "add_custom_redemption": "Dodaj prilagođeni otkup", - "remaining": "preostalo", - "delete_wallet": "Izbriši novčanik", - "delete_wallet_confirm_message": "Jeste li sigurni da želite izbrisati ${wallet_name} novčanik?", - "low_fee": "Niska naknada", - "low_fee_alert": "Trenutačno koristite niski prioritet mrežne naknade. To bi moglo uzrokovati duga čekanja, različite tečajeve ili otkazane trgovine. Preporučujemo postavljanje veće naknade za bolje iskustvo.", - "ignor": "Zanemariti", - "use_suggested": "Koristite predloženo", - "do_not_share_warning_text": "Nemojte ih dijeliti ni s kim, uključujući podršku.\n\nVaša sredstva mogu i bit će ukradena!", - "help": "pomozite", - "all_transactions": "Sve transakcije", - "all_trades": "Svi obrti", - "connection_sync": "Povezivanje i sinkronizacija", - "security_and_backup": "Sigurnost i sigurnosna kopija", - "create_backup": "Stvori sigurnosnu kopiju", - "privacy_settings": "Postavke privatnosti", - "privacy": "Privatnost", - "display_settings": "Postavke zaslona", - "other_settings": "Ostale postavke", - "require_pin_after": "Zahtijevaj PIN nakon", - "always": "Uvijek", - "minutes_to_pin_code": "${minute} minuta", - "disable_exchange": "Onemogući exchange", - "advanced_settings": "Napredne postavke", - "settings_can_be_changed_later": "Te se postavke mogu promijeniti kasnije u postavkama aplikacije", - "add_custom_node": "Dodaj novi prilagođeni čvor", - "disable_fiat": "Isključi, fiat", - "fiat_api": "Fiat API", - "disabled": "Onemogućeno", - "enabled": "Omogućeno", - "tor_only": "Samo Tor", - "unmatched_currencies": "Valuta vašeg trenutnog novčanika ne odgovara onoj na skeniranom QR-u", - "orbot_running_alert": "Provjerite radi li Orbot prije spajanja na ovaj čvor.", - "contact_list_contacts": "Kontakti", - "contact_list_wallets": "Moji novčanici", - "bitcoin_payments_require_1_confirmation": "Bitcoin plaćanja zahtijevaju 1 potvrdu, što može potrajati 20 minuta ili dulje. Hvala na Vašem strpljenju! Dobit ćete e-poruku kada plaćanje bude potvrđeno.", - "send_to_this_address": "Pošaljite ${currency} ${tag}na ovu adresu", - "arrive_in_this_address": "${currency} ${tag}će stići na ovu adresu", - "do_not_send": "Ne šalji", - "error_dialog_content": "Ups, imamo grešku.\n\nPošaljite izvješće o padu našem timu za podršku kako bismo poboljšali aplikaciju.", - "scan_qr_code": "Skenirajte QR kod", - "cold_or_recover_wallet": "Dodajte hladni novčanik ili povratite papirnati novčanik", - "please_wait": "Molimo pričekajte", - "sweeping_wallet": "Čisti novčanik", - "sweeping_wallet_alert": "Ovo ne bi trebalo dugo trajati. NE NAPUŠTAJTE OVAJ ZASLON INAČE SE POBREŠENA SREDSTVA MOGU IZGUBITI", - "decimal_places_error": "Previše decimalnih mjesta", - "edit_node": "Uredi čvor", - "invoice_details": "Podaci o fakturi", - "donation_link_details": "Detalji veza za donacije", - "anonpay_description": "Generiraj ${type}. Primatelj može ${method} s bilo kojom podržanom kriptovalutom, a vi ćete primiti sredstva u ovaj novčanik.", - "create_invoice": "Izradite fakturu", - "create_donation_link": "Izradi poveznicu za donaciju", - "optional_email_hint": "Neobavezna e-pošta za obavijest primatelja", - "optional_description": "Opcijski opis", - "optional_name": "Izborno ime primatelja", - "clearnet_link": "Clearnet veza", - "onion_link": "Poveznica luka", - "settings": "Postavke", - "sell_monero_com_alert_content": "Prodaja Monera još nije podržana", - "error_text_input_below_minimum_limit": "Iznos je manji od minimalnog", - "error_text_input_above_maximum_limit": "Iznos je veći od maskimalnog", - "show_market_place": "Prikaži tržište", - "prevent_screenshots": "Spriječite snimke zaslona i snimanje zaslona", - "profile": "Profil", - "close": "Zatvoriti", - "modify_2fa": "Izmijenite tortu 2FA", - "disable_cake_2fa": "Onemogući Cake 2FA", - "question_to_disable_2fa": "Jeste li sigurni da želite onemogućiti Cake 2FA? 2FA kod više neće biti potreban za pristup novčaniku i određenim funkcijama.", - "disable": "Onemogući", - "setup_2fa": "Postavljanje torte 2FA", - "verify_with_2fa": "Provjerite s Cake 2FA", - "totp_code": "TOTP kod", - "please_fill_totp": "Unesite 8-znamenkasti kod koji se nalazi na vašem drugom uređaju", - "totp_2fa_success": "Uspjeh! Cake 2FA omogućen za ovaj novčanik. Ne zaboravite spremiti svoje mnemoničko sjeme u slučaju da izgubite pristup novčaniku.", - "totp_verification_success": "Provjera uspješna!", - "totp_2fa_failure": "Neispravan kod. Pokušajte s drugim kodom ili generirajte novi tajni ključ. Koristite kompatibilnu 2FA aplikaciju koja podržava 8-znamenkasti kod i SHA512.", - "enter_totp_code": "Unesite TOTP kod.", - "add_secret_code": "Ili dodajte ovaj tajni kod u aplikaciju za autentifikaciju", - "totp_secret_code": "TOTP tajni kod", - "setup_2fa_text": "Cake 2FA radi koristeći TOTP kao drugi faktor provjere autentičnosti.\n\nCake 2FA TOTP zahtijeva SHA-512 i podršku za 8 znamenki; ovo osigurava povećanu sigurnost. Više informacija i podržanih aplikacija možete pronaći u vodiču.", - "setup_totp_recommended": "Postavite TOTP", - "disable_buy": "Onemogući kupnju", - "disable_sell": "Onemogući akciju prodaje", - "cake_2fa_preset": "Cake 2FA Preset", - "monero_dark_theme": "Monero tamna tema", + "available_balance": "Raspoloživ iznos", + "available_balance_description": "Dostupno stanje je iznos koji možete potrošiti. To je vaš saldo minus bilo kakve transakcije koje su još uvijek u tijeku.", + "avg_savings": "Prosj. ušteda", + "awaitDAppProcessing": "Molimo pričekajte da dApp završi obradu.", + "awaiting_payment_confirmation": "Čeka se potvrda plaćanja", + "background_sync_mode": "Sinkronizacija u pozadini", + "backup": "Sigurnosna kopija", + "backup_file": "Sigurnosna kopija datoteke", + "backup_password": "Lozinka za sigurnosnu kopiju", + "balance_page": "Stranica sa stanjem", + "bill_amount": "Iznos računa", + "billing_address_info": "Ako se od vas zatraži adresa za naplatu, navedite svoju adresu za dostavu", + "biometric_auth_reason": "Skenirajte svoj otisak prsta za autentifikaciju", "bitcoin_dark_theme": "Bitcoin Tamna tema", "bitcoin_light_theme": "Bitcoin Light Theme", - "high_contrast_theme": "Tema visokog kontrasta", - "matrix_green_dark_theme": "Matrix Green Dark Theme", - "monero_light_theme": "Monero lagana tema", - "auto_generate_subaddresses": "Automatski generirajte podadrese", - "narrow": "Usko", - "normal": "Normalno", - "aggressive": "Preterano", - "require_for_assessing_wallet": "Potreban za pristup novčaniku", - "require_for_sends_to_non_contacts": "Zahtijeva za slanje nekontaktima", - "require_for_sends_to_contacts": "Zahtijeva za slanje kontaktima", - "require_for_sends_to_internal_wallets": "Zahtijeva za slanje u interne novčanike", - "require_for_exchanges_to_internal_wallets": "Potreban za razmjenu na interne novčanike", - "require_for_adding_contacts": "Zahtijeva za dodavanje kontakata", - "require_for_creating_new_wallets": "Potreban za kreiranje novih novčanika", - "require_for_all_security_and_backup_settings": "Zahtijeva za sve postavke sigurnosti i sigurnosne kopije", - "available_balance_description": "Dostupno stanje je iznos koji možete potrošiti. To je vaš saldo minus bilo kakve transakcije koje su još uvijek u tijeku.", - "syncing_wallet_alert_title": "Vaš novčanik se sinkronizira", - "syncing_wallet_alert_content": "Vaš saldo i popis transakcija možda neće biti potpuni sve dok na vrhu ne piše \"SINKRONIZIRANO\". Kliknite/dodirnite da biste saznali više.", - "home_screen_settings": "Postavke početnog zaslona", - "sort_by": "Poredaj po", - "search_add_token": "Traži / Dodaj token", - "edit_token": "Uredi token", - "warning": "Upozorenje", - "add_token_warning": "Nemojte uređivati niti dodavati tokene prema uputama prevaranata.\nUvijek potvrdite adrese tokena s uglednim izvorima!", - "add_token_disclaimer_check": "Potvrdio sam adresu i informacije o ugovoru o tokenu koristeći ugledni izvor. Dodavanje zlonamjernih ili netočnih informacija može dovesti do gubitka sredstava.", - "token_contract_address": "Adresa ugovora tokena", - "token_name": "Naziv tokena npr.: Tether", - "token_symbol": "Simbol tokena npr.: USDT", - "token_decimal": "Token decimalni", - "field_required": "ovo polje je obavezno", - "pin_at_top": "prikvači ${token} na vrh", - "invalid_input": "Pogrešan unos", - "fiat_balance": "Fiat Bilans", - "gross_balance": "Bruto bilanca", - "alphabetical": "Abecedno", - "generate_name": "Generiraj ime", - "balance_page": "Stranica sa stanjem", - "share": "Udio", - "slidable": "Klizna", - "manage_nodes": "Upravljanje čvorovima", - "etherscan_history": "Etherscan povijest", - "template_name": "Naziv predloška", - "change_rep_message": "Jeste li sigurni da želite promijeniti predstavnika?", - "unsupported_asset": "Ne podržavamo ovu radnju za ovaj materijal. Izradite ili prijeđite na novčanik podržane vrste sredstava.", - "manage_pow_nodes": "Upravljanje PoW čvorovima", - "support_title_live_chat": "Podrška uživo", - "support_title_guides": "Vodiči za torte", - "support_description_guides": "Dokumentacija i podrška za uobičajena pitanja", - "support_title_other_links": "Ostale veze za podršku", - "support_description_other_links": "Pridružite se našim zajednicama ili nam dosegnu naše partnere drugim metodama", - "choose_derivation": "Odaberite izvedbu novčanika", - "new_first_wallet_text": "Jednostavno čuvajte svoju kripto valutu", - "select_destination": "Odaberite odredište za datoteku sigurnosne kopije.", - "save_to_downloads": "Spremi u Preuzimanja", - "select_buy_provider_notice": "Odaberite gornji davatelj kupnje. Ovaj zaslon možete preskočiti postavljanjem zadanog davatelja usluga kupnje u postavkama aplikacija.", - "onramper_option_description": "Brzo kupite kriptovalute s mnogim načinima plaćanja. Dostupno u većini zemalja. Širenja i naknade variraju.", - "default_buy_provider": "Zadani davatelj kupnje", - "ask_each_time": "Pitajte svaki put", + "bitcoin_payments_require_1_confirmation": "Bitcoin plaćanja zahtijevaju 1 potvrdu, što može potrajati 20 minuta ili dulje. Hvala na Vašem strpljenju! Dobit ćete e-poruku kada plaćanje bude potvrđeno.", + "Blocks_remaining": "${status} preostalih blokova", + "bright_theme": "Jarka", + "buy": "Kupi", + "buy_alert_content": "Trenutno podržavamo samo kupnju Bitcoina, Ethereuma, Litecoina i Monera. Izradite ili prijeđite na svoj Bitcoin, Ethereum, Litecoin ili Monero novčanik.", + "buy_bitcoin": "Kupite Bitcoin", "buy_provider_unavailable": "Davatelj trenutno nije dostupan.", - "signTransaction": "Potpišite transakciju", + "buy_with": "Kupite s", + "by_cake_pay": "od Cake Paya", + "cake_2fa_preset": "Cake 2FA Preset", + "cake_pay_account_note": "Prijavite se samo s adresom e-pošte da biste vidjeli i kupili kartice. Neke su čak dostupne uz popust!", + "cake_pay_learn_more": "Azonnal vásárolhat és válthat be ajándékutalványokat az alkalmazásban!\nTovábbi információért csúsztassa balról jobbra az ujját.", + "cake_pay_subtitle": "Kupite darovne kartice s popustom (samo SAD)", + "cake_pay_title": "Cake Pay poklon kartice", + "cake_pay_web_cards_subtitle": "Kupujte prepaid kartice i poklon kartice diljem svijeta", + "cake_pay_web_cards_title": "Cake Pay Web kartice", + "cake_wallet": "Cake Wallet", + "cakepay_prepaid_card": "CakePay unaprijed plaćena debitna kartica", + "camera_consent": "Vaš će fotoaparat koristiti za snimanje slike u svrhu identifikacije od strane ${provider}. Pojedinosti potražite u njihovoj politici privatnosti.", + "camera_permission_is_required": "Potrebno je dopuštenje kamere.\nOmogućite ga u postavkama aplikacije.", + "cancel": "Poništi", + "card_address": "Adresa:", + "cardholder_agreement": "Ugovor s vlasnikom kartice", + "cards": "Kartice", + "chains": "Lanci", + "change": "Promijeni", + "change_backup_password_alert": "Nećemo moći uvesti Vaše prethodne datoteke sigurnosne kopije s novom lozinkom za sigurnosnu kopiju. Novu lozinku za sigurnosnu kopiju moći ćete koristiti samo za nove datoteke sigurnosne kopije. Jeste li sigurni da želite promijeniti lozinku za sigurnosnu kopiju?", + "change_currency": "Promijenite valutu", + "change_current_node": "Jeste li sigurni da želite promijeniti trenutni node na ${node}?", + "change_current_node_title": "Promijeni trenutni node", + "change_exchange_provider": "Promjena davatelja usluge razmjene", + "change_language": "Promijeni jezik", + "change_language_to": "Promijeni jezik u ${language}?", + "change_password": "Promijeni lozinku", + "change_rep_message": "Jeste li sigurni da želite promijeniti predstavnika?", + "change_rep_successful": "Uspješno promijenjena reprezentativna", + "change_wallet_alert_content": "Želite li promijeniti trenutni novčanik u ${wallet_name}?", + "change_wallet_alert_title": "Izmijeni trenutni novčanik", + "choose_account": "Odaberi račun", + "choose_address": "\n\nOdaberite adresu:", + "choose_derivation": "Odaberite izvedbu novčanika", + "choose_from_available_options": "Odaberite neku od dostupnih opcija:", + "choose_one": "Izaberi jedan", + "choose_relay": "Odaberite relej za korištenje", + "choose_wallet_currency": "Molimo odaberite valutu novčanika:", + "clear": "Izbriši", + "clearnet_link": "Clearnet veza", + "close": "Zatvoriti", + "coin_control": "Kontrola novca (nije obavezno)", + "cold_or_recover_wallet": "Dodajte hladni novčanik ili povratite papirnati novčanik", + "color_theme": "Shema boja", + "commit_transaction_amount_fee": "Izvrši transakciju \nAmount: ${amount}\nFee: ${fee}", + "confirm": "Potvrdi", + "confirm_delete_template": "Ovom ćete radnjom izbrisati ovaj predložak. Želite li nastaviti?", + "confirm_delete_wallet": "Ovom ćete radnjom izbrisati ovaj novčanik. Želite li nastaviti?", + "confirm_sending": "Potvrdi slanje", + "confirmations": "Potvrde", + "confirmed": "Potvrđeno stanje", + "confirmed_tx": "Potvrđen", + "congratulations": "Čestitamo!", + "connect_an_existing_yat": "Povežite postojeći Yat", + "connect_yats": "Povežite Yats", + "connection_sync": "Povezivanje i sinkronizacija", + "connectWalletPrompt": "Povežite svoj novčanik s WalletConnectom za obavljanje transakcija", + "contact": "Kontakt", + "contact_list_contacts": "Kontakti", + "contact_list_wallets": "Moji novčanici", + "contact_name": "Ime kontakta", + "contact_support": "Kontaktirajte podršku", + "continue_text": "Nastavak", + "contractName": "Naziv ugovora", + "contractSymbol": "Simbol ugovora", + "copied_key_to_clipboard": "${key} kopiran u međuspremnik", + "copied_to_clipboard": "Kopirano u međuspremnik", + "copy": "Kopiraj", + "copy_address": "Kopiraj adresu", + "copy_id": "Kopirati ID", + "copyWalletConnectLink": "Kopirajte vezu WalletConnect iz dApp-a i zalijepite je ovdje", + "create_account": "Stvori račun", + "create_backup": "Stvori sigurnosnu kopiju", + "create_donation_link": "Izradi poveznicu za donaciju", + "create_invoice": "Izradite fakturu", + "create_new": "Izradi novi novčanik", + "create_new_account": "Izradi novi račun", + "creating_new_wallet": "Stvaranje novog novčanika", + "creating_new_wallet_error": "Greška: ${description}", + "creation_date": "Datum stvaranja", + "custom": "prilagođeno", + "custom_drag": "Prilagođeni (držite i povucite)", + "custom_redeem_amount": "Prilagođeni iznos otkupa", + "dark_theme": "Tamna", + "debit_card": "Debitna kartica", + "debit_card_terms": "Pohranjivanje i korištenje broja vaše platne kartice (i vjerodajnica koje odgovaraju broju vaše platne kartice) u ovom digitalnom novčaniku podliježu Uvjetima i odredbama važećeg ugovora vlasnika kartice s izdavateljem platne kartice, koji su na snazi ​​od S vremena na vrijeme.", + "decimal_places_error": "Previše decimalnih mjesta", + "default_buy_provider": "Zadani davatelj kupnje", + "default_sell_provider": "Zadani dobavljač prodaje", + "delete": "Izbriši", + "delete_account": "Izbriši račun", + "delete_wallet": "Izbriši novčanik", + "delete_wallet_confirm_message": "Jeste li sigurni da želite izbrisati ${wallet_name} novčanik?", + "deleteConnectionConfirmationPrompt": "Jeste li sigurni da želite izbrisati vezu s", + "descending": "Silazni", + "description": "Opis", + "destination_tag": "Odredišna oznaka:", + "dfx_option_description": "Kupujte kripto s EUR i CHF. Do 990 € bez dodatnog KYC-a. Za maloprodajne i poslovne korisnike u Europi", + "didnt_get_code": "Ne dobivate kod?", + "digit_pin": "-znamenkasti PIN", + "digital_and_physical_card": "digitalna i fizička unaprijed plaćena debitna kartica", + "disable": "Onemogući", + "disable_buy": "Onemogući kupnju", + "disable_cake_2fa": "Onemogući Cake 2FA", + "disable_exchange": "Onemogući exchange", + "disable_fiat": "Isključi, fiat", + "disable_sell": "Onemogući akciju prodaje", + "disabled": "Onemogućeno", + "discount": "Uštedite ${value}%", + "display_settings": "Postavke zaslona", + "displayable": "Dostupno za prikaz", + "do_not_have_enough_gas_asset": "Nemate dovoljno ${currency} da izvršite transakciju s trenutačnim uvjetima blockchain mreže. Trebate više ${currency} da platite naknade za blockchain mrežu, čak i ako šaljete drugu imovinu.", + "do_not_send": "Ne šalji", + "do_not_share_warning_text": "Nemojte ih dijeliti ni s kim, uključujući podršku.\n\nVaša sredstva mogu i bit će ukradena!", + "do_not_show_me": "Ne pokazuj mi ovo više", + "domain_looks_up": "Pretraga domena", + "donation_link_details": "Detalji veza za donacije", + "e_sign_consent": "E-Sign pristanak", + "edit": "Uredi", + "edit_backup_password": "Uredi lozinku za sigurnosnu kopiju", + "edit_node": "Uredi čvor", + "edit_token": "Uredi token", + "electrum_address_disclaimer": "Minden egyes alkalommal új címeket generálunk, de a korábbi címek továbbra is működnek", + "email_address": "Adresa e-pošte", + "enabled": "Omogućeno", + "enter_amount": "Unesite iznos", + "enter_backup_password": "Unesite svoju lozinku za sigurnosnu kopiju ovdje", + "enter_code": "Unesite kod", + "enter_seed_phrase": "Unesite svoju sjemensku frazu", + "enter_totp_code": "Unesite TOTP kod.", + "enter_your_note": "Unesite svoju poruku…", + "enter_your_pin": "Upišite PIN", + "enter_your_pin_again": "Ponovno upišite pin", + "enterTokenID": "Unesite ID tokena", + "enterWalletConnectURI": "Unesite WalletConnect URI", + "error": "Greška", + "error_dialog_content": "Ups, imamo grešku.\n\nPošaljite izvješće o padu našem timu za podršku kako bismo poboljšali aplikaciju.", + "error_text_account_name": "Ime računa smije sadržavati samo slova i brojeve\nte mora biti dužine između 1 i 15 znakova", + "error_text_address": "Adresa novčanika mora odgovarati\nvrsti kriptovalute", + "error_text_amount": "Iznos smije sadržavati samo brojeve", + "error_text_contact_name": "Ime kontakta ne smije sadržavati znakove ` , ' \" \ni mora biti dužine između 1 i 32 znaka", + "error_text_crypto_currency": "Broj decimala mora\nbiti 12 ili manji", + "error_text_fiat": "Vrijednost iznosa ne smije biti veća od raspoloživog iznosa.\nBroj decimala smije biti 2 ili manji.", + "error_text_input_above_maximum_limit": "Iznos je veći od maskimalnog", + "error_text_input_below_minimum_limit": "Iznos je manji od minimalnog", + "error_text_keys": "Novčanik smije sadržavati samo 64 znakova hex vrijednosti", + "error_text_limits_loading_failed": "Razmjena za ${provider} nije izrađena. Neuspješno učitavanje limita", + "error_text_maximum_limit": "Razmjena za ${provider} nije izrađena. Iznos je veći od maskimalnog: ${max} ${currency}", + "error_text_minimal_limit": "Razmjena za ${provider} nije izrađena. Iznos je manji od minimalnog: ${min} ${currency}", + "error_text_node_address": "Molimo unesite iPv4 adresu", + "error_text_node_port": "Node port smije sadržavati samo brojeve između 0 i 65535", + "error_text_node_proxy_address": "Unesite :, na primjer 127.0.0.1:9050", + "error_text_payment_id": "ID plaćanja smije sadržavati samo od 16 do 64 znakova hex vrijednosti", + "error_text_subaddress_name": "Ime podadrese ne smije sadržavati znakove ` , ' \" \ni mora biti dužine između 1 i 20 znakova", + "error_text_template": "Ime i adresa predloška ne smiju sadržavati znakove ` , ' \" \ni moraju biti dužine između 1 i 106 znakova", + "error_text_wallet_name": "Naziv novčanika može sadržavati samo slova, brojeve, _ - simbole\ni mora imati između 1 i 33 znaka", + "error_text_xmr": "XMR vrijednost ne smije biti veća od raspoloživog iznosa.\nBroj decimala smije biti 12 ili manji.", "errorGettingCredentials": "Neuspješno: Pogreška prilikom dobivanja vjerodajnica", "errorSigningTransaction": "Došlo je do pogreške prilikom potpisivanja transakcije", - "pairingInvalidEvent": "Nevažeći događaj uparivanja", - "chains": "Lanci", - "methods": "Metode", - "events": "Događaji", - "reject": "Odbiti", - "approve": "Odobriti", - "expiresOn": "Istječe", - "walletConnect": "WalletConnect", - "nullURIError": "URI je nula", - "connectWalletPrompt": "Povežite svoj novčanik s WalletConnectom za obavljanje transakcija", - "newConnection": "Nova veza", - "activeConnectionsPrompt": "Ovdje će se pojaviti aktivne veze", - "deleteConnectionConfirmationPrompt": "Jeste li sigurni da želite izbrisati vezu s", + "estimated": "procijenjen", + "etherscan_history": "Etherscan povijest", "event": "Događaj", - "successful": "Uspješno", - "wouoldLikeToConnect": "želio bi se povezati", - "message": "Poruka", - "do_not_have_enough_gas_asset": "Nemate dovoljno ${currency} da izvršite transakciju s trenutačnim uvjetima blockchain mreže. Trebate više ${currency} da platite naknade za blockchain mrežu, čak i ako šaljete drugu imovinu.", - "totp_auth_url": "TOTP AUTH URL", - "awaitDAppProcessing": "Molimo pričekajte da dApp završi obradu.", - "copyWalletConnectLink": "Kopirajte vezu WalletConnect iz dApp-a i zalijepite je ovdje", - "enterWalletConnectURI": "Unesite WalletConnect URI", - "seed_key": "Sjemenski ključ", - "enter_seed_phrase": "Unesite svoju sjemensku frazu", - "change_rep_successful": "Uspješno promijenjena reprezentativna", - "add_contact": "Dodaj kontakt", + "events": "Događaji", + "exchange": "Razmijeni", + "exchange_incorrect_current_wallet_for_xmr": "Ako želite razmijeniti XMR s vlastitog Monero računa na Cake Wallet novčaniku, molimo prvo se prebacite na svoj Monero novčanik.", + "exchange_new_template": "Novi predložak", "exchange_provider_unsupported": "${providerName} više nije podržan!", - "domain_looks_up": "Pretraga domena", - "require_for_exchanges_to_external_wallets": "Zahtijeva razmjene na vanjske novčanike", - "camera_permission_is_required": "Potrebno je dopuštenje kamere.\nOmogućite ga u postavkama aplikacije.", - "switchToETHWallet": "Prijeđite na Ethereum novčanik i pokušajte ponovno", - "order_by": "Narediti", - "creation_date": "Datum stvaranja", + "exchange_result_confirm": "Pritiskom na potvrdi, poslat ćete ${fetchingLabel} ${from} sa svog novčanika pod nazivom ${walletName} na adresu prikazanu ispod ili iznos možete poslati s vanjskog novčanika na niže navedenu adresu. /QR code.\n\nMolimo potvrdite za nastavak ili se vratite natrag za promjenu iznosa.", + "exchange_result_description": "Potrebno poslati minimalno ${fetchingLabel} ${from} na adresu prikazanu na sljedećoj stranici. Ukoliko pošaljete iznos manji od ${fetchingLabel} ${from}, postoji mogućnost da razmjena neće biti uspješna i da iznos neće biti vraćen.", + "exchange_result_write_down_ID": "*Molimo kopirajte ili zapišite svoj ID prikazan ispod.", + "exchange_result_write_down_trade_id": "Molimo kopirajte ili zapišite transakcijski ID za nastavak.", + "exchange_sync_alert_content": "Molimo pričekajte dok se Vaš novčanik ne sinkronizira.", + "expired": "Isteklo", + "expires": "Ističe", + "expiresOn": "Istječe", + "export_backup": "Izvezi sigurnosnu kopiju", + "extra_id": "Dodatni ID:", + "extracted_address_content": "Poslat ćete sredstva primatelju\n${recipient_name}", + "failed_authentication": "Autentifikacija neuspješna. ${state_error}", + "faq": "FAQ", + "fetching": "Dohvaćanje", + "fiat_api": "Fiat API", + "fiat_balance": "Fiat Bilans", + "field_required": "ovo polje je obavezno", + "fill_code": "Molimo vas da ispunite kontrolni kod koji ste dobili na svojoj e-pošti", + "filter_by": "Filtrirati po", + "first_wallet_text": "Odličan novčanik za Monero, Bitcoin, Ethereum, Litecoin, i Haven", + "fixed_pair_not_supported": "Ovaj fiksni par nije podržan s odabranim burzama", + "fixed_rate": "Fiksna stopa", + "fixed_rate_alert": "Moći ćete unijeti iznos koji želite primiti nakon što označite način rada fiksne stope. Želite li se prebaciti na način rada fiksne stope?", + "forgot_password": "Zaboravljena lozinka", + "freeze": "Zamrznuti", + "frequently_asked_questions": "Često postavljana pitanja", + "frozen": "Smrznuto", + "full_balance": "Pun iznos", + "generate_name": "Generiraj ime", + "generating_gift_card": "Generiranje darovne kartice", + "get_a": "Nabavite ", + "get_card_note": " koju možete ponovno napuniti digitalnim valutama. Nisu potrebne dodatne informacije!", + "get_your_yat": "Uzmi svoj Yat", + "gift_card_amount": "Iznos darovne kartice", + "gift_card_balance_note": "Ovdje će se pojaviti darovne kartice s preostalim saldom", + "gift_card_is_generated": "Poklon kartica je generirana", + "gift_card_number": "Broj darovne kartice", + "gift_card_redeemed_note": "Poklon kartice koje ste iskoristili pojavit će se ovdje", + "gift_cards": "Ajándékkártya", + "gift_cards_unavailable": "Poklon kartice trenutno su dostupne za kupnju samo putem Monera, Bitcoina i Litecoina", + "got_it": "U redu", + "gross_balance": "Bruto bilanca", "group_by_type": "Grupirati", - "importNFTs": "Uvoz NFT-ova", - "noNFTYet": "Još nema NFT-ova", - "address": "Adresa", - "enterTokenID": "Unesite ID tokena", - "tokenID": "iskaznica", - "name": "Ime", - "symbol": "Simbol", - "seed_phrase_length": "Duljina početne fraze", - "unavailable_balance": "Nedostupno stanje", - "unavailable_balance_description": "Nedostupno stanje: Ovaj ukupni iznos uključuje sredstva koja su zaključana u transakcijama na čekanju i ona koja ste aktivno zamrznuli u postavkama kontrole novčića. Zaključani saldi postat će dostupni kada se dovrše njihove transakcije, dok zamrznuti saldi ostaju nedostupni za transakcije sve dok ih ne odlučite odmrznuti.", - "unspent_change": "Promijeniti", - "tor_connection": "Tor veza", - "setup_warning_2fa_text": "Morat ćete obnoviti svoj novčanik iz mnemoničkog sjemena.\n\nPodrška za kolače neće vam moći pomoći ako izgubite pristup svojim 2FA ili mnemoničkim izvorima.\nCake 2FA je druga provjera autentičnosti za određene radnje u novčaniku. Prije uporabe Cake 2FA preporučujemo da pročitate vodič.NIJE siguran kao hladno skladište.\n\nAko izgubite pristup svojoj 2FA aplikaciji ili TOTP ključevima, IZGUBIT ĆETE pristup ovom novčaniku. ", - "scan_qr_on_device": "Skenirajte ovaj QR kod na drugom uređaju", + "haven_app": "Haven by Cake Wallet", + "haven_app_wallet_text": "Awesome wallet for Haven", + "help": "pomozite", + "hidden_balance": "Skriven iznos", + "hide_details": "Sakrij pojedinosti", + "high_contrast_theme": "Tema visokog kontrasta", + "home_screen_settings": "Postavke početnog zaslona", "how_to_use": "Kako koristiti", + "how_to_use_card": "Kako koristiti ovu karticu", + "id": "ID: ", + "ignor": "Zanemariti", + "import": "Uvoz", + "importNFTs": "Uvoz NFT-ova", + "in_store": "U trgovini", + "incoming": "Dolazno", + "incorrect_seed": "Uneseni tekst nije valjan.", + "introducing_cake_pay": "Predstavljamo Cake Pay!", + "invalid_input": "Pogrešan unos", + "invoice_details": "Podaci o fakturi", + "is_percentage": "je", + "last_30_days": "Zadnjih 30 dana", + "learn_more": "Saznajte više", + "light_theme": "Svijetla", + "loading_your_wallet": "Novčanik se učitava", + "login": "Prijava", + "logout": "Odjava", + "low_fee": "Niska naknada", + "low_fee_alert": "Trenutačno koristite niski prioritet mrežne naknade. To bi moglo uzrokovati duga čekanja, različite tečajeve ili otkazane trgovine. Preporučujemo postavljanje veće naknade za bolje iskustvo.", + "manage_nodes": "Upravljanje čvorovima", + "manage_pow_nodes": "Upravljanje PoW čvorovima", + "manage_yats": "Upravljanje Yat", + "mark_as_redeemed": "Označi kao otkupljeno", + "market_place": "Tržnica", + "matrix_green_dark_theme": "Matrix Green Dark Theme", + "max_amount": "Maksimum: ${value}", + "max_value": "Maks.: ${value} ${currency}", + "memo": "Memo:", + "message": "Poruka", + "methods": "Metode", + "min_amount": "Minimalno: ${value}", + "min_value": "Min.: ${value} ${currency}", + "minutes_to_pin_code": "${minute} minuta", + "mm": "MM", + "modify_2fa": "Izmijenite tortu 2FA", + "monero_com": "Monero.com by Cake Wallet", + "monero_com_wallet_text": "Awesome wallet for Monero", + "monero_dark_theme": "Monero tamna tema", + "monero_light_theme": "Monero lagana tema", + "moonpay_alert_text": "Vrijednost iznosa mora biti veća ili jednaka ${minAmount} ${fiatCurrency}", + "more_options": "Više opcija", + "name": "Ime", + "narrow": "Usko", + "new_first_wallet_text": "Jednostavno čuvajte svoju kripto valutu", + "new_node_testing": "Provjera novog nodea", + "new_subaddress_create": "Izradi", + "new_subaddress_label_name": "Oznaka", + "new_subaddress_title": "Nova adresa", + "new_template": "novi predložak", + "new_wallet": "Novi novčanik", + "newConnection": "Nova veza", + "no_id_needed": "Nije potreban ID!", + "no_id_required": "Nije potreban ID. Nadopunite i potrošite bilo gdje", + "no_relay_on_domain": "Ne postoji relej za korisničku domenu ili je relej nedostupan. Odaberite relej za korištenje.", + "no_relays": "Nema releja", + "no_relays_message": "Pronašli smo zapis Nostr NIP-05 za ovog korisnika, ali on ne sadrži nikakve releje. Uputite primatelja da doda releje u svoj Nostr zapis.", + "node_address": "Node adresa", + "node_connection_failed": "Neuspješno spajanje", + "node_connection_successful": "Uspješno spajanje", + "node_new": "Novi node", + "node_port": "Node port", + "node_reset_settings_title": "Resetiraj postavke", + "node_test": "Provjeri", + "nodes": "Nodes", + "nodes_list_reset_to_default_message": "Jeste li sigurni da se želite vratiti na početne postavke?", + "none_of_selected_providers_can_exchange": "Niti jedan od odabranih pružatelja usluga ne može izvršiti ovu razmjenu", + "noNFTYet": "Još nema NFT-ova", + "normal": "Normalno", + "note_optional": "Poruka (nije obvezno)", + "note_tap_to_change": "Poruka (dodirnite za promjenu)", + "nullURIError": "URI je nula", + "offer_expires_in": "Ponuda istječe za: ", + "offline": "izvan mreže", + "ok": "OK", + "onion_link": "Poveznica luka", + "online": "Na mreži", + "onramper_option_description": "Brzo kupite kriptovalute s mnogim načinima plaćanja. Dostupno u većini zemalja. Širenja i naknade variraju.", + "open_gift_card": "Otvori darovnu karticu", + "optional_description": "Opcijski opis", + "optional_email_hint": "Neobavezna e-pošta za obavijest primatelja", + "optional_name": "Izborno ime primatelja", + "optionally_order_card": "Opcionalno naručite fizičku karticu.", + "orbot_running_alert": "Provjerite radi li Orbot prije spajanja na ovaj čvor.", + "order_by": "Narediti", + "order_id": "ID narudžbe", + "order_physical_card": "Naručite fizičku karticu", + "other_settings": "Ostale postavke", + "outdated_electrum_wallet_description": "Novi Bitcoin novčanici stvoreni u Cakeu sada imaju sjeme od 24 riječi. Obavezno je stvoriti novi Bitcoin novčanik i prenijeti sva svoja sredstva u novi novčanik od 24 riječi te prestati koristiti novčanike s sjemenkom od 12 riječi. Učinite to odmah kako biste osigurali svoja sredstva.", + "outdated_electrum_wallet_receive_warning": "Ako ovaj novčanik sadrži sjeme od 12 riječi i stvoren je u Torti, NEMOJTE polagati Bitcoin u ovaj novčanik. Bilo koji BTC prebačen u ovaj novčanik može se izgubiti. Stvorite novi novčanik od 24 riječi (taknite izbornik u gornjem desnom dijelu, odaberite Novčanici, odaberite Stvori novi novčanik, a zatim odaberite Bitcoin) i ODMAH premjestite svoj BTC tamo. Novi BTC novčanici (s 24 riječi) tvrtke Cake sigurni su", + "outgoing": "Odlazno", + "overwrite_amount": "Overwrite amount", + "pairingInvalidEvent": "Nevažeći događaj uparivanja", + "password": "Lozinka", + "paste": "Zalijepi", + "pause_wallet_creation": "Mogućnost stvaranja novčanika Haven trenutno je pauzirana.", + "payment_id": "ID plaćanja: ", + "payment_was_received": "Vaša uplata je primljena.", + "pending": " (u tijeku)", + "percentageOf": "od ${amount}", + "pin_at_top": "prikvači ${token} na vrh", + "pin_is_incorrect": "Netočan PIN", + "pin_number": "PIN broj", + "placeholder_contacts": "Vaši će kontakti biti prikazani ovdje", + "placeholder_transactions": "Vaše će transakcije biti prikazane ovdje", + "please_fill_totp": "Unesite 8-znamenkasti kod koji se nalazi na vašem drugom uređaju", + "please_make_selection": "Molimo odaberite opcije niže za izradu novog novčanika ili za oporavak postojećeg.", + "please_reference_document": "Molimo pogledajte dokumente ispod za više informacija.", + "please_select": "Molimo odaberite:", + "please_select_backup_file": "Molimo odaberite datoteku sigurnosne kopije i unesite lozinku za sigurnosnu kopiju.", + "please_try_to_connect_to_another_node": "Molimo pokušajte se spojiti na drugi node.", + "please_wait": "Molimo pričekajte", + "polygonscan_history": "Povijest PolygonScan", + "powered_by": "Omogućio ${title}", + "pre_seed_button_text": "Razumijem. Prikaži mi moj pristupni izraz", + "pre_seed_description": "Na sljedećoj ćete stranici vidjeti niz ${words} riječi. Radi se o Vašem jedinstvenom i tajnom pristupnom izrazu koji je ujedno i JEDINI način na koji možete oporaviti svoj novčanik u slučaju gubitka ili kvara. VAŠA je odgovornost zapisati ga te pohraniti na sigurno mjesto izvan Cake Wallet aplikacije.", + "pre_seed_title": "VAŽNO", + "prevent_screenshots": "Spriječite snimke zaslona i snimanje zaslona", + "privacy": "Privatnost", + "privacy_policy": "Pravila privatnosti", + "privacy_settings": "Postavke privatnosti", + "private_key": "Privatni ključ", + "proceed_after_one_minute": "Ako se zaslon ne nastavi nakon 1 minute, provjerite svoju e-poštu.", + "profile": "Profil", + "provider_error": "${provider} greška", + "public_key": "Javni ključ", + "purchase_gift_card": "Kupnja darovne kartice", + "qr_fullscreen": "Dodirnite za otvaranje QR koda preko cijelog zaslona", + "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", + "question_to_disable_2fa": "Jeste li sigurni da želite onemogućiti Cake 2FA? 2FA kod više neće biti potreban za pristup novčaniku i određenim funkcijama.", + "receivable_balance": "Stanje potraživanja", + "receive": "Primi", + "receive_amount": "Iznos", + "received": "Primljeno", + "recipient_address": "Primateljeva adresa", + "reconnect": "Ponovno povezivanje", + "reconnect_alert_text": "Jeste li sigurni da se želite ponovno povezati?", + "reconnection": "Ponovno povezivanje", + "redeemed": "otkupljeno", + "refund_address": "Adresa za povrat", + "reject": "Odbiti", + "remaining": "preostalo", + "remove": "Ukloni", + "remove_node": "Ukloni node", + "remove_node_message": "Jeste li sigurni da želite ukloniti odabrani node?", + "rename": "Preimenuj", + "require_for_adding_contacts": "Zahtijeva za dodavanje kontakata", + "require_for_all_security_and_backup_settings": "Zahtijeva za sve postavke sigurnosti i sigurnosne kopije", + "require_for_assessing_wallet": "Potreban za pristup novčaniku", + "require_for_creating_new_wallets": "Potreban za kreiranje novih novčanika", + "require_for_exchanges_to_external_wallets": "Zahtijeva razmjene na vanjske novčanike", + "require_for_exchanges_to_internal_wallets": "Potreban za razmjenu na interne novčanike", + "require_for_sends_to_contacts": "Zahtijeva za slanje kontaktima", + "require_for_sends_to_internal_wallets": "Zahtijeva za slanje u interne novčanike", + "require_for_sends_to_non_contacts": "Zahtijeva za slanje nekontaktima", + "require_pin_after": "Zahtijevaj PIN nakon", + "rescan": "Ponovno skeniranje", + "resend_code": "Molimo da ga ponovno pošaljete", + "reset": "Resetiraj", + "reset_password": "Poništi lozinku", + "restore_active_seed": "Aktivan pristupni izraz", + "restore_address": "Adresa", + "restore_bitcoin_description_from_keys": "Oporavi novčanik pomoću WIF niza generiranog iz vlastitih privatnih ključeva (keys)", + "restore_bitcoin_description_from_seed": "Oporavi novčanik pomoću koda od 12 riječi", + "restore_bitcoin_title_from_keys": "Oporavi pomoću formata uvoza novčanika (WIF)", + "restore_description_from_backup": "Možete oporaviti cijelu Cake Wallet aplikaciju pomoću vlastite datoteke sa sigurnosnom kopijom", + "restore_description_from_keys": "Oporavi novčanik pomoću generiranih pritisaka na tipke spremljenih od vlastitih privatnih ključeva (keys)", + "restore_description_from_seed": "Oporavi novčanik pomoću koda koji sadrži kombinaciju od 25 ili 13 riječi", + "restore_description_from_seed_keys": "Oporavi novčanik pomoću pristupnog izraza/ključa spremljenog na sigurno mjesto", + "restore_from_date_or_blockheight": "Molimo unesite datum od nekoliko dana prije nego što ste izradili ovaj novčanik ili ako znate visinu bloka, molimo unesite je.", + "restore_from_seed_placeholder": "Molimo unesite ili zalijepite svoj pristupni izraz ovdje", + "restore_new_seed": "Novi pristupi izraz", + "restore_next": "Dalje", + "restore_recover": "Oporavi", + "restore_restore_wallet": "Oporavi novčanik", + "restore_seed_keys_restore": "Oporavak pomoću pristupnog izraza/ključa", + "restore_spend_key_private": "Spend key (privatni)", + "restore_title_from_backup": "Oporavak pomoću sigurnosne kopije", + "restore_title_from_keys": "Oporavi pomoću ključa", + "restore_title_from_seed": "Oporavi pomoću pristupnog izraza", + "restore_title_from_seed_keys": "Oporavi pomoću pristupnog izraza/ključa", + "restore_view_key_private": "View key (privatni)", + "restore_wallet": "Oporavi novčanik", + "restore_wallet_name": "Ime novčanika", + "restore_wallet_restore_description": "Opis oporavka novčanika", + "router_no_route": "Nije definirana ruta za ${name}", + "save": "Spremi", + "save_backup_password": "Molimo pobrinite se da spremite svoju lozinku za sigurnosnu kopiju. Bez nje nećete moći uvesti datoteke sigurnosne kopije.", + "save_backup_password_alert": "Spremi lozinku za sigurnosnu kopiju", + "save_to_downloads": "Spremi u Preuzimanja", + "saved_the_trade_id": "Spremio/la sam transakcijski ID", + "scan_qr_code": "Skenirajte QR kod", + "scan_qr_code_to_get_address": "Skeniraj QR kod za dobivanje adrese", + "scan_qr_on_device": "Skenirajte ovaj QR kod na drugom uređaju", + "search": "Traži", + "search_add_token": "Traži / Dodaj token", + "search_category": "Kategorija pretraživanja", + "search_currency": "Traži valutu", + "search_language": "Jezik pretraživanja", + "second_intro_content": "Vaš Yat jedinstvena je adresa emojija koja zamjenjuje sve vaše duge heksadecimalne adrese za sve vaše valute.", + "second_intro_title": "Jedna adresa emojija koja će svima njima vladati", + "security_and_backup": "Sigurnost i sigurnosna kopija", + "seed_alert_back": "Vrati se natrag", + "seed_alert_content": "Pristupni izraz jedini je način za oporavak novčanika. Jeste li ga zapisali?", + "seed_alert_title": "Upozorenje", + "seed_alert_yes": "Jesam", + "seed_choose": "Odaberi jezik pristupnog izraza", "seed_hex_form": "Sjeme novčanika (šesterokutni oblik)", + "seed_key": "Sjemenski ključ", + "seed_language": "Sjemeni jezik", + "seed_language_chinese": "Kineski", + "seed_language_chinese_traditional": "Kinesko (tradicionalno)", + "seed_language_czech": "češki", + "seed_language_dutch": "Nizozemski", + "seed_language_english": "Engleski", + "seed_language_french": "Francuski", + "seed_language_german": "Njemački", + "seed_language_italian": "Talijanski", + "seed_language_japanese": "Japanski", + "seed_language_korean": "korejski", + "seed_language_next": "Dalje", + "seed_language_portuguese": "Portugalski", + "seed_language_russian": "Ruski", + "seed_language_spanish": "Španjolski", + "seed_phrase_length": "Duljina početne fraze", + "seed_reminder": "Molimo zapišite ih u slučaju da izgubite mobitel ili izbrišete podatke", + "seed_share": "Podijeli pristupni izraz", + "seed_title": "Prisupni izraz", "seedtype": "Sjemenska vrsta", "seedtype_legacy": "Nasljeđe (25 riječi)", "seedtype_polyseed": "Poliseed (16 riječi)", - "seed_language_czech": "češki", - "seed_language_korean": "korejski", - "ascending": "Uzlazni", - "descending": "Silazni", - "seed_language_chinese_traditional": "Kinesko (tradicionalno)", - "dfx_option_description": "Kupujte kripto s EUR i CHF. Do 990 € bez dodatnog KYC-a. Za maloprodajne i poslovne korisnike u Europi", - "polygonscan_history": "Povijest PolygonScan", - "wallet_seed_legacy": "Sjeme naslijeđenog novčanika", - "default_sell_provider": "Zadani dobavljač prodaje", + "select_backup_file": "Odaberite datoteku sigurnosne kopije", + "select_buy_provider_notice": "Odaberite gornji davatelj kupnje. Ovaj zaslon možete preskočiti postavljanjem zadanog davatelja usluga kupnje u postavkama aplikacija.", + "select_destination": "Odaberite odredište za datoteku sigurnosne kopije.", "select_sell_provider_notice": "Gore odaberite pružatelja usluga prodaje. Ovaj zaslon možete preskočiti postavljanjem zadanog pružatelja usluga prodaje u postavkama aplikacije.", - "custom_drag": "Prilagođeni (držite i povucite)", + "sell": "Prodavati", + "sell_alert_content": "Trenutno podržavamo samo prodaju Bitcoina, Ethereuma i Litecoina. Izradite ili prijeđite na svoj Bitcoin, Ethereum ili Litecoin novčanik.", + "sell_monero_com_alert_content": "Prodaja Monera još nije podržana", + "send": "Pošalji", + "send_address": "${cryptoCurrency} adresa", + "send_amount": "Iznos:", + "send_creating_transaction": "Izrada transakcije", + "send_error_currency": "Iznos smije sadržavati samo brojeve", + "send_error_minimum_value": "Minimalna vrijednost iznosa je 0.01", + "send_estimated_fee": "Procijenjena naknada:", + "send_fee": "Naknada:", + "send_name": "Ime", + "send_new": "Novi", + "send_payment_id": "ID plaćanja (nije obvezno)", + "send_priority": "Trenutno se naknada nalazi na ${transactionPriority} mjestu prioriteta.\nPrioritet transakcije moguće je prilagoditi u postavkama", + "send_sending": "Slanje...", + "send_success": "Vaš ${crypto} je uspješno poslan", + "send_templates": "Predlošci", + "send_title": "Pošalji", + "send_to_this_address": "Pošaljite ${currency} ${tag}na ovu adresu", + "send_xmr": "Pošalji XMR", + "send_your_wallet": "Tvoj novčanik", + "sending": "Slanje", + "sent": "Poslano", + "settings": "Postavke", + "settings_all": "SVE", + "settings_allow_biometrical_authentication": "Dopusti biometrijsku autentifikaciju", + "settings_can_be_changed_later": "Te se postavke mogu promijeniti kasnije u postavkama aplikacije", + "settings_change_language": "Promijeni jezik", + "settings_change_pin": "Promijeni PIN", + "settings_currency": "Valuta", + "settings_current_node": "Trenutni node", + "settings_dark_mode": "Tamni način rada", + "settings_display_balance": "Prikaži stanje računa", + "settings_display_on_dashboard_list": "Prikaži na listi kontrolne ploče", + "settings_fee_priority": "Prioritet naknade", + "settings_nodes": "Nodovi", + "settings_none": "Nijedno", + "settings_only_trades": "Samo razmjene", + "settings_only_transactions": "Samo transakcije", + "settings_personal": "Osobni", + "settings_save_recipient_address": "Spremi primateljevu adresu", + "settings_support": "Podrška", + "settings_terms_and_conditions": "Uvjeti i odredbe", + "settings_title": "Postavke", + "settings_trades": "Razmjene", + "settings_transactions": "Transakcije", + "settings_wallets": "Novčanik", + "setup_2fa": "Postavljanje torte 2FA", + "setup_2fa_text": "Cake 2FA radi koristeći TOTP kao drugi faktor provjere autentičnosti.\n\nCake 2FA TOTP zahtijeva SHA-512 i podršku za 8 znamenki; ovo osigurava povećanu sigurnost. Više informacija i podržanih aplikacija možete pronaći u vodiču.", + "setup_pin": "Podesi PIN", + "setup_successful": "Vaš je pin uspješno postavljen!", + "setup_totp_recommended": "Postavite TOTP", + "setup_warning_2fa_text": "Morat ćete obnoviti svoj novčanik iz mnemoničkog sjemena.\n\nPodrška za kolače neće vam moći pomoći ako izgubite pristup svojim 2FA ili mnemoničkim izvorima.\nCake 2FA je druga provjera autentičnosti za određene radnje u novčaniku. Prije uporabe Cake 2FA preporučujemo da pročitate vodič.NIJE siguran kao hladno skladište.\n\nAko izgubite pristup svojoj 2FA aplikaciji ili TOTP ključevima, IZGUBIT ĆETE pristup ovom novčaniku. ", + "setup_your_debit_card": "Postavite svoju debitnu karticu", + "share": "Udio", + "share_address": "Podijeli adresu", + "show_details": "Prikaži pojedinosti", + "show_keys": "Prikaži pristupni izraz/ključ", + "show_market_place": "Prikaži tržište", + "show_seed": "Prikaži pristupni izraz", + "sign_up": "Prijavite se", + "signTransaction": "Potpišite transakciju", + "signup_for_card_accept_terms": "Prijavite se za karticu i prihvatite uvjete.", + "slidable": "Klizna", + "sort_by": "Poredaj po", + "spend_key_private": "Spend key (privatni)", + "spend_key_public": "Spend key (javni)", + "status": "Status: ", + "subaddress_title": "Lista podadresa", + "subaddresses": "Podadrese", + "submit_request": "podnesi zahtjev", + "successful": "Uspješno", + "support_description_guides": "Dokumentacija i podrška za uobičajena pitanja", + "support_description_other_links": "Pridružite se našim zajednicama ili nam dosegnu naše partnere drugim metodama", + "support_title_guides": "Vodiči za torte", + "support_title_live_chat": "Podrška uživo", + "support_title_other_links": "Ostale veze za podršku", + "sweeping_wallet": "Čisti novčanik", + "sweeping_wallet_alert": "Ovo ne bi trebalo dugo trajati. NE NAPUŠTAJTE OVAJ ZASLON INAČE SE POBREŠENA SREDSTVA MOGU IZGUBITI", + "switchToETHWallet": "Prijeđite na Ethereum novčanik i pokušajte ponovno", "switchToEVMCompatibleWallet": "Prijeđite na novčanik kompatibilan s EVM-om i pokušajte ponovno (Ethereum, Polygon)", - "receivable_balance": "Stanje potraživanja", - "confirmed_tx": "Potvrđen", + "symbol": "Simbol", + "sync_all_wallets": "Sinkronizirajte sve novčanike", + "sync_status_attempting_sync": "POKUŠAJ SINKRONIZACIJE", + "sync_status_connected": "SPOJENO", + "sync_status_connecting": "SPAJANJE", + "sync_status_failed_connect": "ISKLJUČENO", + "sync_status_not_connected": "NIJE POVEZANO", + "sync_status_starting_sync": "ZAPOČINJEMO SINKRONIZIRANJE", + "sync_status_syncronized": "SINKRONIZIRANO", + "sync_status_syncronizing": "SINKRONIZIRANJE", + "syncing_wallet_alert_content": "Vaš saldo i popis transakcija možda neće biti potpuni sve dok na vrhu ne piše \"SINKRONIZIRANO\". Kliknite/dodirnite da biste saznali više.", + "syncing_wallet_alert_title": "Vaš novčanik se sinkronizira", + "template": "Predložak", + "template_name": "Naziv predloška", + "third_intro_content": "Yats žive i izvan Cake Wallet -a. Bilo koja adresa novčanika na svijetu može se zamijeniti Yat!", + "third_intro_title": "Yat se lijepo igra s drugima", + "time": "${minutes}m ${seconds}s", + "tip": "Savjet:", + "today": "Danas", + "token_contract_address": "Adresa ugovora tokena", + "token_decimal": "Token decimalni", + "token_name": "Naziv tokena npr.: Tether", + "token_symbol": "Simbol tokena npr.: USDT", + "tokenID": "iskaznica", + "tor_connection": "Tor veza", + "tor_only": "Samo Tor", + "total_saving": "Ukupna ušteda", + "totp_2fa_failure": "Neispravan kod. Pokušajte s drugim kodom ili generirajte novi tajni ključ. Koristite kompatibilnu 2FA aplikaciju koja podržava 8-znamenkasti kod i SHA512.", + "totp_2fa_success": "Uspjeh! Cake 2FA omogućen za ovaj novčanik. Ne zaboravite spremiti svoje mnemoničko sjeme u slučaju da izgubite pristup novčaniku.", + "totp_auth_url": "TOTP AUTH URL", + "totp_code": "TOTP kod", + "totp_secret_code": "TOTP tajni kod", + "totp_verification_success": "Provjera uspješna!", + "trade_details_copied": "${title} kopiran u međuspremnik", + "trade_details_created_at": "Stvoreno u", + "trade_details_fetching": "Dohvaćanje", + "trade_details_id": "ID", + "trade_details_pair": "Upari", + "trade_details_provider": "Pružatelj", + "trade_details_state": "Status", + "trade_details_title": "Detalji razmjene", + "trade_for_not_created": "Razmjena za ${title} nije izrađena.", + "trade_history_title": "Povijest razmjena", + "trade_id": "Transakcijski ID:", + "trade_id_not_found": "Razmjena ${tradeId} za ${title} nije pronađena.", + "trade_is_powered_by": "Razmjenu je omogućio ${provider}", + "trade_not_created": "Razmjena nije izrađena", + "trade_not_found": "Razmjena nije pronađena.", + "trade_state_btc_sent": "BTC poslan", + "trade_state_complete": "Dovršeno", + "trade_state_confirming": "Potvrđivanje", + "trade_state_created": "Stvoreno", + "trade_state_finished": "Završeno", + "trade_state_paid": "Plaćen", + "trade_state_paid_unconfirmed": "Plaćanje nije potrđeno", + "trade_state_pending": "U tijeku", + "trade_state_timeout": "Isteklo", + "trade_state_to_be_created": "Stvaranje", + "trade_state_traded": "Razmijenjeno", + "trade_state_trading": "Razmjenjivanje", + "trade_state_underpaid": "Nedovoljno plaćen", + "trade_state_unpaid": "Neplaćen", + "trades": "Razmjene", + "transaction_details_amount": "Iznos", + "transaction_details_copied": "${title} kopiran u međuspremnik", + "transaction_details_date": "Datum", + "transaction_details_fee": "Naknada", + "transaction_details_height": "Visina", + "transaction_details_recipient_address": "Adrese primatelja", "transaction_details_source_address": "Adresa izvora", - "pause_wallet_creation": "Mogućnost stvaranja novčanika Haven trenutno je pauzirana.", - "contractName": "Naziv ugovora", - "contractSymbol": "Simbol ugovora", - "description": "Opis", - "camera_consent": "Vaš će fotoaparat koristiti za snimanje slike u svrhu identifikacije od strane ${provider}. Pojedinosti potražite u njihovoj politici privatnosti.", - "no_relays": "Nema releja", - "choose_relay": "Odaberite relej za korištenje", - "no_relays_message": "Pronašli smo zapis Nostr NIP-05 za ovog korisnika, ali on ne sadrži nikakve releje. Uputite primatelja da doda releje u svoj Nostr zapis.", - "no_relay_on_domain": "Ne postoji relej za korisničku domenu ili je relej nedostupan. Odaberite relej za korištenje." -} + "transaction_details_title": "Detalji transakcije", + "transaction_details_transaction_id": "Transakcijski ID", + "transaction_key": "Transakcijski ključ", + "transaction_priority_fast": "Brzo", + "transaction_priority_fastest": "Najbrže", + "transaction_priority_medium": "Srednje", + "transaction_priority_regular": "Uobičajeno", + "transaction_priority_slow": "Sporo", + "transaction_sent": "Transakcija provedena!", + "transaction_sent_notice": "Ako se zaslon ne nastavi nakon 1 minute, provjerite block explorer i svoju e-poštu.", + "transactions": "Transakcije", + "transactions_by_date": "Transakcije prema datumu", + "trusted": "vjerovao", + "unavailable_balance": "Nedostupno stanje", + "unavailable_balance_description": "Nedostupno stanje: Ovaj ukupni iznos uključuje sredstva koja su zaključana u transakcijama na čekanju i ona koja ste aktivno zamrznuli u postavkama kontrole novčića. Zaključani saldi postat će dostupni kada se dovrše njihove transakcije, dok zamrznuti saldi ostaju nedostupni za transakcije sve dok ih ne odlučite odmrznuti.", + "unconfirmed": "Nepotvrđeno stanje", + "understand": "Razumijem", + "unmatched_currencies": "Valuta vašeg trenutnog novčanika ne odgovara onoj na skeniranom QR-u", + "unspent_change": "Promijeniti", + "unspent_coins_details_title": "Nepotrošeni detalji o novčićima", + "unspent_coins_title": "Nepotrošeni novčići", + "unsupported_asset": "Ne podržavamo ovu radnju za ovaj materijal. Izradite ili prijeđite na novčanik podržane vrste sredstava.", + "upto": "do ${value}", + "use": "Prebaci na", + "use_card_info_three": "Koristite digitalnu karticu online ili s beskontaktnim metodama plaćanja.", + "use_card_info_two": "Sredstva se pretvaraju u USD kada se drže na prepaid računu, a ne u digitalnim valutama.", + "use_ssl": "Koristi SSL", + "use_suggested": "Koristite predloženo", + "variable_pair_not_supported": "Ovaj par varijabli nije podržan s odabranim burzama", + "verification": "Potvrda", + "verify_with_2fa": "Provjerite s Cake 2FA", + "version": "Verzija ${currentVersion}", + "view_all": "Prikaži sve", + "view_in_block_explorer": "View in Block Explorer", + "view_key_private": "View key (privatni)", + "view_key_public": "View key (javni)", + "view_transaction_on": "View Transaction on ", + "wallet_keys": "Pristupni izraz/ključ novčanika", + "wallet_list_create_new_wallet": "Izradi novi novčanik", + "wallet_list_edit_wallet": "Uredi novčanik", + "wallet_list_failed_to_load": "Neuspješno učitavanje novčanika ${wallet_name}. ${error}", + "wallet_list_failed_to_remove": "Neuspješno uklanjanje novčanika ${wallet_name}. ${error}", + "wallet_list_load_wallet": "Učitaj novčanik", + "wallet_list_loading_wallet": "Učitavanje novčanika ${wallet_name}", + "wallet_list_removing_wallet": "Uklanjanje novčanika ${wallet_name}", + "wallet_list_restore_wallet": "Oporavi novčanik", + "wallet_list_title": "Monero novčanik", + "wallet_list_wallet_name": "Naziv novčanika", + "wallet_menu": "Izbornik", + "wallet_name": "Ime novčanika", + "wallet_name_exists": "Novčanik s tim nazivom već postoji", + "wallet_restoration_store_incorrect_seed_length": "Netočna dužina pristupnog izraza", + "wallet_seed": "Pristupni izraz novčanika", + "wallet_seed_legacy": "Sjeme naslijeđenog novčanika", + "wallet_store_monero_wallet": "Monero novčanik", + "walletConnect": "WalletConnect", + "wallets": "Novčanici", + "warning": "Upozorenje", + "welcome": "Dobrodošli na", + "welcome_to_cakepay": "Dobro došli u Cake Pay!", + "widgets_address": "Adresa", + "widgets_or": "ili", + "widgets_restore_from_blockheight": "Oporavi pomoću visine bloka", + "widgets_restore_from_date": "Oporavi pomoću datuma", + "widgets_seed": "pristupnog izraza", + "wouoldLikeToConnect": "želio bi se povezati", + "write_down_backup_password": "Molimo zapišite svoju lozinku za sigurnosnu kopiju koja se koristi za uvoz datoteka sigurnosne kopije.", + "xlm_extra_info": "Molimo ne zaboravite navesti memo ID prilikom slanja XLM transakcije na razmjenu", + "xmr_available_balance": "Raspoloživ iznos", + "xmr_full_balance": "Ukupan iznos", + "xmr_hidden": "Sakriven", + "xmr_to_error": "XMR.TO greška", + "xmr_to_error_description": "Nevažeći iznos. Dopušteno je najviše 8 znamenki iza točke", + "xrp_extra_info": "Molimo ne zaboravite navesti odredišnu oznaku prilikom slanja XRP transakcije na razmjenu", + "yat": "Yat", + "yat_address": "Yat adresa", + "yat_alert_content": "Korisnici Cake Wallet sada mogu slati i primati sve svoje omiljene valute s jedinstvenim korisničkim imenom na temelju emojija.", + "yat_alert_title": "Lakše šaljite i primajte kriptovalute s Yatom", + "yat_error": "Yat pogreška", + "yat_error_content": "Nema adresa povezanih s ovim Yat -om. Pokušajte s drugim Yat -om", + "yat_popup_content": "Sada možete slati i primati kriptovalute u Cake Wallet s vašim Yat - kratkim korisničkim imenom zasnovanim na emojijima. Upravljajte Yatsom u bilo kojem trenutku na zaslonu postavki", + "yat_popup_title": "Adresa vašeg novčanika može biti emojificirana.", + "yesterday": "Jučer", + "you_now_have_debit_card": "Sada imate debitnu karticu", + "you_pay": "Vi plaćate", + "you_will_get": "Razmijeni u", + "you_will_send": "Razmijeni iz", + "yy": "GG", + "zzzz": "zzzz" +} \ No newline at end of file diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index 27bfc4c7b..464483eab 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -1,767 +1,768 @@ { - "welcome": "Selamat datang di", - "cake_wallet": "Cake Wallet", - "first_wallet_text": "Dompet luar biasa untuk Monero, Bitcoin, Ethereum, Litecoin, dan Haven", - "please_make_selection": "Silahkan membuat pilihan di bawah ini untuk membuat atau memulihkan dompet Anda.", - "create_new": "Buat Dompet Baru", - "restore_wallet": "Pulihkan Dompet", - "monero_com": "Monero.com Oleh Cake Wallet", - "monero_com_wallet_text": "Dompet luar biasa untuk Monero", - "haven_app": "Haven Oleh Cake Wallet", - "haven_app_wallet_text": "Dompet luar biasa untuk Haven", - "accounts": "Akun", - "edit": "Edit", + "about_cake_pay": "Cake Pay memungkinkan Anda untuk dengan mudah membeli kartu hadiah dengan aset virtual, yang dapat digunakan segera di lebih dari 150.000 pedagang di Amerika Serikat.", "account": "Akun", + "accounts": "Akun", + "accounts_subaddresses": "Akun dan sub-alamat", + "activate": "Aktifkan", + "active": "Aktif", + "active_cards": "Kartu Aktif", + "activeConnectionsPrompt": "Koneksi aktif akan muncul di sini", "add": "Menambahkan", + "add_contact": "Tambah kontak", + "add_custom_node": "Tambahkan Node Kustom Baru", + "add_custom_redemption": "Tambahkan Tukar Kustom", + "add_fund_to_card": "Tambahkan dana pra-bayar ke kartu (hingga ${value})", + "add_new_node": "Tambah node baru", + "add_new_word": "Tambahkan kata baru", + "add_receiver": "Tambahkan penerima lain (opsional)", + "add_secret_code": "Atau, tambahkan kode rahasia ini ke aplikasi autentikator", + "add_tip": "Tambahkan Tip", + "add_token_disclaimer_check": "Saya telah mengonfirmasi alamat dan informasi kontrak token menggunakan sumber yang memiliki reputasi baik. Menambahkan informasi jahat atau salah dapat mengakibatkan hilangnya dana.", + "add_token_warning": "Jangan mengedit atau menambahkan token seperti yang diinstruksikan oleh penipu.\nSelalu konfirmasikan alamat token dengan sumber tepercaya!", + "add_value": "Tambahkan nilai", + "address": "Alamat", "address_book": "Buku Alamat", - "contact": "Kontak", - "please_select": "Silakan pilih:", - "cancel": "Batal", - "ok": "OK", - "contact_name": "Nama Kontak", - "reset": "Reset", - "save": "Simpan", + "address_book_menu": "Buku alamat", + "address_detected": "Alamat terdeteksi", + "address_from_domain": "Alamat ini dari ${domain} di Unstoppable Domains", + "address_from_yat": "Alamat ini berasal dari ${emoji} di Yat", + "address_label": "Label alamat", "address_remove_contact": "Hapus kontak", "address_remove_content": "Apakah Anda yakin ingin menghapus kontak yang dipilih?", - "authenticated": "Terotentikasi", - "authentication": "Otentikasi", - "failed_authentication": "Otentikasi gagal. ${state_error}", - "wallet_menu": "Menu", - "Blocks_remaining": "${status} Blok Tersisa", - "please_try_to_connect_to_another_node": "Silakan coba untuk terhubung ke node lain", - "xmr_hidden": "Tersembunyi", - "xmr_available_balance": "Saldo Tersedia", - "xmr_full_balance": "Saldo Penuh", - "send": "Mengirim", - "receive": "Menerima", - "transactions": "Transaksi", - "incoming": "Masuk", - "outgoing": "Keluar", - "transactions_by_date": "Transaksi berdasarkan tanggal", - "trades": "Perdagangan", - "filter_by": "Filter berdasarkan", - "today": "Hari ini", - "yesterday": "Kemarin", - "received": "Diterima", - "sent": "Dikirim", - "pending": " (pending)", - "rescan": "Pindai ulang", - "reconnect": "Sambungkan kembali", - "wallets": "Dompet", - "show_seed": "Tampilkan seed", - "show_keys": "Tampilkan seed/kunci", - "address_book_menu": "Buku alamat", - "reconnection": "Koneksi kembali", - "reconnect_alert_text": "Apakah Anda yakin ingin menyambungkan kembali?", - "exchange": "Tukar", - "clear": "Hapus", - "refund_address": "Alamat pengembalian", - "change_exchange_provider": "Ganti Penyedia Tukar", - "you_will_send": "Konversi dari", - "you_will_get": "Konversi ke", - "amount_is_guaranteed": "Jumlah penerimaan dijamin", - "amount_is_estimate": "Jumlah penerimaan diperkirakan", - "powered_by": "Didukung oleh ${title}", - "error": "Kesalahan", - "estimated": "Diperkirakan", - "min_value": "Min: ${value} ${currency}", - "max_value": "Max: ${value} ${currency}", - "change_currency": "Ganti Mata Uang", - "overwrite_amount": "Timpa jumlah", - "qr_payment_amount": "QR code ini berisi jumlah pembayaran. Apakah Anda ingin menimpa nilai saat ini?", - "copy_id": "Salin ID", - "exchange_result_write_down_trade_id": "Silakan salin atau tulis ID perdagangan untuk melanjutkan.", - "trade_id": "ID Perdagangan:", - "copied_to_clipboard": "Disalin ke Clipboard", - "saved_the_trade_id": "Saya telah menyimpan ID perdagangan", - "fetching": "Mengambil", - "id": "ID: ", - "amount": "Jumlah: ", - "payment_id": "ID Pembayaran: ", - "status": "Status: ", - "offer_expires_in": "Penawaran kedaluwarsa dalam: ", - "trade_is_powered_by": "Perdagangan ini didukung oleh ${provider}", - "copy_address": "Salin Alamat", - "exchange_result_confirm": "Dengan menekan tombol konfirmasi, Anda akan mengirimkan ${fetchingLabel} ${from} dari dompet Anda yang disebut ${walletName} ke alamat yang ditampilkan di bawah. Anda juga dapat mengirim dari dompet eksternal Anda ke alamat/QR code di bawah.\n\nSilakan tekan konfirmasi untuk melanjutkan atau kembali untuk mengubah jumlah.", - "exchange_result_description": "Anda harus mengirimkan minimal ${fetchingLabel} ${from} ke alamat yang ditampilkan di halaman berikutnya. Jika Anda mengirimkan jumlah yang lebih rendah dari ${fetchingLabel} ${from} maka uang tersebut mungkin tidak akan diubah dan mungkin tidak akan dikembalikan.", - "exchange_result_write_down_ID": "*Silakan salin atau tulis ID Anda yang ditampilkan di atas.", - "confirm": "Konfirmasi", - "confirm_sending": "Konfirmasi pengiriman", - "commit_transaction_amount_fee": "Lakukan transaksi\nJumlah: ${amount}\nBiaya: ${fee}", - "sending": "Mengirim", - "transaction_sent": "Transaksi terkirim!", - "expired": "Kedaluwarsa", - "time": "${minutes}m ${seconds}s", - "send_xmr": "Kirim XMR", - "exchange_new_template": "Template baru", - "faq": "Pertanyaan yang Sering Diajukan", - "enter_your_pin": "Masukkan PIN Anda", - "loading_your_wallet": "Memuat dompet Anda", - "new_wallet": "Dompet Baru", - "wallet_name": "Nama Dompet", - "continue_text": "Lanjutkan", - "choose_wallet_currency": "Silahkan pilih mata uang dompet:", - "node_new": "Node Baru", - "node_address": "Alamat Node", - "node_port": "Port Node", - "login": "Masuk", - "password": "Kata Sandi", - "nodes": "Node", - "node_reset_settings_title": "Atur ulang pengaturan", - "nodes_list_reset_to_default_message": "Apakah Anda yakin ingin mengatur ulang pengaturan ke default?", - "change_current_node": "Apakah Anda yakin ingin mengubah node saat ini menjadi ${node}?", - "change": "Ubah", - "remove_node": "Hapus node", - "remove_node_message": "Apakah Anda yakin ingin menghapus node yang dipilih?", - "remove": "Hapus", - "delete": "Hapus", - "add_new_node": "Tambah node baru", - "change_current_node_title": "Ubah node saat ini", - "node_test": "Uji", - "node_connection_successful": "Koneksi berhasil", - "node_connection_failed": "Koneksi gagal", - "new_node_testing": "Pengujian node baru", - "use": "Beralih ke ", - "digit_pin": "-digit PIN", - "share_address": "Bagikan alamat", - "receive_amount": "Jumlah", - "subaddresses": "Sub-alamat", "addresses": "Alamat", - "scan_qr_code": "Scan kode QR untuk mendapatkan alamat", - "qr_fullscreen": "Tap untuk membuka layar QR code penuh", - "rename": "Ganti nama", - "choose_account": "Pilih akun", - "create_new_account": "Buat akun baru", - "accounts_subaddresses": "Akun dan sub-alamat", - "restore_restore_wallet": "Pulihkan Dompet", - "restore_title_from_seed_keys": "Pulihkan dari seed/kunci", - "restore_description_from_seed_keys": "Dapatkan kembali dompet Anda dari seed/kunci yang Anda simpan di tempat yang aman", - "restore_next": "Selanjutnya", - "restore_title_from_backup": "Pulihkan dari cadangan", - "restore_description_from_backup": "Anda dapat memulihkan seluruh aplikasi Cake Wallet dari file cadangan Anda", - "restore_seed_keys_restore": "Pulihkan Seed/Kunci", - "restore_title_from_seed": "Pulihkan dari seed", - "restore_description_from_seed": "Pulihkan dompet Anda dari kombinasi kode 25 atau 13 kata", - "restore_title_from_keys": "Pulihkan dari kunci", - "restore_description_from_keys": "Pulihkan dompet Anda dari tombol yang dihasilkan yang disimpan dari kunci pribadi Anda", - "restore_wallet_name": "Nama dompet", - "restore_address": "Alamat", - "restore_view_key_private": "Lihat kunci (pribadi)", - "restore_spend_key_private": "Habiskan kunci (pribadi)", - "restore_recover": "Pulihkan", - "restore_wallet_restore_description": "Deskripsi pemulihan dompet", - "restore_new_seed": "Seed baru", - "restore_active_seed": "Seed aktif", - "restore_bitcoin_description_from_seed": "Pulihkan dompet Anda dari kombinasi kode 24 kata", - "restore_bitcoin_description_from_keys": "Pulihkan dompet Anda dari string WIF yang dihasilkan dari private keys Anda", - "restore_bitcoin_title_from_keys": "Pulihkan dari WIF", - "restore_from_date_atau_blockheight": "Silakan masukkan tanggal beberapa hari sebelum Anda membuat dompet ini. Atau jika Anda tahu blockheight, silakan masukkannya sebagai gantinya", - "seed_reminder": "Silakan tulis ini di tempat yang aman jika kamu kehilangan atau menghapus ponselmu", - "seed_title": "Bibit", - "seed_share": "Bagikan bibit", - "copy": "Salin", - "seed_language": "Bahasa benih", - "seed_choose": "Pilih bahasa bibit", - "seed_language_next": "Selanjutnya", - "seed_language_english": "Inggris", - "seed_language_chinese": "Cina", - "seed_language_dutch": "Belanda", - "seed_language_german": "Jerman", - "seed_language_japanese": "Jepang", - "seed_language_portuguese": "Portugis", - "seed_language_russian": "Rusia", - "seed_language_spanish": "Spanyol", - "seed_language_french": "Perancis", - "seed_language_italian": "Italia", - "send_title": "Kirim", - "send_your_wallet": "Dompetmu", - "send_address": "Alamat ${cryptoCurrency}", - "send_payment_id": "ID Pembayaran (opsional)", + "advanced_settings": "Pengaturan lanjutan", + "aggressive": "Terlalu bersemangat", + "agree": "Setuju", + "agree_and_continue": "Setuju & Lanjutkan", + "agree_to": "Dengan membuat akun Anda setuju dengan ", "all": "SEMUA", - "send_error_minimum_value": "Nilai minimum jumlah adalah 0.01", - "send_error_currency": "Mata uang hanya dapat berisi angka", - "send_estimated_fee": "Biaya yang diperkirakan:", - "send_priority": "Saat ini biaya diatur dengan prioritas ${transactionPriority}.\nPrioritas transaksi dapat diubah pada pengaturan", - "send_creating_transaction": "Membuat transaksi", - "send_templates": "Template", - "send_new": "Baru", - "send_amount": "Jumlah:", - "send_fee": "Biaya:", - "send_name": "Nama", - "got_it": "Sudah paham", - "send_sending": "Mengirim...", - "send_success": "${crypto}mu berhasil dikirim", - "settings_title": "Pengaturan", - "settings_nodes": "Nodes", - "settings_current_node": "Node saat ini", - "settings_wallets": "Dompet", - "settings_display_balance": "Tampilkan saldo", - "settings_currency": "Mata uang", - "settings_fee_priority": "Prioritas biaya", - "settings_save_recipient_address": "Simpan alamat penerima", - "settings_personal": "Pribadi", - "settings_change_pin": "Ganti PIN", - "settings_change_language": "Ganti bahasa", - "settings_allow_biometrical_authentication": "Izinkan otentikasi biometrik", - "settings_dark_mode": "Mode gelap", - "settings_transactions": "Transaksi", - "settings_trades": "Perdagangan", - "settings_display_on_dashboard_list": "Tampilkan di daftar dashboard", - "settings_all": "SEMUA", - "settings_only_trades": "Hanya perdagangan", - "settings_only_transactions": "Hanya transaksi", - "settings_none": "Tidak ada", - "settings_support": "Dukungan", - "settings_terms_and_conditions": "Syarat dan Ketentuan", - "pin_is_incorrect": "PIN salah", - "setup_pin": "Pasang PIN", - "enter_your_pin_again": "Masukkan PIN Anda lagi", - "setup_successful": "PIN Anda telah berhasil diatur!", - "wallet_keys": "Seed/kunci dompet", - "wallet_seed": "Seed dompet", - "private_key": "Kunci privat", - "public_key": "Kunci publik", - "view_key_private": "Kunci tampilan (privat)", - "view_key_public": "Kunci tampilan (publik)", - "spend_key_private": "Kunci pengeluaran (privat)", - "spend_key_public": "Kunci pengeluaran (publik)", - "copied_key_to_clipboard": "Kunci ${key} disalin ke Clipboard", - "new_subaddress_title": "Alamat baru", - "new_subaddress_label_name": "Nama label", - "new_subaddress_create": "Buat", - "address_label": "Label alamat", - "subaddress_title": "Daftar sub-alamat", - "trade_details_title": "Detail Transaksi", - "trade_details_id": "ID", - "trade_details_state": "Status", - "trade_details_fetching": "Mengambil", - "trade_details_provider": "Penyedia", - "trade_details_created_at": "Dibuat pada", - "trade_details_pair": "Pasangan", - "trade_details_copied": "${title} disalin ke Clipboard", - "trade_history_title": "Riwayat Transaksi", - "transaction_details_title": "Rincian Transaksi", - "transaction_details_transaction_id": "ID Transaksi", - "transaction_details_date": "Tanggal", - "transaction_details_height": "Tinggi", - "transaction_details_amount": "Jumlah", - "transaction_details_fee": "Biaya", - "transaction_details_copied": "${title} disalin ke Clipboard", - "transaction_details_recipient_address": "Alamat Penerima", - "wallet_list_title": "Dompet Monero", - "wallet_list_create_new_wallet": "Buat Dompet Baru", - "wallet_list_edit_wallet": "Edit dompet", - "wallet_list_wallet_name": "Nama dompet", - "wallet_list_restore_wallet": "Pulihkan Dompet", - "wallet_list_load_wallet": "Muat dompet", - "wallet_list_loading_wallet": "Memuat ${wallet_name} dompet", - "wallet_list_failed_to_load": "Gagal memuat ${wallet_name} dompet. ${error}", - "wallet_list_removing_wallet": "Menghapus ${wallet_name} dompet", - "wallet_list_failed_to_remove": "Gagal menghapus ${wallet_name} dompet. ${error}", - "widgets_address": "Alamat", - "widgets_restore_from_blockheight": "Pulihkan dari tinggi blok", - "widgets_restore_from_date": "Pulihkan dari tanggal", - "widgets_or": "atau", - "widgets_seed": "Biji", - "router_no_route": "Tidak ada rute yang ditentukan untuk ${name}", - "error_text_account_name": "Nama akun hanya dapat berisi huruf, angka\ndan harus antara 1 dan 15 karakter panjang", - "error_text_contact_name": "Nama kontak tidak boleh berisi simbol `, ' \"\ndan harus antara 1 dan 32 karakter panjang", - "error_text_address": "Alamat dompet harus sesuai dengan tipe\nmata uang kripto", - "error_text_node_address": "Silakan masukkan alamat iPv4", - "error_text_node_port": "Port node hanya dapat berisi angka antara 0 dan 65535", - "error_text_node_proxy_address": "Masukkan :, misalnya 127.0.0.1:9050", - "error_text_payment_id": "ID pembayaran hanya dapat berisi dari 16 hingga 64 karakter dalam hex", - "error_text_xmr": "Nilai XMR tidak boleh melebihi saldo yang tersedia.\nJumlah digit pecahan harus kurang atau sama dengan 12", - "error_text_fiat": "Nilai jumlah tidak boleh melebihi saldo yang tersedia.\nJumlah digit pecahan harus kurang atau sama dengan 2", - "error_text_subaddress_name": "Nama subalamat tidak boleh berisi simbol `, ' \"\ndan harus antara 1 dan 20 karakter panjang", - "error_text_amount": "Jumlah hanya dapat berisi angka", - "error_text_wallet_name": "Nama dompet hanya dapat berisi huruf, angka, _ - simbol\ndan harus antara 1 dan 33 karakter panjang", - "error_text_keys": "Kunci dompet hanya dapat berisi 64 karakter dalam hex", - "error_text_crypto_currency": "Jumlah digit pecahan harus kurang atau sama dengan 12", - "error_text_minimal_limit": "Perdagangan untuk ${provider} tidak dibuat. Jumlah kurang dari minimal: ${min} ${currency}", - "error_text_maximum_limit": "Perdagangan untuk ${provider} tidak dibuat. Jumlah lebih dari maksimal: ${max} ${currency}", - "error_text_limits_loading_failed": "Perdagangan untuk ${provider} tidak dibuat. Gagal memuat batas", - "error_text_template": "Nama template dan alamat tidak boleh berisi simbol ` , ' \"\ndan harus antara 1 dan 106 karakter panjang", + "all_trades": "Semua perdagangan", + "all_transactions": "Semua transaksi", + "alphabetical": "Alfabetis", + "already_have_account": "Sudah punya akun?", + "always": "Selalu", + "amount": "Jumlah: ", + "amount_is_estimate": "Jumlah penerimaan diperkirakan", + "amount_is_guaranteed": "Jumlah penerimaan dijamin", + "and": "dan", + "anonpay_description": "Hasilkan ${type}. Penerima dapat ${method} dengan cryptocurrency apa pun yang didukung, dan Anda akan menerima dana di dompet ini.", + "apk_update": "Pembaruan APK", + "approve": "Menyetujui", + "ascending": "Naik", + "ask_each_time": "Tanyakan setiap kali", "auth_store_ban_timeout": "ban_timeout", "auth_store_banned_for": "Dilarang selama ", "auth_store_banned_minutes": "menit", "auth_store_incorrect_password": "PIN yang salah", - "wallet_store_monero_wallet": "Dompet Monero", - "wallet_restoration_store_incorrect_seed_length": "Panjang seed yang salah", - "full_balance": "Saldo Penuh", - "available_balance": "Saldo Tersedia", - "hidden_balance": "Saldo Tersembunyi", - "sync_status_syncronizing": "SEDANG SINKRONISASI", - "sync_status_syncronized": "SUDAH TERSINKRONISASI", - "sync_status_not_connected": "TIDAK TERHUBUNG", - "sync_status_starting_sync": "MULAI SINKRONISASI", - "sync_status_failed_connect": "GAGAL TERHUBUNG", - "sync_status_connecting": "MENGHUBUNGKAN", - "sync_status_connected": "TERHUBUNG", - "sync_status_attempting_sync": "MENCOBA SINKRONISASI", - "transaction_priority_slow": "Lambat", - "transaction_priority_regular": "Normal", - "transaction_priority_medium": "Sedang", - "transaction_priority_fast": "Cepat", - "transaction_priority_fastest": "Tercepat", - "trade_for_not_created": "Perdagangan untuk ${title} belum dibuat.", - "trade_not_created": "Perdagangan belum dibuat", - "trade_id_not_found": "Perdagangan ${tradeId} dari ${title} tidak ditemukan.", - "trade_not_found": "Perdagangan tidak ditemukan.", - "trade_state_pending": "Menunggu", - "trade_state_confirming": "Menegkonfirmasi", - "trade_state_trading": "Berdagang", - "trade_state_traded": "Telah Berdagang", - "trade_state_complete": "Selesai", - "trade_state_to_be_created": "Akan dibuat", - "trade_state_unpaid": "Belum dibayar", - "trade_state_underpaid": "Kurang bayar", - "trade_state_paid_unconfirmed": "Dibayar belum dikonfirmasi", - "trade_state_paid": "Dibayar", - "trade_state_btc_sent": "Btc dikirim", - "trade_state_timeout": "Waktu habis", - "trade_state_created": "Dibuat", - "trade_state_finished": "Selesai", - "change_language": "Ganti bahasa", - "change_language_to": "Ganti bahasa ke ${language}?", - "paste": "Tempel", - "restore_from_seed_placeholder": "Silakan masukkan atau tempel seed Anda di sini", - "add_new_word": "Tambahkan kata baru", - "incorrect_seed": "Teks yang dimasukkan tidak valid.", - "biometric_auth_reason": "Pindai sidik jari Anda untuk mengautentikasi", - "version": "Versi ${currentVersion}", - "openalias_alert_title": "Alamat Terdeteksi", - "openalias_alert_content": "Anda akan mengirim dana ke\n${recipient_name}", - "card_address": "Alamat:", - "buy": "Beli", - "sell": "Jual", - "placeholder_transactions": "Transaksi Anda akan ditampilkan di sini", - "placeholder_contacts": "Kontak Anda akan ditampilkan di sini", - "template": "Template", - "confirm_delete_template": "Tindakan ini akan menghapus template ini. Apakah Anda ingin melanjutkan?", - "confirm_delete_wallet": "Tindakan ini akan menghapus dompet ini. Apakah Anda ingin melanjutkan?", - "change_wallet_alert_title": "Ganti dompet saat ini", - "change_wallet_alert_content": "Apakah Anda ingin mengganti dompet saat ini ke ${wallet_name}?", - "creating_new_wallet": "Membuat dompet baru", - "creating_new_wallet_error": "Error: ${description}", - "seed_alert_title": "Perhatian", - "seed_alert_content": "Seed adalah satu-satunya cara untuk mengembalikan dompet Anda. Apakah Anda sudah menuliskannya?", - "seed_alert_back": "Kembali", - "seed_alert_yes": "Ya, sudah", - "exchange_sync_alert_content": "Silakan tunggu sampai dompet Anda tersinkronisasi", - "pre_seed_title": "PENTING", - "pre_seed_description": "Di halaman berikutnya Anda akan melihat serangkaian kata ${words}. Ini adalah seed unik dan pribadi Anda dan itu SATU-SATUNYA cara untuk mengembalikan dompet Anda jika hilang atau rusak. Ini adalah TANGGUNG JAWAB Anda untuk menuliskannya dan menyimpan di tempat yang aman di luar aplikasi Cake Wallet.", - "pre_seed_button_text": "Saya mengerti. Tampilkan seed saya", - "xmr_to_error": "XMR.TO error", - "xmr_to_error_description": "Jumlah tidak valid. Batas maksimal 8 digit setelah koma", - "provider_error": "${provider} error", - "use_ssl": "Gunakan SSL", - "trusted": "Dipercayai", - "color_theme": "Tema warna", - "light_theme": "Terang", - "bright_theme": "Cerah", - "dark_theme": "Gelap", - "enter_your_note": "Masukkan catatan Anda...", - "note_optional": "Catatan (opsional)", - "note_tap_to_change": "Catatan (tap untuk mengubah)", - "view_in_block_explorer": "Lihat di Block Explorer", - "view_transaction_on": "Lihat Transaksi di ", - "transaction_key": "Kunci transaksi", - "confirmations": "Konfirmasi", - "recipient_address": "Alamat penerima", - "extra_id": "ID tambahan:", - "destination_tag": "Tag tujuan:", - "memo": "Memo:", - "backup": "Cadangan", - "change_password": "Ubah kata sandi", - "backup_password": "Kata sandi cadangan", - "write_down_backup_password": "Silakan menuliskan kata sandi cadangan Anda, yang digunakan untuk impor file cadangan Anda.", - "export_backup": "Ekspor cadangan", - "save_backup_password": "Pastikan Anda telah menyimpan kata sandi cadangan Anda. Anda tidak akan dapat mengimpor file cadangan Anda tanpa itu.", - "backup_file": "File cadangan", - "edit_backup_password": "Edit Kata Sandi Cadangan", - "save_backup_password_alert": "Simpan kata sandi cadangan", - "change_backup_password_alert": "File cadangan sebelumnya tidak akan tersedia untuk diimpor dengan kata sandi cadangan baru. Kata sandi cadangan baru hanya akan digunakan untuk file cadangan baru. Apakah Anda yakin ingin mengubah kata sandi cadangan?", - "enter_backup_password": "Masukkan kata sandi cadangan di sini", - "select_backup_file": "Pilih file cadangan", - "import": "Impor", - "please_select_backup_file": "Silakan pilih file cadangan dan masukkan kata sandi cadangan.", - "fixed_rate": "Rate tetap", - "fixed_rate_alert": "Anda akan dapat memasukkan jumlah penerimaan saat mode rate tetap dicentang. Apakah Anda ingin beralih ke mode rate tetap?", - "xlm_extra_info": "Jangan lupa untuk menentukan ID Memo saat mengirim transaksi XLM untuk pertukaran", - "xrp_extra_info": "Jangan lupa untuk menentukan Tag Tujuan saat mengirim transaksi XRP untuk pertukaran", - "exchange_incorrect_current_wallet_for_xmr": "Jika Anda ingin menukar XMR dari saldo Monero Cake Wallet Anda, silakan beralih ke dompet Monero Anda terlebih dahulu.", - "confirmed": "Saldo Terkonfirmasi", - "unconfirmed": "Saldo Belum Dikonfirmasi", - "displayable": "Dapat ditampilkan", - "submit_request": "kirim permintaan", - "buy_alert_content": "Saat ini kami hanya mendukung pembelian Bitcoin, Ethereum, Litecoin, dan Monero. Harap buat atau alihkan ke dompet Bitcoin, Ethereum, Litecoin, atau Monero Anda.", - "sell_alert_content": "Saat ini kami hanya mendukung penjualan Bitcoin, Ethereum, dan Litecoin. Harap buat atau alihkan ke dompet Bitcoin, Ethereum, atau Litecoin Anda.", - "outdated_electrum_wallet_description": "Dompet Bitcoin baru yang dibuat di Cake sekarang memiliki biji semai 24 kata. Wajib bagi Anda untuk membuat dompet Bitcoin baru dan mentransfer semua dana Anda ke dompet 24 kata baru, dan berhenti menggunakan dompet dengan biji semai 12 kata. Silakan lakukan ini segera untuk mengamankan dana Anda.", - "understand": "Saya mengerti", - "apk_update": "Pembaruan APK", - "buy_bitcoin": "Beli Bitcoin", - "buy_with": "Beli dengan", - "moonpay_alert_text": "Nilai jumlah harus lebih atau sama dengan ${minAmount} ${fiatCurrency}", - "outdated_electrum_wallet_receive_warning": "Jika dompet ini memiliki biji semai 12 kata dan dibuat di Cake, JANGAN deposit Bitcoin ke dalam dompet ini. BTC apapun yang ditransfer ke dompet ini mungkin hilang. Buat dompet 24 kata baru (ketuk menu di pojok kanan atas, pilih Dompet, pilih Buat Dompet Baru, lalu pilih Bitcoin) dan SEGERA pindahkan BTC Anda ke sana. Dompet BTC (24 kata) baru dari Cake aman", - "do_not_show_me": "Jangan tampilkan ini lagi", - "unspent_coins_title": "Koin yang tidak terpakai", - "unspent_coins_details_title": "Rincian koin yang tidak terpakai", - "freeze": "Freeze", - "frozen": "Dibekukan", - "coin_control": "Kontrol koin (opsional)", - "address_detected": "Alamat terdeteksi", - "address_from_domain": "Alamat ini dari ${domain} di Unstoppable Domains", - "add_receiver": "Tambahkan penerima lain (opsional)", - "manage_yats": "Kelola Yats", - "yat_alert_title": "Kirim dan terima crypto dengan lebih mudah dengan Yat", - "yat_alert_content": "Pengguna Cake Wallet sekarang dapat mengirim dan menerima semua mata uang favorit mereka dengan nama pengguna berbasis emoji yang satu-of-a-kind.", - "get_your_yat": "Dapatkan Yat Anda", - "connect_an_existing_yat": "Hubungkan Yat yang ada", - "connect_yats": "Hubungkan Yats", - "yat_address": "Alamat Yat", - "yat": "Yat", - "address_from_yat": "Alamat ini berasal dari ${emoji} di Yat", - "yat_error": "Kesalahan Yat", - "yat_error_content": "Tidak ada alamat yang terkait dengan Yat ini. Coba Yat lain", - "choose_address": "\n\nSilakan pilih alamat:", - "yat_popup_title": "Alamat dompet Anda dapat diubah menjadi emoji.", - "yat_popup_content": "Anda sekarang dapat mengirim dan menerima crypto di Cake Wallet dengan Yat Anda - nama pengguna berbasis emoji yang pendek. Kelola Yats kapan saja pada layar pengaturan", - "second_intro_title": "Satu alamat emoji untuk menguasainya semua", - "second_intro_content": "Yat Anda adalah satu alamat emoji yang unik yang menggantikan semua alamat heksadesimal panjang Anda untuk semua mata uang Anda.", - "third_intro_title": "Yat bermain baik dengan yang lain", - "third_intro_content": "Yats hidup di luar Cake Wallet juga. Setiap alamat dompet di dunia dapat diganti dengan Yat!", - "learn_more": "Pelajari Lebih Lanjut", - "search": "Cari", - "search_language": "Cari bahasa", - "search_currency": "Cari mata uang", - "new_template": "Template Baru", - "electrum_address_disclaimer": "Kami menghasilkan alamat baru setiap kali Anda menggunakan satu, tetapi alamat sebelumnya tetap berfungsi", - "wallet_name_exists": "Nama dompet sudah ada. Silakan pilih nama yang berbeda atau ganti nama dompet yang lain terlebih dahulu.", - "market_place": "Pasar", - "cake_pay_title": "Kartu Hadiah Cake Pay", - "cake_pay_subtitle": "Beli kartu hadiah dengan harga diskon (hanya USA)", - "cake_pay_web_cards_title": "Kartu Web Cake Pay", - "cake_pay_web_cards_subtitle": "Beli kartu prabayar dan kartu hadiah secara global", - "about_cake_pay": "Cake Pay memungkinkan Anda untuk dengan mudah membeli kartu hadiah dengan aset virtual, yang dapat digunakan segera di lebih dari 150.000 pedagang di Amerika Serikat.", - "cake_pay_account_note": "Daftar hanya dengan alamat email untuk melihat dan membeli kartu. Beberapa di antaranya bahkan tersedia dengan diskon!", - "already_have_account": "Sudah punya akun?", - "create_account": "Buat Akun", - "privacy_policy": "Kebijakan Privasi", - "welcome_to_cakepay": "Selamat Datang di Cake Pay!", - "sign_up": "Daftar", - "forgot_password": "Lupa Kata Sandi", - "reset_password": "Atur Ulang Kata Sandi", - "gift_cards": "Kartu Hadiah", - "setup_your_debit_card": "Pasang kartu debit Anda", - "no_id_required": "Tidak perlu ID. Isi ulang dan belanja di mana saja", - "how_to_use_card": "Bagaimana menggunakan kartu ini", - "purchase_gift_card": "Beli Kartu Hadiah", - "verification": "Verifikasi", - "fill_code": "Silakan isi kode verifikasi yang diterima di email Anda", - "didnt_get_code": "Tidak mendapatkan kode?", - "resend_code": "Silakan kirim ulang", - "debit_card": "Kartu Debit", - "cakepay_prepaid_card": "Kartu Debit Prabayar CakePay", - "no_id_needed": "Tidak perlu ID!", - "frequently_asked_questions": "Pertanyaan yang sering diajukan", - "debit_card_terms": "Penyimpanan dan penggunaan nomor kartu pembayaran Anda (dan kredensial yang sesuai dengan nomor kartu pembayaran Anda) dalam dompet digital ini tertakluk pada Syarat dan Ketentuan persetujuan pemegang kartu yang berlaku dengan penerbit kartu pembayaran, seperti yang berlaku dari waktu ke waktu.", - "please_reference_document": "Silakan referensikan dokumen di bawah ini untuk informasi lebih lanjut.", - "cardholder_agreement": "Persetujuan Pemegang Kartu", - "e_sign_consent": "E-Sign Consent", - "agree_and_continue": "Setuju & Lanjutkan", - "email_address": "Alamat Email", - "agree_to": "Dengan membuat akun Anda setuju dengan ", - "and": "dan", - "enter_code": "Masukkan kode", - "congratulations": "Selamat!", - "you_now_have_debit_card": "Anda sekarang memiliki kartu debit", - "min_amount": "Min: ${value}", - "max_amount": "Max: ${value}", - "enter_amount": "Masukkan Jumlah", - "billing_address_info": "Jika diminta alamat billing, berikan alamat pengiriman Anda", - "order_physical_card": "Pesan Kartu Fisik", - "add_value": "Tambahkan nilai", - "activate": "Aktifkan", - "get_a": "Dapatkan ", - "digital_and_physical_card": " kartu debit pra-bayar digital dan fisik", - "get_card_note": " yang dapat Anda muat ulang dengan mata uang digital. Tidak perlu informasi tambahan!", - "signup_for_card_accept_terms": "Daftar untuk kartu dan terima syarat dan ketentuan.", - "add_fund_to_card": "Tambahkan dana pra-bayar ke kartu (hingga ${value})", - "use_card_info_two": "Dana dikonversi ke USD ketika disimpan dalam akun pra-bayar, bukan dalam mata uang digital.", - "use_card_info_three": "Gunakan kartu digital secara online atau dengan metode pembayaran tanpa kontak.", - "optionally_order_card": "Opsional memesan kartu fisik.", - "hide_details": "Sembunyikan Rincian", - "show_details": "Tampilkan Rincian", - "upto": "hingga ${value}", - "discount": "Hemat ${value}%", - "gift_card_amount": "Jumlah Kartu Hadiah", - "bill_amount": "Jumlah Tagihan", - "you_pay": "Anda Membayar", - "tip": "Tip:", - "custom": "kustom", - "by_cake_pay": "oleh Cake Pay", - "expires": "Kadaluarsa", - "mm": "MM", - "yy": "YY", - "online": "Online", - "offline": "Offline", - "gift_card_number": "Nomor Kartu Hadiah", - "pin_number": "Nomor PIN", - "total_saving": "Total Pembayaran", - "last_30_days": "30 hari terakhir", - "avg_savings": "Rata-rata Pembayaran", - "view_all": "Lihat Semua", - "active_cards": "Kartu Aktif", - "delete_account": "Hapus Akun", - "cards": "Kartu", - "active": "Aktif", - "redeemed": "Ditukar", - "gift_card_balance_note": "Kartu hadiah dengan saldo yang tersisa akan muncul di sini", - "gift_card_redeemed_note": "Kartu hadiah yang sudah Anda tukar akan muncul di sini", - "logout": "Keluar", - "add_tip": "Tambahkan Tip", - "percentageOf": "dari ${amount}", - "is_percentage": "adalah", - "search_category": "Cari kategori", - "mark_as_redeemed": "Tandai sebagai Ditukar", - "more_options": "Opsi Lainnya", - "awaiting_payment_confirmation": "Menunggu Konfirmasi Pembayaran", - "transaction_sent_notice": "Jika layar tidak bergerak setelah 1 menit, periksa block explorer dan email Anda.", - "agree": "Setuju", - "in_store": "Di Toko", - "generating_gift_card": "Membuat Kartu Hadiah", - "payment_was_received": "Pembayaran Anda telah diterima.", - "proceed_after_one_minute": "Jika layar tidak bergerak setelah 1 menit, periksa email Anda.", - "order_id": "ID Pesanan", - "gift_card_is_generated": "Kartu Hadiah telah dibuat", - "open_gift_card": "Buka Kartu Hadiah", - "contact_support": "Hubungi Dukungan", - "gift_cards_unavailable": "Kartu hadiah hanya tersedia untuk dibeli dengan Monero, Bitcoin, dan Litecoin saat ini", - "introducing_cake_pay": "Perkenalkan Cake Pay!", - "cake_pay_learn_more": "Beli dan tukar kartu hadiah secara instan di aplikasi!\nGeser ke kanan untuk informasi lebih lanjut.", - "automatic": "Otomatis", - "fixed_pair_not_supported": "Pasangan tetap ini tidak didukung dengan bursa yang dipilih", - "variable_pair_not_supported": "Pasangan variabel ini tidak didukung dengan bursa yang dipilih", - "none_of_selected_providers_can_exchange": "Tidak ada dari penyedia yang dipilih yang dapat melakukan pertukaran ini", - "choose_one": "Pilih satu", - "choose_from_available_options": "Pilih dari pilihan yang tersedia:", - "custom_redeem_amount": "Jumlah Tukar Kustom", - "add_custom_redemption": "Tambahkan Tukar Kustom", - "remaining": "sisa", - "delete_wallet": "Hapus dompet", - "delete_wallet_confirm_message": "Apakah Anda yakin ingin menghapus dompet ${wallet_name}?", - "low_fee": "Biaya rendah", - "low_fee_alert": "Anda saat ini menggunakan prioritas biaya jaringan rendah. Ini dapat menyebabkan tunggu yang lama, kurs yang berbeda, atau perdagangan yang dibatalkan. Kami merekomendasikan menetapkan biaya yang lebih tinggi untuk pengalaman yang lebih baik.", - "ignor": "Abaikan", - "use_suggested": "Gunakan yang Disarankan", - "do_not_share_warning_text": "Jangan berikan ini pada siapapun, termasuk dukungan.\n\nDana Anda bisa dan akan dicuri!", - "help": "bantuan", - "all_transactions": "Semua transaksi", - "all_trades": "Semua perdagangan", - "connection_sync": "Koneksi dan sinkronisasi", - "security_and_backup": "Keamanan dan cadangan", - "create_backup": "Buat cadangan", - "privacy_settings": "Pengaturan privasi", - "privacy": "Privasi", - "display_settings": "Pengaturan tampilan", - "other_settings": "Pengaturan lainnya", - "require_pin_after": "Meminta PIN setelah", - "always": "Selalu", - "minutes_to_pin_code": "${minute} menit", - "disable_exchange": "Nonaktifkan pertukaran", - "advanced_settings": "Pengaturan lanjutan", - "settings_can_be_changed_later": "Pengaturan ini dapat diubah nanti di pengaturan aplikasi", - "add_custom_node": "Tambahkan Node Kustom Baru", - "disable_fiat": "Nonaktifkan fiat", - "fiat_api": "API fiat", - "disabled": "Dinonaktifkan", - "enabled": "Diaktifkan", - "tor_only": "Hanya Tor", - "unmatched_currencies": "Mata uang dompet Anda saat ini tidak cocok dengan yang ditandai QR", - "orbot_running_alert": "Pastikan Orbot sedang berjalan sebelum menghubungkan ke node ini.", - "contact_list_contacts": "Kontak", - "contact_list_wallets": "Dompet Saya", - "decimal_places_error": "Terlalu banyak tempat desimal", - "edit_node": "Sunting Node", - "invoice_details": "Detail faktur", - "donation_link_details": "Detail tautan donasi", - "anonpay_description": "Hasilkan ${type}. Penerima dapat ${method} dengan cryptocurrency apa pun yang didukung, dan Anda akan menerima dana di dompet ini.", - "create_invoice": "Buat faktur", - "create_donation_link": "Buat tautan donasi", - "optional_email_hint": "Email pemberitahuan penerima pembayaran opsional", - "optional_description": "Deskripsi opsional", - "optional_name": "Nama penerima opsional", - "clearnet_link": "Tautan clearnet", - "onion_link": "Tautan bawang", - "sell_monero_com_alert_content": "Menjual Monero belum didukung", - "error_text_input_below_minimum_limit": "Jumlah kurang dari minimal", - "error_text_input_above_maximum_limit": "Jumlah lebih dari maksimal", - "show_market_place": "Tampilkan Pasar", - "prevent_screenshots": "Cegah tangkapan layar dan perekaman layar", - "profile": "Profil", - "close": "Menutup", - "modify_2fa": "Ubah Kue 2FA", - "disable_cake_2fa": "Nonaktifkan Kue 2FA", - "question_to_disable_2fa": "Apakah Anda yakin ingin menonaktifkan Cake 2FA? Kode 2FA tidak lagi diperlukan untuk mengakses dompet dan fungsi tertentu.", - "disable": "Cacat", - "setup_2fa": "Siapkan Kue 2FA", - "verify_with_2fa": "Verifikasi dengan Cake 2FA", - "totp_code": "Kode TOTP", - "please_fill_totp": "Harap isi kode 8 digit yang ada di perangkat Anda yang lain", - "totp_2fa_success": "Kesuksesan! Cake 2FA diaktifkan untuk dompet ini. Ingatlah untuk menyimpan benih mnemonik Anda jika Anda kehilangan akses dompet.", - "totp_verification_success": "Verifikasi Berhasil!", - "totp_2fa_failure": "Kode salah. Silakan coba kode lain atau buat kunci rahasia baru. Gunakan aplikasi 2FA yang kompatibel yang mendukung kode 8 digit dan SHA512.", - "enter_totp_code": "Masukkan Kode TOTP.", - "add_secret_code": "Atau, tambahkan kode rahasia ini ke aplikasi autentikator", - "totp_secret_code": "Kode Rahasia TOTP", - "setup_2fa_text": "Cake 2FA bekerja menggunakan TOTP sebagai faktor otentikasi kedua.\n\nTOTP Cake 2FA memerlukan SHA-512 dan dukungan 8 digit; ini memberikan peningkatan keamanan. Informasi lebih lanjut dan aplikasi yang didukung dapat ditemukan di panduan.", - "setup_totp_recommended": "Pengaturan TOTP", - "disable_buy": "Nonaktifkan tindakan beli", - "disable_sell": "Nonaktifkan aksi jual", + "authenticated": "Terotentikasi", + "authentication": "Otentikasi", "auto_generate_subaddresses": "Menghasilkan subalamat secara otomatis", - "cake_2fa_preset": "Preset Kue 2FA", - "narrow": "Sempit", - "normal": "Normal", - "aggressive": "Terlalu bersemangat", - "require_for_assessing_wallet": "Diperlukan untuk mengakses dompet", - "require_for_sends_to_non_contacts": "Wajibkan untuk mengirim ke non-kontak", - "require_for_sends_to_contacts": "Membutuhkan untuk mengirim ke kontak", - "require_for_sends_to_internal_wallets": "Diperlukan untuk mengirim ke dompet internal", - "require_for_exchanges_to_internal_wallets": "Diperlukan untuk pertukaran ke dompet internal", - "require_for_adding_contacts": "Membutuhkan untuk menambahkan kontak", - "require_for_creating_new_wallets": "Diperlukan untuk membuat dompet baru", - "require_for_all_security_and_backup_settings": "Memerlukan untuk semua pengaturan keamanan dan pencadangan", + "automatic": "Otomatis", + "available_balance": "Saldo Tersedia", "available_balance_description": "“Saldo yang Tersedia” atau “Saldo yang Dikonfirmasi” adalah dana yang dapat langsung dibelanjakan. Jika dana muncul di saldo bawah tetapi tidak di saldo atas, maka Anda harus menunggu beberapa menit agar dana masuk mendapatkan konfirmasi jaringan lainnya. Setelah mereka mendapatkan lebih banyak konfirmasi, mereka akan dapat dibelanjakan.", - "syncing_wallet_alert_title": "Dompet Anda sedang disinkronkan", - "syncing_wallet_alert_content": "Saldo dan daftar transaksi Anda mungkin belum lengkap sampai tertulis “SYNCHRONIZED” di bagian atas. Klik/ketuk untuk mempelajari lebih lanjut.", - "home_screen_settings": "Pengaturan layar awal", - "sort_by": "Sortir dengan", - "search_add_token": "Cari / Tambahkan token", - "edit_token": "Mengedit token", - "warning": "Peringatan", - "add_token_warning": "Jangan mengedit atau menambahkan token seperti yang diinstruksikan oleh penipu.\nSelalu konfirmasikan alamat token dengan sumber tepercaya!", - "add_token_disclaimer_check": "Saya telah mengonfirmasi alamat dan informasi kontrak token menggunakan sumber yang memiliki reputasi baik. Menambahkan informasi jahat atau salah dapat mengakibatkan hilangnya dana.", - "token_contract_address": "Alamat kontrak token", - "token_name": "Nama token misalnya: Tether", - "token_symbol": "Simbol token misalnya: USDT", - "token_decimal": "Desimal token", - "field_required": "Bagian ini diperlukan", - "pin_at_top": "sematkan ${token} di atas", - "invalid_input": "Masukan tidak valid", - "fiat_balance": "Saldo Fiat", - "gross_balance": "Saldo Kotor", - "alphabetical": "Alfabetis", - "generate_name": "Hasilkan Nama", + "avg_savings": "Rata-rata Pembayaran", + "awaitDAppProcessing": "Mohon tunggu hingga dApp menyelesaikan pemrosesan.", + "awaiting_payment_confirmation": "Menunggu Konfirmasi Pembayaran", + "backup": "Cadangan", + "backup_file": "File cadangan", + "backup_password": "Kata sandi cadangan", "balance_page": "Halaman Saldo", - "share": "Membagikan", - "slidable": "Dapat digeser", - "monero_dark_theme": "Tema Gelap Monero", + "bill_amount": "Jumlah Tagihan", + "billing_address_info": "Jika diminta alamat billing, berikan alamat pengiriman Anda", + "biometric_auth_reason": "Pindai sidik jari Anda untuk mengautentikasi", "bitcoin_dark_theme": "Tema Gelap Bitcoin", "bitcoin_light_theme": "Tema Cahaya Bitcoin", - "high_contrast_theme": "Tema Kontras Tinggi", - "matrix_green_dark_theme": "Tema Matrix Green Dark", - "monero_light_theme": "Tema Cahaya Monero", - "manage_nodes": "Kelola node", - "etherscan_history": "Sejarah Etherscan", - "template_name": "Nama Templat", + "Blocks_remaining": "${status} Blok Tersisa", + "bright_theme": "Cerah", + "buy": "Beli", + "buy_alert_content": "Saat ini kami hanya mendukung pembelian Bitcoin, Ethereum, Litecoin, dan Monero. Harap buat atau alihkan ke dompet Bitcoin, Ethereum, Litecoin, atau Monero Anda.", + "buy_bitcoin": "Beli Bitcoin", + "buy_provider_unavailable": "Penyedia saat ini tidak tersedia.", + "buy_with": "Beli dengan", + "by_cake_pay": "oleh Cake Pay", + "cake_2fa_preset": "Preset Kue 2FA", + "cake_pay_account_note": "Daftar hanya dengan alamat email untuk melihat dan membeli kartu. Beberapa di antaranya bahkan tersedia dengan diskon!", + "cake_pay_learn_more": "Beli dan tukar kartu hadiah secara instan di aplikasi!\nGeser ke kanan untuk informasi lebih lanjut.", + "cake_pay_subtitle": "Beli kartu hadiah dengan harga diskon (hanya USA)", + "cake_pay_title": "Kartu Hadiah Cake Pay", + "cake_pay_web_cards_subtitle": "Beli kartu prabayar dan kartu hadiah secara global", + "cake_pay_web_cards_title": "Kartu Web Cake Pay", + "cake_wallet": "Cake Wallet", + "cakepay_prepaid_card": "Kartu Debit Prabayar CakePay", + "camera_consent": "Kamera Anda akan digunakan untuk mengambil gambar untuk tujuan identifikasi oleh ${provider}. Silakan periksa Kebijakan Privasi mereka untuk detailnya.", + "camera_permission_is_required": "Izin kamera diperlukan.\nSilakan aktifkan dari pengaturan aplikasi.", + "cancel": "Batal", + "card_address": "Alamat:", + "cardholder_agreement": "Persetujuan Pemegang Kartu", + "cards": "Kartu", + "chains": "Rantai", + "change": "Ubah", + "change_backup_password_alert": "File cadangan sebelumnya tidak akan tersedia untuk diimpor dengan kata sandi cadangan baru. Kata sandi cadangan baru hanya akan digunakan untuk file cadangan baru. Apakah Anda yakin ingin mengubah kata sandi cadangan?", + "change_currency": "Ganti Mata Uang", + "change_current_node": "Apakah Anda yakin ingin mengubah node saat ini menjadi ${node}?", + "change_current_node_title": "Ubah node saat ini", + "change_exchange_provider": "Ganti Penyedia Tukar", + "change_language": "Ganti bahasa", + "change_language_to": "Ganti bahasa ke ${language}?", + "change_password": "Ubah kata sandi", "change_rep": "Ubah Perwakilan", "change_rep_message": "Apakah Anda yakin ingin mengubah perwakilan?", - "unsupported_asset": "Kami tidak mendukung tindakan ini untuk aset ini. Harap buat atau alihkan ke dompet dari jenis aset yang didukung.", - "manage_pow_nodes": "Kelola Node PoW", - "support_title_live_chat": "Dukungan langsung", - "support_description_live_chat": "Gratis dan Cepat! Perwakilan dukungan terlatih tersedia untuk membantu", - "support_title_guides": "Panduan Dompet Kue", - "support_description_guides": "Dokumentasi dan dukungan untuk masalah umum", - "support_title_other_links": "Tautan dukungan lainnya", - "support_description_other_links": "Bergabunglah dengan komunitas kami atau hubungi kami mitra kami melalui metode lain", + "change_rep_successful": "Berhasil mengubah perwakilan", + "change_wallet_alert_content": "Apakah Anda ingin mengganti dompet saat ini ke ${wallet_name}?", + "change_wallet_alert_title": "Ganti dompet saat ini", + "choose_account": "Pilih akun", + "choose_address": "\n\nSilakan pilih alamat:", "choose_derivation": "Pilih dompet dompet", - "new_first_wallet_text": "Dengan mudah menjaga cryptocurrency Anda aman", - "select_destination": "Silakan pilih tujuan untuk file cadangan.", - "save_to_downloads": "Simpan ke Unduhan", - "select_buy_provider_notice": "Pilih penyedia beli di atas. Anda dapat melewatkan layar ini dengan mengatur penyedia pembelian default Anda di pengaturan aplikasi.", - "onramper_option_description": "Beli crypto dengan cepat dengan banyak metode pembayaran. Tersedia di sebagian besar negara. Spread dan biaya bervariasi.", + "choose_from_available_options": "Pilih dari pilihan yang tersedia:", + "choose_one": "Pilih satu", + "choose_relay": "Silakan pilih relai yang akan digunakan", + "choose_wallet_currency": "Silahkan pilih mata uang dompet:", + "clear": "Hapus", + "clearnet_link": "Tautan clearnet", + "close": "Menutup", + "coin_control": "Kontrol koin (opsional)", + "color_theme": "Tema warna", + "commit_transaction_amount_fee": "Lakukan transaksi\nJumlah: ${amount}\nBiaya: ${fee}", + "confirm": "Konfirmasi", + "confirm_delete_template": "Tindakan ini akan menghapus template ini. Apakah Anda ingin melanjutkan?", + "confirm_delete_wallet": "Tindakan ini akan menghapus dompet ini. Apakah Anda ingin melanjutkan?", + "confirm_sending": "Konfirmasi pengiriman", + "confirmations": "Konfirmasi", + "confirmed": "Saldo Terkonfirmasi", + "confirmed_tx": "Dikonfirmasi", + "congratulations": "Selamat!", + "connect_an_existing_yat": "Hubungkan Yat yang ada", + "connect_yats": "Hubungkan Yats", + "connection_sync": "Koneksi dan sinkronisasi", + "connectWalletPrompt": "Hubungkan dompet Anda dengan WalletConnect untuk melakukan transaksi", + "contact": "Kontak", + "contact_list_contacts": "Kontak", + "contact_list_wallets": "Dompet Saya", + "contact_name": "Nama Kontak", + "contact_support": "Hubungi Dukungan", + "continue_text": "Lanjutkan", + "contractName": "Nama Kontrak", + "contractSymbol": "Simbol Kontrak", + "copied_key_to_clipboard": "Kunci ${key} disalin ke Clipboard", + "copied_to_clipboard": "Disalin ke Clipboard", + "copy": "Salin", + "copy_address": "Salin Alamat", + "copy_id": "Salin ID", + "copyWalletConnectLink": "Salin tautan WalletConnect dari dApp dan tempel di sini", + "create_account": "Buat Akun", + "create_backup": "Buat cadangan", + "create_donation_link": "Buat tautan donasi", + "create_invoice": "Buat faktur", + "create_new": "Buat Dompet Baru", + "create_new_account": "Buat akun baru", + "creating_new_wallet": "Membuat dompet baru", + "creating_new_wallet_error": "Error: ${description}", + "creation_date": "Tanggal Pembuatan", + "custom": "kustom", + "custom_drag": "Khusus (tahan dan seret)", + "custom_redeem_amount": "Jumlah Tukar Kustom", + "dark_theme": "Gelap", + "debit_card": "Kartu Debit", + "debit_card_terms": "Penyimpanan dan penggunaan nomor kartu pembayaran Anda (dan kredensial yang sesuai dengan nomor kartu pembayaran Anda) dalam dompet digital ini tertakluk pada Syarat dan Ketentuan persetujuan pemegang kartu yang berlaku dengan penerbit kartu pembayaran, seperti yang berlaku dari waktu ke waktu.", + "decimal_places_error": "Terlalu banyak tempat desimal", "default_buy_provider": "Penyedia beli default", - "ask_each_time": "Tanyakan setiap kali", - "buy_provider_unavailable": "Penyedia saat ini tidak tersedia.", - "signTransaction": "Tandatangani Transaksi", + "default_sell_provider": "Penyedia Penjualan Default", + "delete": "Hapus", + "delete_account": "Hapus Akun", + "delete_wallet": "Hapus dompet", + "delete_wallet_confirm_message": "Apakah Anda yakin ingin menghapus dompet ${wallet_name}?", + "deleteConnectionConfirmationPrompt": "Apakah Anda yakin ingin menghapus koneksi ke", + "descending": "Menurun", + "description": "Keterangan", + "destination_tag": "Tag tujuan:", + "dfx_option_description": "Beli kripto dengan EUR & CHF. Hingga 990€ tanpa KYC tambahan. Untuk pelanggan ritel dan korporat di Eropa", + "didnt_get_code": "Tidak mendapatkan kode?", + "digit_pin": "-digit PIN", + "digital_and_physical_card": " kartu debit pra-bayar digital dan fisik", + "disable": "Cacat", + "disable_buy": "Nonaktifkan tindakan beli", + "disable_cake_2fa": "Nonaktifkan Kue 2FA", + "disable_exchange": "Nonaktifkan pertukaran", + "disable_fiat": "Nonaktifkan fiat", + "disable_sell": "Nonaktifkan aksi jual", + "disabled": "Dinonaktifkan", + "discount": "Hemat ${value}%", + "display_settings": "Pengaturan tampilan", + "displayable": "Dapat ditampilkan", + "do_not_have_enough_gas_asset": "Anda tidak memiliki cukup ${currency} untuk melakukan transaksi dengan kondisi jaringan blockchain saat ini. Anda memerlukan lebih banyak ${currency} untuk membayar biaya jaringan blockchain, meskipun Anda mengirimkan aset yang berbeda.", + "do_not_share_warning_text": "Jangan berikan ini pada siapapun, termasuk dukungan.\n\nDana Anda bisa dan akan dicuri!", + "do_not_show_me": "Jangan tampilkan ini lagi", + "domain_looks_up": "Pencarian domain", + "donation_link_details": "Detail tautan donasi", + "e_sign_consent": "E-Sign Consent", + "edit": "Edit", + "edit_backup_password": "Edit Kata Sandi Cadangan", + "edit_node": "Sunting Node", + "edit_token": "Mengedit token", + "electrum_address_disclaimer": "Kami menghasilkan alamat baru setiap kali Anda menggunakan satu, tetapi alamat sebelumnya tetap berfungsi", + "email_address": "Alamat Email", + "enabled": "Diaktifkan", + "enter_amount": "Masukkan Jumlah", + "enter_backup_password": "Masukkan kata sandi cadangan di sini", + "enter_code": "Masukkan kode", + "enter_seed_phrase": "Masukkan frasa benih Anda", + "enter_totp_code": "Masukkan Kode TOTP.", + "enter_your_note": "Masukkan catatan Anda...", + "enter_your_pin": "Masukkan PIN Anda", + "enter_your_pin_again": "Masukkan PIN Anda lagi", + "enterTokenID": "Masukkan ID tokennya", + "enterWalletConnectURI": "Masukkan URI WalletConnect", + "error": "Kesalahan", + "error_text_account_name": "Nama akun hanya dapat berisi huruf, angka\ndan harus antara 1 dan 15 karakter panjang", + "error_text_address": "Alamat dompet harus sesuai dengan tipe\nmata uang kripto", + "error_text_amount": "Jumlah hanya dapat berisi angka", + "error_text_contact_name": "Nama kontak tidak boleh berisi simbol `, ' \"\ndan harus antara 1 dan 32 karakter panjang", + "error_text_crypto_currency": "Jumlah digit pecahan harus kurang atau sama dengan 12", + "error_text_fiat": "Nilai jumlah tidak boleh melebihi saldo yang tersedia.\nJumlah digit pecahan harus kurang atau sama dengan 2", + "error_text_input_above_maximum_limit": "Jumlah lebih dari maksimal", + "error_text_input_below_minimum_limit": "Jumlah kurang dari minimal", + "error_text_keys": "Kunci dompet hanya dapat berisi 64 karakter dalam hex", + "error_text_limits_loading_failed": "Perdagangan untuk ${provider} tidak dibuat. Gagal memuat batas", + "error_text_maximum_limit": "Perdagangan untuk ${provider} tidak dibuat. Jumlah lebih dari maksimal: ${max} ${currency}", + "error_text_minimal_limit": "Perdagangan untuk ${provider} tidak dibuat. Jumlah kurang dari minimal: ${min} ${currency}", + "error_text_node_address": "Silakan masukkan alamat iPv4", + "error_text_node_port": "Port node hanya dapat berisi angka antara 0 dan 65535", + "error_text_node_proxy_address": "Masukkan :, misalnya 127.0.0.1:9050", + "error_text_payment_id": "ID pembayaran hanya dapat berisi dari 16 hingga 64 karakter dalam hex", + "error_text_subaddress_name": "Nama subalamat tidak boleh berisi simbol `, ' \"\ndan harus antara 1 dan 20 karakter panjang", + "error_text_template": "Nama template dan alamat tidak boleh berisi simbol ` , ' \"\ndan harus antara 1 dan 106 karakter panjang", + "error_text_wallet_name": "Nama dompet hanya dapat berisi huruf, angka, _ - simbol\ndan harus antara 1 dan 33 karakter panjang", + "error_text_xmr": "Nilai XMR tidak boleh melebihi saldo yang tersedia.\nJumlah digit pecahan harus kurang atau sama dengan 12", "errorGettingCredentials": "Gagal: Terjadi kesalahan saat mendapatkan kredensial", "errorSigningTransaction": "Terjadi kesalahan saat menandatangani transaksi", - "pairingInvalidEvent": "Menyandingkan Acara Tidak Valid", - "chains": "Rantai", - "methods": "Metode", - "events": "Acara", - "reject": "Menolak", - "approve": "Menyetujui", - "expiresOn": "Kadaluarsa pada", - "walletConnect": "DompetConnect", - "nullURIError": "URI adalah nol", - "connectWalletPrompt": "Hubungkan dompet Anda dengan WalletConnect untuk melakukan transaksi", - "newConnection": "Koneksi Baru", - "activeConnectionsPrompt": "Koneksi aktif akan muncul di sini", - "deleteConnectionConfirmationPrompt": "Apakah Anda yakin ingin menghapus koneksi ke", + "estimated": "Diperkirakan", + "etherscan_history": "Sejarah Etherscan", "event": "Peristiwa", - "successful": "Berhasil", - "wouoldLikeToConnect": "ingin terhubung", - "message": "Pesan", - "do_not_have_enough_gas_asset": "Anda tidak memiliki cukup ${currency} untuk melakukan transaksi dengan kondisi jaringan blockchain saat ini. Anda memerlukan lebih banyak ${currency} untuk membayar biaya jaringan blockchain, meskipun Anda mengirimkan aset yang berbeda.", - "totp_auth_url": "URL Otentikasi TOTP", - "awaitDAppProcessing": "Mohon tunggu hingga dApp menyelesaikan pemrosesan.", - "copyWalletConnectLink": "Salin tautan WalletConnect dari dApp dan tempel di sini", - "enterWalletConnectURI": "Masukkan URI WalletConnect", - "seed_key": "Kunci benih", - "enter_seed_phrase": "Masukkan frasa benih Anda", - "change_rep_successful": "Berhasil mengubah perwakilan", - "add_contact": "Tambah kontak", + "events": "Acara", + "exchange": "Tukar", + "exchange_incorrect_current_wallet_for_xmr": "Jika Anda ingin menukar XMR dari saldo Monero Cake Wallet Anda, silakan beralih ke dompet Monero Anda terlebih dahulu.", + "exchange_new_template": "Template baru", "exchange_provider_unsupported": "${providerName} tidak lagi didukung!", - "domain_looks_up": "Pencarian domain", - "require_for_exchanges_to_external_wallets": "Memerlukan pertukaran ke dompet eksternal", - "camera_permission_is_required": "Izin kamera diperlukan.\nSilakan aktifkan dari pengaturan aplikasi.", - "switchToETHWallet": "Silakan beralih ke dompet Ethereum dan coba lagi", - "order_by": "Dipesan oleh", - "creation_date": "Tanggal Pembuatan", + "exchange_result_confirm": "Dengan menekan tombol konfirmasi, Anda akan mengirimkan ${fetchingLabel} ${from} dari dompet Anda yang disebut ${walletName} ke alamat yang ditampilkan di bawah. Anda juga dapat mengirim dari dompet eksternal Anda ke alamat/QR code di bawah.\n\nSilakan tekan konfirmasi untuk melanjutkan atau kembali untuk mengubah jumlah.", + "exchange_result_description": "Anda harus mengirimkan minimal ${fetchingLabel} ${from} ke alamat yang ditampilkan di halaman berikutnya. Jika Anda mengirimkan jumlah yang lebih rendah dari ${fetchingLabel} ${from} maka uang tersebut mungkin tidak akan diubah dan mungkin tidak akan dikembalikan.", + "exchange_result_write_down_ID": "*Silakan salin atau tulis ID Anda yang ditampilkan di atas.", + "exchange_result_write_down_trade_id": "Silakan salin atau tulis ID perdagangan untuk melanjutkan.", + "exchange_sync_alert_content": "Silakan tunggu sampai dompet Anda tersinkronisasi", + "expired": "Kedaluwarsa", + "expires": "Kadaluarsa", + "expiresOn": "Kadaluarsa pada", + "export_backup": "Ekspor cadangan", + "extra_id": "ID tambahan:", + "failed_authentication": "Otentikasi gagal. ${state_error}", + "faq": "Pertanyaan yang Sering Diajukan", + "fetching": "Mengambil", + "fiat_api": "API fiat", + "fiat_balance": "Saldo Fiat", + "field_required": "Bagian ini diperlukan", + "fill_code": "Silakan isi kode verifikasi yang diterima di email Anda", + "filter_by": "Filter berdasarkan", + "first_wallet_text": "Dompet luar biasa untuk Monero, Bitcoin, Ethereum, Litecoin, dan Haven", + "fixed_pair_not_supported": "Pasangan tetap ini tidak didukung dengan bursa yang dipilih", + "fixed_rate": "Rate tetap", + "fixed_rate_alert": "Anda akan dapat memasukkan jumlah penerimaan saat mode rate tetap dicentang. Apakah Anda ingin beralih ke mode rate tetap?", + "forgot_password": "Lupa Kata Sandi", + "freeze": "Freeze", + "frequently_asked_questions": "Pertanyaan yang sering diajukan", + "frozen": "Dibekukan", + "full_balance": "Saldo Penuh", + "generate_name": "Hasilkan Nama", + "generating_gift_card": "Membuat Kartu Hadiah", + "get_a": "Dapatkan ", + "get_card_note": " yang dapat Anda muat ulang dengan mata uang digital. Tidak perlu informasi tambahan!", + "get_your_yat": "Dapatkan Yat Anda", + "gift_card_amount": "Jumlah Kartu Hadiah", + "gift_card_balance_note": "Kartu hadiah dengan saldo yang tersisa akan muncul di sini", + "gift_card_is_generated": "Kartu Hadiah telah dibuat", + "gift_card_number": "Nomor Kartu Hadiah", + "gift_card_redeemed_note": "Kartu hadiah yang sudah Anda tukar akan muncul di sini", + "gift_cards": "Kartu Hadiah", + "gift_cards_unavailable": "Kartu hadiah hanya tersedia untuk dibeli dengan Monero, Bitcoin, dan Litecoin saat ini", + "got_it": "Sudah paham", + "gross_balance": "Saldo Kotor", "group_by_type": "Grup demi jenis", - "importNFTs": "Impor NFT", - "noNFTYet": "Belum ada NFT", - "address": "Alamat", - "enterTokenID": "Masukkan ID tokennya", - "tokenID": "PENGENAL", - "name": "Nama", - "symbol": "Simbol", - "seed_phrase_length": "Panjang frase benih", - "unavailable_balance": "Saldo tidak tersedia", - "unavailable_balance_description": "Saldo Tidak Tersedia: Total ini termasuk dana yang terkunci dalam transaksi yang tertunda dan dana yang telah Anda bekukan secara aktif di pengaturan kontrol koin Anda. Saldo yang terkunci akan tersedia setelah transaksi masing-masing selesai, sedangkan saldo yang dibekukan tetap tidak dapat diakses untuk transaksi sampai Anda memutuskan untuk mencairkannya.", - "unspent_change": "Mengubah", - "tor_connection": "koneksi Tor", - "setup_warning_2fa_text": "Anda perlu memulihkan dompet Anda dari benih mnemonik.\n\nDukungan kue tidak akan dapat membantu Anda jika Anda kehilangan akses ke 2FA atau benih mnemonik.\nCake 2FA adalah otentikasi kedua untuk tindakan tertentu di dompet. Sebelum menggunakan Cake 2FA, kami sarankan untuk membaca panduannya.Ini TIDAK seaman penyimpanan dingin.\n\nJika Anda kehilangan akses ke aplikasi 2FA atau kunci TOTP, Anda AKAN kehilangan akses ke dompet ini. ", - "scan_qr_on_device": "Pindai kode QR ini di perangkat lain", + "haven_app": "Haven Oleh Cake Wallet", + "haven_app_wallet_text": "Dompet luar biasa untuk Haven", + "help": "bantuan", + "hidden_balance": "Saldo Tersembunyi", + "hide_details": "Sembunyikan Rincian", + "high_contrast_theme": "Tema Kontras Tinggi", + "home_screen_settings": "Pengaturan layar awal", "how_to_use": "Cara Penggunaan", + "how_to_use_card": "Bagaimana menggunakan kartu ini", + "id": "ID: ", + "ignor": "Abaikan", + "import": "Impor", + "importNFTs": "Impor NFT", + "in_store": "Di Toko", + "incoming": "Masuk", + "incorrect_seed": "Teks yang dimasukkan tidak valid.", + "introducing_cake_pay": "Perkenalkan Cake Pay!", + "invalid_input": "Masukan tidak valid", + "invoice_details": "Detail faktur", + "is_percentage": "adalah", + "last_30_days": "30 hari terakhir", + "learn_more": "Pelajari Lebih Lanjut", + "light_theme": "Terang", + "loading_your_wallet": "Memuat dompet Anda", + "login": "Masuk", + "logout": "Keluar", + "low_fee": "Biaya rendah", + "low_fee_alert": "Anda saat ini menggunakan prioritas biaya jaringan rendah. Ini dapat menyebabkan tunggu yang lama, kurs yang berbeda, atau perdagangan yang dibatalkan. Kami merekomendasikan menetapkan biaya yang lebih tinggi untuk pengalaman yang lebih baik.", + "manage_nodes": "Kelola node", + "manage_pow_nodes": "Kelola Node PoW", + "manage_yats": "Kelola Yats", + "mark_as_redeemed": "Tandai sebagai Ditukar", + "market_place": "Pasar", + "matrix_green_dark_theme": "Tema Matrix Green Dark", + "max_amount": "Max: ${value}", + "max_value": "Max: ${value} ${currency}", + "memo": "Memo:", + "message": "Pesan", + "methods": "Metode", + "min_amount": "Min: ${value}", + "min_value": "Min: ${value} ${currency}", + "minutes_to_pin_code": "${minute} menit", + "mm": "MM", + "modify_2fa": "Ubah Kue 2FA", + "monero_com": "Monero.com Oleh Cake Wallet", + "monero_com_wallet_text": "Dompet luar biasa untuk Monero", + "monero_dark_theme": "Tema Gelap Monero", + "monero_light_theme": "Tema Cahaya Monero", + "moonpay_alert_text": "Nilai jumlah harus lebih atau sama dengan ${minAmount} ${fiatCurrency}", + "more_options": "Opsi Lainnya", + "name": "Nama", + "narrow": "Sempit", + "new_first_wallet_text": "Dengan mudah menjaga cryptocurrency Anda aman", + "new_node_testing": "Pengujian node baru", + "new_subaddress_create": "Buat", + "new_subaddress_label_name": "Nama label", + "new_subaddress_title": "Alamat baru", + "new_template": "Template Baru", + "new_wallet": "Dompet Baru", + "newConnection": "Koneksi Baru", + "no_id_needed": "Tidak perlu ID!", + "no_id_required": "Tidak perlu ID. Isi ulang dan belanja di mana saja", + "no_relay_on_domain": "Tidak ada relai untuk domain pengguna atau relai tidak tersedia. Silakan pilih relai yang akan digunakan.", + "no_relays": "Tidak ada relay", + "no_relays_message": "Kami menemukan catatan Nostr NIP-05 untuk pengguna ini, tetapi tidak berisi relay apa pun. Harap instruksikan penerima untuk menambahkan relay ke catatan Nostr mereka.", + "node_address": "Alamat Node", + "node_connection_failed": "Koneksi gagal", + "node_connection_successful": "Koneksi berhasil", + "node_new": "Node Baru", + "node_port": "Port Node", + "node_reset_settings_title": "Atur ulang pengaturan", + "node_test": "Uji", + "nodes": "Node", + "nodes_list_reset_to_default_message": "Apakah Anda yakin ingin mengatur ulang pengaturan ke default?", + "none_of_selected_providers_can_exchange": "Tidak ada dari penyedia yang dipilih yang dapat melakukan pertukaran ini", + "noNFTYet": "Belum ada NFT", + "normal": "Normal", + "note_optional": "Catatan (opsional)", + "note_tap_to_change": "Catatan (tap untuk mengubah)", + "nullURIError": "URI adalah nol", + "offer_expires_in": "Penawaran kedaluwarsa dalam: ", + "offline": "Offline", + "ok": "OK", + "onion_link": "Tautan bawang", + "online": "Online", + "onramper_option_description": "Beli crypto dengan cepat dengan banyak metode pembayaran. Tersedia di sebagian besar negara. Spread dan biaya bervariasi.", + "open_gift_card": "Buka Kartu Hadiah", + "openalias_alert_content": "Anda akan mengirim dana ke\n${recipient_name}", + "openalias_alert_title": "Alamat Terdeteksi", + "optional_description": "Deskripsi opsional", + "optional_email_hint": "Email pemberitahuan penerima pembayaran opsional", + "optional_name": "Nama penerima opsional", + "optionally_order_card": "Opsional memesan kartu fisik.", + "orbot_running_alert": "Pastikan Orbot sedang berjalan sebelum menghubungkan ke node ini.", + "order_by": "Dipesan oleh", + "order_id": "ID Pesanan", + "order_physical_card": "Pesan Kartu Fisik", + "other_settings": "Pengaturan lainnya", + "outdated_electrum_wallet_description": "Dompet Bitcoin baru yang dibuat di Cake sekarang memiliki biji semai 24 kata. Wajib bagi Anda untuk membuat dompet Bitcoin baru dan mentransfer semua dana Anda ke dompet 24 kata baru, dan berhenti menggunakan dompet dengan biji semai 12 kata. Silakan lakukan ini segera untuk mengamankan dana Anda.", + "outdated_electrum_wallet_receive_warning": "Jika dompet ini memiliki biji semai 12 kata dan dibuat di Cake, JANGAN deposit Bitcoin ke dalam dompet ini. BTC apapun yang ditransfer ke dompet ini mungkin hilang. Buat dompet 24 kata baru (ketuk menu di pojok kanan atas, pilih Dompet, pilih Buat Dompet Baru, lalu pilih Bitcoin) dan SEGERA pindahkan BTC Anda ke sana. Dompet BTC (24 kata) baru dari Cake aman", + "outgoing": "Keluar", + "overwrite_amount": "Timpa jumlah", + "pairingInvalidEvent": "Menyandingkan Acara Tidak Valid", + "password": "Kata Sandi", + "paste": "Tempel", + "pause_wallet_creation": "Kemampuan untuk membuat Haven Wallet saat ini dijeda.", + "payment_id": "ID Pembayaran: ", + "payment_was_received": "Pembayaran Anda telah diterima.", + "pending": " (pending)", + "percentageOf": "dari ${amount}", + "pin_at_top": "sematkan ${token} di atas", + "pin_is_incorrect": "PIN salah", + "pin_number": "Nomor PIN", + "placeholder_contacts": "Kontak Anda akan ditampilkan di sini", + "placeholder_transactions": "Transaksi Anda akan ditampilkan di sini", + "please_fill_totp": "Harap isi kode 8 digit yang ada di perangkat Anda yang lain", + "please_make_selection": "Silahkan membuat pilihan di bawah ini untuk membuat atau memulihkan dompet Anda.", + "please_reference_document": "Silakan referensikan dokumen di bawah ini untuk informasi lebih lanjut.", + "please_select": "Silakan pilih:", + "please_select_backup_file": "Silakan pilih file cadangan dan masukkan kata sandi cadangan.", + "please_try_to_connect_to_another_node": "Silakan coba untuk terhubung ke node lain", + "polygonscan_history": "Sejarah PolygonScan", + "powered_by": "Didukung oleh ${title}", + "pre_seed_button_text": "Saya mengerti. Tampilkan seed saya", + "pre_seed_description": "Di halaman berikutnya Anda akan melihat serangkaian kata ${words}. Ini adalah seed unik dan pribadi Anda dan itu SATU-SATUNYA cara untuk mengembalikan dompet Anda jika hilang atau rusak. Ini adalah TANGGUNG JAWAB Anda untuk menuliskannya dan menyimpan di tempat yang aman di luar aplikasi Cake Wallet.", + "pre_seed_title": "PENTING", + "prevent_screenshots": "Cegah tangkapan layar dan perekaman layar", + "privacy": "Privasi", + "privacy_policy": "Kebijakan Privasi", + "privacy_settings": "Pengaturan privasi", + "private_key": "Kunci privat", + "proceed_after_one_minute": "Jika layar tidak bergerak setelah 1 menit, periksa email Anda.", + "profile": "Profil", + "provider_error": "${provider} error", + "public_key": "Kunci publik", + "purchase_gift_card": "Beli Kartu Hadiah", + "qr_fullscreen": "Tap untuk membuka layar QR code penuh", + "qr_payment_amount": "QR code ini berisi jumlah pembayaran. Apakah Anda ingin menimpa nilai saat ini?", + "question_to_disable_2fa": "Apakah Anda yakin ingin menonaktifkan Cake 2FA? Kode 2FA tidak lagi diperlukan untuk mengakses dompet dan fungsi tertentu.", + "receivable_balance": "Saldo piutang", + "receive": "Menerima", + "receive_amount": "Jumlah", + "received": "Diterima", + "recipient_address": "Alamat penerima", + "reconnect": "Sambungkan kembali", + "reconnect_alert_text": "Apakah Anda yakin ingin menyambungkan kembali?", + "reconnection": "Koneksi kembali", + "redeemed": "Ditukar", + "refund_address": "Alamat pengembalian", + "reject": "Menolak", + "remaining": "sisa", + "remove": "Hapus", + "remove_node": "Hapus node", + "remove_node_message": "Apakah Anda yakin ingin menghapus node yang dipilih?", + "rename": "Ganti nama", + "require_for_adding_contacts": "Membutuhkan untuk menambahkan kontak", + "require_for_all_security_and_backup_settings": "Memerlukan untuk semua pengaturan keamanan dan pencadangan", + "require_for_assessing_wallet": "Diperlukan untuk mengakses dompet", + "require_for_creating_new_wallets": "Diperlukan untuk membuat dompet baru", + "require_for_exchanges_to_external_wallets": "Memerlukan pertukaran ke dompet eksternal", + "require_for_exchanges_to_internal_wallets": "Diperlukan untuk pertukaran ke dompet internal", + "require_for_sends_to_contacts": "Membutuhkan untuk mengirim ke kontak", + "require_for_sends_to_internal_wallets": "Diperlukan untuk mengirim ke dompet internal", + "require_for_sends_to_non_contacts": "Wajibkan untuk mengirim ke non-kontak", + "require_pin_after": "Meminta PIN setelah", + "rescan": "Pindai ulang", + "resend_code": "Silakan kirim ulang", + "reset": "Reset", + "reset_password": "Atur Ulang Kata Sandi", + "restore_active_seed": "Seed aktif", + "restore_address": "Alamat", + "restore_bitcoin_description_from_keys": "Pulihkan dompet Anda dari string WIF yang dihasilkan dari private keys Anda", + "restore_bitcoin_description_from_seed": "Pulihkan dompet Anda dari kombinasi kode 24 kata", + "restore_bitcoin_title_from_keys": "Pulihkan dari WIF", + "restore_description_from_backup": "Anda dapat memulihkan seluruh aplikasi Cake Wallet dari file cadangan Anda", + "restore_description_from_keys": "Pulihkan dompet Anda dari tombol yang dihasilkan yang disimpan dari kunci pribadi Anda", + "restore_description_from_seed": "Pulihkan dompet Anda dari kombinasi kode 25 atau 13 kata", + "restore_description_from_seed_keys": "Dapatkan kembali dompet Anda dari seed/kunci yang Anda simpan di tempat yang aman", + "restore_from_date_atau_blockheight": "Silakan masukkan tanggal beberapa hari sebelum Anda membuat dompet ini. Atau jika Anda tahu blockheight, silakan masukkannya sebagai gantinya", + "restore_from_seed_placeholder": "Silakan masukkan atau tempel seed Anda di sini", + "restore_new_seed": "Seed baru", + "restore_next": "Selanjutnya", + "restore_recover": "Pulihkan", + "restore_restore_wallet": "Pulihkan Dompet", + "restore_seed_keys_restore": "Pulihkan Seed/Kunci", + "restore_spend_key_private": "Habiskan kunci (pribadi)", + "restore_title_from_backup": "Pulihkan dari cadangan", + "restore_title_from_keys": "Pulihkan dari kunci", + "restore_title_from_seed": "Pulihkan dari seed", + "restore_title_from_seed_keys": "Pulihkan dari seed/kunci", + "restore_view_key_private": "Lihat kunci (pribadi)", + "restore_wallet": "Pulihkan Dompet", + "restore_wallet_name": "Nama dompet", + "restore_wallet_restore_description": "Deskripsi pemulihan dompet", + "router_no_route": "Tidak ada rute yang ditentukan untuk ${name}", + "save": "Simpan", + "save_backup_password": "Pastikan Anda telah menyimpan kata sandi cadangan Anda. Anda tidak akan dapat mengimpor file cadangan Anda tanpa itu.", + "save_backup_password_alert": "Simpan kata sandi cadangan", + "save_to_downloads": "Simpan ke Unduhan", + "saved_the_trade_id": "Saya telah menyimpan ID perdagangan", + "scan_qr_code": "Scan kode QR untuk mendapatkan alamat", + "scan_qr_on_device": "Pindai kode QR ini di perangkat lain", + "search": "Cari", + "search_add_token": "Cari / Tambahkan token", + "search_category": "Cari kategori", + "search_currency": "Cari mata uang", + "search_language": "Cari bahasa", + "second_intro_content": "Yat Anda adalah satu alamat emoji yang unik yang menggantikan semua alamat heksadesimal panjang Anda untuk semua mata uang Anda.", + "second_intro_title": "Satu alamat emoji untuk menguasainya semua", + "security_and_backup": "Keamanan dan cadangan", + "seed_alert_back": "Kembali", + "seed_alert_content": "Seed adalah satu-satunya cara untuk mengembalikan dompet Anda. Apakah Anda sudah menuliskannya?", + "seed_alert_title": "Perhatian", + "seed_alert_yes": "Ya, sudah", + "seed_choose": "Pilih bahasa bibit", "seed_hex_form": "Biji dompet (bentuk hex)", + "seed_key": "Kunci benih", + "seed_language": "Bahasa benih", + "seed_language_chinese": "Cina", + "seed_language_chinese_traditional": "Cina (tradisional)", + "seed_language_czech": "Ceko", + "seed_language_dutch": "Belanda", + "seed_language_english": "Inggris", + "seed_language_french": "Perancis", + "seed_language_german": "Jerman", + "seed_language_italian": "Italia", + "seed_language_japanese": "Jepang", + "seed_language_korean": "Korea", + "seed_language_next": "Selanjutnya", + "seed_language_portuguese": "Portugis", + "seed_language_russian": "Rusia", + "seed_language_spanish": "Spanyol", + "seed_phrase_length": "Panjang frase benih", + "seed_reminder": "Silakan tulis ini di tempat yang aman jika kamu kehilangan atau menghapus ponselmu", + "seed_share": "Bagikan bibit", + "seed_title": "Bibit", "seedtype": "Seedtype", "seedtype_legacy": "Legacy (25 kata)", "seedtype_polyseed": "Polyseed (16 kata)", - "seed_language_czech": "Ceko", - "seed_language_korean": "Korea", - "ascending": "Naik", - "descending": "Menurun", - "seed_language_chinese_traditional": "Cina (tradisional)", - "dfx_option_description": "Beli kripto dengan EUR & CHF. Hingga 990€ tanpa KYC tambahan. Untuk pelanggan ritel dan korporat di Eropa", - "polygonscan_history": "Sejarah PolygonScan", - "wallet_seed_legacy": "Biji dompet warisan", - "default_sell_provider": "Penyedia Penjualan Default", + "select_backup_file": "Pilih file cadangan", + "select_buy_provider_notice": "Pilih penyedia beli di atas. Anda dapat melewatkan layar ini dengan mengatur penyedia pembelian default Anda di pengaturan aplikasi.", + "select_destination": "Silakan pilih tujuan untuk file cadangan.", "select_sell_provider_notice": "Pilih penyedia jual di atas. Anda dapat melewati layar ini dengan mengatur penyedia penjualan default Anda di pengaturan aplikasi.", - "custom_drag": "Khusus (tahan dan seret)", + "sell": "Jual", + "sell_alert_content": "Saat ini kami hanya mendukung penjualan Bitcoin, Ethereum, dan Litecoin. Harap buat atau alihkan ke dompet Bitcoin, Ethereum, atau Litecoin Anda.", + "sell_monero_com_alert_content": "Menjual Monero belum didukung", + "send": "Mengirim", + "send_address": "Alamat ${cryptoCurrency}", + "send_amount": "Jumlah:", + "send_creating_transaction": "Membuat transaksi", + "send_error_currency": "Mata uang hanya dapat berisi angka", + "send_error_minimum_value": "Nilai minimum jumlah adalah 0.01", + "send_estimated_fee": "Biaya yang diperkirakan:", + "send_fee": "Biaya:", + "send_name": "Nama", + "send_new": "Baru", + "send_payment_id": "ID Pembayaran (opsional)", + "send_priority": "Saat ini biaya diatur dengan prioritas ${transactionPriority}.\nPrioritas transaksi dapat diubah pada pengaturan", + "send_sending": "Mengirim...", + "send_success": "${crypto}mu berhasil dikirim", + "send_templates": "Template", + "send_title": "Kirim", + "send_xmr": "Kirim XMR", + "send_your_wallet": "Dompetmu", + "sending": "Mengirim", + "sent": "Dikirim", + "settings_all": "SEMUA", + "settings_allow_biometrical_authentication": "Izinkan otentikasi biometrik", + "settings_can_be_changed_later": "Pengaturan ini dapat diubah nanti di pengaturan aplikasi", + "settings_change_language": "Ganti bahasa", + "settings_change_pin": "Ganti PIN", + "settings_currency": "Mata uang", + "settings_current_node": "Node saat ini", + "settings_dark_mode": "Mode gelap", + "settings_display_balance": "Tampilkan saldo", + "settings_display_on_dashboard_list": "Tampilkan di daftar dashboard", + "settings_fee_priority": "Prioritas biaya", + "settings_nodes": "Nodes", + "settings_none": "Tidak ada", + "settings_only_trades": "Hanya perdagangan", + "settings_only_transactions": "Hanya transaksi", + "settings_personal": "Pribadi", + "settings_save_recipient_address": "Simpan alamat penerima", + "settings_support": "Dukungan", + "settings_terms_and_conditions": "Syarat dan Ketentuan", + "settings_title": "Pengaturan", + "settings_trades": "Perdagangan", + "settings_transactions": "Transaksi", + "settings_wallets": "Dompet", + "setup_2fa": "Siapkan Kue 2FA", + "setup_2fa_text": "Cake 2FA bekerja menggunakan TOTP sebagai faktor otentikasi kedua.\n\nTOTP Cake 2FA memerlukan SHA-512 dan dukungan 8 digit; ini memberikan peningkatan keamanan. Informasi lebih lanjut dan aplikasi yang didukung dapat ditemukan di panduan.", + "setup_pin": "Pasang PIN", + "setup_successful": "PIN Anda telah berhasil diatur!", + "setup_totp_recommended": "Pengaturan TOTP", + "setup_warning_2fa_text": "Anda perlu memulihkan dompet Anda dari benih mnemonik.\n\nDukungan kue tidak akan dapat membantu Anda jika Anda kehilangan akses ke 2FA atau benih mnemonik.\nCake 2FA adalah otentikasi kedua untuk tindakan tertentu di dompet. Sebelum menggunakan Cake 2FA, kami sarankan untuk membaca panduannya.Ini TIDAK seaman penyimpanan dingin.\n\nJika Anda kehilangan akses ke aplikasi 2FA atau kunci TOTP, Anda AKAN kehilangan akses ke dompet ini. ", + "setup_your_debit_card": "Pasang kartu debit Anda", + "share": "Membagikan", + "share_address": "Bagikan alamat", + "show_details": "Tampilkan Rincian", + "show_keys": "Tampilkan seed/kunci", + "show_market_place": "Tampilkan Pasar", + "show_seed": "Tampilkan seed", + "sign_up": "Daftar", + "signTransaction": "Tandatangani Transaksi", + "signup_for_card_accept_terms": "Daftar untuk kartu dan terima syarat dan ketentuan.", + "slidable": "Dapat digeser", + "sort_by": "Sortir dengan", + "spend_key_private": "Kunci pengeluaran (privat)", + "spend_key_public": "Kunci pengeluaran (publik)", + "status": "Status: ", + "subaddress_title": "Daftar sub-alamat", + "subaddresses": "Sub-alamat", + "submit_request": "kirim permintaan", + "successful": "Berhasil", + "support_description_guides": "Dokumentasi dan dukungan untuk masalah umum", + "support_description_live_chat": "Gratis dan Cepat! Perwakilan dukungan terlatih tersedia untuk membantu", + "support_description_other_links": "Bergabunglah dengan komunitas kami atau hubungi kami mitra kami melalui metode lain", + "support_title_guides": "Panduan Dompet Kue", + "support_title_live_chat": "Dukungan langsung", + "support_title_other_links": "Tautan dukungan lainnya", + "switchToETHWallet": "Silakan beralih ke dompet Ethereum dan coba lagi", "switchToEVMCompatibleWallet": "Silakan beralih ke dompet yang kompatibel dengan EVM dan coba lagi (Ethereum, Polygon)", - "receivable_balance": "Saldo piutang", - "confirmed_tx": "Dikonfirmasi", + "symbol": "Simbol", + "sync_status_attempting_sync": "MENCOBA SINKRONISASI", + "sync_status_connected": "TERHUBUNG", + "sync_status_connecting": "MENGHUBUNGKAN", + "sync_status_failed_connect": "GAGAL TERHUBUNG", + "sync_status_not_connected": "TIDAK TERHUBUNG", + "sync_status_starting_sync": "MULAI SINKRONISASI", + "sync_status_syncronized": "SUDAH TERSINKRONISASI", + "sync_status_syncronizing": "SEDANG SINKRONISASI", + "syncing_wallet_alert_content": "Saldo dan daftar transaksi Anda mungkin belum lengkap sampai tertulis “SYNCHRONIZED” di bagian atas. Klik/ketuk untuk mempelajari lebih lanjut.", + "syncing_wallet_alert_title": "Dompet Anda sedang disinkronkan", + "template": "Template", + "template_name": "Nama Templat", + "third_intro_content": "Yats hidup di luar Cake Wallet juga. Setiap alamat dompet di dunia dapat diganti dengan Yat!", + "third_intro_title": "Yat bermain baik dengan yang lain", + "time": "${minutes}m ${seconds}s", + "tip": "Tip:", + "today": "Hari ini", + "token_contract_address": "Alamat kontrak token", + "token_decimal": "Desimal token", + "token_name": "Nama token misalnya: Tether", + "token_symbol": "Simbol token misalnya: USDT", + "tokenID": "PENGENAL", + "tor_connection": "koneksi Tor", + "tor_only": "Hanya Tor", + "total_saving": "Total Pembayaran", + "totp_2fa_failure": "Kode salah. Silakan coba kode lain atau buat kunci rahasia baru. Gunakan aplikasi 2FA yang kompatibel yang mendukung kode 8 digit dan SHA512.", + "totp_2fa_success": "Kesuksesan! Cake 2FA diaktifkan untuk dompet ini. Ingatlah untuk menyimpan benih mnemonik Anda jika Anda kehilangan akses dompet.", + "totp_auth_url": "URL Otentikasi TOTP", + "totp_code": "Kode TOTP", + "totp_secret_code": "Kode Rahasia TOTP", + "totp_verification_success": "Verifikasi Berhasil!", + "trade_details_copied": "${title} disalin ke Clipboard", + "trade_details_created_at": "Dibuat pada", + "trade_details_fetching": "Mengambil", + "trade_details_id": "ID", + "trade_details_pair": "Pasangan", + "trade_details_provider": "Penyedia", + "trade_details_state": "Status", + "trade_details_title": "Detail Transaksi", + "trade_for_not_created": "Perdagangan untuk ${title} belum dibuat.", + "trade_history_title": "Riwayat Transaksi", + "trade_id": "ID Perdagangan:", + "trade_id_not_found": "Perdagangan ${tradeId} dari ${title} tidak ditemukan.", + "trade_is_powered_by": "Perdagangan ini didukung oleh ${provider}", + "trade_not_created": "Perdagangan belum dibuat", + "trade_not_found": "Perdagangan tidak ditemukan.", + "trade_state_btc_sent": "Btc dikirim", + "trade_state_complete": "Selesai", + "trade_state_confirming": "Menegkonfirmasi", + "trade_state_created": "Dibuat", + "trade_state_finished": "Selesai", + "trade_state_paid": "Dibayar", + "trade_state_paid_unconfirmed": "Dibayar belum dikonfirmasi", + "trade_state_pending": "Menunggu", + "trade_state_timeout": "Waktu habis", + "trade_state_to_be_created": "Akan dibuat", + "trade_state_traded": "Telah Berdagang", + "trade_state_trading": "Berdagang", + "trade_state_underpaid": "Kurang bayar", + "trade_state_unpaid": "Belum dibayar", + "trades": "Perdagangan", + "transaction_details_amount": "Jumlah", + "transaction_details_copied": "${title} disalin ke Clipboard", + "transaction_details_date": "Tanggal", + "transaction_details_fee": "Biaya", + "transaction_details_height": "Tinggi", + "transaction_details_recipient_address": "Alamat Penerima", "transaction_details_source_address": "Alamat sumber", - "pause_wallet_creation": "Kemampuan untuk membuat Haven Wallet saat ini dijeda.", - "contractName": "Nama Kontrak", - "contractSymbol": "Simbol Kontrak", - "description": "Keterangan", - "camera_consent": "Kamera Anda akan digunakan untuk mengambil gambar untuk tujuan identifikasi oleh ${provider}. Silakan periksa Kebijakan Privasi mereka untuk detailnya.", - "no_relays": "Tidak ada relay", - "choose_relay": "Silakan pilih relai yang akan digunakan", - "no_relays_message": "Kami menemukan catatan Nostr NIP-05 untuk pengguna ini, tetapi tidak berisi relay apa pun. Harap instruksikan penerima untuk menambahkan relay ke catatan Nostr mereka.", - "no_relay_on_domain": "Tidak ada relai untuk domain pengguna atau relai tidak tersedia. Silakan pilih relai yang akan digunakan." -} + "transaction_details_title": "Rincian Transaksi", + "transaction_details_transaction_id": "ID Transaksi", + "transaction_key": "Kunci transaksi", + "transaction_priority_fast": "Cepat", + "transaction_priority_fastest": "Tercepat", + "transaction_priority_medium": "Sedang", + "transaction_priority_regular": "Normal", + "transaction_priority_slow": "Lambat", + "transaction_sent": "Transaksi terkirim!", + "transaction_sent_notice": "Jika layar tidak bergerak setelah 1 menit, periksa block explorer dan email Anda.", + "transactions": "Transaksi", + "transactions_by_date": "Transaksi berdasarkan tanggal", + "trusted": "Dipercayai", + "unavailable_balance": "Saldo tidak tersedia", + "unavailable_balance_description": "Saldo Tidak Tersedia: Total ini termasuk dana yang terkunci dalam transaksi yang tertunda dan dana yang telah Anda bekukan secara aktif di pengaturan kontrol koin Anda. Saldo yang terkunci akan tersedia setelah transaksi masing-masing selesai, sedangkan saldo yang dibekukan tetap tidak dapat diakses untuk transaksi sampai Anda memutuskan untuk mencairkannya.", + "unconfirmed": "Saldo Belum Dikonfirmasi", + "understand": "Saya mengerti", + "unmatched_currencies": "Mata uang dompet Anda saat ini tidak cocok dengan yang ditandai QR", + "unspent_change": "Mengubah", + "unspent_coins_details_title": "Rincian koin yang tidak terpakai", + "unspent_coins_title": "Koin yang tidak terpakai", + "unsupported_asset": "Kami tidak mendukung tindakan ini untuk aset ini. Harap buat atau alihkan ke dompet dari jenis aset yang didukung.", + "upto": "hingga ${value}", + "use": "Beralih ke ", + "use_card_info_three": "Gunakan kartu digital secara online atau dengan metode pembayaran tanpa kontak.", + "use_card_info_two": "Dana dikonversi ke USD ketika disimpan dalam akun pra-bayar, bukan dalam mata uang digital.", + "use_ssl": "Gunakan SSL", + "use_suggested": "Gunakan yang Disarankan", + "variable_pair_not_supported": "Pasangan variabel ini tidak didukung dengan bursa yang dipilih", + "verification": "Verifikasi", + "verify_with_2fa": "Verifikasi dengan Cake 2FA", + "version": "Versi ${currentVersion}", + "view_all": "Lihat Semua", + "view_in_block_explorer": "Lihat di Block Explorer", + "view_key_private": "Kunci tampilan (privat)", + "view_key_public": "Kunci tampilan (publik)", + "view_transaction_on": "Lihat Transaksi di ", + "wallet_keys": "Seed/kunci dompet", + "wallet_list_create_new_wallet": "Buat Dompet Baru", + "wallet_list_edit_wallet": "Edit dompet", + "wallet_list_failed_to_load": "Gagal memuat ${wallet_name} dompet. ${error}", + "wallet_list_failed_to_remove": "Gagal menghapus ${wallet_name} dompet. ${error}", + "wallet_list_load_wallet": "Muat dompet", + "wallet_list_loading_wallet": "Memuat ${wallet_name} dompet", + "wallet_list_removing_wallet": "Menghapus ${wallet_name} dompet", + "wallet_list_restore_wallet": "Pulihkan Dompet", + "wallet_list_title": "Dompet Monero", + "wallet_list_wallet_name": "Nama dompet", + "wallet_menu": "Menu", + "wallet_name": "Nama Dompet", + "wallet_name_exists": "Nama dompet sudah ada. Silakan pilih nama yang berbeda atau ganti nama dompet yang lain terlebih dahulu.", + "wallet_restoration_store_incorrect_seed_length": "Panjang seed yang salah", + "wallet_seed": "Seed dompet", + "wallet_seed_legacy": "Biji dompet warisan", + "wallet_store_monero_wallet": "Dompet Monero", + "walletConnect": "DompetConnect", + "wallets": "Dompet", + "warning": "Peringatan", + "welcome": "Selamat datang di", + "welcome_to_cakepay": "Selamat Datang di Cake Pay!", + "widgets_address": "Alamat", + "widgets_or": "atau", + "widgets_restore_from_blockheight": "Pulihkan dari tinggi blok", + "widgets_restore_from_date": "Pulihkan dari tanggal", + "widgets_seed": "Biji", + "wouoldLikeToConnect": "ingin terhubung", + "write_down_backup_password": "Silakan menuliskan kata sandi cadangan Anda, yang digunakan untuk impor file cadangan Anda.", + "xlm_extra_info": "Jangan lupa untuk menentukan ID Memo saat mengirim transaksi XLM untuk pertukaran", + "xmr_available_balance": "Saldo Tersedia", + "xmr_full_balance": "Saldo Penuh", + "xmr_hidden": "Tersembunyi", + "xmr_to_error": "XMR.TO error", + "xmr_to_error_description": "Jumlah tidak valid. Batas maksimal 8 digit setelah koma", + "xrp_extra_info": "Jangan lupa untuk menentukan Tag Tujuan saat mengirim transaksi XRP untuk pertukaran", + "yat": "Yat", + "yat_address": "Alamat Yat", + "yat_alert_content": "Pengguna Cake Wallet sekarang dapat mengirim dan menerima semua mata uang favorit mereka dengan nama pengguna berbasis emoji yang satu-of-a-kind.", + "yat_alert_title": "Kirim dan terima crypto dengan lebih mudah dengan Yat", + "yat_error": "Kesalahan Yat", + "yat_error_content": "Tidak ada alamat yang terkait dengan Yat ini. Coba Yat lain", + "yat_popup_content": "Anda sekarang dapat mengirim dan menerima crypto di Cake Wallet dengan Yat Anda - nama pengguna berbasis emoji yang pendek. Kelola Yats kapan saja pada layar pengaturan", + "yat_popup_title": "Alamat dompet Anda dapat diubah menjadi emoji.", + "yesterday": "Kemarin", + "you_now_have_debit_card": "Anda sekarang memiliki kartu debit", + "you_pay": "Anda Membayar", + "you_will_get": "Konversi ke", + "you_will_send": "Konversi dari", + "yy": "YY", + "zzzz": "zzzz" +} \ No newline at end of file diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index a29ac5c93..729b8c9c8 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -1,779 +1,780 @@ { - "welcome": "Benvenuto", - "cake_wallet": "Cake Wallet", - "first_wallet_text": "Portafoglio fantastico per Monero, Bitcoin, Ethereum, Litecoin, e Haven", - "please_make_selection": "Gentilmente seleziona se vuoi generare o recuperare il tuo portafoglio.", - "create_new": "Genera nuovo Portafoglio", - "restore_wallet": "Recupera Portafoglio", - "monero_com": "Monero.com by Cake Wallet", - "monero_com_wallet_text": "Portafoglio fantastico per Monero", - "haven_app": "Haven by Cake Wallet", - "haven_app_wallet_text": "Portafoglio fantastico per Haven", - "accounts": "Conti", - "edit": "Modifica", + "about_cake_pay": "Cake Pay ti consente di acquistare facilmente buoni regalo con asset virtuali, spendibili istantaneamente presso oltre 150.000 commercianti negli Stati Uniti.", "account": "Conto", + "accounts": "Conti", + "accounts_subaddresses": "Accounts e sottoindirizzi", + "activate": "Attiva", + "active": "Attivo", + "active_cards": "Carte attive", + "activeConnectionsPrompt": "Le connessioni attive verranno visualizzate qui", "add": "Aggiungi", + "add_contact": "Aggiungi contatto", + "add_custom_node": "Aggiungi nuovo nodo personalizzato", + "add_custom_redemption": "Aggiungi riscatto personalizzato", + "add_fund_to_card": "Aggiungi fondi prepagati alle carte (fino a ${value})", + "add_new_node": "Aggiungi nuovo nodo", + "add_new_word": "Aggiungi nuova parola", + "add_receiver": "Aggiungi un altro ricevitore (opzionale)", + "add_secret_code": "Oppure aggiungi questo codice segreto a un'app di autenticazione", + "add_tip": "Aggiungi suggerimento", + "add_token_disclaimer_check": "Ho confermato l'indirizzo e le informazioni del contratto token utilizzando una fonte attendibile. L'aggiunta di informazioni dannose o errate può comportare una perdita di fondi.", + "add_token_warning": "Non modificare o aggiungere token come indicato dai truffatori.\nConferma sempre gli indirizzi dei token con fonti attendibili!", + "add_value": "Aggiungi valore", + "address": "Indirizzo", "address_book": "Rubrica indirizzi", - "contact": "Contatta", - "please_select": "Gentilmente seleziona:", - "cancel": "Cancella", - "ok": "OK", - "contact_name": "Nome Contatto", - "reset": "Ripristina", - "save": "Salva", + "address_book_menu": "Rubrica indirizzi", + "address_detected": "Indirizzo rilevato", + "address_from_domain": "Questo indirizzo è da ${domain} in poi Unstoppable Domains", + "address_from_yat": "Questo indirizzo è da ${emoji} in poi Yat", + "address_label": "Address label", "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": "Menù", - "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 Totale", - "send": "Invia", - "receive": "Ricevi", - "transactions": "Transazioni", - "incoming": "In arrivo", - "outgoing": "In uscita", - "transactions_by_date": "Transazioni per data", - "trades": "Scambi", - "filter_by": "Filtrirati po", - "today": "Oggi", - "yesterday": "Ieri", - "received": "Ricevuto", - "sent": "Inviato", - "pending": " (non confermati)", - "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'ammontare da ricevere è fisso", - "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 Valuta", - "overwrite_amount": "Sovrascrivi quantità", - "qr_payment_amount": "Questo codice QR contiene l'ammontare del pagamento. Vuoi sovrascrivere il varlore attuale?", - "copy_id": "Copia ID", - "exchange_result_write_down_trade_id": "Per favore 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_to_get_address": "Scansiona il codice QR per ottenere l'indirizzo", - "qr_fullscreen": "Tocca per aprire il codice QR a schermo intero", - "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à utile in caso perdessi o ripristinassi il tuo telefono", - "seed_title": "Seme", - "seed_share": "Condividi seme", - "copy": "Copia", - "seed_language": "Linguaggio di semi", - "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", - "seed_language_french": "Francese", - "seed_language_italian": "Italiano", - "send_title": "Invia", - "send_your_wallet": "Il tuo portafoglio", - "send_address": "${cryptoCurrency} indirizzo", - "send_payment_id": "ID Pagamento (opzionale)", + "advanced_settings": "Impostazioni avanzate", + "aggressive": "Fervente", + "agree": "d'accordo", + "agree_and_continue": "Accetta e continua", + "agree_to": "Creando un account accetti il ​​", "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", - "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": "Mostra saldo", - "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", - "address_label": "Address label", - "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": "Indirizzi dei destinatari", - "wallet_list_title": "Portafoglio Monero", - "wallet_list_create_new_wallet": "Crea Nuovo Portafoglio", - "wallet_list_edit_wallet": "Modifica portafoglio", - "wallet_list_wallet_name": "Nome del 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 del conto 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_node_proxy_address": "Inserisci :, ad esempio 127.0.0.1:9050", - "error_text_payment_id": "L'ID del pagamento può contenere solo da 16 a 64 caratteri in esadecimale", - "error_text_xmr": "Il valore in 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, _ - simboli\ne deve avere una lunghezza compresa tra 1 e 33 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", + "all_trades": "Svi obrti", + "all_transactions": "Sve transakcije", + "alphabetical": "Alfabetico", + "already_have_account": "Hai già un account?", + "always": "sempre", + "amount": "Ammontare: ", + "amount_is_estimate": "L'ammontare da ricevere è una stima", + "amount_is_guaranteed": "L'ammontare da ricevere è fisso", + "and": "e", + "anonpay_description": "Genera ${type}. Il destinatario può ${method} con qualsiasi criptovaluta supportata e riceverai fondi in questo portafoglio.", + "apk_update": "Aggiornamento APK", + "approve": "Approvare", + "arrive_in_this_address": "${currency} ${tag}arriverà a questo indirizzo", + "ascending": "Ascendente", + "ask_each_time": "Chiedi ogni volta", "auth_store_ban_timeout": "ban_timeout", "auth_store_banned_for": "Bloccato 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", - "sync_status_attempting_sync": "TENTATIVO DI SINCRONIZZAZIONE", - "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": "Cambiare 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}", - "extracted_address_content": "Invierai i tuoi fondi a\n${recipient_name}", - "card_address": "Indirizzo:", - "buy": "Comprare", - "sell": "Vendere", - "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?", - "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", - "trusted": "di fiducia", - "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)", - "view_in_block_explorer": "View in Block Explorer", - "view_transaction_on": "View Transaction on ", - "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": "Importare", - "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": "Saldo confermato", - "unconfirmed": "Saldo non confermato", - "displayable": "Visualizzabile", - "submit_request": "invia una richiesta", - "buy_alert_content": "Attualmente supportiamo solo l'acquisto di Bitcoin, Ethereum, Litecoin e Monero. Crea o passa al tuo portafoglio Bitcoin, Ethereum, Litecoin o Monero.", - "sell_alert_content": "Al momento supportiamo solo la vendita di Bitcoin, Ethereum e Litecoin. Crea o passa al tuo portafoglio Bitcoin, Ethereum o Litecoin.", - "outdated_electrum_wallet_description": "I nuovi portafogli Bitcoin creati in Cake ora hanno un seme di 24 parole. È obbligatorio creare un nuovo portafoglio Bitcoin e trasferire tutti i fondi nel nuovo portafoglio di 24 parole e smettere di usare portafogli con un seme di 12 parole. Ti preghiamo di farlo immediatamente per proteggere i tuoi fondi.", - "understand": "Capisco", - "apk_update": "Aggiornamento APK", - "buy_bitcoin": "Acquista Bitcoin", - "buy_with": "Acquista con", - "moonpay_alert_text": "Il valore dell'importo deve essere maggiore o uguale a ${minAmount} ${fiatCurrency}", - "outdated_electrum_wallet_receive_warning": "Se questo portafoglio ha un seme di 12 parole ed è stato creato in Cake, NON depositare Bitcoin in questo portafoglio. Qualsiasi BTC trasferito su questo portafoglio potrebbe andare perso. Crea un nuovo portafoglio di 24 parole (tocca il menu in alto a destra, seleziona Portafogli, scegli Crea nuovo portafoglio, quindi seleziona Bitcoin) e sposta IMMEDIATAMENTE lì il tuo BTC. I nuovi portafogli BTC (24 parole) di Cake sono sicuri", - "do_not_show_me": "Non mostrarmelo di nuovo", - "unspent_coins_title": "Monete non spese", - "unspent_coins_details_title": "Dettagli sulle monete non spese", - "freeze": "Congelare", - "frozen": "Congelato", - "coin_control": "Controllo monete (opzionale)", - "address_detected": "Indirizzo rilevato", - "address_from_domain": "Questo indirizzo è da ${domain} in poi Unstoppable Domains", - "add_receiver": "Aggiungi un altro ricevitore (opzionale)", - "manage_yats": "Gestisci gli Yat", - "yat_alert_title": "Invia e ricevi criptovalute più facilmente con Yat", - "yat_alert_content": "Gli utenti di Cake Wallet possono ora inviare e ricevere tutte le loro valute preferite con un nome utente unico basato su emoji.", - "get_your_yat": "Ottieni il tuo Yat", - "connect_an_existing_yat": "Collegare un Yat esistente", - "yat_address": "Indirizzo Yat", - "yat": "Yat", - "connect_yats": "Connetti Yats", - "address_from_yat": "Questo indirizzo è da ${emoji} in poi Yat", - "yat_error": "Yat errore", - "yat_error_content": "Nessun indirizzo collegato a questo Yat. Prova un altro Yat", - "choose_address": "\n\nSi prega di scegliere l'indirizzo:", - "yat_popup_title": "L'indirizzo del tuo portafoglio può essere emoji.", - "yat_popup_content": "Ora puoi inviare e ricevere criptovalute in Cake Wallet con il tuo Yat, un breve nome utente basato su emoji. Gestisci Yats in qualsiasi momento nella schermata delle impostazioni", - "second_intro_title": "Un indirizzo emoji per domarli tutti", - "second_intro_content": "Il tuo Yat è un unico indirizzo emoji univoco che sostituisce i lunghi indirizzi per tutte le tue valute.", - "third_intro_title": "Yat gioca bene con gli altri", - "third_intro_content": "Yat può funzionare anche fuori da Cake Wallet. Qualsiasi indirizzo di portafoglio sulla terra può essere sostituito con uno Yat!", - "learn_more": "Impara di più", - "search": "Ricerca", - "search_language": "Cerca lingua", - "search_currency": "Cerca valuta", - "new_template": "Nuovo modello", - "electrum_address_disclaimer": "Generiamo nuovi indirizzi ogni volta che ne utilizzi uno, ma gli indirizzi precedenti continuano a funzionare", - "wallet_name_exists": "Il portafoglio con quel nome è già esistito", - "market_place": "Mercato", - "cake_pay_title": "Carte regalo Cake Pay", - "cake_pay_subtitle": "Acquista buoni regalo scontati (solo USA)", - "cake_pay_web_cards_title": "Carte Web Cake Pay", - "cake_pay_web_cards_subtitle": "Acquista carte prepagate e carte regalo in tutto il mondo", - "about_cake_pay": "Cake Pay ti consente di acquistare facilmente buoni regalo con asset virtuali, spendibili istantaneamente presso oltre 150.000 commercianti negli Stati Uniti.", - "cake_pay_account_note": "Iscriviti con solo un indirizzo email per vedere e acquistare le carte. Alcune sono anche disponibili con uno sconto!", - "already_have_account": "Hai già un account?", - "create_account": "Crea account", - "privacy_policy": "Informativa sulla privacy", - "welcome_to_cakepay": "Benvenuto in Cake Pay!", - "sign_up": "Registrati", - "forgot_password": "Password dimenticata", - "reset_password": "Reimposta password", - "gift_cards": "Carte regalo", - "setup_your_debit_card": "Configura la tua carta di debito", - "no_id_required": "Nessun ID richiesto. Ricarica e spendi ovunque", - "how_to_use_card": "Come usare questa carta", - "purchase_gift_card": "Acquista carta regalo", - "verification": "Verifica", - "fill_code": "Compila il codice di verifica fornito alla tua email", - "didnt_get_code": "Non ricevi il codice?", - "resend_code": "Per favore, invialo nuovamente", - "debit_card": "Carta di debito", - "cakepay_prepaid_card": "Carta di debito prepagata CakePay", - "no_id_needed": "Nessun ID necessario!", - "frequently_asked_questions": "Domande frequenti", - "debit_card_terms": "L'archiviazione e l'utilizzo del numero della carta di pagamento (e delle credenziali corrispondenti al numero della carta di pagamento) in questo portafoglio digitale sono soggetti ai Termini e condizioni del contratto applicabile con il titolare della carta con l'emittente della carta di pagamento, come in vigore da tempo al tempo.", - "please_reference_document": "Si prega di fare riferimento ai documenti di seguito per ulteriori informazioni.", - "cardholder_agreement": "Contratto del titolare della carta", - "e_sign_consent": "Consenso alla firma elettronica", - "agree_and_continue": "Accetta e continua", - "email_address": "Indirizzo e-mail", - "agree_to": "Creando un account accetti il ​​", - "and": "e", - "enter_code": "Inserisci codice", - "congratulation": "Congratulazioni!", - "you_now_have_debit_card": "Ora hai una carta di debito", - "min_amount": "Min: ${value}", - "max_amount": "Max: ${value}", - "enter_amount": "Inserisci importo", - "billing_address_info": "Se ti viene richiesto un indirizzo di fatturazione, fornisci il tuo indirizzo di spedizione", - "order_physical_card": "Ordine carta fisica", - "add_value": "Aggiungi valore", - "activate": "Attiva", - "get_a": "Prendi un ", - "digital_and_physical_card": "carta di debito prepagata digitale e fisica", - "get_card_note": "che puoi ricaricare con le valute digitali. Non sono necessarie informazioni aggiuntive!", - "signup_for_card_accept_terms": "Registrati per la carta e accetta i termini.", - "add_fund_to_card": "Aggiungi fondi prepagati alle carte (fino a ${value})", - "use_card_info_two": "I fondi vengono convertiti in USD quando sono detenuti nel conto prepagato, non in valute digitali.", - "use_card_info_three": "Utilizza la carta digitale online o con metodi di pagamento contactless.", - "optional_order_card": "Ordina facoltativamente una carta fisica.", - "hide_details": "Nascondi dettagli", - "show_details": "Mostra dettagli", - "upto": "fino a ${value}", - "discount": "Risparmia ${value}%", - "gift_card_amount": "Importo del buono regalo", - "bill_amount": "Importo della fattura", - "you_pay": "Tu paghi", - "tip": "Suggerimento:", - "custom": "personalizzato", - "by_cake_pay": "da Cake Pay", - "expires": "Scade", - "mm": "mm", - "yy": "YY", - "online": "in linea", - "offline": "Offline", - "gift_card_number": "Numero del buono regalo", - "pin_number": "Numero PIN", - "total_saving": "Risparmio totale", - "last_30_days": "Ultimi 30 giorni", - "avg_savings": "Risparmio medio", - "view_all": "Visualizza tutto", - "active_cards": "Carte attive", - "delete_account": "Elimina account", - "cards": "Carte", - "active": "Attivo", - "redeemed": "Redento", - "gift_card_balance_note": "Le carte regalo con un saldo residuo appariranno qui", - "gift_card_redeemed_note": "Le carte regalo che hai riscattato appariranno qui", - "logout": "Logout", - "add_tip": "Aggiungi suggerimento", - "percentageOf": "di ${amount}", - "is_percentage": "è", - "search_category": "Categoria di ricerca", - "mark_as_redeemed": "Segna come riscattato", - "more_options": "Altre opzioni", - "waiting_payment_confirmation": "In attesa di conferma del pagamento", - "transaction_sent_notice": "Se lo schermo non procede dopo 1 minuto, controlla un block explorer e la tua email.", - "agree": "d'accordo", - "in_store": "In negozio", - "generating_gift_card": "Generazione carta regalo", - "payment_was_received": "Il tuo pagamento è stato ricevuto.", - "proceed_after_one_minute": "Se lo schermo non procede dopo 1 minuto, controlla la tua email.", - "order_id": "ID ordine", - "gift_card_is_generated": "Il buono regalo è stato generato", - "open_gift_card": "Apri carta regalo", - "contact_support": "Contatta l'assistenza", - "gift_cards_unavailable": "Le carte regalo sono disponibili per l'acquisto solo tramite Monero, Bitcoin e Litecoin in questo momento", - "background_sync_mode": "Modalità di sincronizzazione in background", - "sync_all_wallets": "Sincronizza tutti i portafogli", - "introducing_cake_pay": "Presentazione di Cake Pay!", - "cake_pay_learn_more": "Acquista e riscatta istantaneamente carte regalo nell'app!\nScorri da sinistra a destra per saperne di più.", - "automatic": "Automatico", - "fixed_pair_not_supported": "Questa coppia fissa non è supportata con gli scambi selezionati", - "variable_pair_not_supported": "Questa coppia di variabili non è supportata con gli scambi selezionati", - "none_of_selected_providers_can_exchange": "Nessuno dei fornitori selezionati può effettuare questo scambio", - "choose_one": "Scegline uno", - "choose_from_available_options": "Scegli tra le opzioni disponibili:", - "custom_redeem_amount": "Importo di riscatto personalizzato", - "add_custom_redemption": "Aggiungi riscatto personalizzato", - "remaining": "rimanente", - "delete_wallet": "Elimina portafoglio", - "delete_wallet_confirm_message": "Sei sicuro di voler eliminare il portafoglio ${wallet_name}?", - "low_fee": "Tariffa bassa", - "low_fee_alert": "Attualmente stai utilizzando una priorità a tariffa di rete bassa. Ciò potrebbe causare lunghe attese, tariffe diverse o operazioni annullate. Ti consigliamo di impostare una tariffa più alta per un'esperienza migliore.", - "ignor": "Ignorare", - "use_suggested": "Usa suggerito", - "do_not_share_warning_text": "Non condividerli con nessun altro, incluso il supporto.\n\nI tuoi fondi possono e saranno rubati!", - "help": "aiuto", - "all_transactions": "Sve transakcije", - "all_trades": "Svi obrti", - "connection_sync": "Connessione e sincronizzazione", - "security_and_backup": "Sicurezza e backup", - "create_backup": "Crea backup", - "privacy_settings": "Impostazioni privacy", - "privacy": "Privacy", - "display_settings": "Impostazioni di visualizzazione", - "other_settings": "Altre impostazioni", - "require_pin_after": "Richiedi PIN dopo", - "always": "sempre", - "minutes_to_pin_code": "${minute} minuti", - "disable_exchange": "Disabilita scambio", - "advanced_settings": "Impostazioni avanzate", - "settings_can_be_changed_later": "Queste impostazioni possono essere modificate in seguito nelle impostazioni dell'app", - "add_custom_node": "Aggiungi nuovo nodo personalizzato", - "disable_fiat": "Disabilita fiat", - "fiat_api": "Fiat API", - "disabled": "Disabilitato", - "enabled": "Abilitato", - "tor_only": "Solo Tor", - "unmatched_currencies": "La valuta del tuo portafoglio attuale non corrisponde a quella del QR scansionato", - "orbot_running_alert": "Assicurati che Orbot sia in esecuzione prima di connetterti a questo nodo.", - "contact_list_contacts": "Contatti", - "contact_list_wallets": "I miei portafogli", - "bitcoin_payments_require_1_confirmation": "I pagamenti in bitcoin richiedono 1 conferma, che può richiedere 20 minuti o più. Grazie per la vostra pazienza! Riceverai un'e-mail quando il pagamento sarà confermato.", - "send_to_this_address": "Invia ${currency} ${tag}a questo indirizzo", - "arrive_in_this_address": "${currency} ${tag}arriverà a questo indirizzo", - "do_not_send": "Non inviare", - "error_dialog_content": "Spiacenti, abbiamo riscontrato un errore.\n\nSi prega di inviare il rapporto sull'arresto anomalo al nostro team di supporto per migliorare l'applicazione.", - "scan_qr_code": "Scansiona il codice QR", - "cold_or_recover_wallet": "Aggiungi un cold wallet o recupera un paper wallet", - "please_wait": "Attendere prego", - "sweeping_wallet": "Portafoglio ampio", - "sweeping_wallet_alert": "Questo non dovrebbe richiedere molto tempo. NON LASCIARE QUESTA SCHERMATA O I FONDI SPAZZATI POTREBBERO ANDARE PERSI", - "decimal_places_error": "Troppe cifre decimali", - "edit_node": "Modifica nodo", - "invoice_details": "Dettagli della fattura", - "donation_link_details": "Dettagli del collegamento alla donazione", - "anonpay_description": "Genera ${type}. Il destinatario può ${method} con qualsiasi criptovaluta supportata e riceverai fondi in questo portafoglio.", - "create_invoice": "Crea fattura", - "create_donation_link": "Crea un link per la donazione", - "optional_email_hint": "Email di notifica del beneficiario facoltativa", - "optional_description": "Descrizione facoltativa", - "optional_name": "Nome del destinatario facoltativo", - "clearnet_link": "Collegamento Clearnet", - "onion_link": "Collegamento a cipolla", - "settings": "Impostazioni", - "sell_monero_com_alert_content": "La vendita di Monero non è ancora supportata", - "error_text_input_below_minimum_limit": "L'ammontare è inferiore al minimo", - "error_text_input_above_maximum_limit": "L'ammontare è superiore al massimo", - "show_market_place": "Mostra mercato", - "prevent_screenshots": "Impedisci screenshot e registrazione dello schermo", - "profile": "Profilo", - "close": "Chiudere", - "modify_2fa": "Modifica Torta 2FA", - "disable_cake_2fa": "Disabilita Cake 2FA", - "question_to_disable_2fa": "Sei sicuro di voler disabilitare Cake 2FA? Non sarà più necessario un codice 2FA per accedere al portafoglio e ad alcune funzioni.", - "disable": "disattivare", - "setup_2fa": "Imposta la torta 2FA", - "verify_with_2fa": "Verifica con Cake 2FA", - "totp_code": "Codice TOTP", - "please_fill_totp": "Inserisci il codice di 8 cifre presente sull'altro tuo dispositivo", - "totp_2fa_success": "Successo! Cake 2FA abilitato per questo portafoglio. Ricordati di salvare il tuo seme mnemonico nel caso in cui perdi l'accesso al portafoglio.", - "totp_verification_success": "Verifica riuscita!", - "totp_2fa_failure": "Codice non corretto. Prova un codice diverso o genera una nuova chiave segreta. Utilizza un'app 2FA compatibile che supporti codici a 8 cifre e SHA512.", - "enter_totp_code": "Inserisci il codice TOTP.", - "add_secret_code": "Oppure aggiungi questo codice segreto a un'app di autenticazione", - "totp_secret_code": "TOTP codice segreto", - "setup_2fa_text": "Cake 2FA funziona utilizzando TOTP come secondo fattore di autenticazione.\n\nIl TOTP di Cake 2FA richiede il supporto SHA-512 e 8 cifre; ciò fornisce una maggiore sicurezza. Maggiori informazioni e app supportate sono disponibili nella guida.", - "setup_totp_recommended": "Imposta TOTP", - "disable_buy": "Disabilita l'azione di acquisto", - "disable_sell": "Disabilita l'azione di vendita", + "authenticated": "Autenticato", + "authentication": "Autenticazione", "auto_generate_subaddresses": "Genera automaticamente sottindirizzi", - "cake_2fa_preset": "Torta 2FA Preset", - "narrow": "Stretto", - "normal": "Normale", - "aggressive": "Fervente", - "require_for_assessing_wallet": "Richiesto per l'accesso al portafoglio", - "require_for_sends_to_non_contacts": "Richiesto per invii a non contatti", - "require_for_sends_to_contacts": "Richiedi per gli invii ai contatti", - "require_for_sends_to_internal_wallets": "Richiesto per invii a portafogli interni", - "require_for_exchanges_to_internal_wallets": "Richiedi per gli scambi ai portafogli interni", - "require_for_adding_contacts": "Richiesto per l'aggiunta di contatti", - "require_for_creating_new_wallets": "Richiesto per la creazione di nuovi portafogli", - "require_for_all_security_and_backup_settings": "Richiedi per tutte le impostazioni di sicurezza e backup", + "automatic": "Automatico", + "available_balance": "Saldo Disponibile", "available_balance_description": "Il saldo disponibile è il saldo totale meno i fondi congelati. I fondi congelati sono fondi che sono stati inviati ma non sono ancora stati confermati.", - "syncing_wallet_alert_title": "Il tuo portafoglio si sta sincronizzando", - "syncing_wallet_alert_content": "Il saldo e l'elenco delle transazioni potrebbero non essere completi fino a quando non viene visualizzato \"SYNCHRONIZED\" in alto. Clicca/tocca per saperne di più.", - "home_screen_settings": "Impostazioni della schermata iniziale", - "sort_by": "Ordina per", - "search_add_token": "Cerca / Aggiungi token", - "edit_token": "Modifica token", - "warning": "Avvertimento", - "add_token_warning": "Non modificare o aggiungere token come indicato dai truffatori.\nConferma sempre gli indirizzi dei token con fonti attendibili!", - "add_token_disclaimer_check": "Ho confermato l'indirizzo e le informazioni del contratto token utilizzando una fonte attendibile. L'aggiunta di informazioni dannose o errate può comportare una perdita di fondi.", - "token_contract_address": "Indirizzo del contratto token", - "token_name": "Nome del token, ad esempio: Tether", - "token_symbol": "Simbolo del token, ad esempio: USDT", - "token_decimal": "Decimale del token", - "field_required": "Questo campo è obbligatorio", - "pin_at_top": "fissa ${token} in alto", - "invalid_input": "Inserimento non valido", - "fiat_balance": "Equilibrio fiat", - "gross_balance": "Saldo lordo", - "alphabetical": "Alfabetico", - "generate_name": "Genera nome", + "avg_savings": "Risparmio medio", + "awaitDAppProcessing": "Attendi gentilmente che la dApp termini l'elaborazione.", + "background_sync_mode": "Modalità di sincronizzazione in background", + "backup": "Backup", + "backup_file": "Backup file", + "backup_password": "Backup password", "balance_page": "Pagina di equilibrio", - "share": "Condividere", - "slidable": "Scorrevole", - "monero_dark_theme": "Tema scuro di Monero", + "bill_amount": "Importo della fattura", + "billing_address_info": "Se ti viene richiesto un indirizzo di fatturazione, fornisci il tuo indirizzo di spedizione", + "biometric_auth_reason": "Scansiona la tua impronta per autenticarti", "bitcoin_dark_theme": "Tema oscuro di Bitcoin", "bitcoin_light_theme": "Tema luce Bitcoin", - "high_contrast_theme": "Tema ad alto contrasto", - "matrix_green_dark_theme": "Tema Matrix verde scuro", - "monero_light_theme": "Tema leggero Monero", - "manage_nodes": "Gestisci i nodi", - "etherscan_history": "Storia Etherscan", - "template_name": "Nome modello", + "bitcoin_payments_require_1_confirmation": "I pagamenti in bitcoin richiedono 1 conferma, che può richiedere 20 minuti o più. Grazie per la vostra pazienza! Riceverai un'e-mail quando il pagamento sarà confermato.", + "Blocks_remaining": "${status} Blocchi Rimanenti", + "bright_theme": "Colorato", + "buy": "Comprare", + "buy_alert_content": "Attualmente supportiamo solo l'acquisto di Bitcoin, Ethereum, Litecoin e Monero. Crea o passa al tuo portafoglio Bitcoin, Ethereum, Litecoin o Monero.", + "buy_bitcoin": "Acquista Bitcoin", + "buy_provider_unavailable": "Provider attualmente non disponibile.", + "buy_with": "Acquista con", + "by_cake_pay": "da Cake Pay", + "cake_2fa_preset": "Torta 2FA Preset", + "cake_pay_account_note": "Iscriviti con solo un indirizzo email per vedere e acquistare le carte. Alcune sono anche disponibili con uno sconto!", + "cake_pay_learn_more": "Acquista e riscatta istantaneamente carte regalo nell'app!\nScorri da sinistra a destra per saperne di più.", + "cake_pay_subtitle": "Acquista buoni regalo scontati (solo USA)", + "cake_pay_title": "Carte regalo Cake Pay", + "cake_pay_web_cards_subtitle": "Acquista carte prepagate e carte regalo in tutto il mondo", + "cake_pay_web_cards_title": "Carte Web Cake Pay", + "cake_wallet": "Cake Wallet", + "cakepay_prepaid_card": "Carta di debito prepagata CakePay", + "camera_consent": "La tua fotocamera verrà utilizzata per acquisire un'immagine a scopo identificativo da ${provider}. Si prega di controllare la loro Informativa sulla privacy per i dettagli.", + "camera_permission_is_required": "È richiesta l'autorizzazione della fotocamera.\nAbilitalo dalle impostazioni dell'app.", + "cancel": "Cancella", + "card_address": "Indirizzo:", + "cardholder_agreement": "Contratto del titolare della carta", + "cards": "Carte", + "chains": "Catene", + "change": "Cambia", + "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?", + "change_currency": "Cambia Valuta", + "change_current_node": "Sei sicuro di voler cambiare il nodo corrente con ${node}?", + "change_current_node_title": "Cambia nodo corrente", + "change_exchange_provider": "Cambia Exchange", + "change_language": "Cambia lingua", + "change_language_to": "Cambiare lingua in ${language}?", + "change_password": "Cambia password", "change_rep": "Cambia rappresentante", "change_rep_message": "Sei sicuro di voler cambiare rappresentante?", - "unsupported_asset": "Non supportiamo questa azione per questa risorsa. Crea o passa a un portafoglio di un tipo di asset supportato.", - "manage_pow_nodes": "Gestisci i nodi PoW", - "support_title_live_chat": "Supporto dal vivo", - "support_description_live_chat": "Gratuito e veloce! I rappresentanti di supporto qualificati sono disponibili per assistere", - "support_title_guides": "Guide del portafoglio per torte", - "support_description_guides": "Documentazione e supporto per problemi comuni", - "support_title_other_links": "Altri collegamenti di supporto", - "support_description_other_links": "Unisciti alle nostre comunità o raggiungici i nostri partner attraverso altri metodi", + "change_rep_successful": "Rappresentante modificato con successo", + "change_wallet_alert_content": "Sei sicuro di voler cambiare il portafoglio attuale con ${wallet_name}?", + "change_wallet_alert_title": "Cambia portafoglio attuale", + "choose_account": "Scegli account", + "choose_address": "\n\nSi prega di scegliere l'indirizzo:", "choose_derivation": "Scegli la derivazione del portafoglio", - "new_first_wallet_text": "Mantieni facilmente la tua criptovaluta al sicuro", - "select_destination": "Seleziona la destinazione per il file di backup.", - "save_to_downloads": "Salva in Download", - "select_buy_provider_notice": "Seleziona un fornitore di acquisto sopra. È possibile saltare questa schermata impostando il provider di acquisto predefinito nelle impostazioni dell'app.", - "onramper_option_description": "Acquista rapidamente la criptovaluta con molti metodi di pagamento. Disponibile nella maggior parte dei paesi. Gli spread e le commissioni variano.", + "choose_from_available_options": "Scegli tra le opzioni disponibili:", + "choose_one": "Scegline uno", + "choose_relay": "Scegli un relè da utilizzare", + "choose_wallet_currency": "Gentilmente scegli la moneta del portafoglio:", + "clear": "Pulisci", + "clearnet_link": "Collegamento Clearnet", + "close": "Chiudere", + "coin_control": "Controllo monete (opzionale)", + "cold_or_recover_wallet": "Aggiungi un cold wallet o recupera un paper wallet", + "color_theme": "Colore tema", + "commit_transaction_amount_fee": "Invia transazione\nAmmontare: ${amount}\nCommissione: ${fee}", + "confirm": "Conferma", + "confirm_delete_template": "Questa azione cancellerà questo modello. Desideri continuare?", + "confirm_delete_wallet": "Questa azione cancellerà questo portafoglio. Desideri continuare?", + "confirm_sending": "Conferma l'invio", + "confirmations": "Conferme", + "confirmed": "Saldo confermato", + "confirmed_tx": "Confermato", + "congratulation": "Congratulazioni!", + "connect_an_existing_yat": "Collegare un Yat esistente", + "connect_yats": "Connetti Yats", + "connection_sync": "Connessione e sincronizzazione", + "connectWalletPrompt": "Collega il tuo portafoglio con WalletConnect per effettuare transazioni", + "contact": "Contatta", + "contact_list_contacts": "Contatti", + "contact_list_wallets": "I miei portafogli", + "contact_name": "Nome Contatto", + "contact_support": "Contatta l'assistenza", + "continue_text": "Continua", + "contractName": "Nome del contratto", + "contractSymbol": "Simbolo del contratto", + "copied_key_to_clipboard": " ${key} copiata negli Appunti", + "copied_to_clipboard": "Copiato negli Appunti", + "copy": "Copia", + "copy_address": "Copia Indirizzo", + "copy_id": "Copia ID", + "copyWalletConnectLink": "Copia il collegamento WalletConnect dalla dApp e incollalo qui", + "create_account": "Crea account", + "create_backup": "Crea backup", + "create_donation_link": "Crea un link per la donazione", + "create_invoice": "Crea fattura", + "create_new": "Genera nuovo Portafoglio", + "create_new_account": "Crea nuovo account", + "creating_new_wallet": "Creazione nuovo portafoglio", + "creating_new_wallet_error": "Errore: ${description}", + "creation_date": "Data di creazione", + "custom": "personalizzato", + "custom_drag": "Custom (Hold and Drag)", + "custom_redeem_amount": "Importo di riscatto personalizzato", + "dark_theme": "Scuro", + "debit_card": "Carta di debito", + "debit_card_terms": "L'archiviazione e l'utilizzo del numero della carta di pagamento (e delle credenziali corrispondenti al numero della carta di pagamento) in questo portafoglio digitale sono soggetti ai Termini e condizioni del contratto applicabile con il titolare della carta con l'emittente della carta di pagamento, come in vigore da tempo al tempo.", + "decimal_places_error": "Troppe cifre decimali", "default_buy_provider": "Provider di acquisto predefinito", - "ask_each_time": "Chiedi ogni volta", - "buy_provider_unavailable": "Provider attualmente non disponibile.", - "signTransaction": "Firma la transazione", + "default_sell_provider": "Fornitore di vendita predefinito", + "delete": "Elimina", + "delete_account": "Elimina account", + "delete_wallet": "Elimina portafoglio", + "delete_wallet_confirm_message": "Sei sicuro di voler eliminare il portafoglio ${wallet_name}?", + "deleteConnectionConfirmationPrompt": "Sei sicuro di voler eliminare la connessione a", + "descending": "Discendente", + "description": "Descrizione", + "destination_tag": "Tag destinazione:", + "dfx_option_description": "Acquista criptovalute con EUR e CHF. Fino a 990€ senza KYC aggiuntivi. Per clienti al dettaglio e aziendali in Europa", + "didnt_get_code": "Non ricevi il codice?", + "digit_pin": "-cifre PIN", + "digital_and_physical_card": "carta di debito prepagata digitale e fisica", + "disable": "disattivare", + "disable_buy": "Disabilita l'azione di acquisto", + "disable_cake_2fa": "Disabilita Cake 2FA", + "disable_exchange": "Disabilita scambio", + "disable_fiat": "Disabilita fiat", + "disable_sell": "Disabilita l'azione di vendita", + "disabled": "Disabilitato", + "discount": "Risparmia ${value}%", + "display_settings": "Impostazioni di visualizzazione", + "displayable": "Visualizzabile", + "do_not_have_enough_gas_asset": "Non hai abbastanza ${currency} per effettuare una transazione con le attuali condizioni della rete blockchain. Hai bisogno di più ${currency} per pagare le commissioni della rete blockchain, anche se stai inviando una risorsa diversa.", + "do_not_send": "Non inviare", + "do_not_share_warning_text": "Non condividerli con nessun altro, incluso il supporto.\n\nI tuoi fondi possono e saranno rubati!", + "do_not_show_me": "Non mostrarmelo di nuovo", + "domain_looks_up": "Ricerche di domini", + "donation_link_details": "Dettagli del collegamento alla donazione", + "e_sign_consent": "Consenso alla firma elettronica", + "edit": "Modifica", + "edit_backup_password": "Modifica Password Backup", + "edit_node": "Modifica nodo", + "edit_token": "Modifica token", + "electrum_address_disclaimer": "Generiamo nuovi indirizzi ogni volta che ne utilizzi uno, ma gli indirizzi precedenti continuano a funzionare", + "email_address": "Indirizzo e-mail", + "enabled": "Abilitato", + "enter_amount": "Inserisci importo", + "enter_backup_password": "Inserisci la password di backup qui", + "enter_code": "Inserisci codice", + "enter_seed_phrase": "Inserisci la tua frase di semi", + "enter_totp_code": "Inserisci il codice TOTP.", + "enter_your_note": "Inserisci la tua nota…", + "enter_your_pin": "Inserisci il tuo PIN", + "enter_your_pin_again": "Inserisci il tuo pin di nuovo", + "enterTokenID": "Inserisci l'ID del token", + "enterWalletConnectURI": "Inserisci l'URI di WalletConnect", + "error": "Errore", + "error_dialog_content": "Spiacenti, abbiamo riscontrato un errore.\n\nSi prega di inviare il rapporto sull'arresto anomalo al nostro team di supporto per migliorare l'applicazione.", + "error_text_account_name": "Il nome del conto può contenere solo lettere, numeri\ne deve avere una lunghezza compresa tra 1 e 15 caratteri", + "error_text_address": "L'indirizzo del Portafoglio deve corrispondere alla tipologia\ndi criptovaluta", + "error_text_amount": "L'ammontare può contenere solo numeri", + "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_crypto_currency": "Il numero delle cifre decimali\ndeve 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_input_above_maximum_limit": "L'ammontare è superiore al massimo", + "error_text_input_below_minimum_limit": "L'ammontare è inferiore al minimo", + "error_text_keys": "Le chiavi del portafoglio possono contenere solo 64 caratteri in hex", + "error_text_limits_loading_failed": "Lo scambio per ${provider} non è stato creato. Caricamento dei limiti fallito", + "error_text_maximum_limit": "Lo scambio per ${provider} non è stato creato. L'ammontare è superiore al massimo: ${max} ${currency}", + "error_text_minimal_limit": "Lo scambio per ${provider} non è stato creato. L'ammontare è inferiore al minimo: ${min} ${currency}", + "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_node_proxy_address": "Inserisci :, ad esempio 127.0.0.1:9050", + "error_text_payment_id": "L'ID del pagamento può contenere solo da 16 a 64 caratteri in esadecimale", + "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_template": "Il nome del modello e l'indirizzo non possono contenere i simboli ` , ' \" \ne devono avere una lunghezza compresa tra 1 e 106 caratteri", + "error_text_wallet_name": "Il nome del portafoglio può contenere solo lettere, numeri, _ - simboli\ne deve avere una lunghezza compresa tra 1 e 33 caratteri", + "error_text_xmr": "Il valore in XMR non può eccedere il saldo disponibile.\nIl numero delle cifre decimali deve essere inferiore o uguale a 12", "errorGettingCredentials": "Non riuscito: errore durante il recupero delle credenziali", "errorSigningTransaction": "Si è verificato un errore durante la firma della transazione", - "pairingInvalidEvent": "Associazione evento non valido", - "chains": "Catene", - "methods": "Metodi", - "events": "Eventi", - "reject": "Rifiutare", - "approve": "Approvare", - "expiresOn": "Scade il", - "walletConnect": "PortafoglioConnetti", - "nullURIError": "L'URI è nullo", - "connectWalletPrompt": "Collega il tuo portafoglio con WalletConnect per effettuare transazioni", - "newConnection": "Nuova connessione", - "activeConnectionsPrompt": "Le connessioni attive verranno visualizzate qui", - "deleteConnectionConfirmationPrompt": "Sei sicuro di voler eliminare la connessione a", + "estimated": "Stimato", + "etherscan_history": "Storia Etherscan", "event": "Evento", - "successful": "Riuscito", - "wouoldLikeToConnect": "vorrei connettermi", - "message": "Messaggio", - "do_not_have_enough_gas_asset": "Non hai abbastanza ${currency} per effettuare una transazione con le attuali condizioni della rete blockchain. Hai bisogno di più ${currency} per pagare le commissioni della rete blockchain, anche se stai inviando una risorsa diversa.", - "totp_auth_url": "URL DI AUT. TOTP", - "awaitDAppProcessing": "Attendi gentilmente che la dApp termini l'elaborazione.", - "copyWalletConnectLink": "Copia il collegamento WalletConnect dalla dApp e incollalo qui", - "enterWalletConnectURI": "Inserisci l'URI di WalletConnect", - "seed_key": "Chiave di semi", - "enter_seed_phrase": "Inserisci la tua frase di semi", - "change_rep_successful": "Rappresentante modificato con successo", - "add_contact": "Aggiungi contatto", + "events": "Eventi", + "exchange": "Scambia", + "exchange_incorrect_current_wallet_for_xmr": "Se vuoi scambiare XMR dal tuo saldo Cake Wallet Monero, gentilmente passa al tuo portafoglio Monero.", + "exchange_new_template": "Nuovo modello", "exchange_provider_unsupported": "${providerName} non è più supportato!", - "domain_looks_up": "Ricerche di domini", - "require_for_exchanges_to_external_wallets": "Richiede scambi con portafogli esterni", - "camera_permission_is_required": "È richiesta l'autorizzazione della fotocamera.\nAbilitalo dalle impostazioni dell'app.", - "switchToETHWallet": "Passa a un portafoglio Ethereum e riprova", - "order_by": "Ordinato da", - "creation_date": "Data di creazione", + "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.", + "exchange_result_write_down_trade_id": "Per favore fai una copia o trascrivi l'ID dello scambio per continuare.", + "exchange_sync_alert_content": "Gentilmente aspetta che il tuo portafoglio sia sincronizzato", + "expired": "Scaduta", + "expires": "Scade", + "expiresOn": "Scade il", + "export_backup": "Esporta backup", + "extra_id": "Extra ID:", + "extracted_address_content": "Invierai i tuoi fondi a\n${recipient_name}", + "failed_authentication": "Autenticazione fallita. ${state_error}", + "faq": "Domande Frequenti", + "fetching": "Recupero", + "fiat_api": "Fiat API", + "fiat_balance": "Equilibrio fiat", + "field_required": "Questo campo è obbligatorio", + "fill_code": "Compila il codice di verifica fornito alla tua email", + "filter_by": "Filtrirati po", + "first_wallet_text": "Portafoglio fantastico per Monero, Bitcoin, Ethereum, Litecoin, e Haven", + "fixed_pair_not_supported": "Questa coppia fissa non è supportata con gli scambi selezionati", + "fixed_rate": "Tasso fisso", + "fixed_rate_alert": "Potrai inserire l'ammontare da ricevere quando il tasso è fisso. Vuoi cambiare alla modalità tasso fisso?", + "forgot_password": "Password dimenticata", + "freeze": "Congelare", + "frequently_asked_questions": "Domande frequenti", + "frozen": "Congelato", + "full_balance": "Saldo Completo", + "generate_name": "Genera nome", + "generating_gift_card": "Generazione carta regalo", + "get_a": "Prendi un ", + "get_card_note": "che puoi ricaricare con le valute digitali. Non sono necessarie informazioni aggiuntive!", + "get_your_yat": "Ottieni il tuo Yat", + "gift_card_amount": "Importo del buono regalo", + "gift_card_balance_note": "Le carte regalo con un saldo residuo appariranno qui", + "gift_card_is_generated": "Il buono regalo è stato generato", + "gift_card_number": "Numero del buono regalo", + "gift_card_redeemed_note": "Le carte regalo che hai riscattato appariranno qui", + "gift_cards": "Carte regalo", + "gift_cards_unavailable": "Le carte regalo sono disponibili per l'acquisto solo tramite Monero, Bitcoin e Litecoin in questo momento", + "got_it": "Ho capito", + "gross_balance": "Saldo lordo", "group_by_type": "Gruppo per tipo", - "importNFTs": "Importa NFT", - "noNFTYet": "Nessun NFT ancora", - "address": "Indirizzo", - "enterTokenID": "Inserisci l'ID del token", - "tokenID": "ID", - "name": "Nome", - "symbol": "Simbolo", - "seed_phrase_length": "Lunghezza della frase seed", - "unavailable_balance": "Saldo non disponibile", - "unavailable_balance_description": "Saldo non disponibile: questo totale include i fondi bloccati nelle transazioni in sospeso e quelli che hai congelato attivamente nelle impostazioni di controllo delle monete. I saldi bloccati diventeranno disponibili una volta completate le rispettive transazioni, mentre i saldi congelati rimarranno inaccessibili per le transazioni finché non deciderai di sbloccarli.", - "unspent_change": "Modifica", - "tor_connection": "Connessione Tor", - "setup_warning_2fa_text": "Dovrai ripristinare il tuo portafoglio dal seme mnemonico.\n\nIl supporto di Cake non sarà in grado di assisterti se perdi l'accesso ai tuoi seed 2FA o mnemonici.\nCake 2FA è una seconda autenticazione per determinate azioni nel portafoglio. Prima di utilizzare Cake 2FA, ti consigliamo di leggere la guida.NON è sicuro come la conservazione a freddo.\n\nSe perdi l'accesso alla tua app 2FA o alle chiavi TOTP, perderai l'accesso a questo portafoglio. ", - "scan_qr_on_device": "Scansiona questo codice QR su un altro dispositivo", + "haven_app": "Haven by Cake Wallet", + "haven_app_wallet_text": "Portafoglio fantastico per Haven", + "help": "aiuto", + "hidden_balance": "Saldo Nascosto", + "hide_details": "Nascondi dettagli", + "high_contrast_theme": "Tema ad alto contrasto", + "home_screen_settings": "Impostazioni della schermata iniziale", "how_to_use": "Come usare", + "how_to_use_card": "Come usare questa carta", + "id": "ID: ", + "ignor": "Ignorare", + "import": "Importare", + "importNFTs": "Importa NFT", + "in_store": "In negozio", + "incoming": "In arrivo", + "incorrect_seed": "Il testo inserito non è valido.", + "introducing_cake_pay": "Presentazione di Cake Pay!", + "invalid_input": "Inserimento non valido", + "invoice_details": "Dettagli della fattura", + "is_percentage": "è", + "last_30_days": "Ultimi 30 giorni", + "learn_more": "Impara di più", + "light_theme": "Bianco", + "loading_your_wallet": "Caricamento portafoglio", + "login": "Accedi", + "logout": "Logout", + "low_fee": "Tariffa bassa", + "low_fee_alert": "Attualmente stai utilizzando una priorità a tariffa di rete bassa. Ciò potrebbe causare lunghe attese, tariffe diverse o operazioni annullate. Ti consigliamo di impostare una tariffa più alta per un'esperienza migliore.", + "manage_nodes": "Gestisci i nodi", + "manage_pow_nodes": "Gestisci i nodi PoW", + "manage_yats": "Gestisci gli Yat", + "mark_as_redeemed": "Segna come riscattato", + "market_place": "Mercato", + "matrix_green_dark_theme": "Tema Matrix verde scuro", + "max_amount": "Max: ${value}", + "max_value": "Max: ${value} ${currency}", + "memo": "Memo:", + "message": "Messaggio", + "methods": "Metodi", + "min_amount": "Min: ${value}", + "min_value": "Min: ${value} ${currency}", + "minutes_to_pin_code": "${minute} minuti", + "mm": "mm", + "modify_2fa": "Modifica Torta 2FA", + "monero_com": "Monero.com by Cake Wallet", + "monero_com_wallet_text": "Portafoglio fantastico per Monero", + "monero_dark_theme": "Tema scuro di Monero", + "monero_light_theme": "Tema leggero Monero", + "moonpay_alert_text": "Il valore dell'importo deve essere maggiore o uguale a ${minAmount} ${fiatCurrency}", + "more_options": "Altre opzioni", + "name": "Nome", + "narrow": "Stretto", + "new_first_wallet_text": "Mantieni facilmente la tua criptovaluta al sicuro", + "new_node_testing": "Test novo nodo", + "new_subaddress_create": "Crea", + "new_subaddress_label_name": "Nome etichetta", + "new_subaddress_title": "Nuovo indirizzo", + "new_template": "Nuovo modello", + "new_wallet": "Nuovo Portafoglio", + "newConnection": "Nuova connessione", + "no_id_needed": "Nessun ID necessario!", + "no_id_required": "Nessun ID richiesto. Ricarica e spendi ovunque", + "no_relay_on_domain": "Non esiste un inoltro per il dominio dell'utente oppure l'inoltro non è disponibile. Scegli un relè da utilizzare.", + "no_relays": "Nessun relè", + "no_relays_message": "Abbiamo trovato un record Nostr NIP-05 per questo utente, ma non contiene alcun relè. Si prega di indicare al destinatario di aggiungere inoltri al proprio record Nostr.", + "node_address": "Indirizzo Nodo", + "node_connection_failed": "Connessione fallita", + "node_connection_successful": "Connessione avvenuta con successo", + "node_new": "Nuovo Nodo", + "node_port": "Porta Nodo", + "node_reset_settings_title": "Ripristina impostazioni", + "node_test": "Test", + "nodes": "Nodi", + "nodes_list_reset_to_default_message": "Sei sicuro di voler ripristinare le impostazioni predefinite?", + "none_of_selected_providers_can_exchange": "Nessuno dei fornitori selezionati può effettuare questo scambio", + "noNFTYet": "Nessun NFT ancora", + "normal": "Normale", + "note_optional": "Nota (opzionale)", + "note_tap_to_change": "Nota (clicca per cambiare)", + "nullURIError": "L'URI è nullo", + "offer_expires_in": "Offerta termina tra: ", + "offline": "Offline", + "ok": "OK", + "onion_link": "Collegamento a cipolla", + "online": "in linea", + "onramper_option_description": "Acquista rapidamente la criptovaluta con molti metodi di pagamento. Disponibile nella maggior parte dei paesi. Gli spread e le commissioni variano.", + "open_gift_card": "Apri carta regalo", + "optional_description": "Descrizione facoltativa", + "optional_email_hint": "Email di notifica del beneficiario facoltativa", + "optional_name": "Nome del destinatario facoltativo", + "optional_order_card": "Ordina facoltativamente una carta fisica.", + "orbot_running_alert": "Assicurati che Orbot sia in esecuzione prima di connetterti a questo nodo.", + "order_by": "Ordinato da", + "order_id": "ID ordine", + "order_physical_card": "Ordine carta fisica", + "other_settings": "Altre impostazioni", + "outdated_electrum_wallet_description": "I nuovi portafogli Bitcoin creati in Cake ora hanno un seme di 24 parole. È obbligatorio creare un nuovo portafoglio Bitcoin e trasferire tutti i fondi nel nuovo portafoglio di 24 parole e smettere di usare portafogli con un seme di 12 parole. Ti preghiamo di farlo immediatamente per proteggere i tuoi fondi.", + "outdated_electrum_wallet_receive_warning": "Se questo portafoglio ha un seme di 12 parole ed è stato creato in Cake, NON depositare Bitcoin in questo portafoglio. Qualsiasi BTC trasferito su questo portafoglio potrebbe andare perso. Crea un nuovo portafoglio di 24 parole (tocca il menu in alto a destra, seleziona Portafogli, scegli Crea nuovo portafoglio, quindi seleziona Bitcoin) e sposta IMMEDIATAMENTE lì il tuo BTC. I nuovi portafogli BTC (24 parole) di Cake sono sicuri", + "outgoing": "In uscita", + "overwrite_amount": "Sovrascrivi quantità", + "pairingInvalidEvent": "Associazione evento non valido", + "password": "Password", + "paste": "Incolla", + "pause_wallet_creation": "La possibilità di creare Haven Wallet è attualmente sospesa.", + "payment_id": "ID Pagamento: ", + "payment_was_received": "Il tuo pagamento è stato ricevuto.", + "pending": " (non confermati)", + "percentageOf": "di ${amount}", + "pin_at_top": "fissa ${token} in alto", + "pin_is_incorrect": "Il PIN non è corretto", + "pin_number": "Numero PIN", + "placeholder_contacts": "I tuoi contatti saranno mostrati qui", + "placeholder_transactions": "Le tue transazioni saranno mostrate qui", + "please_fill_totp": "Inserisci il codice di 8 cifre presente sull'altro tuo dispositivo", + "please_make_selection": "Gentilmente seleziona se vuoi generare o recuperare il tuo portafoglio.", + "please_reference_document": "Si prega di fare riferimento ai documenti di seguito per ulteriori informazioni.", + "please_select": "Gentilmente seleziona:", + "please_select_backup_file": "Gentilmente seleziona il file di backup e inserisci la password di backup.", + "please_try_to_connect_to_another_node": "Gentilmente prova a connetterti ad un altro nodo", + "please_wait": "Attendere prego", + "polygonscan_history": "Cronologia PolygonScan", + "powered_by": "Sviluppato da ${title}", + "pre_seed_button_text": "Ho capito. Mostrami il seme", + "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_title": "IMPORTANTE", + "prevent_screenshots": "Impedisci screenshot e registrazione dello schermo", + "privacy": "Privacy", + "privacy_policy": "Informativa sulla privacy", + "privacy_settings": "Impostazioni privacy", + "private_key": "Chiave privata", + "proceed_after_one_minute": "Se lo schermo non procede dopo 1 minuto, controlla la tua email.", + "profile": "Profilo", + "provider_error": "${provider} errore", + "public_key": "Chiave pubblica", + "purchase_gift_card": "Acquista carta regalo", + "qr_fullscreen": "Tocca per aprire il codice QR a schermo intero", + "qr_payment_amount": "Questo codice QR contiene l'ammontare del pagamento. Vuoi sovrascrivere il varlore attuale?", + "question_to_disable_2fa": "Sei sicuro di voler disabilitare Cake 2FA? Non sarà più necessario un codice 2FA per accedere al portafoglio e ad alcune funzioni.", + "receivable_balance": "Bilanciamento creditizio", + "receive": "Ricevi", + "receive_amount": "Ammontare", + "received": "Ricevuto", + "recipient_address": "Indirizzo di destinazione", + "reconnect": "Riconnetti", + "reconnect_alert_text": "Sei sicuro di volerti riconnettere?", + "reconnection": "Riconnessione", + "redeemed": "Redento", + "refund_address": "Indirizzo di rimborso", + "reject": "Rifiutare", + "remaining": "rimanente", + "remove": "Remuovi", + "remove_node": "Rimuovi nodo", + "remove_node_message": "Sei sicuro di voler rimuovere il nodo selezionato?", + "rename": "Rinomina", + "require_for_adding_contacts": "Richiesto per l'aggiunta di contatti", + "require_for_all_security_and_backup_settings": "Richiedi per tutte le impostazioni di sicurezza e backup", + "require_for_assessing_wallet": "Richiesto per l'accesso al portafoglio", + "require_for_creating_new_wallets": "Richiesto per la creazione di nuovi portafogli", + "require_for_exchanges_to_external_wallets": "Richiede scambi con portafogli esterni", + "require_for_exchanges_to_internal_wallets": "Richiedi per gli scambi ai portafogli interni", + "require_for_sends_to_contacts": "Richiedi per gli invii ai contatti", + "require_for_sends_to_internal_wallets": "Richiesto per invii a portafogli interni", + "require_for_sends_to_non_contacts": "Richiesto per invii a non contatti", + "require_pin_after": "Richiedi PIN dopo", + "rescan": "Scansiona di nuovo", + "resend_code": "Per favore, invialo nuovamente", + "reset": "Ripristina", + "reset_password": "Reimposta password", + "restore_active_seed": "Seme attivo", + "restore_address": "Indirizzo", + "restore_bitcoin_description_from_keys": "Recupera il tuo portafoglio da una stringa WIF generata dalle tue chiavi private", + "restore_bitcoin_description_from_seed": "Recupera il tuo portafoglio da una combinazione di 12 parole", + "restore_bitcoin_title_from_keys": "Recupera da WIF", + "restore_description_from_backup": "Puoi recuperare l'app Cake Wallet per intero dal tuo file di backup", + "restore_description_from_keys": "Recupera il tuo portafoglio da una sequenza di caratteri generati dalle tue chiavi private", + "restore_description_from_seed": "Recupera il tuo portafoglio da una combinazione di 25 o 13 parole", + "restore_description_from_seed_keys": "Recupera il tuo portafoglio dal seme/chiavi che hai salvato in un posto sicuro", + "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", + "restore_from_seed_placeholder": "Gentilmente inserisci o incolla il tuo seme qui", + "restore_new_seed": "Nuovo seme", + "restore_next": "Prossimo", + "restore_recover": "Recupera", + "restore_restore_wallet": "Recupera Portafoglio", + "restore_seed_keys_restore": "Recupera Seme/Chiavi", + "restore_spend_key_private": "Chiave di Spesa (privata)", + "restore_title_from_backup": "Recupera da backup", + "restore_title_from_keys": "Recupera dalle chiavi", + "restore_title_from_seed": "Recupera dal seme", + "restore_title_from_seed_keys": "Recupera dal seme/chiavi", + "restore_view_key_private": "Chiave di Visualizzazione (privata)", + "restore_wallet": "Recupera Portafoglio", + "restore_wallet_name": "Nome Portafoglio", + "restore_wallet_restore_description": "Descrizione recupero Portafoglio", + "router_no_route": "Nessun percorso definito per ${name}", + "save": "Salva", + "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.", + "save_backup_password_alert": "Salva password Backup", + "save_to_downloads": "Salva in Download", + "saved_the_trade_id": "Ho salvato l'ID dello scambio", + "scan_qr_code": "Scansiona il codice QR", + "scan_qr_code_to_get_address": "Scansiona il codice QR per ottenere l'indirizzo", + "scan_qr_on_device": "Scansiona questo codice QR su un altro dispositivo", + "search": "Ricerca", + "search_add_token": "Cerca / Aggiungi token", + "search_category": "Categoria di ricerca", + "search_currency": "Cerca valuta", + "search_language": "Cerca lingua", + "second_intro_content": "Il tuo Yat è un unico indirizzo emoji univoco che sostituisce i lunghi indirizzi per tutte le tue valute.", + "second_intro_title": "Un indirizzo emoji per domarli tutti", + "security_and_backup": "Sicurezza e backup", + "seed_alert_back": "Torna indietro", + "seed_alert_content": "Il seme è l'unico modo per recuperare il tuo portafoglio. L'hai trascritto?", + "seed_alert_title": "Attenzione", + "seed_alert_yes": "Sì, l'ho fatto", + "seed_choose": "Scegli la lingua del seme", "seed_hex_form": "Seme di portafoglio (forma esadecimale)", + "seed_key": "Chiave di semi", + "seed_language": "Linguaggio di semi", + "seed_language_chinese": "Cinese", + "seed_language_chinese_traditional": "Cinese tradizionale)", + "seed_language_czech": "ceco", + "seed_language_dutch": "Olandese", + "seed_language_english": "Inglese", + "seed_language_french": "Francese", + "seed_language_german": "Tedesco", + "seed_language_italian": "Italiano", + "seed_language_japanese": "Giapponese", + "seed_language_korean": "coreano", + "seed_language_next": "Prossimo", + "seed_language_portuguese": "Portoghese", + "seed_language_russian": "Russo", + "seed_language_spanish": "Spagnolo", + "seed_phrase_length": "Lunghezza della frase seed", + "seed_reminder": "Gentilmente trascrivi le parole. Ti tornerà utile in caso perdessi o ripristinassi il tuo telefono", + "seed_share": "Condividi seme", + "seed_title": "Seme", "seedtype": "Seedtype", "seedtype_legacy": "Legacy (25 parole)", "seedtype_polyseed": "Polyseed (16 parole)", - "seed_language_czech": "ceco", - "seed_language_korean": "coreano", - "seed_language_chinese_traditional": "Cinese tradizionale)", - "ascending": "Ascendente", - "descending": "Discendente", - "dfx_option_description": "Acquista criptovalute con EUR e CHF. Fino a 990€ senza KYC aggiuntivi. Per clienti al dettaglio e aziendali in Europa", - "polygonscan_history": "Cronologia PolygonScan", - "wallet_seed_legacy": "Seme di portafoglio legacy", - "default_sell_provider": "Fornitore di vendita predefinito", + "select_backup_file": "Seleziona file di backup", + "select_buy_provider_notice": "Seleziona un fornitore di acquisto sopra. È possibile saltare questa schermata impostando il provider di acquisto predefinito nelle impostazioni dell'app.", + "select_destination": "Seleziona la destinazione per il file di backup.", "select_sell_provider_notice": "Seleziona un fornitore di vendita sopra. Puoi saltare questa schermata impostando il tuo fornitore di vendita predefinito nelle impostazioni dell'app.", - "custom_drag": "Custom (Hold and Drag)", + "sell": "Vendere", + "sell_alert_content": "Al momento supportiamo solo la vendita di Bitcoin, Ethereum e Litecoin. Crea o passa al tuo portafoglio Bitcoin, Ethereum o Litecoin.", + "sell_monero_com_alert_content": "La vendita di Monero non è ancora supportata", + "send": "Invia", + "send_address": "${cryptoCurrency} indirizzo", + "send_amount": "Ammontare:", + "send_creating_transaction": "Creazione della transazione", + "send_error_currency": "L'ammontare può contenere solo numeri", + "send_error_minimum_value": "L'ammontare minimo è 0.01", + "send_estimated_fee": "Commissione stimata:", + "send_fee": "Commissione:", + "send_name": "Nome", + "send_new": "Nuovo", + "send_payment_id": "ID Pagamento (opzionale)", + "send_priority": "Attualmente la commissione è impostata a priorità ${transactionPriority} .\nLa priorità della transazione può essere modificata nelle impostazioni", + "send_sending": "Invio...", + "send_success": " ${crypto} inviati con successo", + "send_templates": "Modelli", + "send_title": "Invia", + "send_to_this_address": "Invia ${currency} ${tag}a questo indirizzo", + "send_xmr": "Invia XMR", + "send_your_wallet": "Il tuo portafoglio", + "sending": "Invio", + "sent": "Inviato", + "settings": "Impostazioni", + "settings_all": "TUTTO", + "settings_allow_biometrical_authentication": "Consenti autenticazione biometrica", + "settings_can_be_changed_later": "Queste impostazioni possono essere modificate in seguito nelle impostazioni dell'app", + "settings_change_language": "Cambia lingua", + "settings_change_pin": "Cambia PIN", + "settings_currency": "Moneta", + "settings_current_node": "Nodo attuale", + "settings_dark_mode": "Tema scuro", + "settings_display_balance": "Mostra saldo", + "settings_display_on_dashboard_list": "Mostra nella lista della pagina principale", + "settings_fee_priority": "Priorità commissione", + "settings_nodes": "Nodi", + "settings_none": "Nessuno", + "settings_only_trades": "Solo scambi", + "settings_only_transactions": "Solo transazioni", + "settings_personal": "Personali", + "settings_save_recipient_address": "Salva indirizzo di destinazione", + "settings_support": "Supporto", + "settings_terms_and_conditions": "Termini e condizioni", + "settings_title": "Impostazioni", + "settings_trades": "Scambi", + "settings_transactions": "Transazioni", + "settings_wallets": "Portafogli", + "setup_2fa": "Imposta la torta 2FA", + "setup_2fa_text": "Cake 2FA funziona utilizzando TOTP come secondo fattore di autenticazione.\n\nIl TOTP di Cake 2FA richiede il supporto SHA-512 e 8 cifre; ciò fornisce una maggiore sicurezza. Maggiori informazioni e app supportate sono disponibili nella guida.", + "setup_pin": "Imposta PIN", + "setup_successful": "Il tuo PIN è stato impostato con successo!", + "setup_totp_recommended": "Imposta TOTP", + "setup_warning_2fa_text": "Dovrai ripristinare il tuo portafoglio dal seme mnemonico.\n\nIl supporto di Cake non sarà in grado di assisterti se perdi l'accesso ai tuoi seed 2FA o mnemonici.\nCake 2FA è una seconda autenticazione per determinate azioni nel portafoglio. Prima di utilizzare Cake 2FA, ti consigliamo di leggere la guida.NON è sicuro come la conservazione a freddo.\n\nSe perdi l'accesso alla tua app 2FA o alle chiavi TOTP, perderai l'accesso a questo portafoglio. ", + "setup_your_debit_card": "Configura la tua carta di debito", + "share": "Condividere", + "share_address": "Condividi indirizzo", + "show_details": "Mostra dettagli", + "show_keys": "Mostra seme/chiavi", + "show_market_place": "Mostra mercato", + "show_seed": "Mostra seme", + "sign_up": "Registrati", + "signTransaction": "Firma la transazione", + "signup_for_card_accept_terms": "Registrati per la carta e accetta i termini.", + "slidable": "Scorrevole", + "sort_by": "Ordina per", + "spend_key_private": "Chiave di spesa (privata)", + "spend_key_public": "Chiave di spesa (pubblica)", + "status": "Stato: ", + "subaddress_title": "Lista sottoindirizzi", + "subaddresses": "Sottoindirizzi", + "submit_request": "invia una richiesta", + "successful": "Riuscito", + "support_description_guides": "Documentazione e supporto per problemi comuni", + "support_description_live_chat": "Gratuito e veloce! I rappresentanti di supporto qualificati sono disponibili per assistere", + "support_description_other_links": "Unisciti alle nostre comunità o raggiungici i nostri partner attraverso altri metodi", + "support_title_guides": "Guide del portafoglio per torte", + "support_title_live_chat": "Supporto dal vivo", + "support_title_other_links": "Altri collegamenti di supporto", + "sweeping_wallet": "Portafoglio ampio", + "sweeping_wallet_alert": "Questo non dovrebbe richiedere molto tempo. NON LASCIARE QUESTA SCHERMATA O I FONDI SPAZZATI POTREBBERO ANDARE PERSI", + "switchToETHWallet": "Passa a un portafoglio Ethereum e riprova", "switchToEVMCompatibleWallet": "Passa a un portafoglio compatibile con EVM e riprova (Ethereum, Polygon)", - "receivable_balance": "Bilanciamento creditizio", - "confirmed_tx": "Confermato", + "symbol": "Simbolo", + "sync_all_wallets": "Sincronizza tutti i portafogli", + "sync_status_attempting_sync": "TENTATIVO DI SINCRONIZZAZIONE", + "sync_status_connected": "CONNESSO", + "sync_status_connecting": "CONNESSIONE", + "sync_status_failed_connect": "DISCONNESSO", + "sync_status_not_connected": "NON CONNESSO", + "sync_status_starting_sync": "INIZIO SINC", + "sync_status_syncronized": "SINCRONIZZATO", + "sync_status_syncronizing": "SINCRONIZZAZIONE", + "syncing_wallet_alert_content": "Il saldo e l'elenco delle transazioni potrebbero non essere completi fino a quando non viene visualizzato \"SYNCHRONIZED\" in alto. Clicca/tocca per saperne di più.", + "syncing_wallet_alert_title": "Il tuo portafoglio si sta sincronizzando", + "template": "Modello", + "template_name": "Nome modello", + "third_intro_content": "Yat può funzionare anche fuori da Cake Wallet. Qualsiasi indirizzo di portafoglio sulla terra può essere sostituito con uno Yat!", + "third_intro_title": "Yat gioca bene con gli altri", + "time": "${minutes}m ${seconds}s", + "tip": "Suggerimento:", + "today": "Oggi", + "token_contract_address": "Indirizzo del contratto token", + "token_decimal": "Decimale del token", + "token_name": "Nome del token, ad esempio: Tether", + "token_symbol": "Simbolo del token, ad esempio: USDT", + "tokenID": "ID", + "tor_connection": "Connessione Tor", + "tor_only": "Solo Tor", + "total_saving": "Risparmio totale", + "totp_2fa_failure": "Codice non corretto. Prova un codice diverso o genera una nuova chiave segreta. Utilizza un'app 2FA compatibile che supporti codici a 8 cifre e SHA512.", + "totp_2fa_success": "Successo! Cake 2FA abilitato per questo portafoglio. Ricordati di salvare il tuo seme mnemonico nel caso in cui perdi l'accesso al portafoglio.", + "totp_auth_url": "URL DI AUT. TOTP", + "totp_code": "Codice TOTP", + "totp_secret_code": "TOTP codice segreto", + "totp_verification_success": "Verifica riuscita!", + "trade_details_copied": "${title} copiati negli Appunti", + "trade_details_created_at": "Creato alle", + "trade_details_fetching": "Recupero", + "trade_details_id": "ID", + "trade_details_pair": "Coppia", + "trade_details_provider": "Fornitore", + "trade_details_state": "Stato", + "trade_details_title": "Dettagli Scambio", + "trade_for_not_created": "Lo scambio per ${title} non è stato creato.", + "trade_history_title": "Storico scambi", + "trade_id": "ID Scambio:", + "trade_id_not_found": "Scambio ${tradeId} di ${title} not trovato.", + "trade_is_powered_by": "Questo scambio è fornito da ${provider}", + "trade_not_created": "Scambio non creato", + "trade_not_found": "Scambio non trovato.", + "trade_state_btc_sent": "Btc inviati", + "trade_state_complete": "Completato", + "trade_state_confirming": "Conferma", + "trade_state_created": "Creato", + "trade_state_finished": "Finito", + "trade_state_paid": "Pagato", + "trade_state_paid_unconfirmed": "Pagato non confermato", + "trade_state_pending": "In corso", + "trade_state_timeout": "Timeout", + "trade_state_to_be_created": "Da creare", + "trade_state_traded": "Scambiato", + "trade_state_trading": "Scambio", + "trade_state_underpaid": "Sottopagato", + "trade_state_unpaid": "Non pagato", + "trades": "Scambi", + "transaction_details_amount": "Ammontare", + "transaction_details_copied": "${title} copiati negli Appunti", + "transaction_details_date": "Data", + "transaction_details_fee": "Commissione", + "transaction_details_height": "Altezza", + "transaction_details_recipient_address": "Indirizzi dei destinatari", "transaction_details_source_address": "Indirizzo di partenza", - "pause_wallet_creation": "La possibilità di creare Haven Wallet è attualmente sospesa.", - "contractName": "Nome del contratto", - "contractSymbol": "Simbolo del contratto", - "description": "Descrizione", - "camera_consent": "La tua fotocamera verrà utilizzata per acquisire un'immagine a scopo identificativo da ${provider}. Si prega di controllare la loro Informativa sulla privacy per i dettagli.", - "no_relays": "Nessun relè", - "choose_relay": "Scegli un relè da utilizzare", - "no_relays_message": "Abbiamo trovato un record Nostr NIP-05 per questo utente, ma non contiene alcun relè. Si prega di indicare al destinatario di aggiungere inoltri al proprio record Nostr.", - "no_relay_on_domain": "Non esiste un inoltro per il dominio dell'utente oppure l'inoltro non è disponibile. Scegli un relè da utilizzare." -} + "transaction_details_title": "Dettagli Transazione", + "transaction_details_transaction_id": "ID Transazione", + "transaction_key": "Chiave Transazione", + "transaction_priority_fast": "Alta", + "transaction_priority_fastest": "Massima", + "transaction_priority_medium": "Media", + "transaction_priority_regular": "Regolare", + "transaction_priority_slow": "Bassa", + "transaction_sent": "Transazione inviata!", + "transaction_sent_notice": "Se lo schermo non procede dopo 1 minuto, controlla un block explorer e la tua email.", + "transactions": "Transazioni", + "transactions_by_date": "Transazioni per data", + "trusted": "di fiducia", + "unavailable_balance": "Saldo non disponibile", + "unavailable_balance_description": "Saldo non disponibile: questo totale include i fondi bloccati nelle transazioni in sospeso e quelli che hai congelato attivamente nelle impostazioni di controllo delle monete. I saldi bloccati diventeranno disponibili una volta completate le rispettive transazioni, mentre i saldi congelati rimarranno inaccessibili per le transazioni finché non deciderai di sbloccarli.", + "unconfirmed": "Saldo non confermato", + "understand": "Capisco", + "unmatched_currencies": "La valuta del tuo portafoglio attuale non corrisponde a quella del QR scansionato", + "unspent_change": "Modifica", + "unspent_coins_details_title": "Dettagli sulle monete non spese", + "unspent_coins_title": "Monete non spese", + "unsupported_asset": "Non supportiamo questa azione per questa risorsa. Crea o passa a un portafoglio di un tipo di asset supportato.", + "upto": "fino a ${value}", + "use": "Passa a ", + "use_card_info_three": "Utilizza la carta digitale online o con metodi di pagamento contactless.", + "use_card_info_two": "I fondi vengono convertiti in USD quando sono detenuti nel conto prepagato, non in valute digitali.", + "use_ssl": "Usa SSL", + "use_suggested": "Usa suggerito", + "variable_pair_not_supported": "Questa coppia di variabili non è supportata con gli scambi selezionati", + "verification": "Verifica", + "verify_with_2fa": "Verifica con Cake 2FA", + "version": "Versione ${currentVersion}", + "view_all": "Visualizza tutto", + "view_in_block_explorer": "View in Block Explorer", + "view_key_private": "Chiave di visualizzazione (privata)", + "view_key_public": "Chiave di visualizzazione (pubblica)", + "view_transaction_on": "View Transaction on ", + "waiting_payment_confirmation": "In attesa di conferma del pagamento", + "wallet_keys": "Seme Portafoglio /chiavi", + "wallet_list_create_new_wallet": "Crea Nuovo Portafoglio", + "wallet_list_edit_wallet": "Modifica portafoglio", + "wallet_list_failed_to_load": "Caricamento portafoglio ${wallet_name} fallito. ${error}", + "wallet_list_failed_to_remove": "Rimozione portafoglio ${wallet_name} fallita. ${error}", + "wallet_list_load_wallet": "Caricamento Portafoglio", + "wallet_list_loading_wallet": "Caricamento portafoglio ${wallet_name}", + "wallet_list_removing_wallet": "Rimozione portafoglio ${wallet_name}", + "wallet_list_restore_wallet": "Recupera Portafoglio", + "wallet_list_title": "Portafoglio Monero", + "wallet_list_wallet_name": "Nome del portafoglio", + "wallet_menu": "Menù", + "wallet_name": "Nome del Portafoglio", + "wallet_name_exists": "Il portafoglio con quel nome è già esistito", + "wallet_restoration_store_incorrect_seed_length": "Lunghezza seme non corretta", + "wallet_seed": "Seme Portafoglio", + "wallet_seed_legacy": "Seme di portafoglio legacy", + "wallet_store_monero_wallet": "Portafoglio Monero", + "walletConnect": "PortafoglioConnetti", + "wallets": "Portafogli", + "warning": "Avvertimento", + "welcome": "Benvenuto", + "welcome_to_cakepay": "Benvenuto in Cake Pay!", + "widgets_address": "Indirizzo", + "widgets_or": "o", + "widgets_restore_from_blockheight": "Recupera da altezza blocco", + "widgets_restore_from_date": "Recupera da data", + "widgets_seed": "Seme", + "wouoldLikeToConnect": "vorrei connettermi", + "write_down_backup_password": "Gentilmente trascrivi la password del backup, che è usata per importare i tuoi file di backup.", + "xlm_extra_info": "Gentilmente ricorda di indicare il Memo ID quando invii la transazione XLM per lo scambio", + "xmr_available_balance": "Saldo Disponibile", + "xmr_full_balance": "Saldo Totale", + "xmr_hidden": "Nascosto", + "xmr_to_error": "XMR.TO errore", + "xmr_to_error_description": "Ammontare invalido. Il limite massimo è 8 cifre dopo il punto decimale", + "xrp_extra_info": "Gentilmente ricorda di indicare il Tag di Destinazione quando invii una transazione XRP per lo scambio", + "yat": "Yat", + "yat_address": "Indirizzo Yat", + "yat_alert_content": "Gli utenti di Cake Wallet possono ora inviare e ricevere tutte le loro valute preferite con un nome utente unico basato su emoji.", + "yat_alert_title": "Invia e ricevi criptovalute più facilmente con Yat", + "yat_error": "Yat errore", + "yat_error_content": "Nessun indirizzo collegato a questo Yat. Prova un altro Yat", + "yat_popup_content": "Ora puoi inviare e ricevere criptovalute in Cake Wallet con il tuo Yat, un breve nome utente basato su emoji. Gestisci Yats in qualsiasi momento nella schermata delle impostazioni", + "yat_popup_title": "L'indirizzo del tuo portafoglio può essere emoji.", + "yesterday": "Ieri", + "you_now_have_debit_card": "Ora hai una carta di debito", + "you_pay": "Tu paghi", + "you_will_get": "Converti a", + "you_will_send": "Conveti da", + "yy": "YY", + "zzzz": "Zzzz" +} \ No newline at end of file diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index df317392f..710a78088 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -1,779 +1,780 @@ { - "welcome": "ようこそ に", - "cake_wallet": "Cake Wallet", - "first_wallet_text": "Monero、Bitcoin、Ethereum、Litecoin、Haven用の素晴らしいウォレット", - "please_make_selection": "以下を選択してください ウォレットを作成または回復する.", - "create_new": "新しいウォレットを作成", - "restore_wallet": "ウォレットを復元", - "monero_com": "Monero.com by Cake Wallet", - "monero_com_wallet_text": "Awesome wallet for Monero", - "haven_app": "Haven by Cake Wallet", - "haven_app_wallet_text": "Awesome wallet for Haven", - "accounts": "アカウント", - "edit": "編集", + "about_cake_pay": "Cake Payを使用すると、仮想資産を含むギフトカードを簡単に購入でき、米国内の150,000を超える加盟店ですぐに利用できます。", "account": "アカウント", + "accounts": "アカウント", + "accounts_subaddresses": "アカウントとサブアドレス", + "activate": "アクティブ化", + "active": "アクティブ", + "active_cards": "アクティブカード", + "activeConnectionsPrompt": "アクティブな接続がここに表示されます", "add": "加える", + "add_contact": "連絡先を追加", + "add_custom_node": "新しいカスタム ノードを追加", + "add_custom_redemption": "カスタム引き換えを追加", + "add_fund_to_card": "プリペイド資金をカードに追加します(最大 ${value})", + "add_new_node": "新しいノードを追加", + "add_new_word": "新しい単語を追加", + "add_receiver": "別のレシーバーを追加します(オプション)", + "add_secret_code": "または、このシークレット コードを認証アプリに追加します", + "add_tip": "ヒントを追加", + "add_token_disclaimer_check": "信頼できる情報源を使用して、トークン コントラクトのアドレスと情報を確認しました。 悪意のある情報や不正確な情報を追加すると、資金が失われる可能性があります。", + "add_token_warning": "詐欺師の指示に従ってトークンを編集または追加しないでください。\nトークン アドレスは常に信頼できる情報源で確認してください。", + "add_value": "付加価値", + "address": "住所", "address_book": "住所録", - "contact": "接触", - "please_select": "選んでください:", - "cancel": "キャンセル", - "ok": "OK", - "contact_name": "連絡先", - "reset": "リセットする", - "save": "セーブ", + "address_book_menu": "住所録", + "address_detected": "アドレスが検出されました", + "address_from_domain": "このアドレスは ${domain} からのものです Unstoppable Domains", + "address_from_yat": "このアドレスは ${emoji} からのものです Yat", + "address_label": "Address label", "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": "取引", - "filter_by": "でフィルタリング", - "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": "Exchangeプロバイダーの変更", - "you_will_send": "から変換", - "you_will_get": "に変換", - "amount_is_guaranteed": "受け取り金額は保証されています", - "amount_is_estimate": "受け取り金額は見積もりです", - "powered_by": "搭載 ${title}", - "error": "エラー", - "estimated": "推定", - "min_value": "分: ${value} ${currency}", - "max_value": "マックス: ${value} ${currency}", - "change_currency": "通貨を変更する", - "overwrite_amount": "Overwrite amount", - "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", - "copy_id": "IDをコピー", - "exchange_result_write_down_trade_id": "続行するには、取引IDをコピーまたは書き留めてください.", - "trade_id": "取引ID:", - "copied_to_clipboard": "クリップボードにコピーしました", - "saved_the_trade_id": "取引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": "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": "桁ピン", - "share_address": "住所を共有する", - "receive_amount": "量", - "subaddresses": "サブアドレス", "addresses": "住所", - "scan_qr_code_to_get_address": "QRコードをスキャンして住所を取得します", - "qr_fullscreen": "タップして全画面QRコードを開く", - "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": "ビューキー (プライベート)", - "restore_spend_key_private": "キーを使う (プライベート)", - "restore_recover": "回復します", - "restore_wallet_restore_description": "ウォレットの復元", - "restore_new_seed": "新しい種", - "restore_active_seed": "アクティブシード", - "restore_bitcoin_description_from_seed": "24ワードの組み合わせコードからウォレットを復元する", - "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": "シード言語", - "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": "スペイン語", - "seed_language_french": "フランス語", - "seed_language_italian": "イタリア語", - "send_title": "を送信", - "send_your_wallet": "あなたの財布", - "send_address": "${cryptoCurrency} 住所", - "send_payment_id": "支払いID (オプショナル)", + "advanced_settings": "高度な設定", + "aggressive": "熱心すぎる", + "agree": "同意する", + "agree_and_continue": "同意して続行", + "agree_to": "アカウントを作成することにより、", "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": "名前", - "got_it": "とった", - "send_sending": "送信...", - "send_success": "${crypto}が送信されました", - "settings_title": "設定", - "settings_nodes": "ノード", - "settings_current_node": "現在のノード", - "settings_wallets": "財布", - "settings_display_balance": "ディスプレイバランス", - "settings_currency": "通貨", - "settings_fee_priority": "料金優先", - "settings_save_recipient_address": "受信者のアドレスを保存", - "settings_personal": "パーソナル", - "settings_change_pin": "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": "ピンをもう一度入力してください", - "setup_successful": "PINは正常に設定されました!", - "wallet_keys": "ウォレットシード/キー", - "wallet_seed": "ウォレットシード", - "private_key": "秘密鍵", - "public_key": "公開鍵", - "view_key_private": "ビューキー (プライベート)", - "view_key_public": "ビューキー (パブリック)", - "spend_key_private": "キーを使う (プライベート)", - "spend_key_public": "キーを使う (パブリック)", - "copied_key_to_clipboard": "コピー済み ${key} クリップボードへ", - "new_subaddress_title": "新しいアドレス", - "new_subaddress_label_name": "ラベル名", - "new_subaddress_create": "作成する", - "address_label": "Address label", - "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": "トランザクション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_edit_wallet": "ウォレットを編集する", - "wallet_list_wallet_name": "ウォレット名", - "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": "アカウント名には文字のみを含めることができます \n1〜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_node_proxy_address": ":<ポート> を入力してください (例: 127.0.0.1:9050)", - "error_text_payment_id": "支払いIDには、16進数で16〜64文字しか含めることができません", - "error_text_xmr": "XMR値は利用可能な残高を超えることはできません.\n小数桁数は12以下でなければなりません", - "error_text_fiat": "金額は利用可能な残高を超えることはできません.\n小数桁の数は2以下でなければなりません", - "error_text_subaddress_name": "サブアドレス名に含めることはできません` , ' \" シンボル\n1〜20文字の長さである必要があります", - "error_text_amount": "金額には数字のみを含めることができます", - "error_text_wallet_name": "ウォレット名には、文字、数字、_-記号のみを含めることができます\n長さは1〜33文字である必要があります", - "error_text_keys": "ウォレットキーには、16進数で64文字しか含めることができません", - "error_text_crypto_currency": "小数桁数\n12以下でなければなりません", - "error_text_minimal_limit": "${provider} の取引は作成されません。 金額は最小額より少ない: ${min} ${currency}", - "error_text_maximum_limit": "${provider} の取引は作成されません。 金額は最大値を超えています: ${max} ${currency}", - "error_text_limits_loading_failed": "${provider} の取引は作成されません。 制限の読み込みに失敗しました", - "error_text_template": "テンプレートの名前とアドレスに含めることはできません ` , ' \" シンボル\n1〜106文字の長さである必要があります", + "all_trades": "すべての取引", + "all_transactions": "全取引", + "alphabetical": "アルファベット順", + "already_have_account": "すでにアカウントをお持ちですか?", + "always": "いつも", + "amount": "量: ", + "amount_is_estimate": "受け取り金額は見積もりです", + "amount_is_guaranteed": "受け取り金額は保証されています", + "and": "と", + "anonpay_description": "${type} を生成します。受取人はサポートされている任意の暗号通貨で ${method} でき、あなたはこのウォレットで資金を受け取ります。", + "apk_update": "APKアップデート", + "approve": "承認する", + "arrive_in_this_address": "${currency} ${tag}はこの住所に到着します", + "ascending": "上昇", + "ask_each_time": "毎回尋ねてください", "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": "誤ったシード長s", - "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": "接続済み", - "sync_status_attempting_sync": "同期を試みています", - "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} of ${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}", - "extracted_address_content": "に送金します\n${recipient_name}", - "card_address": "住所:", - "buy": "購入", - "sell": "売る", - "placeholder_transactions": "あなたの取引はここに表示されます", - "placeholder_contacts": "連絡先はここに表示されます", - "template": "テンプレート", - "confirm_delete_template": "この操作により、このテンプレートが削除されます。 続行しますか?", - "confirm_delete_wallet": "このアクションにより、このウォレットが削除されます。 続行しますか?", - "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を使用する", - "trusted": "信頼できる", - "color_theme": "カラーテーマ", - "light_theme": "光", - "bright_theme": "明るい", - "dark_theme": "闇", - "enter_your_note": "メモを入力してください…", - "note_optional": "注(オプション)", - "note_tap_to_change": "注(タップして変更)", - "view_in_block_explorer": "View in Block Explorer", - "view_transaction_on": "View Transaction on ", - "transaction_key": "トランザクションキー", - "confirmations": "確認", - "recipient_address": "受信者のアドレス", - "extra_id": "追加ID:", - "destination_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トランザクションを送信するときに、宛先タグを指定することを忘れないでください", - "exchange_incorrect_current_wallet_for_xmr": "Cake Wallet Moneroの残高からXMRを交換する場合は、最初にMoneroウォレットに切り替えてください。", - "confirmed": "確認済み残高", - "unconfirmed": "残高未確認", - "displayable": "表示可能", - "submit_request": "リクエストを送信する", - "buy_alert_content": "現在、ビットコイン、イーサリアム、ライトコイン、モネロの購入のみをサポートしています。ビットコイン、イーサリアム、ライトコイン、またはモネロのウォレットを作成するか、これらのウォレットに切り替えてください。", - "sell_alert_content": "現在、ビットコイン、イーサリアム、ライトコインの販売のみをサポートしています。ビットコイン、イーサリアム、またはライトコインのウォレットを作成するか、これらのウォレットに切り替えてください。", - "outdated_electrum_wallet_description": "Cakeで作成された新しいビットコインウォレットには、24ワードのシードがあります。 新しいビットコインウォレットを作成し、すべての資金を新しい24ワードのウォレットに転送し、12ワードのシードを持つウォレットの使用を停止することが必須です。 あなたの資金を確保するためにこれをすぐに行ってください。", - "understand": "わかります", - "apk_update": "APKアップデート", - "buy_bitcoin": "ビットコインを購入する", - "buy_with": "で購入", - "moonpay_alert_text": "金額の値は以上でなければなりません ${minAmount} ${fiatCurrency}", - "outdated_electrum_wallet_receive_warning": "このウォレットに 12 ワードのシードがあり、Cake で作成された場合、このウォレットにビットコインを入金しないでください。 このウォレットに転送された BTC は失われる可能性があります。 新しい 24 ワードのウォレットを作成し (右上のメニューをタップし、[ウォレット]、[新しいウォレットの作成]、[ビットコイン] の順に選択)、すぐに BTC をそこに移動します。 Cake の新しい (24 ワード) BTC ウォレットは安全です", - "do_not_show_me": "また僕にこれを見せないでください", - "unspent_coins_title": "未使用のコイン", - "unspent_coins_details_title": "未使用のコインの詳細", - "freeze": "氷結", - "frozen": "凍った", - "coin_control": "コインコントロール(オプション)", - "address_detected": "アドレスが検出されました", - "address_from_domain": "このアドレスは ${domain} からのものです Unstoppable Domains", - "add_receiver": "別のレシーバーを追加します(オプション)", - "manage_yats": "Yatsを管理する", - "yat_alert_title": "Yatで暗号をより簡単に送受信できます", - "yat_alert_content": "Cake Walletユーザーは、独自の絵文字ベースのユーザー名を使用して、お気に入りのすべての通貨を送受信できるようになりました。", - "get_your_yat": "あなたのYatを入手してください", - "connect_an_existing_yat": "既存のYatを接続します", - "yat_address": "Yat住所", - "yat": "Yat", - "connect_yats": "Yatsを接続します", - "address_from_yat": "このアドレスは ${emoji} からのものです Yat", - "yat_error": "Yatエラー", - "yat_error_content": "このYatにリンクされているアドレスはありません。別のYatを試してください", - "choose_address": "\n\n住所を選択してください:", - "yat_popup_title": "あなたの財布のアドレスは絵文字であることができます。", - "yat_popup_content": "Yat(短い絵文字ベースのユーザー名)を使用して、CakeWalletで暗号を送受信できるようになりました。 設定画面でいつでもYatsを管理", - "second_intro_title": "それらすべてを支配する1つの絵文字アドレス", - "second_intro_content": "Yatは、すべての通貨のすべての長い16進アドレスを置き換える単一の一意の絵文字アドレスです。", - "third_intro_title": "Yatは他の人とうまく遊ぶ", - "third_intro_content": "YatsはCakeWalletの外にも住んでいます。 地球上のどのウォレットアドレスもYatに置き換えることができます!", - "learn_more": "もっと詳しく知る", - "search": "検索", - "search_language": "検索言語", - "search_currency": "検索通貨", - "new_template": "新しいテンプレート", - "electrum_address_disclaimer": "使用するたびに新しいアドレスが生成されますが、以前のアドレスは引き続き機能します", - "wallet_name_exists": "その名前のウォレットはすでに存在しています", - "market_place": "Marketplace", - "cake_pay_title": "ケーキペイギフトカード", - "cake_pay_subtitle": "割引ギフトカードを購入する (米国のみ)", - "cake_pay_web_cards_title": "Cake Pay ウェブカード", - "cake_pay_web_cards_subtitle": "世界中のプリペイド カードとギフト カードを購入する", - "about_cake_pay": "Cake Payを使用すると、仮想資産を含むギフトカードを簡単に購入でき、米国内の150,000を超える加盟店ですぐに利用できます。", - "cake_pay_account_note": "メールアドレスだけでサインアップして、カードを表示して購入できます。割引価格で利用できるカードもあります!", - "already_have_account": "すでにアカウントをお持ちですか?", - "create_account": "アカウントの作成", - "privacy_policy": "プライバシーポリシー", - "welcome_to_cakepay": "Cake Payへようこそ!", - "sign_up": "サインアップ", - "forgot_password": "パスワードを忘れた", - "reset_password": "パスワードのリセット", - "gift_cards": "ギフトカード", - "setup_your_debit_card": "デビットカードを設定してください", - "no_id_required": "IDは必要ありません。どこにでも補充して使用できます", - "how_to_use_card": "このカードの使用方法", - "purchase_gift_card": "ギフトカードを購入", - "verification": "検証", - "fill_code": "メールアドレスに記載されている確認コードを入力してください", - "didnt_get_code": "コードを取得しませんか?", - "resend_code": "再送してください", - "debit_card": "デビットカード", - "cakepay_prepaid_card": "CakePayプリペイドデビットカード", - "no_id_needed": "IDは必要ありません!", - "frequently_asked_questions": "よくある質問", - "debit_card_terms": "このデジタルウォレットでの支払いカード番号(および支払いカード番号に対応する資格情報)の保存と使用には、支払いカード発行者との該当するカード所有者契約の利用規約が適用されます。時々。", - "please_reference_document": "詳細については、以下のドキュメントを参照してください。", - "cardholder_agreement": "カード所有者契約", - "e_sign_consent": "電子署名の同意", - "agree_and_continue": "同意して続行", - "email_address": "メールアドレス", - "agree_to": "アカウントを作成することにより、", - "and": "と", - "enter_code": "コードを入力", - "congratulations": "おめでとうございます!", - "you_now_have_debit_card": "デビットカードができました", - "min_amount": "最小: ${value}", - "max_amount": "最大: ${value}", - "enter_amount": "金額を入力", - "billing_address_info": "請求先住所を尋ねられた場合は、配送先住所を入力してください", - "order_physical_card": "物理カードの注文", - "add_value": "付加価値", - "activate": "アクティブ化", - "get_a": "Get a", - "digital_and_physical_card": "デジタルおよび物理プリペイドデビットカード", - "get_card_note": "デジタル通貨でリロードできます。追加情報は必要ありません!", - "signup_for_card_accept_terms": "カードにサインアップして、利用規約に同意してください。", - "add_fund_to_card": "プリペイド資金をカードに追加します(最大 ${value})", - "use_card_info_two": "デジタル通貨ではなく、プリペイドアカウントで保持されている場合、資金は米ドルに変換されます。", - "use_card_info_three": "デジタルカードをオンラインまたは非接触型決済方法で使用してください。", - "optionally_order_card": "オプションで物理カードを注文します。", - "hide_details": "詳細を非表示", - "show_details": "詳細を表示", - "upto": "up up ${value}", - "discount": "${value}%を節約", - "gift_card_amount": "ギフトカードの金額", - "bill_amount": "請求額", - "you_pay": "あなたが支払う", - "tip": "ヒント: ", - "custom": "カスタム", - "by_cake_pay": "by Cake Pay", - "expires": "Expires", - "mm": "んん", - "yy": "YY", - "online": "オンライン", - "offline": "オフライン", - "gift_card_number": "ギフトカード番号", - "pin_number": "PIN番号", - "total_saving": "合計節約額", - "last_30_days": "過去30日", - "avg_savings": "平均節約額", - "view_all": "すべて表示", - "active_cards": "アクティブカード", - "delete_account": "アカウントの削除", - "cards": "カード", - "active": "アクティブ", - "redeemed": "償還", - "gift_card_balance_note": "残高が残っているギフトカードがここに表示されます", - "gift_card_redeemed_note": "利用したギフトカードがここに表示されます", - "logout": "ログアウト", - "add_tip": "ヒントを追加", - "percentageOf": "of ${amount}", - "is_percentage": "is", - "search_category": "検索カテゴリ", - "mark_as_redeemed": "償還済みとしてマーク", - "more_options": "その他のオプション", - "awaiting_payment_confirmation": "支払い確認を待っています", - "transaction_sent_notice": "1分経っても画面が進まない場合は、ブロックエクスプローラーとメールアドレスを確認してください。", - "agree": "同意する", - "in_store": "インストア", - "generated_gift_card": "ギフトカードの生成", - "payment_was_received": "お支払いを受け取りました。", - "proceed_after_one_minute": "1分経っても画面が進まない場合は、メールを確認してください。", - "order_id": "注文ID", - "gift_card_is_generated": "ギフトカードが生成されます", - "open_gift_card": "オープンギフトカード", - "contact_support": "サポートに連絡する", - "gift_cards_unavailable": "現時点では、ギフトカードはMonero、Bitcoin、Litecoinからのみ購入できます。", - "background_sync_mode": "バックグラウンド同期モード", - "sync_all_wallets": "すべてのウォレットを同期", - "introducing_cake_pay": "序章Cake Pay!", - "cake_pay_learn_more": "アプリですぐにギフトカードを購入して引き換えましょう!\n左から右にスワイプして詳細をご覧ください。", + "authenticated": "認証済み", + "authentication": "認証", + "auto_generate_subaddresses": "Autoはサブアドレスを生成します", "automatic": "自動", - "fixed_pair_not_supported": "この固定ペアは、選択したエクスチェンジではサポートされていません", - "variable_pair_not_supported": "この変数ペアは、選択した取引所ではサポートされていません", - "none_of_selected_providers_can_exchange": "選択したプロバイダーはいずれもこの交換を行うことができません", - "choose_one": "1 つ選択してください", - "choose_from_available_options": "利用可能なオプションから選択してください:", - "custom_redeem_amount": "カスタム交換金額", - "add_custom_redemption": "カスタム引き換えを追加", - "remaining": "残り", - "delete_wallet": "ウォレットを削除", - "delete_wallet_confirm_message": "${wallet_name} ウォレットを削除してもよろしいですか?", - "low_fee": "低料金", - "low_fee_alert": "現在、低ネットワーク料金優先度を使用しています。これにより、長い待ち時間、異なるレート、またはキャンセルされた取引が発生する可能性があります。より良い体験のために、より高い料金を設定することをお勧めします。", - "ignor": "無視", - "use_suggested": "推奨を使用", - "do_not_share_warning_text": "サポートを含め、これらを他の誰とも共有しないでください。\n\nあなたの資金は盗まれる可能性があります!", - "help": "ヘルプ", - "all_transactions": "全取引", - "all_trades": "すべての取引", - "connection_sync": "接続と同期", - "security_and_backup": "セキュリティとバックアップ", - "create_backup": "バックアップを作成", - "privacy_settings": "プライバシー設定", - "privacy": "プライバシー", - "display_settings": "表示設定", - "other_settings": "その他の設定", - "require_pin_after": "後に PIN が必要", - "always": "いつも", - "minutes_to_pin_code": "${minute} 分", - "disable_exchange": "交換を無効にする", - "advanced_settings": "高度な設定", - "settings_can_be_changed_later": "これらの設定は、後でアプリの設定で変更できます", - "add_custom_node": "新しいカスタム ノードを追加", - "disable_fiat": "フィアットを無効にする", - "fiat_api": "不換紙幣 API", - "disabled": "無効", - "enabled": "有効", - "tor_only": "Torのみ", - "unmatched_currencies": "現在のウォレットの通貨がスキャンされたQRの通貨と一致しません", - "orbot_running_alert": "このノードに接続する前に、Orbot が実行されていることを確認してください", - "contact_list_contacts": "連絡先", - "contact_list_wallets": "マイウォレット", - "bitcoin_payments_require_1_confirmation": "ビットコインの支払いには 1 回の確認が必要で、これには 20 分以上かかる場合があります。お待ち頂きまして、ありがとうございます!支払いが確認されると、メールが送信されます。", - "send_to_this_address": "${currency} ${tag}をこのアドレスに送金", - "arrive_in_this_address": "${currency} ${tag}はこの住所に到着します", - "do_not_send": "送信しない", - "error_dialog_content": "エラーが発生しました。\n\nアプリケーションを改善するために、クラッシュ レポートをサポート チームに送信してください。", - "scan_qr_code": "QRコードをスキャン", - "cold_or_recover_wallet": "コールド ウォレットを追加するか、ペーパー ウォレットを復元する", - "please_wait": "お待ちください", - "sweeping_wallet": "スイープウォレット", - "sweeping_wallet_alert": "これには時間がかかりません。この画面から離れないでください。そうしないと、スイープ ファンドが失われる可能性があります", - "decimal_places_error": "小数点以下の桁数が多すぎる", - "edit_node": "ノードを編集", - "invoice_details": "請求の詳細", - "donation_link_details": "寄付リンクの詳細", - "anonpay_description": "${type} を生成します。受取人はサポートされている任意の暗号通貨で ${method} でき、あなたはこのウォレットで資金を受け取ります。", - "create_invoice": "請求書の作成", - "create_donation_link": "寄付リンクを作成", - "optional_email_hint": "オプションの受取人通知メール", - "optional_description": "オプションの説明", - "optional_name": "オプションの受信者名", - "clearnet_link": "クリアネット リンク", - "onion_link": "オニオンリンク", - "settings": "設定", - "sell_monero_com_alert_content": "モネロの販売はまだサポートされていません", - "error_text_input_below_minimum_limit": "金額は最小額より少ない", - "error_text_input_above_maximum_limit": "金額は最大値を超えています", - "show_market_place": "マーケットプレイスを表示", - "prevent_screenshots": "スクリーンショットと画面録画を防止する", - "profile": "プロフィール", - "close": "近い", - "modify_2fa": "ケーキの 2FA を変更する", - "disable_cake_2fa": "Cake 2FA を無効にする", - "question_to_disable_2fa": "Cake 2FA を無効にしてもよろしいですか?ウォレットと特定の機能にアクセスするために 2FA コードは必要なくなります。", - "disable": "無効にする", - "setup_2fa": "セットアップ ケーキ 2FA", - "verify_with_2fa": "Cake 2FA で検証する", - "totp_code": "TOTP コード", - "please_fill_totp": "他のデバイスにある 8 桁のコードを入力してください", - "totp_2fa_success": "成功!このウォレットでは Cake 2FA が有効になっています。ウォレットへのアクセスを失った場合に備えて、ニーモニック シードを忘れずに保存してください。", - "totp_verification_success": "検証成功!", - "totp_2fa_failure": "コードが正しくありません。 別のコードを試すか、新しい秘密鍵を生成してください。 8 桁のコードと SHA512 をサポートする互換性のある 2FA アプリを使用してください。", - "enter_totp_code": "TOTPコードを入力してください。", - "add_secret_code": "または、このシークレット コードを認証アプリに追加します", - "totp_secret_code": "TOTPシークレットコード", - "setup_2fa_text": "Cake 2FA は、TOTP を 2 番目の認証要素として使用して機能します。\n\nCake 2FA の TOTP には SHA-512 と 8 桁のサポートが必要です。これによりセキュリティが強化されます。詳細とサポートされているアプリについてはガイドをご覧ください。", - "setup_totp_recommended": "TOTPのセットアップ", - "disable_buy": "購入アクションを無効にする", - "disable_sell": "販売アクションを無効にする", - "cake_2fa_preset": "ケーキ 2FA プリセット", - "narrow": "狭い", - "normal": "普通", - "aggressive": "熱心すぎる", - "require_for_assessing_wallet": "ウォレットにアクセスするために必要です", - "require_for_sends_to_non_contacts": "非連絡先への送信に必須", - "require_for_sends_to_contacts": "連絡先に送信する場合に必須", - "require_for_sends_to_internal_wallets": "内部ウォレットへの送信に必須", - "require_for_exchanges_to_internal_wallets": "内部ウォレットへの交換に必要", - "require_for_adding_contacts": "連絡先の追加に必要", - "require_for_creating_new_wallets": "新しいウォレットを作成するために必要です", - "require_for_all_security_and_backup_settings": "すべてのセキュリティおよびバックアップ設定に必須", + "available_balance": "利用可能残高", "available_balance_description": "利用可能な残高は、ウォレットの残高から冷凍残高を差し引いたものです。", - "syncing_wallet_alert_title": "ウォレットは同期中です", - "syncing_wallet_alert_content": "上部に「同期済み」と表示されるまで、残高と取引リストが完了していない可能性があります。詳細については、クリック/タップしてください。", - "home_screen_settings": "ホーム画面の設定", - "sort_by": "並び替え", - "search_add_token": "トークンの検索/追加", - "edit_token": "トークンの編集", - "warning": "警告", - "add_token_warning": "詐欺師の指示に従ってトークンを編集または追加しないでください。\nトークン アドレスは常に信頼できる情報源で確認してください。", - "add_token_disclaimer_check": "信頼できる情報源を使用して、トークン コントラクトのアドレスと情報を確認しました。 悪意のある情報や不正確な情報を追加すると、資金が失われる可能性があります。", - "token_contract_address": "トークンコントラクトアドレス", - "token_name": "トークン名 例: Tether", - "token_symbol": "トークンシンボル 例: USDT", - "token_decimal": "トークン10進数", - "field_required": "この項目は必須です", - "pin_at_top": "${token} を上部に固定します", - "invalid_input": "無効入力", - "fiat_balance": "フィアットバランス", - "gross_balance": "グロス残高", - "alphabetical": "アルファベット順", - "generate_name": "名前の生成", + "avg_savings": "平均節約額", + "awaitDAppProcessing": "dAppの処理が完了するまでお待ちください。", + "awaiting_payment_confirmation": "支払い確認を待っています", + "background_sync_mode": "バックグラウンド同期モード", + "backup": "バックアップ", + "backup_file": "バックアップファイル", + "backup_password": "バックアップパスワード", "balance_page": "残高ページ", - "share": "共有", - "slidable": "スライド可能", - "monero_dark_theme": "モネロダークテーマ", + "bill_amount": "請求額", + "billing_address_info": "請求先住所を尋ねられた場合は、配送先住所を入力してください", + "biometric_auth_reason": "प指紋をスキャンして認証する", "bitcoin_dark_theme": "ビットコインダークテーマ", "bitcoin_light_theme": "ビットコインライトテーマ", - "high_contrast_theme": "ハイコントラストテーマ", - "matrix_green_dark_theme": "マトリックスグリーンダークテーマ", - "monero_light_theme": "モネロ ライト テーマ", - "manage_nodes": "ノードの管理", - "etherscan_history": "イーサスキャンの歴史", - "template_name": "テンプレート名", + "bitcoin_payments_require_1_confirmation": "ビットコインの支払いには 1 回の確認が必要で、これには 20 分以上かかる場合があります。お待ち頂きまして、ありがとうございます!支払いが確認されると、メールが送信されます。", + "Blocks_remaining": "${status} 残りのブロック", + "bright_theme": "明るい", + "buy": "購入", + "buy_alert_content": "現在、ビットコイン、イーサリアム、ライトコイン、モネロの購入のみをサポートしています。ビットコイン、イーサリアム、ライトコイン、またはモネロのウォレットを作成するか、これらのウォレットに切り替えてください。", + "buy_bitcoin": "ビットコインを購入する", + "buy_provider_unavailable": "現在、プロバイダーは利用できません。", + "buy_with": "で購入", + "by_cake_pay": "by Cake Pay", + "cake_2fa_preset": "ケーキ 2FA プリセット", + "cake_pay_account_note": "メールアドレスだけでサインアップして、カードを表示して購入できます。割引価格で利用できるカードもあります!", + "cake_pay_learn_more": "アプリですぐにギフトカードを購入して引き換えましょう!\n左から右にスワイプして詳細をご覧ください。", + "cake_pay_subtitle": "割引ギフトカードを購入する (米国のみ)", + "cake_pay_title": "ケーキペイギフトカード", + "cake_pay_web_cards_subtitle": "世界中のプリペイド カードとギフト カードを購入する", + "cake_pay_web_cards_title": "Cake Pay ウェブカード", + "cake_wallet": "Cake Wallet", + "cakepay_prepaid_card": "CakePayプリペイドデビットカード", + "camera_consent": "あなたのカメラは、${provider}_ までに識別目的で画像を撮影するために使用されます。詳細については、プライバシー ポリシーをご確認ください。", + "camera_permission_is_required": "カメラの許可が必要です。\nアプリの設定から有効にしてください。", + "cancel": "キャンセル", + "card_address": "住所:", + "cardholder_agreement": "カード所有者契約", + "cards": "カード", + "chains": "チェーン", + "change": "変化する", + "change_backup_password_alert": "以前のバックアップファイルは、新しいバックアップパスワードでインポートできなくなります。 新しいバックアップパスワードは、新しいバックアップファイルにのみ使用されます。 バックアップパスワードを変更してもよろしいですか?", + "change_currency": "通貨を変更する", + "change_current_node": "現在のノードを変更してよろしいですか ${node}?", + "change_current_node_title": "現在のノードを変更する", + "change_exchange_provider": "Exchangeプロバイダーの変更", + "change_language": "言語を変えてください", + "change_language_to": "言語を変更 ${language}?", + "change_password": "パスワードを変更する", "change_rep": "代表者の変更", "change_rep_message": "代表者を変更してもよろしいですか?", - "unsupported_asset": "このアセットに対するこのアクションはサポートされていません。サポートされているアセットタイプのウォレットを作成するか、ウォレットに切り替えてください。", - "manage_pow_nodes": "PoWノードの管理", - "support_title_live_chat": "ライブサポート", - "support_description_live_chat": "無料で速い!訓練されたサポート担当者が支援することができます", - "support_title_guides": "ケーキウォレットガイド", - "support_description_guides": "一般的な問題のドキュメントとサポート", - "support_title_other_links": "その他のサポートリンク", - "support_description_other_links": "私たちのコミュニティに参加するか、他の方法を通して私たちのパートナーに連絡してください", + "change_rep_successful": "代表者の変更に成功しました", + "change_wallet_alert_content": "現在のウォレットをに変更しますか ${wallet_name}?", + "change_wallet_alert_title": "現在のウォレットを変更する", + "choose_account": "アカウントを選択", + "choose_address": "\n\n住所を選択してください:", "choose_derivation": "ウォレット派生を選択します", - "new_first_wallet_text": "暗号通貨を簡単に安全に保ちます", - "select_destination": "バックアップファイルの保存先を選択してください。", - "auto_generate_subaddresses": "Autoはサブアドレスを生成します", - "save_to_downloads": "ダウンロードに保存", - "select_buy_provider_notice": "上記の購入プロバイダーを選択してください。デフォルトの購入プロバイダーをアプリ設定で設定して、この画面をスキップできます。", - "onramper_option_description": "多くの支払い方法で暗号をすばやく購入してください。ほとんどの国で利用可能です。スプレッドと料金は異なります。", + "choose_from_available_options": "利用可能なオプションから選択してください:", + "choose_one": "1 つ選択してください", + "choose_relay": "使用するリレーを選択してください", + "choose_wallet_currency": "ウォレット通貨を選択してください:", + "clear": "クリア", + "clearnet_link": "クリアネット リンク", + "close": "近い", + "coin_control": "コインコントロール(オプション)", + "cold_or_recover_wallet": "コールド ウォレットを追加するか、ペーパー ウォレットを復元する", + "color_theme": "カラーテーマ", + "commit_transaction_amount_fee": "トランザクションをコミット\n量: ${amount}\n費用: ${fee}", + "confirm": "確認する", + "confirm_delete_template": "この操作により、このテンプレートが削除されます。 続行しますか?", + "confirm_delete_wallet": "このアクションにより、このウォレットが削除されます。 続行しますか?", + "confirm_sending": "送信を確認", + "confirmations": "確認", + "confirmed": "確認済み残高", + "confirmed_tx": "確認済み", + "congratulations": "おめでとうございます!", + "connect_an_existing_yat": "既存のYatを接続します", + "connect_yats": "Yatsを接続します", + "connection_sync": "接続と同期", + "connectWalletPrompt": "ウォレットを WalletConnect に接続して取引を行う", + "contact": "接触", + "contact_list_contacts": "連絡先", + "contact_list_wallets": "マイウォレット", + "contact_name": "連絡先", + "contact_support": "サポートに連絡する", + "continue_text": "持続する", + "contractName": "契約名", + "contractSymbol": "契約記号", + "copied_key_to_clipboard": "コピー済み ${key} クリップボードへ", + "copied_to_clipboard": "クリップボードにコピーしました", + "copy": "コピー", + "copy_address": "住所をコピー", + "copy_id": "IDをコピー", + "copyWalletConnectLink": "dApp から WalletConnect リンクをコピーし、ここに貼り付けます", + "create_account": "アカウントの作成", + "create_backup": "バックアップを作成", + "create_donation_link": "寄付リンクを作成", + "create_invoice": "請求書の作成", + "create_new": "新しいウォレットを作成", + "create_new_account": "新しいアカウントを作成する", + "creating_new_wallet": "新しいウォレットの作成", + "creating_new_wallet_error": "エラー: ${description}", + "creation_date": "作成日", + "custom": "カスタム", + "custom_drag": "カスタム(ホールドとドラッグ)", + "custom_redeem_amount": "カスタム交換金額", + "dark_theme": "闇", + "debit_card": "デビットカード", + "debit_card_terms": "このデジタルウォレットでの支払いカード番号(および支払いカード番号に対応する資格情報)の保存と使用には、支払いカード発行者との該当するカード所有者契約の利用規約が適用されます。時々。", + "decimal_places_error": "小数点以下の桁数が多すぎる", "default_buy_provider": "デフォルトの購入プロバイダー", - "ask_each_time": "毎回尋ねてください", - "buy_provider_unavailable": "現在、プロバイダーは利用できません。", - "signTransaction": "トランザクションに署名する", + "default_sell_provider": "デフォルトの販売プロバイダー", + "delete": "削除する", + "delete_account": "アカウントの削除", + "delete_wallet": "ウォレットを削除", + "delete_wallet_confirm_message": "${wallet_name} ウォレットを削除してもよろしいですか?", + "deleteConnectionConfirmationPrompt": "への接続を削除してもよろしいですか?", + "descending": "下降", + "description": "説明", + "destination_tag": "宛先タグ:", + "dfx_option_description": "EUR と CHF で暗号通貨を購入します。追加のKYCなしで最大990ユーロ。ヨーロッパの小売および法人顧客向け", + "didnt_get_code": "コードを取得しませんか?", + "digit_pin": "桁ピン", + "digital_and_physical_card": "デジタルおよび物理プリペイドデビットカード", + "disable": "無効にする", + "disable_buy": "購入アクションを無効にする", + "disable_cake_2fa": "Cake 2FA を無効にする", + "disable_exchange": "交換を無効にする", + "disable_fiat": "フィアットを無効にする", + "disable_sell": "販売アクションを無効にする", + "disabled": "無効", + "discount": "${value}%を節約", + "display_settings": "表示設定", + "displayable": "表示可能", + "do_not_have_enough_gas_asset": "現在のブロックチェーン ネットワークの状況では、トランザクションを行うのに十分な ${currency} がありません。別のアセットを送信する場合でも、ブロックチェーン ネットワーク料金を支払うにはさらに ${currency} が必要です。", + "do_not_send": "送信しない", + "do_not_share_warning_text": "サポートを含め、これらを他の誰とも共有しないでください。\n\nあなたの資金は盗まれる可能性があります!", + "do_not_show_me": "また僕にこれを見せないでください", + "domain_looks_up": "ドメイン検索", + "donation_link_details": "寄付リンクの詳細", + "e_sign_consent": "電子署名の同意", + "edit": "編集", + "edit_backup_password": "バックアップパスワードの編集", + "edit_node": "ノードを編集", + "edit_token": "トークンの編集", + "electrum_address_disclaimer": "使用するたびに新しいアドレスが生成されますが、以前のアドレスは引き続き機能します", + "email_address": "メールアドレス", + "enabled": "有効", + "enter_amount": "金額を入力", + "enter_backup_password": "ここにバックアップパスワードを入力してください", + "enter_code": "コードを入力", + "enter_seed_phrase": "シードフレーズを入力してください", + "enter_totp_code": "TOTPコードを入力してください。", + "enter_your_note": "メモを入力してください…", + "enter_your_pin": "PINを入力してください", + "enter_your_pin_again": "ピンをもう一度入力してください", + "enterTokenID": "トークンIDを入力してください", + "enterWalletConnectURI": "WalletConnect URI を入力してください", + "error": "エラー", + "error_dialog_content": "エラーが発生しました。\n\nアプリケーションを改善するために、クラッシュ レポートをサポート チームに送信してください。", + "error_text_account_name": "アカウント名には文字のみを含めることができます \n1〜15文字である必要があります", + "error_text_address": "ウォレットアドレスは、\n暗号通貨", + "error_text_amount": "金額には数字のみを含めることができます", + "error_text_contact_name": "連絡先名に含めることはできません ` , ' \" シンボル\n長さは1〜32文字でなければなりません", + "error_text_crypto_currency": "小数桁数\n12以下でなければなりません", + "error_text_fiat": "金額は利用可能な残高を超えることはできません.\n小数桁の数は2以下でなければなりません", + "error_text_input_above_maximum_limit": "金額は最大値を超えています", + "error_text_input_below_minimum_limit": "金額は最小額より少ない", + "error_text_keys": "ウォレットキーには、16進数で64文字しか含めることができません", + "error_text_limits_loading_failed": "${provider} の取引は作成されません。 制限の読み込みに失敗しました", + "error_text_maximum_limit": "${provider} の取引は作成されません。 金額は最大値を超えています: ${max} ${currency}", + "error_text_minimal_limit": "${provider} の取引は作成されません。 金額は最小額より少ない: ${min} ${currency}", + "error_text_node_address": "iPv4アドレスを入力してください", + "error_text_node_port": "ノードポートには、0〜65535の数字のみを含めることができます", + "error_text_node_proxy_address": ":<ポート> を入力してください (例: 127.0.0.1:9050)", + "error_text_payment_id": "支払いIDには、16進数で16〜64文字しか含めることができません", + "error_text_subaddress_name": "サブアドレス名に含めることはできません` , ' \" シンボル\n1〜20文字の長さである必要があります", + "error_text_template": "テンプレートの名前とアドレスに含めることはできません ` , ' \" シンボル\n1〜106文字の長さである必要があります", + "error_text_wallet_name": "ウォレット名には、文字、数字、_-記号のみを含めることができます\n長さは1〜33文字である必要があります", + "error_text_xmr": "XMR値は利用可能な残高を超えることはできません.\n小数桁数は12以下でなければなりません", "errorGettingCredentials": "失敗: 認証情報の取得中にエラーが発生しました", "errorSigningTransaction": "トランザクションの署名中にエラーが発生しました", - "pairingInvalidEvent": "ペアリング無効イベント", - "chains": "チェーン", - "methods": "メソッド", - "events": "イベント", - "reject": "拒否する", - "approve": "承認する", - "expiresOn": "有効期限は次のとおりです", - "walletConnect": "ウォレットコネクト", - "nullURIError": "URIがnullです", - "connectWalletPrompt": "ウォレットを WalletConnect に接続して取引を行う", - "newConnection": "新しい接続", - "activeConnectionsPrompt": "アクティブな接続がここに表示されます", - "deleteConnectionConfirmationPrompt": "への接続を削除してもよろしいですか?", + "estimated": "推定", + "etherscan_history": "イーサスキャンの歴史", "event": "イベント", - "successful": "成功", - "wouoldLikeToConnect": "接続したいです", - "message": "メッセージ", - "do_not_have_enough_gas_asset": "現在のブロックチェーン ネットワークの状況では、トランザクションを行うのに十分な ${currency} がありません。別のアセットを送信する場合でも、ブロックチェーン ネットワーク料金を支払うにはさらに ${currency} が必要です。", - "totp_auth_url": "TOTP認証URL", - "awaitDAppProcessing": "dAppの処理が完了するまでお待ちください。", - "copyWalletConnectLink": "dApp から WalletConnect リンクをコピーし、ここに貼り付けます", - "enterWalletConnectURI": "WalletConnect URI を入力してください", - "seed_key": "シードキー", - "enter_seed_phrase": "シードフレーズを入力してください", - "change_rep_successful": "代表者の変更に成功しました", - "add_contact": "連絡先を追加", + "events": "イベント", + "exchange": "交換する", + "exchange_incorrect_current_wallet_for_xmr": "Cake Wallet Moneroの残高からXMRを交換する場合は、最初にMoneroウォレットに切り替えてください。", + "exchange_new_template": "新しいテンプレート", "exchange_provider_unsupported": "${providerName}はサポートされなくなりました!", - "domain_looks_up": "ドメイン検索", - "require_for_exchanges_to_external_wallets": "外部ウォレットへの交換に必要", - "camera_permission_is_required": "カメラの許可が必要です。\nアプリの設定から有効にしてください。", - "switchToETHWallet": "イーサリアムウォレットに切り替えてもう一度お試しください", - "order_by": "注文", - "creation_date": "作成日", + "exchange_result_confirm": "確認を押すと、送信されます ${fetchingLabel} ${from} と呼ばれるあなたの財布から ${walletName} 下記の住所へ。 または、外部ウォレットから以下のアドレスに送信することもできます/ QRコードに送信できます.\n\n確認を押して続行するか、戻って金額を変更してください.", + "exchange_result_description": "次のページに示されているアドレスに最低 ${fetchingLabel} ${from} を送信する必要があります。 ${fetchingLabel} ${from} 未満の金額を送信すると、変換されず、返金されない場合があります。", + "exchange_result_write_down_ID": "*上記のIDをコピーまたは書き留めてください.", + "exchange_result_write_down_trade_id": "続行するには、取引IDをコピーまたは書き留めてください.", + "exchange_sync_alert_content": "ウォレットが同期されるまでお待ちください", + "expired": "期限切れ", + "expires": "Expires", + "expiresOn": "有効期限は次のとおりです", + "export_backup": "バックアップのエクスポート", + "extra_id": "追加ID:", + "extracted_address_content": "に送金します\n${recipient_name}", + "failed_authentication": "認証失敗. ${state_error}", + "faq": "FAQ", + "fetching": "フェッチング", + "fiat_api": "不換紙幣 API", + "fiat_balance": "フィアットバランス", + "field_required": "この項目は必須です", + "fill_code": "メールアドレスに記載されている確認コードを入力してください", + "filter_by": "でフィルタリング", + "first_wallet_text": "Monero、Bitcoin、Ethereum、Litecoin、Haven用の素晴らしいウォレット", + "fixed_pair_not_supported": "この固定ペアは、選択したエクスチェンジではサポートされていません", + "fixed_rate": "固定金利", + "fixed_rate_alert": "固定金利モードにチェックを入れると、受取額を入力できるようになります。 固定金利モードに切り替えますか?", + "forgot_password": "パスワードを忘れた", + "freeze": "氷結", + "frequently_asked_questions": "よくある質問", + "frozen": "凍った", + "full_balance": "フルバランス", + "generate_name": "名前の生成", + "generated_gift_card": "ギフトカードの生成", + "get_a": "Get a", + "get_card_note": "デジタル通貨でリロードできます。追加情報は必要ありません!", + "get_your_yat": "あなたのYatを入手してください", + "gift_card_amount": "ギフトカードの金額", + "gift_card_balance_note": "残高が残っているギフトカードがここに表示されます", + "gift_card_is_generated": "ギフトカードが生成されます", + "gift_card_number": "ギフトカード番号", + "gift_card_redeemed_note": "利用したギフトカードがここに表示されます", + "gift_cards": "ギフトカード", + "gift_cards_unavailable": "現時点では、ギフトカードはMonero、Bitcoin、Litecoinからのみ購入できます。", + "got_it": "とった", + "gross_balance": "グロス残高", "group_by_type": "タイプごとにグループ", - "importNFTs": "NFTのインポート", - "noNFTYet": "NFTはまだありません", - "address": "住所", - "enterTokenID": "トークンIDを入力してください", - "tokenID": "ID", - "name": "名前", - "symbol": "シンボル", - "seed_phrase_length": "シードフレーズの長さ", - "unavailable_balance": "利用できない残高", - "unavailable_balance_description": "利用不可能な残高: この合計には、保留中のトランザクションにロックされている資金と、コイン管理設定でアクティブに凍結した資金が含まれます。ロックされた残高は、それぞれの取引が完了すると利用可能になりますが、凍結された残高は、凍結を解除するまで取引にアクセスできません。", - "unspent_change": "変化", - "tor_connection": "Tor接続", - "setup_warning_2fa_text": "Cake 2FA は、ウォレット内の特定のアクションに対する 2 番目の認証です。冷蔵保存ほど安全ではありません。\n\n2FA アプリまたは TOTP キーにアクセスできなくなると、このウォレットにもアクセスできなくなります。ニーモニックシードからウォレットを復元する必要があります。\n\n2FA またはニーモニック シードにアクセスできなくなった場合、Cake サポートはサポートできません。\nCake 2FA を使用する前に、ガイドを一読することをお勧めします。", - "scan_qr_on_device": "別のデバイスでこの QR コードをスキャンします", + "haven_app": "Haven by Cake Wallet", + "haven_app_wallet_text": "Awesome wallet for Haven", + "help": "ヘルプ", + "hidden_balance": "隠れたバランス", + "hide_details": "詳細を非表示", + "high_contrast_theme": "ハイコントラストテーマ", + "home_screen_settings": "ホーム画面の設定", "how_to_use": "使い方", + "how_to_use_card": "このカードの使用方法", + "id": "ID: ", + "ignor": "無視", + "import": "輸入", + "importNFTs": "NFTのインポート", + "in_store": "インストア", + "incoming": "着信", + "incorrect_seed": "入力されたテキストは無効です。", + "introducing_cake_pay": "序章Cake Pay!", + "invalid_input": "無効入力", + "invoice_details": "請求の詳細", + "is_percentage": "is", + "last_30_days": "過去30日", + "learn_more": "もっと詳しく知る", + "light_theme": "光", + "loading_your_wallet": "ウォレットをロードしています", + "login": "ログイン", + "logout": "ログアウト", + "low_fee": "低料金", + "low_fee_alert": "現在、低ネットワーク料金優先度を使用しています。これにより、長い待ち時間、異なるレート、またはキャンセルされた取引が発生する可能性があります。より良い体験のために、より高い料金を設定することをお勧めします。", + "manage_nodes": "ノードの管理", + "manage_pow_nodes": "PoWノードの管理", + "manage_yats": "Yatsを管理する", + "mark_as_redeemed": "償還済みとしてマーク", + "market_place": "Marketplace", + "matrix_green_dark_theme": "マトリックスグリーンダークテーマ", + "max_amount": "最大: ${value}", + "max_value": "マックス: ${value} ${currency}", + "memo": "メモ:", + "message": "メッセージ", + "methods": "メソッド", + "min_amount": "最小: ${value}", + "min_value": "分: ${value} ${currency}", + "minutes_to_pin_code": "${minute} 分", + "mm": "んん", + "modify_2fa": "ケーキの 2FA を変更する", + "monero_com": "Monero.com by Cake Wallet", + "monero_com_wallet_text": "Awesome wallet for Monero", + "monero_dark_theme": "モネロダークテーマ", + "monero_light_theme": "モネロ ライト テーマ", + "moonpay_alert_text": "金額の値は以上でなければなりません ${minAmount} ${fiatCurrency}", + "more_options": "その他のオプション", + "name": "名前", + "narrow": "狭い", + "new_first_wallet_text": "暗号通貨を簡単に安全に保ちます", + "new_node_testing": "新しいノードのテスト", + "new_subaddress_create": "作成する", + "new_subaddress_label_name": "ラベル名", + "new_subaddress_title": "新しいアドレス", + "new_template": "新しいテンプレート", + "new_wallet": "新しいウォレット", + "newConnection": "新しい接続", + "no_id_needed": "IDは必要ありません!", + "no_id_required": "IDは必要ありません。どこにでも補充して使用できます", + "no_relay_on_domain": "ユーザーのドメインのリレーが存在しないか、リレーが使用できません。使用するリレーを選択してください。", + "no_relays": "リレーなし", + "no_relays_message": "このユーザーの Nostr NIP-05 レコードが見つかりましたが、リレーは含まれていません。受信者に Nostr レコードにリレーを追加するよう指示してください。", + "node_address": "ノードアドレス", + "node_connection_failed": "接続に失敗しました", + "node_connection_successful": "接続に成功しました", + "node_new": "新しいノード", + "node_port": "ノードポート", + "node_reset_settings_title": "設定をリセット", + "node_test": "テスト", + "nodes": "ノード", + "nodes_list_reset_to_default_message": "設定をデフォルトにリセットしてもよろしいですか?", + "none_of_selected_providers_can_exchange": "選択したプロバイダーはいずれもこの交換を行うことができません", + "noNFTYet": "NFTはまだありません", + "normal": "普通", + "note_optional": "注(オプション)", + "note_tap_to_change": "注(タップして変更)", + "nullURIError": "URIがnullです", + "offer_expires_in": "で有効期限が切れます: ", + "offline": "オフライン", + "ok": "OK", + "onion_link": "オニオンリンク", + "online": "オンライン", + "onramper_option_description": "多くの支払い方法で暗号をすばやく購入してください。ほとんどの国で利用可能です。スプレッドと料金は異なります。", + "open_gift_card": "オープンギフトカード", + "optional_description": "オプションの説明", + "optional_email_hint": "オプションの受取人通知メール", + "optional_name": "オプションの受信者名", + "optionally_order_card": "オプションで物理カードを注文します。", + "orbot_running_alert": "このノードに接続する前に、Orbot が実行されていることを確認してください", + "order_by": "注文", + "order_id": "注文ID", + "order_physical_card": "物理カードの注文", + "other_settings": "その他の設定", + "outdated_electrum_wallet_description": "Cakeで作成された新しいビットコインウォレットには、24ワードのシードがあります。 新しいビットコインウォレットを作成し、すべての資金を新しい24ワードのウォレットに転送し、12ワードのシードを持つウォレットの使用を停止することが必須です。 あなたの資金を確保するためにこれをすぐに行ってください。", + "outdated_electrum_wallet_receive_warning": "このウォレットに 12 ワードのシードがあり、Cake で作成された場合、このウォレットにビットコインを入金しないでください。 このウォレットに転送された BTC は失われる可能性があります。 新しい 24 ワードのウォレットを作成し (右上のメニューをタップし、[ウォレット]、[新しいウォレットの作成]、[ビットコイン] の順に選択)、すぐに BTC をそこに移動します。 Cake の新しい (24 ワード) BTC ウォレットは安全です", + "outgoing": "発信", + "overwrite_amount": "Overwrite amount", + "pairingInvalidEvent": "ペアリング無効イベント", + "password": "パスワード", + "paste": "ペースト", + "pause_wallet_creation": "Haven Wallet を作成する機能は現在一時停止されています。", + "payment_id": "支払いID: ", + "payment_was_received": "お支払いを受け取りました。", + "pending": " (保留中)", + "percentageOf": "of ${amount}", + "pin_at_top": "${token} を上部に固定します", + "pin_is_incorrect": "PINが間違っています", + "pin_number": "PIN番号", + "placeholder_contacts": "連絡先はここに表示されます", + "placeholder_transactions": "あなたの取引はここに表示されます", + "please_fill_totp": "他のデバイスにある 8 桁のコードを入力してください", + "please_make_selection": "以下を選択してください ウォレットを作成または回復する.", + "please_reference_document": "詳細については、以下のドキュメントを参照してください。", + "please_select": "選んでください:", + "please_select_backup_file": "バックアップファイルを選択し、バックアップパスワードを入力してください。", + "please_try_to_connect_to_another_node": "別のノードに接続してみてください", + "please_wait": "お待ちください", + "polygonscan_history": "ポリゴンスキャン履歴", + "powered_by": "搭載 ${title}", + "pre_seed_button_text": "わかります。 種を見せて", + "pre_seed_description": "次のページでは、一連の${words}語が表示されます。 これはあなたのユニークでプライベートなシードであり、紛失や誤動作が発生した場合にウォレットを回復する唯一の方法です。 それを書き留めて、Cake Wallet アプリの外の安全な場所に保管するのはあなたの責任です。", + "pre_seed_title": "重要", + "prevent_screenshots": "スクリーンショットと画面録画を防止する", + "privacy": "プライバシー", + "privacy_policy": "プライバシーポリシー", + "privacy_settings": "プライバシー設定", + "private_key": "秘密鍵", + "proceed_after_one_minute": "1分経っても画面が進まない場合は、メールを確認してください。", + "profile": "プロフィール", + "provider_error": "${provider} エラー", + "public_key": "公開鍵", + "purchase_gift_card": "ギフトカードを購入", + "qr_fullscreen": "タップして全画面QRコードを開く", + "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", + "question_to_disable_2fa": "Cake 2FA を無効にしてもよろしいですか?ウォレットと特定の機能にアクセスするために 2FA コードは必要なくなります。", + "receivable_balance": "売掛金残高", + "receive": "受け取る", + "receive_amount": "量", + "received": "受け取った", + "recipient_address": "受信者のアドレス", + "reconnect": "再接続", + "reconnect_alert_text": "再接続しますか?", + "reconnection": "再接続", + "redeemed": "償還", + "refund_address": "払い戻し住所", + "reject": "拒否する", + "remaining": "残り", + "remove": "削除する", + "remove_node": "ノードを削除", + "remove_node_message": "選択したノードを削除してもよろしいですか?", + "rename": "リネーム", + "require_for_adding_contacts": "連絡先の追加に必要", + "require_for_all_security_and_backup_settings": "すべてのセキュリティおよびバックアップ設定に必須", + "require_for_assessing_wallet": "ウォレットにアクセスするために必要です", + "require_for_creating_new_wallets": "新しいウォレットを作成するために必要です", + "require_for_exchanges_to_external_wallets": "外部ウォレットへの交換に必要", + "require_for_exchanges_to_internal_wallets": "内部ウォレットへの交換に必要", + "require_for_sends_to_contacts": "連絡先に送信する場合に必須", + "require_for_sends_to_internal_wallets": "内部ウォレットへの送信に必須", + "require_for_sends_to_non_contacts": "非連絡先への送信に必須", + "require_pin_after": "後に PIN が必要", + "rescan": "再スキャン", + "resend_code": "再送してください", + "reset": "リセットする", + "reset_password": "パスワードのリセット", + "restore_active_seed": "アクティブシード", + "restore_address": "住所", + "restore_bitcoin_description_from_keys": "秘密鍵から生成されたWIF文字列からウォレットを復元します", + "restore_bitcoin_description_from_seed": "24ワードの組み合わせコードからウォレットを復元する", + "restore_bitcoin_title_from_keys": "WIFから復元", + "restore_description_from_backup": "Cake Walletアプリ全体を復元できますバックアップファイル", + "restore_description_from_keys": "生成されたウォレットを復元します秘密鍵から保存されたキーストローク", + "restore_description_from_seed": "25ワードからウォレットを復元しますまたは13ワードの組み合わせコード", + "restore_description_from_seed_keys": "安全な場所に保存したシード/キーから財布を取り戻す", + "restore_from_date_or_blockheight": "このウォレットを作成する数日前に日付を入力してください。 または、ブロックの高さがわかっている場合は、代わりに入力してください", + "restore_from_seed_placeholder": "ここにコードフレーズを入力または貼り付けてください", + "restore_new_seed": "新しい種", + "restore_next": "次", + "restore_recover": "回復します", + "restore_restore_wallet": "ウォレットを復元", + "restore_seed_keys_restore": "シード/キーの復元", + "restore_spend_key_private": "キーを使う (プライベート)", + "restore_title_from_backup": "バックアップファイルから復元する", + "restore_title_from_keys": "キーから復元する", + "restore_title_from_seed": "シードから復元", + "restore_title_from_seed_keys": "シード/キーから復元", + "restore_view_key_private": "ビューキー (プライベート)", + "restore_wallet": "ウォレットを復元", + "restore_wallet_name": "ウォレット名", + "restore_wallet_restore_description": "ウォレットの復元", + "router_no_route": "ルートが定義されていません ${name}", + "save": "セーブ", + "save_backup_password": "バックアップパスワードが保存されていることを確認してください。 それなしではバックアップファイルをインポートすることはできません。", + "save_backup_password_alert": "バックアップパスワードを保存する", + "save_to_downloads": "ダウンロードに保存", + "saved_the_trade_id": "取引IDを保存しました", + "scan_qr_code": "QRコードをスキャン", + "scan_qr_code_to_get_address": "QRコードをスキャンして住所を取得します", + "scan_qr_on_device": "別のデバイスでこの QR コードをスキャンします", + "search": "検索", + "search_add_token": "トークンの検索/追加", + "search_category": "検索カテゴリ", + "search_currency": "検索通貨", + "search_language": "検索言語", + "second_intro_content": "Yatは、すべての通貨のすべての長い16進アドレスを置き換える単一の一意の絵文字アドレスです。", + "second_intro_title": "それらすべてを支配する1つの絵文字アドレス", + "security_and_backup": "セキュリティとバックアップ", + "seed_alert_back": "戻る", + "seed_alert_content": "種子はあなたの財布を回復する唯一の方法です。 書き留めましたか?", + "seed_alert_title": "注意", + "seed_alert_yes": "はい、あります", + "seed_choose": "シード言語を選択してください", "seed_hex_form": "ウォレットシード(ヘックスフォーム)", + "seed_key": "シードキー", + "seed_language": "シード言語", + "seed_language_chinese": "中国語", + "seed_language_chinese_traditional": "中国の伝統的な)", + "seed_language_czech": "チェコ", + "seed_language_dutch": "オランダの", + "seed_language_english": "英語", + "seed_language_french": "フランス語", + "seed_language_german": "ドイツ人", + "seed_language_italian": "イタリア語", + "seed_language_japanese": "日本語", + "seed_language_korean": "韓国語", + "seed_language_next": "次", + "seed_language_portuguese": "ポルトガル語", + "seed_language_russian": "ロシア", + "seed_language_spanish": "スペイン語", + "seed_phrase_length": "シードフレーズの長さ", + "seed_reminder": "スマートフォンを紛失したりワイプした場合に備えて、これらを書き留めてください", + "seed_share": "シードを共有する", + "seed_title": "シード", "seedtype": "SeedType", "seedtype_legacy": "レガシー(25語)", "seedtype_polyseed": "ポリシード(16語)", - "seed_language_czech": "チェコ", - "seed_language_korean": "韓国語", - "seed_language_chinese_traditional": "中国の伝統的な)", - "ascending": "上昇", - "descending": "下降", - "dfx_option_description": "EUR と CHF で暗号通貨を購入します。追加のKYCなしで最大990ユーロ。ヨーロッパの小売および法人顧客向け", - "polygonscan_history": "ポリゴンスキャン履歴", - "wallet_seed_legacy": "レガシーウォレットシード", - "default_sell_provider": "デフォルトの販売プロバイダー", + "select_backup_file": "バックアップファイルを選択", + "select_buy_provider_notice": "上記の購入プロバイダーを選択してください。デフォルトの購入プロバイダーをアプリ設定で設定して、この画面をスキップできます。", + "select_destination": "バックアップファイルの保存先を選択してください。", "select_sell_provider_notice": "上記の販売プロバイダーを選択してください。アプリ設定でデフォルトの販売プロバイダーを設定することで、この画面をスキップできます。", - "custom_drag": "カスタム(ホールドとドラッグ)", + "sell": "売る", + "sell_alert_content": "現在、ビットコイン、イーサリアム、ライトコインの販売のみをサポートしています。ビットコイン、イーサリアム、またはライトコインのウォレットを作成するか、これらのウォレットに切り替えてください。", + "sell_monero_com_alert_content": "モネロの販売はまだサポートされていません", + "send": "送る", + "send_address": "${cryptoCurrency} 住所", + "send_amount": "量:", + "send_creating_transaction": "トランザクションを作成する", + "send_error_currency": "通貨には数字のみを含めることができます", + "send_error_minimum_value": "金額の最小値は0.01です", + "send_estimated_fee": "見積手数料:", + "send_fee": "費用:", + "send_name": "名前", + "send_new": "新着", + "send_payment_id": "支払いID (オプショナル)", + "send_priority": "現在、料金は ${transactionPriority} 優先度.\nトランザクションの優先度は設定で調整できます", + "send_sending": "送信...", + "send_success": "${crypto}が送信されました", + "send_templates": "テンプレート", + "send_title": "を送信", + "send_to_this_address": "${currency} ${tag}をこのアドレスに送金", + "send_xmr": "送る XMR", + "send_your_wallet": "あなたの財布", + "sending": "送信", + "sent": "送信済み", + "settings": "設定", + "settings_all": "すべて", + "settings_allow_biometrical_authentication": "生体認証を許可する", + "settings_can_be_changed_later": "これらの設定は、後でアプリの設定で変更できます", + "settings_change_language": "言語を変えてください", + "settings_change_pin": "PINを変更", + "settings_currency": "通貨", + "settings_current_node": "現在のノード", + "settings_dark_mode": "ダークモード", + "settings_display_balance": "ディスプレイバランス", + "settings_display_on_dashboard_list": "ダッシュボードリストに表示", + "settings_fee_priority": "料金優先", + "settings_nodes": "ノード", + "settings_none": "なし", + "settings_only_trades": "取引のみ", + "settings_only_transactions": "トランザクションのみ", + "settings_personal": "パーソナル", + "settings_save_recipient_address": "受信者のアドレスを保存", + "settings_support": "サポート", + "settings_terms_and_conditions": "規約と条件", + "settings_title": "設定", + "settings_trades": "取引", + "settings_transactions": "取引", + "settings_wallets": "財布", + "setup_2fa": "セットアップ ケーキ 2FA", + "setup_2fa_text": "Cake 2FA は、TOTP を 2 番目の認証要素として使用して機能します。\n\nCake 2FA の TOTP には SHA-512 と 8 桁のサポートが必要です。これによりセキュリティが強化されます。詳細とサポートされているアプリについてはガイドをご覧ください。", + "setup_pin": "PINのセットアップ", + "setup_successful": "PINは正常に設定されました!", + "setup_totp_recommended": "TOTPのセットアップ", + "setup_warning_2fa_text": "Cake 2FA は、ウォレット内の特定のアクションに対する 2 番目の認証です。冷蔵保存ほど安全ではありません。\n\n2FA アプリまたは TOTP キーにアクセスできなくなると、このウォレットにもアクセスできなくなります。ニーモニックシードからウォレットを復元する必要があります。\n\n2FA またはニーモニック シードにアクセスできなくなった場合、Cake サポートはサポートできません。\nCake 2FA を使用する前に、ガイドを一読することをお勧めします。", + "setup_your_debit_card": "デビットカードを設定してください", + "share": "共有", + "share_address": "住所を共有する", + "show_details": "詳細を表示", + "show_keys": "シード/キーを表示する", + "show_market_place": "マーケットプレイスを表示", + "show_seed": "シードを表示", + "sign_up": "サインアップ", + "signTransaction": "トランザクションに署名する", + "signup_for_card_accept_terms": "カードにサインアップして、利用規約に同意してください。", + "slidable": "スライド可能", + "sort_by": "並び替え", + "spend_key_private": "キーを使う (プライベート)", + "spend_key_public": "キーを使う (パブリック)", + "status": "状態: ", + "subaddress_title": "サブアドレス一覧", + "subaddresses": "サブアドレス", + "submit_request": "リクエストを送信する", + "successful": "成功", + "support_description_guides": "一般的な問題のドキュメントとサポート", + "support_description_live_chat": "無料で速い!訓練されたサポート担当者が支援することができます", + "support_description_other_links": "私たちのコミュニティに参加するか、他の方法を通して私たちのパートナーに連絡してください", + "support_title_guides": "ケーキウォレットガイド", + "support_title_live_chat": "ライブサポート", + "support_title_other_links": "その他のサポートリンク", + "sweeping_wallet": "スイープウォレット", + "sweeping_wallet_alert": "これには時間がかかりません。この画面から離れないでください。そうしないと、スイープ ファンドが失われる可能性があります", + "switchToETHWallet": "イーサリアムウォレットに切り替えてもう一度お試しください", "switchToEVMCompatibleWallet": "EVM 互換のウォレットに切り替えて再試行してください (イーサリアム、ポリゴン)", - "receivable_balance": "売掛金残高", - "confirmed_tx": "確認済み", + "symbol": "シンボル", + "sync_all_wallets": "すべてのウォレットを同期", + "sync_status_attempting_sync": "同期を試みています", + "sync_status_connected": "接続済み", + "sync_status_connecting": "接続中", + "sync_status_failed_connect": "切断されました", + "sync_status_not_connected": "接続されていません", + "sync_status_starting_sync": "同期の開始", + "sync_status_syncronized": "同期された", + "sync_status_syncronizing": "同期", + "syncing_wallet_alert_content": "上部に「同期済み」と表示されるまで、残高と取引リストが完了していない可能性があります。詳細については、クリック/タップしてください。", + "syncing_wallet_alert_title": "ウォレットは同期中です", + "template": "テンプレート", + "template_name": "テンプレート名", + "third_intro_content": "YatsはCakeWalletの外にも住んでいます。 地球上のどのウォレットアドレスもYatに置き換えることができます!", + "third_intro_title": "Yatは他の人とうまく遊ぶ", + "time": "${minutes}m ${seconds}s", + "tip": "ヒント: ", + "today": "今日", + "token_contract_address": "トークンコントラクトアドレス", + "token_decimal": "トークン10進数", + "token_name": "トークン名 例: Tether", + "token_symbol": "トークンシンボル 例: USDT", + "tokenID": "ID", + "tor_connection": "Tor接続", + "tor_only": "Torのみ", + "total_saving": "合計節約額", + "totp_2fa_failure": "コードが正しくありません。 別のコードを試すか、新しい秘密鍵を生成してください。 8 桁のコードと SHA512 をサポートする互換性のある 2FA アプリを使用してください。", + "totp_2fa_success": "成功!このウォレットでは Cake 2FA が有効になっています。ウォレットへのアクセスを失った場合に備えて、ニーモニック シードを忘れずに保存してください。", + "totp_auth_url": "TOTP認証URL", + "totp_code": "TOTP コード", + "totp_secret_code": "TOTPシークレットコード", + "totp_verification_success": "検証成功!", + "trade_details_copied": "${title} クリップボードにコピーしました", + "trade_details_created_at": "で作成", + "trade_details_fetching": "フェッチング", + "trade_details_id": "ID", + "trade_details_pair": "ペア", + "trade_details_provider": "プロバイダー", + "trade_details_state": "状態", + "trade_details_title": "取引の詳細", + "trade_for_not_created": "取引 ${title} 作成されません", + "trade_history_title": "取引履歴", + "trade_id": "取引ID:", + "trade_id_not_found": "トレード ${tradeId} of ${title} 見つかりません", + "trade_is_powered_by": "この取引は ${provider}", + "trade_not_created": "作成されていない取引", + "trade_not_found": "取引が見つかりません", + "trade_state_btc_sent": "送った", + "trade_state_complete": "コンプリート", + "trade_state_confirming": "確認中", + "trade_state_created": "作成した", + "trade_state_finished": "完成した", + "trade_state_paid": "有料", + "trade_state_paid_unconfirmed": "未確認の支払い", + "trade_state_pending": "保留中", + "trade_state_timeout": "タイムアウト", + "trade_state_to_be_created": "作成される", + "trade_state_traded": "取引済み", + "trade_state_trading": "トレーディング", + "trade_state_underpaid": "支払不足", + "trade_state_unpaid": "未払い", + "trades": "取引", + "transaction_details_amount": "量", + "transaction_details_copied": "${title} クリップボードにコピーしました", + "transaction_details_date": "日付", + "transaction_details_fee": "費用", + "transaction_details_height": "高さ", + "transaction_details_recipient_address": "受信者のアドレス", "transaction_details_source_address": "ソースアドレス", - "pause_wallet_creation": "Haven Wallet を作成する機能は現在一時停止されています。", - "contractName": "契約名", - "contractSymbol": "契約記号", - "description": "説明", - "camera_consent": "あなたのカメラは、${provider}_ までに識別目的で画像を撮影するために使用されます。詳細については、プライバシー ポリシーをご確認ください。", - "no_relays": "リレーなし", - "choose_relay": "使用するリレーを選択してください", - "no_relays_message": "このユーザーの Nostr NIP-05 レコードが見つかりましたが、リレーは含まれていません。受信者に Nostr レコードにリレーを追加するよう指示してください。", - "no_relay_on_domain": "ユーザーのドメインのリレーが存在しないか、リレーが使用できません。使用するリレーを選択してください。" -} + "transaction_details_title": "取引の詳細", + "transaction_details_transaction_id": "トランザクションID", + "transaction_key": "トランザクションキー", + "transaction_priority_fast": "速い", + "transaction_priority_fastest": "最速", + "transaction_priority_medium": "中", + "transaction_priority_regular": "レギュラー", + "transaction_priority_slow": "スロー", + "transaction_sent": "トランザクションが送信されました!", + "transaction_sent_notice": "1分経っても画面が進まない場合は、ブロックエクスプローラーとメールアドレスを確認してください。", + "transactions": "取引", + "transactions_by_date": "日付ごとの取引", + "trusted": "信頼できる", + "unavailable_balance": "利用できない残高", + "unavailable_balance_description": "利用不可能な残高: この合計には、保留中のトランザクションにロックされている資金と、コイン管理設定でアクティブに凍結した資金が含まれます。ロックされた残高は、それぞれの取引が完了すると利用可能になりますが、凍結された残高は、凍結を解除するまで取引にアクセスできません。", + "unconfirmed": "残高未確認", + "understand": "わかります", + "unmatched_currencies": "現在のウォレットの通貨がスキャンされたQRの通貨と一致しません", + "unspent_change": "変化", + "unspent_coins_details_title": "未使用のコインの詳細", + "unspent_coins_title": "未使用のコイン", + "unsupported_asset": "このアセットに対するこのアクションはサポートされていません。サポートされているアセットタイプのウォレットを作成するか、ウォレットに切り替えてください。", + "upto": "up up ${value}", + "use": "使用する ", + "use_card_info_three": "デジタルカードをオンラインまたは非接触型決済方法で使用してください。", + "use_card_info_two": "デジタル通貨ではなく、プリペイドアカウントで保持されている場合、資金は米ドルに変換されます。", + "use_ssl": "SSLを使用する", + "use_suggested": "推奨を使用", + "variable_pair_not_supported": "この変数ペアは、選択した取引所ではサポートされていません", + "verification": "検証", + "verify_with_2fa": "Cake 2FA で検証する", + "version": "バージョン ${currentVersion}", + "view_all": "すべて表示", + "view_in_block_explorer": "View in Block Explorer", + "view_key_private": "ビューキー (プライベート)", + "view_key_public": "ビューキー (パブリック)", + "view_transaction_on": "View Transaction on ", + "wallet_keys": "ウォレットシード/キー", + "wallet_list_create_new_wallet": "新しいウォレットを作成", + "wallet_list_edit_wallet": "ウォレットを編集する", + "wallet_list_failed_to_load": "読み込みに失敗しました ${wallet_name} 財布. ${error}", + "wallet_list_failed_to_remove": "削除できませんでした ${wallet_name} 財布. ${error}", + "wallet_list_load_wallet": "ウォレットをロード", + "wallet_list_loading_wallet": "読み込み中 ${wallet_name} 財布", + "wallet_list_removing_wallet": "取りはずし ${wallet_name} 財布", + "wallet_list_restore_wallet": "ウォレットを復元", + "wallet_list_title": "Monero 財布", + "wallet_list_wallet_name": "ウォレット名", + "wallet_menu": "ウォレットメニュー", + "wallet_name": "ウォレット名", + "wallet_name_exists": "その名前のウォレットはすでに存在しています", + "wallet_restoration_store_incorrect_seed_length": "誤ったシード長s", + "wallet_seed": "ウォレットシード", + "wallet_seed_legacy": "レガシーウォレットシード", + "wallet_store_monero_wallet": "Monero 財布", + "walletConnect": "ウォレットコネクト", + "wallets": "財布", + "warning": "警告", + "welcome": "ようこそ に", + "welcome_to_cakepay": "Cake Payへようこそ!", + "widgets_address": "住所", + "widgets_or": "または", + "widgets_restore_from_blockheight": "ブロックの高さから復元", + "widgets_restore_from_date": "日付から復元", + "widgets_seed": "シード", + "wouoldLikeToConnect": "接続したいです", + "write_down_backup_password": "バックアップファイルのインポートに使用されるバックアップパスワードを書き留めてください。", + "xlm_extra_info": "交換用のXLMトランザクションを送信するときに、メモIDを指定することを忘れないでください", + "xmr_available_balance": "利用可能残高", + "xmr_full_balance": "フルバランス", + "xmr_hidden": "非表示", + "xmr_to_error": "XMR.TOエラー", + "xmr_to_error_description": "金額が無効です。 小数点以下8桁の上限", + "xrp_extra_info": "取引所のXRPトランザクションを送信するときに、宛先タグを指定することを忘れないでください", + "yat": "Yat", + "yat_address": "Yat住所", + "yat_alert_content": "Cake Walletユーザーは、独自の絵文字ベースのユーザー名を使用して、お気に入りのすべての通貨を送受信できるようになりました。", + "yat_alert_title": "Yatで暗号をより簡単に送受信できます", + "yat_error": "Yatエラー", + "yat_error_content": "このYatにリンクされているアドレスはありません。別のYatを試してください", + "yat_popup_content": "Yat(短い絵文字ベースのユーザー名)を使用して、CakeWalletで暗号を送受信できるようになりました。 設定画面でいつでもYatsを管理", + "yat_popup_title": "あなたの財布のアドレスは絵文字であることができます。", + "yesterday": "昨日", + "you_now_have_debit_card": "デビットカードができました", + "you_pay": "あなたが支払う", + "you_will_get": "に変換", + "you_will_send": "から変換", + "yy": "YY", + "zzzz": "zzzz" +} \ No newline at end of file diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index 5c3affbc5..f0970ac43 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -1,777 +1,778 @@ { - "welcome": "환영 에", - "cake_wallet": "Cake Wallet", - "first_wallet_text": "Monero, Bitcoin, Ethereum, Litecoin 및 Haven을 위한 멋진 지갑", - "please_make_selection": "아래에서 선택하십시오 지갑 만들기 또는 복구.", - "create_new": "새 월렛 만들기", - "restore_wallet": "월렛 복원", - "monero_com": "Monero.com by Cake Wallet", - "monero_com_wallet_text": "Awesome wallet for Monero", - "haven_app": "Haven by Cake Wallet", - "haven_app_wallet_text": "Awesome wallet for Haven", - "accounts": "계정", - "edit": "편집하다", + "about_cake_pay": "Cake Pay를 사용하면 미국 내 150,000개 이상의 가맹점에서 즉시 사용할 수 있는 가상 자산이 포함된 기프트 카드를 쉽게 구입할 수 있습니다.", "account": "계정", + "accounts": "계정", + "accounts_subaddresses": "계정 및 하위 주소", + "activate": "활성화", + "active": "활성", + "active_cards": "활성 카드", + "activeConnectionsPrompt": "활성 연결이 여기에 표시됩니다", "add": "더하다", + "add_contact": "주소록에 추가", + "add_custom_node": "새 사용자 정의 노드 추가", + "add_custom_redemption": "사용자 지정 상환 추가", + "add_fund_to_card": "카드에 선불 금액 추가(최대 ${value})", + "add_new_node": "새 노드 추가", + "add_new_word": "새로운 단어 추가", + "add_receiver": "다른 수신기 추가(선택 사항)", + "add_secret_code": "또는 이 비밀 코드를 인증 앱에 추가하세요.", + "add_tip": "팁 추가", + "add_token_disclaimer_check": "신뢰할 수 있는 출처를 통해 토큰 컨트랙트 주소와 정보를 확인했습니다. 악의적이거나 잘못된 정보를 추가하면 자금 손실이 발생할 수 있습니다.", + "add_token_warning": "사기꾼의 지시에 따라 토큰을 편집하거나 추가하지 마십시오.\n항상 신뢰할 수 있는 출처를 통해 토큰 주소를 확인하세요!", + "add_value": "값 추가", + "address": "주소", "address_book": "주소록", - "contact": "접촉", - "please_select": "선택 해주세요:", - "cancel": "취소", - "ok": "승인", - "contact_name": "담당자 이름", - "reset": "다시 놓기", - "save": "구하다", + "address_book_menu": "주소록", + "address_detected": "주소 감지", + "address_from_domain": "이 주소는 ${domain} 의 주소입니다 Unstoppable Domains", + "address_from_yat": "이 주소는 ${emoji} 의 주소입니다 Yat", + "address_label": "Address label", "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": "거래", - "filter_by": "필터링 기준", - "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": "에 의해 구동 ${title}", - "error": "오류", - "estimated": "예상", - "min_value": "최소: ${value} ${currency}", - "max_value": "맥스: ${value} ${currency}", - "change_currency": "통화 변경", - "overwrite_amount": "Overwrite amount", - "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", - "copy_id": "부 ID", - "exchange_result_write_down_trade_id": "계속하려면 거래 ID를 복사하거나 적어 두십시오..", - "trade_id": "무역 ID:", - "copied_to_clipboard": "클립 보드에 복사", - "saved_the_trade_id": "거래 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": "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_to_get_address": "QR 코드를 스캔하여 주소를 얻습니다.", - "qr_fullscreen": "전체 화면 QR 코드를 열려면 탭하세요.", - "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": "키보기 (은밀한)", - "restore_spend_key_private": "지출 키 (은밀한)", - "restore_recover": "다시 덮다", - "restore_wallet_restore_description": "월렛 복원 설명", - "restore_new_seed": "새로운 씨앗", - "restore_active_seed": "활성 종자", - "restore_bitcoin_description_from_seed": "24 단어 조합 코드에서 지갑 복원", - "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": "종자 언어", - "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": "스페인의", - "seed_language_french": "프랑스 국민", - "seed_language_italian": "이탈리아 사람", - "send_title": "보내다", - "send_your_wallet": "지갑", - "send_address": "${cryptoCurrency} 주소", - "send_payment_id": "지불 ID (optional)", + "advanced_settings": "고급 설정", + "aggressive": "지나치게 열심인", + "agree": "동의하다", + "agree_and_continue": "동의 및 계속", + "agree_to": "계정을 생성하면 ", "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": "이름", - "got_it": "알았다", - "send_sending": "배상...", - "send_success": "${crypto}가 성공적으로 전송되었습니다", - "settings_title": "설정", - "settings_nodes": "노드", - "settings_current_node": "현재 노드", - "settings_wallets": "지갑", - "settings_display_balance": "디스플레이 잔액", - "settings_currency": "통화", - "settings_fee_priority": "수수료 우선", - "settings_save_recipient_address": "수신자 주소 저장", - "settings_personal": "개인적인", - "settings_change_pin": "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": "다시 핀을 입력", - "setup_successful": "PIN이 성공적으로 설정되었습니다!", - "wallet_keys": "지갑 시드 / 키", - "wallet_seed": "지갑 시드", - "private_key": "개인 키", - "public_key": "공개 키", - "view_key_private": "키보기(은밀한)", - "view_key_public": "키보기 (공공의)", - "spend_key_private": "지출 키 (은밀한)", - "spend_key_public": "지출 키 (공공의)", - "copied_key_to_clipboard": "복사 ${key} 클립 보드로", - "new_subaddress_title": "새 주소", - "new_subaddress_label_name": "라벨 이름", - "new_subaddress_create": "몹시 떠들어 대다", - "address_label": "Address label", - "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": "트랜잭션 ID", - "transaction_details_date": "날짜", - "transaction_details_height": "신장", - "transaction_details_amount": "양", - "transaction_details_fee": "회비", - "transaction_details_copied": "${title} 클립 보드에 복사", - "transaction_details_recipient_address": "받는 사람 주소", - "wallet_list_title": "모네로 월렛", - "wallet_list_create_new_wallet": "새 월렛 만들기", - "wallet_list_edit_wallet": "지갑 수정", - "wallet_list_wallet_name": "지갑 이름", - "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": "계정 이름은 문자, 숫자 만 포함 할 수 있습니다\n1 ~ 15 자 사이 여야합니다", - "error_text_contact_name": "담당자 이름은 포함 할 수 없습니다 ` , ' \" 기호\n1 자에서 32 자 사이 여야합니다", - "error_text_address": "지갑 주소는 유형과 일치해야합니다\n암호 화폐", - "error_text_node_address": "iPv4 주소를 입력하십시오", - "error_text_node_port": "노드 포트는 0에서 65535 사이의 숫자 만 포함 할 수 있습니다", - "error_text_node_proxy_address": ":<포트>를 입력하십시오(예: 127.0.0.1:9050).", - "error_text_payment_id": "지불 ID는 16 ~ 64 자의 16 진 문자 만 포함 할 수 있습니다", - "error_text_xmr": "XMR 값은 사용 가능한 잔액을 초과 할 수 없습니다.\n소수 자릿수는 12 이하 여야합니다", - "error_text_fiat": "금액은 사용 가능한 잔액을 초과 할 수 없습니다.\n소수 자릿수는 2보다 작거나 같아야합니다", - "error_text_subaddress_name": "하위 주소 이름은 포함 할 수 없습니다 ` , ' \" 기호 \n1 ~ 20 자 사이 여야합니다", - "error_text_amount": "금액은 숫자 만 포함 할 수 있습니다", - "error_text_wallet_name": "지갑 이름은 문자, 숫자, _ - 기호만 포함할 수 있습니다.\n1~33자 사이여야 합니다.", - "error_text_keys": "지갑 키는 16 진수로 64 자만 포함 할 수 있습니다", - "error_text_crypto_currency": "소수 자릿수\n12 이하 여야합니다", - "error_text_minimal_limit": "거래 ${provider} 가 생성되지 않습니다. 금액이 최소보다 적습니다. ${min} ${currency}", - "error_text_maximum_limit": "거래 ${provider} 가 생성되지 않습니다. 금액이 최대 값보다 많습니다. ${max} ${currency}", - "error_text_limits_loading_failed": "거래 ${provider} 가 생성되지 않습니다. 로딩 실패", - "error_text_template": "템플릿 이름과 주소는 포함 할 수 없습니다 ` , ' \" 기호 \n1 ~ 106 자 사이 여야합니다", + "all_trades": "A모든 거래", + "all_transactions": "모든 거래 창구", + "alphabetical": "알파벳순", + "already_have_account": "이미 계정이 있습니까?", + "always": "언제나", + "amount": "양: ", + "amount_is_estimate": "수신 금액은 견적입니다", + "amount_is_guaranteed": "수령 금액이 보장됩니다.", + "and": "그리고", + "anonpay_description": "${type} 생성. 수신자는 지원되는 모든 암호화폐로 ${method}할 수 있으며 이 지갑에서 자금을 받게 됩니다.", + "apk_update": "APK 업데이트", + "approve": "승인하다", + "arrive_in_this_address": "${currency} ${tag}이(가) 이 주소로 도착합니다", + "ascending": "오름차순", + "ask_each_time": "매번 물어보십시오", "auth_store_ban_timeout": "타임 아웃 금지", "auth_store_banned_for": "금지", "auth_store_banned_minutes": " 의사록", "auth_store_incorrect_password": "잘못된 PIN", - "wallet_store_monero_wallet": "모네로 월렛", - "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": "연결됨", - "sync_status_attempting_sync": "동기화 시도 중", - "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}", - "extracted_address_content": "당신은에 자금을 보낼 것입니다\n${recipient_name}", - "card_address": "주소:", - "buy": "구입", - "sell": "팔다", - "placeholder_transactions": "거래가 여기에 표시됩니다", - "placeholder_contacts": "연락처가 여기에 표시됩니다", - "template": "주형", - "confirm_delete_template": "이 작업은이 템플릿을 삭제합니다. 계속 하시겠습니까?", - "confirm_delete_wallet": "이 작업은이 지갑을 삭제합니다. 계속 하시겠습니까?", - "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 사용", - "trusted": "신뢰할 수 있는", - "color_theme": "색상 테마", - "light_theme": "빛", - "bright_theme": "선명한", - "dark_theme": "어두운", - "enter_your_note": "메모를 입력하세요…", - "note_optional": "참고 (선택 사항)", - "note_tap_to_change": "메모 (변경하려면 탭하세요)", - "view_in_block_explorer": "View in Block Explorer", - "view_transaction_on": "View Transaction on ", - "transaction_key": "거래 키", - "confirmations": "확인", - "recipient_address": "받는 사람 주소", - "extra_id": "추가 ID:", - "destination_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 트랜잭션을 보내는 동안 대상 태그를 지정하는 것을 잊지 마십시오", - "exchange_incorrect_current_wallet_for_xmr": "Cake Wallet Monero 잔액에서 XMR을 교환하려면 먼저 Monero 지갑으로 전환하십시오.", - "confirmed": "확인된 잔액", - "unconfirmed": "확인되지 않은 잔액", - "displayable": "표시 가능", - "submit_request": "요청을 제출", - "buy_alert_content": "현재 Bitcoin, Ethereum, Litecoin 및 Monero 구매만 지원합니다. Bitcoin, Ethereum, Litecoin 또는 Monero 지갑을 생성하거나 전환하십시오.", - "sell_alert_content": "현재 Bitcoin, Ethereum 및 Litecoin의 판매만 지원합니다. Bitcoin, Ethereum 또는 Litecoin 지갑을 생성하거나 전환하십시오.", - "outdated_electrum_wallet_description": "Cake에서 생성 된 새로운 비트 코인 지갑에는 이제 24 단어 시드가 있습니다. 새로운 비트 코인 지갑을 생성하고 모든 자금을 새로운 24 단어 지갑으로 이체하고 12 단어 시드가있는 지갑 사용을 중지해야합니다. 자금을 확보하려면 즉시이 작업을 수행하십시오.", - "understand": "이해 했어요", - "apk_update": "APK 업데이트", - "buy_bitcoin": "비트 코인 구매", - "buy_with": "구매", - "moonpay_alert_text": "금액은 다음보다 크거나 같아야합니다 ${minAmount} ${fiatCurrency}", - "outdated_electrum_wallet_receive_warning": "이 지갑에 12 단어 시드가 있고 Cake에서 생성 된 경우이 지갑에 비트 코인을 입금하지 마십시오. 이 지갑으로 전송 된 모든 BTC는 손실 될 수 있습니다. 새로운 24 단어 지갑을 생성하고 (오른쪽 상단의 메뉴를 탭하고 지갑을 선택한 다음 새 지갑 생성을 선택한 다음 비트 코인을 선택하십시오) 즉시 BTC를 그곳으로 이동하십시오. Cake의 새로운 (24 단어) BTC 지갑은 안전합니다", - "do_not_show_me": "나를 다시 표시하지 않음", - "unspent_coins_title": "사용하지 않은 동전", - "unspent_coins_details_title": "사용하지 않은 동전 세부 정보", - "freeze": "얼다", - "frozen": "겨울 왕국", - "coin_control": "코인 제어 (옵션)", - "address_detected": "주소 감지", - "address_from_domain": "이 주소는 ${domain} 의 주소입니다 Unstoppable Domains", - "add_receiver": "다른 수신기 추가(선택 사항)", - "manage_yats": "관리하다 Yats", - "yat_alert_title": "Yat으로 더 쉽게 암호화폐를 보내고 받으십시오.", - "yat_alert_content": "Cake Wallet 사용자는 이제 독특한 이모티콘 기반 사용자 이름으로 좋아하는 모든 통화를 보내고 받을 수 있습니다.", - "get_your_yat": "당신의 Yat를 얻으십시오", - "connect_an_existing_yat": "기존 Yat 연결", - "yat_address": "Yat 주소", - "yat": "Yat", - "connect_yats": "야츠 연결", - "address_from_yat": "이 주소는 ${emoji} 의 주소입니다 Yat", - "yat_error": "Yat 오류", - "yat_error_content": "이 Yat와 연결된 주소가 없습니다. 다른 Yat 시도", - "choose_address": "\n\n주소를 선택하십시오:", - "yat_popup_title": "지갑 주소를 이모티콘으로 만들 수 있습니다.", - "yat_popup_content": "이제 Yat(이모티콘 기반의 짧은 사용자 이름)으로 Cake Wallet에서 암호화폐를 보내고 받을 수 있습니다. 설정 화면에서 언제든지 Yats 관리", - "second_intro_title": "그들을 모두 지배하는 하나의 이모티콘 주소", - "second_intro_content": "귀하의 Yat는 귀하의 모든 통화에 대해 긴 16진수 주소를 모두 대체하는 고유한 단일 이모지 주소입니다.", - "third_intro_title": "Yat는 다른 사람들과 잘 놉니다.", - "third_intro_content": "Yats는 Cake Wallet 밖에서도 살고 있습니다. 지구상의 모든 지갑 주소는 Yat!", - "learn_more": "더 알아보기", - "search": "찾다", - "search_language": "검색 언어", - "search_currency": "통화 검색", - "new_template": "새 템플릿", - "electrum_address_disclaimer": "사용할 때마다 새 주소가 생성되지만 이전 주소는 계속 작동합니다.", - "wallet_name_exists": "해당 이름의 지갑이 이미 존재합니다.", - "market_place": "마켓플레이스", - "cake_pay_title": "케이크 페이 기프트 카드", - "cake_pay_subtitle": "할인된 기프트 카드 구매(미국만 해당)", - "cake_pay_web_cards_title": "케이크페이 웹카드", - "cake_pay_web_cards_subtitle": "전 세계 선불 카드 및 기프트 카드 구매", - "about_cake_pay": "Cake Pay를 사용하면 미국 내 150,000개 이상의 가맹점에서 즉시 사용할 수 있는 가상 자산이 포함된 기프트 카드를 쉽게 구입할 수 있습니다.", - "cake_pay_account_note": "이메일 주소로 가입하면 카드를 보고 구매할 수 있습니다. 일부는 할인된 가격으로 사용 가능합니다!", - "already_have_account": "이미 계정이 있습니까?", - "create_account": "계정 만들기", - "privacy_policy": "개인 정보 보호 정책", - "welcome_to_cakepay": "Cake Pay에 오신 것을 환영합니다!", - "sign_up": "가입", - "forgot_password": "비밀번호 찾기", - "reset_password": "비밀번호 재설정", - "gift_cards": "기프트 카드", - "setup_your_debit_card": "직불카드 설정", - "no_id_required": "신분증이 필요하지 않습니다. 충전하고 어디에서나 사용하세요", - "how_to_use_card": "이 카드를 사용하는 방법", - "purchase_gift_card": "기프트 카드 구매", - "verification": "검증", - "fill_code": "이메일에 제공된 인증 코드를 입력하세요.", - "didnt_get_code": "코드를 받지 못하셨습니까?", - "resend_code": "다시 보내주세요", - "debit_card": "직불 카드", - "cakepay_prepaid_card": "CakePay 선불 직불 카드", - "no_id_needed": "ID가 필요하지 않습니다!", - "frequently_asked_questions": "자주 묻는 질문", - "debit_card_terms": "이 디지털 지갑에 있는 귀하의 지불 카드 번호(및 귀하의 지불 카드 번호에 해당하는 자격 증명)의 저장 및 사용은 부터 발효되는 지불 카드 발행자와의 해당 카드 소지자 계약의 이용 약관을 따릅니다. 수시로.", - "Please_reference_document": "자세한 내용은 아래 문서를 참조하십시오.", - "cardholder_agreement": "카드 소유자 계약", - "e_sign_consent": "전자 서명 동의", - "agree_and_continue": "동의 및 계속", - "email_address": "이메일 주소", - "agree_to": "계정을 생성하면 ", - "and": "그리고", - "enter_code": "코드 입력", - "congratulations": "축하합니다!", - "you_now_have_debit_card": "이제 직불카드가 있습니다.", - "min_amount": "최소: ${value}", - "max_amount": "최대: ${value}", - "enter_amount": "금액 입력", - "billing_address_info": "청구서 수신 주소를 묻는 메시지가 표시되면 배송 주소를 입력하세요.", - "order_physical_card": "물리적 카드 주문", - "add_value": "값 추가", - "activate": "활성화", - "get_a": "가져오기", - "digital_and_physical_card": " 디지털 및 실제 선불 직불 카드", - "get_card_note": " 디지털 통화로 충전할 수 있습니다. 추가 정보가 필요하지 않습니다!", - "signup_for_card_accept_terms": "카드에 가입하고 약관에 동의합니다.", - "add_fund_to_card": "카드에 선불 금액 추가(최대 ${value})", - "use_card_info_two": "디지털 화폐가 아닌 선불 계정에 보유하면 자금이 USD로 변환됩니다.", - "use_card_info_three": "디지털 카드를 온라인 또는 비접촉식 결제 수단으로 사용하십시오.", - "optionally_order_card": "선택적으로 실제 카드를 주문하십시오.", - "hide_details": "세부 정보 숨기기", - "show_details": "세부정보 표시", - "upto": "최대 ${value}", - "discount": "${value}% 절약", - "gift_card_amount": "기프트 카드 금액", - "bill_amount": "청구 금액", - "you_pay": "당신이 지불합니다", - "tip": "팁:", - "custom": "커스텀", - "by_cake_pay": "Cake Pay로", - "expires": "만료", - "mm": "mm", - "YY": "YY", - "online": "온라인", - "offline": "오프라인", - "gift_card_number": "기프트 카드 번호", - "pin_number": "PIN 번호", - "total_saving": "총 절감액", - "last_30_days": "지난 30일", - "avg_savings": "평균 절감액", - "view_all": "모두 보기", - "active_cards": "활성 카드", - "delete_account": "계정 삭제", - "cards": "카드", - "active": "활성", - "redeemed": "구함", - "gift_card_balance_note": "잔액이 남아 있는 기프트 카드가 여기에 표시됩니다.", - "gift_card_redeemed_note": "사용한 기프트 카드가 여기에 표시됩니다.", - "logout": "로그아웃", - "add_tip": "팁 추가", - "percentageOf": "${amount} 중", - "is_percentage": "이다", - "search_category": "검색 카테고리", - "mark_as_redeemed": "사용한 것으로 표시", - "more_options": "추가 옵션", - "awaiting_payment_confirmation": "결제 확인 대기 중", - "transaction_sent_notice": "1분 후에도 화면이 진행되지 않으면 블록 익스플로러와 이메일을 확인하세요.", - "agree": "동의하다", - "in_store": "매장 내", - "generating_gift_card": "기프트 카드 생성 중", - "payment_was_received": "결제가 접수되었습니다.", - "proceed_after_one_minute": "1분 후에도 화면이 진행되지 않으면 이메일을 확인하세요.", - "order_id": "주문 ID", - "gift_card_is_generated": "기프트 카드가 생성되었습니다", - "open_gift_card": "기프트 카드 열기", - "contact_support": "지원팀에 문의", - "gift_cards_unavailable": "기프트 카드는 현재 Monero, Bitcoin 및 Litecoin을 통해서만 구매할 수 있습니다.", - "background_sync_mode": "백그라운드 동기화 모드", - "sync_all_wallets": "모든 지갑 동기화", - "introducing_cake_pay": "소개 Cake Pay!", - "cake_pay_learn_more": "앱에서 즉시 기프트 카드를 구매하고 사용하세요!\n자세히 알아보려면 왼쪽에서 오른쪽으로 스와이프하세요.", + "authenticated": "인증", + "authentication": "입증", + "auto_generate_subaddresses": "자동 생성 서브 아드 드레스", "automatic": "자동적 인", - "fixed_pair_not_supported": "이 고정 쌍은 선택한 교환에서 지원되지 않습니다.", - "variable_pair_not_supported": "이 변수 쌍은 선택한 교환에서 지원되지 않습니다.", - "none_of_selected_providers_can_exchange": "선택한 공급자 중 누구도 이 교환을 할 수 없습니다.", - "choose_one": "하나 선택", - "choose_from_available_options": "사용 가능한 옵션에서 선택:", - "custom_redeem_amount": "사용자 지정 상환 금액", - "add_custom_redemption": "사용자 지정 상환 추가", - "remaining": "남은", - "delete_wallet": "지갑 삭제", - "delete_wallet_confirm_message": "${wallet_name} 지갑을 삭제하시겠습니까?", - "low_fee": "낮은 수수료", - "low_fee_alert": "현재 낮은 네트워크 요금 우선 순위를 사용하고 있습니다. 이로 인해 긴 대기 시간, 다른 요금 또는 취소된 거래가 발생할 수 있습니다. 더 나은 경험을 위해 더 높은 요금을 설정하는 것이 좋습니다.", - "ignor": "무시하다", - "use_suggested": "추천 사용", - "do_not_share_warning_text": "지원을 포함하여 다른 사람과 이러한 정보를 공유하지 마십시오.\n\n귀하의 자금은 도난당할 수 있고 도난당할 수 있습니다!", - "help": "돕다", - "all_transactions": "모든 거래 창구", - "all_trades": "A모든 거래", - "connection_sync": "연결 및 동기화", - "security_and_backup": "보안 및 백업", - "create_backup": "백업 생성", - "privacy_settings": "개인정보 설정", - "privacy": "프라이버시", - "display_settings": "디스플레이 설정", - "other_settings": "기타 설정", - "require_pin_after": "다음 이후에 PIN 필요", - "always": "언제나", - "minutes_to_pin_code": "${minute}분", - "disable_exchange": "교환 비활성화", - "advanced_settings": "고급 설정", - "settings_can_be_changed_later": "이 설정은 나중에 앱 설정에서 변경할 수 있습니다.", - "add_custom_node": "새 사용자 정의 노드 추가", - "disable_fiat": "법정화폐 비활성화", - "fiat_api": "명목 화폐 API", - "disabled": "장애가 있는", - "enabled": "사용", - "tor_only": "Tor 뿐", - "unmatched_currencies": "현재 지갑의 통화가 스캔한 QR의 통화와 일치하지 않습니다.", - "orbot_running_alert": "이 노드에 연결하기 전에 Orbot이 실행 중인지 확인하십시오.", - "contact_list_contacts": "콘택트 렌즈", - "contact_list_wallets": "내 지갑", - "bitcoin_payments_require_1_confirmation": "비트코인 결제는 1번의 확인이 필요하며 20분 이상이 소요될 수 있습니다. 기다려 주셔서 감사합니다! 결제가 확인되면 이메일이 전송됩니다.", - "send_to_this_address": "이 주소로 ${currency} ${tag}송금", - "arrive_in_this_address": "${currency} ${tag}이(가) 이 주소로 도착합니다", - "do_not_send": "보내지 마세요", - "error_dialog_content": "죄송합니다. 오류가 발생했습니다.\n\n응용 프로그램을 개선하려면 지원 팀에 충돌 보고서를 보내주십시오.", - "scan_qr_code": "QR 코드 스캔", - "cold_or_recover_wallet": "콜드 지갑 추가 또는 종이 지갑 복구", - "please_wait": "기다리세요", - "sweeping_wallet": "스위핑 지갑", - "sweeping_wallet_alert": "오래 걸리지 않습니다. 이 화면을 떠나지 마십시오. 그렇지 않으면 스웹트 자금이 손실될 수 있습니다.", - "decimal_places_error": "소수점 이하 자릿수가 너무 많습니다.", - "edit_node": "노드 편집", - "invoice_details": "인보이스 세부정보", - "donation_link_details": "기부 링크 세부정보", - "anonpay_description": "${type} 생성. 수신자는 지원되는 모든 암호화폐로 ${method}할 수 있으며 이 지갑에서 자금을 받게 됩니다.", - "create_invoice": "인보이스 생성", - "create_donation_link": "기부 링크 만들기", - "optional_email_hint": "선택적 수취인 알림 이메일", - "optional_description": "선택적 설명", - "optional_name": "선택적 수신자 이름", - "clearnet_link": "클리어넷 링크", - "onion_link": "양파 링크", - "settings": "설정", - "sell_monero_com_alert_content": "지원되지 않습니다.", - "error_text_input_below_minimum_limit": "금액이 최소보다 적습니다.", - "error_text_input_above_maximum_limit": "금액이 최대 값보다 많습니다.", - "show_market_place": "마켓플레이스 표시", - "prevent_screenshots": "스크린샷 및 화면 녹화 방지", - "profile": "프로필", - "close": "닫다", - "modify_2fa": "수정 케이크 2FA", - "disable_cake_2fa": "케이크 2FA 비활성화", - "question_to_disable_2fa": "Cake 2FA를 비활성화하시겠습니까? 지갑 및 특정 기능에 액세스하는 데 더 이상 2FA 코드가 필요하지 않습니다.", - "disable": "장애를 입히다", - "setup_2fa": "케이크 2FA 설정", - "verify_with_2fa": "케이크 2FA로 확인", - "totp_code": "TOTP 코드", - "please_fill_totp": "다른 기기에 있는 8자리 코드를 입력하세요.", - "totp_2fa_success": "성공! 이 지갑에 케이크 2FA가 활성화되었습니다. 지갑 액세스 권한을 잃을 경우를 대비하여 니모닉 시드를 저장하는 것을 잊지 마십시오.", - "totp_verification_success": "확인 성공!", - "totp_2fa_failure": "잘못된 코드입니다. 다른 코드를 시도하거나 새 비밀 키를 생성하십시오. 8자리 코드와 SHA512를 지원하는 호환되는 2FA 앱을 사용하세요.", - "enter_totp_code": "TOTP 코드를 입력하세요.", - "add_secret_code": "또는 이 비밀 코드를 인증 앱에 추가하세요.", - "totp_secret_code": "TOTP 비밀 코드", - "setup_2fa_text": "Cake 2FA는 TOTP를 두 번째 인증 요소로 사용하여 작동합니다.\n\nCake 2FA의 TOTP에는 SHA-512 및 8자리 지원이 필요합니다. 이는 보안을 강화합니다. 자세한 정보와 지원되는 앱은 가이드에서 확인할 수 있습니다.", - "setup_totp_recommended": "TOTP 설정", - "disable_buy": "구매 행동 비활성화", - "disable_sell": "판매 조치 비활성화", - "cake_2fa_preset": "케이크 2FA 프리셋", - "narrow": "좁은", - "normal": "정상", - "aggressive": "지나치게 열심인", - "require_for_assessing_wallet": "지갑 접근을 위해 필요", - "require_for_sends_to_non_contacts": "비접촉자에게 보내는 데 필요", - "require_for_sends_to_contacts": "연락처로 보내기에 필요", - "require_for_sends_to_internal_wallets": "내부 지갑으로 보내는 데 필요", - "require_for_exchanges_to_internal_wallets": "내부 지갑으로의 교환에 필요", - "require_for_adding_contacts": "연락처 추가에 필요", - "require_for_creating_new_wallets": "새 지갑 생성에 필요", - "require_for_all_security_and_backup_settings": "모든 보안 및 백업 설정에 필요", + "available_balance": "사용 가능한 잔액", "available_balance_description": "이 지갑에서 사용할 수 있는 잔액입니다. 이 잔액은 블록체인에서 가져온 것이며, Cake Wallet이 사용할 수 없습니다.", - "syncing_wallet_alert_title": "지갑 동기화 중", - "syncing_wallet_alert_content": "상단에 \"동기화됨\"이라고 표시될 때까지 잔액 및 거래 목록이 완전하지 않을 수 있습니다. 자세히 알아보려면 클릭/탭하세요.", - "home_screen_settings": "홈 화면 설정", - "sort_by": "정렬 기준", - "search_add_token": "검색 / 토큰 추가", - "edit_token": "토큰 편집", - "warning": "경고", - "add_token_warning": "사기꾼의 지시에 따라 토큰을 편집하거나 추가하지 마십시오.\n항상 신뢰할 수 있는 출처를 통해 토큰 주소를 확인하세요!", - "add_token_disclaimer_check": "신뢰할 수 있는 출처를 통해 토큰 컨트랙트 주소와 정보를 확인했습니다. 악의적이거나 잘못된 정보를 추가하면 자금 손실이 발생할 수 있습니다.", - "token_contract_address": "토큰 계약 주소", - "token_name": "토큰 이름 예: Tether", - "token_symbol": "토큰 기호 예: USDT", - "token_decimal": "토큰 십진수", - "field_required": "이 필드는 필수입니다", - "pin_at_top": "상단에 ${token} 고정", - "invalid_input": "잘못된 입력", - "fiat_balance": "피아트 잔액", - "gross_balance": "총 잔액", - "alphabetical": "알파벳순", - "generate_name": "이름 생성", + "avg_savings": "평균 절감액", + "awaitDAppProcessing": "dApp이 처리를 마칠 때까지 기다려주세요.", + "awaiting_payment_confirmation": "결제 확인 대기 중", + "background_sync_mode": "백그라운드 동기화 모드", + "backup": "지원", + "backup_file": "백업 파일", + "backup_password": "백업 비밀번호", "balance_page": "잔액 페이지", - "share": "공유하다", - "slidable": "슬라이딩 가능", - "monero_dark_theme": "모네로 다크 테마", + "bill_amount": "청구 금액", + "billing_address_info": "청구서 수신 주소를 묻는 메시지가 표시되면 배송 주소를 입력하세요.", + "biometric_auth_reason": "지문을 스캔하여 인증", "bitcoin_dark_theme": "비트코인 다크 테마", "bitcoin_light_theme": "비트코인 라이트 테마", - "high_contrast_theme": "고대비 테마", - "matrix_green_dark_theme": "매트릭스 그린 다크 테마", - "monero_light_theme": "모네로 라이트 테마", - "manage_nodes": "노드 관리", - "etherscan_history": "이더스캔 역사", - "template_name": "템플릿 이름", - "unsupported_asset": "이 저작물에 대해 이 작업을 지원하지 않습니다. 지원되는 자산 유형의 지갑을 생성하거나 전환하십시오.", - "manage_pow_nodes": "PoW 노드 관리", - "support_title_live_chat": "실시간 지원", - "support_description_live_chat": "자유롭고 빠릅니다! 훈련 된 지원 담당자가 지원할 수 있습니다", - "support_title_guides": "케이크 지갑 가이드", - "support_description_guides": "일반적인 문제에 대한 문서화 및 지원", - "support_title_other_links": "다른 지원 링크", - "support_description_other_links": "다른 방법을 통해 커뮤니티에 가입하거나 파트너에게 연락하십시오.", - "choose_derivation": "지갑 파생을 선택하십시오", - "new_first_wallet_text": "cryptocurrency를 쉽게 안전하게 유지하십시오", - "select_destination": "백업 파일의 대상을 선택하십시오.", - "auto_generate_subaddresses": "자동 생성 서브 아드 드레스", - "save_to_downloads": "다운로드에 저장", - "select_buy_provider_notice": "위의 구매 제공자를 선택하십시오. 앱 설정에서 기본 구매 제공자를 설정 하여이 화면을 건너 뛸 수 있습니다.", - "onramper_option_description": "많은 결제 방법으로 암호화를 신속하게 구입하십시오. 대부분의 국가에서 사용할 수 있습니다. 스프레드와 수수료는 다양합니다.", - "default_buy_provider": "기본 구매 제공자", - "ask_each_time": "매번 물어보십시오", + "bitcoin_payments_require_1_confirmation": "비트코인 결제는 1번의 확인이 필요하며 20분 이상이 소요될 수 있습니다. 기다려 주셔서 감사합니다! 결제가 확인되면 이메일이 전송됩니다.", + "Blocks_remaining": "${status} 남은 블록", + "bright_theme": "선명한", + "buy": "구입", + "buy_alert_content": "현재 Bitcoin, Ethereum, Litecoin 및 Monero 구매만 지원합니다. Bitcoin, Ethereum, Litecoin 또는 Monero 지갑을 생성하거나 전환하십시오.", + "buy_bitcoin": "비트 코인 구매", "buy_provider_unavailable": "제공자는 현재 사용할 수 없습니다.", - "signTransaction": "거래 서명", + "buy_with": "구매", + "by_cake_pay": "Cake Pay로", + "cake_2fa_preset": "케이크 2FA 프리셋", + "cake_pay_account_note": "이메일 주소로 가입하면 카드를 보고 구매할 수 있습니다. 일부는 할인된 가격으로 사용 가능합니다!", + "cake_pay_learn_more": "앱에서 즉시 기프트 카드를 구매하고 사용하세요!\n자세히 알아보려면 왼쪽에서 오른쪽으로 스와이프하세요.", + "cake_pay_subtitle": "할인된 기프트 카드 구매(미국만 해당)", + "cake_pay_title": "케이크 페이 기프트 카드", + "cake_pay_web_cards_subtitle": "전 세계 선불 카드 및 기프트 카드 구매", + "cake_pay_web_cards_title": "케이크페이 웹카드", + "cake_wallet": "Cake Wallet", + "cakepay_prepaid_card": "CakePay 선불 직불 카드", + "camera_consent": "귀하의 카메라는 ${provider}의 식별 목적으로 이미지를 캡처하는 데 사용됩니다. 자세한 내용은 해당 개인정보 보호정책을 확인하세요.", + "camera_permission_is_required": "카메라 권한이 필요합니다.\n앱 설정에서 활성화해 주세요.", + "cancel": "취소", + "card_address": "주소:", + "cardholder_agreement": "카드 소유자 계약", + "cards": "카드", + "chains": "쇠사슬", + "change": "변화", + "change_backup_password_alert": "이전 백업 파일은 새 백업 암호로 가져올 수 없습니다. 새 백업 암호는 새 백업 파일에만 사용됩니다. 백업 비밀번호를 변경 하시겠습니까?", + "change_currency": "통화 변경", + "change_current_node": "현재 노드를 다음으로 변경 하시겠습니까 ${node}?", + "change_current_node_title": "현재 노드 변경", + "change_exchange_provider": "교환 공급자 변경", + "change_language": "언어 변경", + "change_language_to": "언어를로 변경 ${language}?", + "change_password": "비밀번호 변경", + "change_rep_successful": "대리인이 성공적으로 변경되었습니다", + "change_wallet_alert_content": "현재 지갑을 다음으로 변경 하시겠습니까 ${wallet_name}?", + "change_wallet_alert_title": "현재 지갑 변경", + "choose_account": "계정을 선택하십시오", + "choose_address": "\n\n주소를 선택하십시오:", + "choose_derivation": "지갑 파생을 선택하십시오", + "choose_from_available_options": "사용 가능한 옵션에서 선택:", + "choose_one": "하나 선택", + "choose_relay": "사용할 릴레이를 선택해주세요", + "choose_wallet_currency": "지갑 통화를 선택하십시오:", + "clear": "명확한", + "clearnet_link": "클리어넷 링크", + "close": "닫다", + "coin_control": "코인 제어 (옵션)", + "cold_or_recover_wallet": "콜드 지갑 추가 또는 종이 지갑 복구", + "color_theme": "색상 테마", + "commit_transaction_amount_fee": "커밋 거래\n양: ${amount}\n보수: ${fee}", + "confirm": "확인", + "confirm_delete_template": "이 작업은이 템플릿을 삭제합니다. 계속 하시겠습니까?", + "confirm_delete_wallet": "이 작업은이 지갑을 삭제합니다. 계속 하시겠습니까?", + "confirm_sending": "전송 확인", + "confirmations": "확인", + "confirmed": "확인된 잔액", + "confirmed_tx": "확인", + "congratulations": "축하합니다!", + "connect_an_existing_yat": "기존 Yat 연결", + "connect_yats": "야츠 연결", + "connection_sync": "연결 및 동기화", + "connectWalletPrompt": "거래를 하려면 WalletConnect에 지갑을 연결하세요.", + "contact": "접촉", + "contact_list_contacts": "콘택트 렌즈", + "contact_list_wallets": "내 지갑", + "contact_name": "담당자 이름", + "contact_support": "지원팀에 문의", + "continue_text": "잇다", + "contractName": "계약명", + "contractSymbol": "계약 기호", + "copied_key_to_clipboard": "복사 ${key} 클립 보드로", + "copied_to_clipboard": "클립 보드에 복사", + "copy": "부", + "copy_address": "주소 복사", + "copy_id": "부 ID", + "copyWalletConnectLink": "dApp에서 WalletConnect 링크를 복사하여 여기에 붙여넣으세요.", + "create_account": "계정 만들기", + "create_backup": "백업 생성", + "create_donation_link": "기부 링크 만들기", + "create_invoice": "인보이스 생성", + "create_new": "새 월렛 만들기", + "create_new_account": "새 계정을 만들", + "creating_new_wallet": "새 지갑 생성", + "creating_new_wallet_error": "오류: ${description}", + "creation_date": "생산 일", + "custom": "커스텀", + "custom_drag": "사용자 정의 (홀드 앤 드래그)", + "custom_redeem_amount": "사용자 지정 상환 금액", + "dark_theme": "어두운", + "debit_card": "직불 카드", + "debit_card_terms": "이 디지털 지갑에 있는 귀하의 지불 카드 번호(및 귀하의 지불 카드 번호에 해당하는 자격 증명)의 저장 및 사용은 부터 발효되는 지불 카드 발행자와의 해당 카드 소지자 계약의 이용 약관을 따릅니다. 수시로.", + "decimal_places_error": "소수점 이하 자릿수가 너무 많습니다.", + "default_buy_provider": "기본 구매 제공자", + "default_sell_provider": "기본 판매 공급자", + "delete": "지우다", + "delete_account": "계정 삭제", + "delete_wallet": "지갑 삭제", + "delete_wallet_confirm_message": "${wallet_name} 지갑을 삭제하시겠습니까?", + "deleteConnectionConfirmationPrompt": "다음 연결을 삭제하시겠습니까?", + "descending": "내림차순", + "description": "설명", + "destination_tag": "목적지 태그:", + "dfx_option_description": "EUR 및 CHF로 암호화폐를 구매하세요. 추가 KYC 없이 최대 990€. 유럽의 소매 및 기업 고객용", + "didnt_get_code": "코드를 받지 못하셨습니까?", + "digit_pin": "숫자 PIN", + "digital_and_physical_card": " 디지털 및 실제 선불 직불 카드", + "disable": "장애를 입히다", + "disable_buy": "구매 행동 비활성화", + "disable_cake_2fa": "케이크 2FA 비활성화", + "disable_exchange": "교환 비활성화", + "disable_fiat": "법정화폐 비활성화", + "disable_sell": "판매 조치 비활성화", + "disabled": "장애가 있는", + "discount": "${value}% 절약", + "display_settings": "디스플레이 설정", + "displayable": "표시 가능", + "do_not_have_enough_gas_asset": "현재 블록체인 네트워크 조건으로 거래를 하기에는 ${currency}이(가) 충분하지 않습니다. 다른 자산을 보내더라도 블록체인 네트워크 수수료를 지불하려면 ${currency}가 더 필요합니다.", + "do_not_send": "보내지 마세요", + "do_not_share_warning_text": "지원을 포함하여 다른 사람과 이러한 정보를 공유하지 마십시오.\n\n귀하의 자금은 도난당할 수 있고 도난당할 수 있습니다!", + "do_not_show_me": "나를 다시 표시하지 않음", + "domain_looks_up": "도메인 조회", + "donation_link_details": "기부 링크 세부정보", + "e_sign_consent": "전자 서명 동의", + "edit": "편집하다", + "edit_backup_password": "편집 백업 암호", + "edit_node": "노드 편집", + "edit_token": "토큰 편집", + "electrum_address_disclaimer": "사용할 때마다 새 주소가 생성되지만 이전 주소는 계속 작동합니다.", + "email_address": "이메일 주소", + "enabled": "사용", + "enter_amount": "금액 입력", + "enter_backup_password": "여기에 백업 비밀번호를 입력하세요.", + "enter_code": "코드 입력", + "enter_seed_phrase": "시드 문구를 입력하십시오", + "enter_totp_code": "TOTP 코드를 입력하세요.", + "enter_your_note": "메모를 입력하세요…", + "enter_your_pin": "PIN을 입력하십시오", + "enter_your_pin_again": "다시 핀을 입력", + "enterTokenID": "토큰 ID를 입력하세요", + "enterWalletConnectURI": "WalletConnect URI를 입력하세요.", + "error": "오류", + "error_dialog_content": "죄송합니다. 오류가 발생했습니다.\n\n응용 프로그램을 개선하려면 지원 팀에 충돌 보고서를 보내주십시오.", + "error_text_account_name": "계정 이름은 문자, 숫자 만 포함 할 수 있습니다\n1 ~ 15 자 사이 여야합니다", + "error_text_address": "지갑 주소는 유형과 일치해야합니다\n암호 화폐", + "error_text_amount": "금액은 숫자 만 포함 할 수 있습니다", + "error_text_contact_name": "담당자 이름은 포함 할 수 없습니다 ` , ' \" 기호\n1 자에서 32 자 사이 여야합니다", + "error_text_crypto_currency": "소수 자릿수\n12 이하 여야합니다", + "error_text_fiat": "금액은 사용 가능한 잔액을 초과 할 수 없습니다.\n소수 자릿수는 2보다 작거나 같아야합니다", + "error_text_input_above_maximum_limit": "금액이 최대 값보다 많습니다.", + "error_text_input_below_minimum_limit": "금액이 최소보다 적습니다.", + "error_text_keys": "지갑 키는 16 진수로 64 자만 포함 할 수 있습니다", + "error_text_limits_loading_failed": "거래 ${provider} 가 생성되지 않습니다. 로딩 실패", + "error_text_maximum_limit": "거래 ${provider} 가 생성되지 않습니다. 금액이 최대 값보다 많습니다. ${max} ${currency}", + "error_text_minimal_limit": "거래 ${provider} 가 생성되지 않습니다. 금액이 최소보다 적습니다. ${min} ${currency}", + "error_text_node_address": "iPv4 주소를 입력하십시오", + "error_text_node_port": "노드 포트는 0에서 65535 사이의 숫자 만 포함 할 수 있습니다", + "error_text_node_proxy_address": ":<포트>를 입력하십시오(예: 127.0.0.1:9050).", + "error_text_payment_id": "지불 ID는 16 ~ 64 자의 16 진 문자 만 포함 할 수 있습니다", + "error_text_subaddress_name": "하위 주소 이름은 포함 할 수 없습니다 ` , ' \" 기호 \n1 ~ 20 자 사이 여야합니다", + "error_text_template": "템플릿 이름과 주소는 포함 할 수 없습니다 ` , ' \" 기호 \n1 ~ 106 자 사이 여야합니다", + "error_text_wallet_name": "지갑 이름은 문자, 숫자, _ - 기호만 포함할 수 있습니다.\n1~33자 사이여야 합니다.", + "error_text_xmr": "XMR 값은 사용 가능한 잔액을 초과 할 수 없습니다.\n소수 자릿수는 12 이하 여야합니다", "errorGettingCredentials": "실패: 자격 증명을 가져오는 중 오류가 발생했습니다.", "errorSigningTransaction": "거래에 서명하는 동안 오류가 발생했습니다.", - "pairingInvalidEvent": "잘못된 이벤트 페어링", - "chains": "쇠사슬", - "methods": "행동 양식", - "events": "이벤트", - "reject": "거부하다", - "approve": "승인하다", - "expiresOn": "만료 날짜", - "walletConnect": "월렛커넥트", - "nullURIError": "URI가 null입니다.", - "connectWalletPrompt": "거래를 하려면 WalletConnect에 지갑을 연결하세요.", - "newConnection": "새로운 연결", - "activeConnectionsPrompt": "활성 연결이 여기에 표시됩니다", - "deleteConnectionConfirmationPrompt": "다음 연결을 삭제하시겠습니까?", + "estimated": "예상", + "etherscan_history": "이더스캔 역사", "event": "이벤트", - "successful": "성공적인", - "wouoldLikeToConnect": "연결하고 싶습니다", - "message": "메시지", - "do_not_have_enough_gas_asset": "현재 블록체인 네트워크 조건으로 거래를 하기에는 ${currency}이(가) 충분하지 않습니다. 다른 자산을 보내더라도 블록체인 네트워크 수수료를 지불하려면 ${currency}가 더 필요합니다.", - "totp_auth_url": "TOTP 인증 URL", - "awaitDAppProcessing": "dApp이 처리를 마칠 때까지 기다려주세요.", - "copyWalletConnectLink": "dApp에서 WalletConnect 링크를 복사하여 여기에 붙여넣으세요.", - "enterWalletConnectURI": "WalletConnect URI를 입력하세요.", - "seed_key": "시드 키", - "enter_seed_phrase": "시드 문구를 입력하십시오", - "change_rep_successful": "대리인이 성공적으로 변경되었습니다", - "add_contact": "주소록에 추가", + "events": "이벤트", + "exchange": "교환", + "exchange_incorrect_current_wallet_for_xmr": "Cake Wallet Monero 잔액에서 XMR을 교환하려면 먼저 Monero 지갑으로 전환하십시오.", + "exchange_new_template": "새 템플릿", "exchange_provider_unsupported": "${providerName}은 더 이상 지원되지 않습니다!", - "domain_looks_up": "도메인 조회", - "require_for_exchanges_to_external_wallets": "외부 지갑으로의 교환을 위해 필요", - "camera_permission_is_required": "카메라 권한이 필요합니다.\n앱 설정에서 활성화해 주세요.", - "switchToETHWallet": "이더리움 지갑으로 전환한 후 다시 시도해 주세요.", - "order_by": "주문", - "creation_date": "생산 일", + "exchange_result_confirm": "확인을 누르면 전송됩니다 ${fetchingLabel} ${from} 지갑에서 ${walletName} 아래 주소로. 또는 외부 지갑에서 아래 주소로 보낼 수 있습니다 / QR 코드로 보낼 수 있습니다.\n\n확인을 눌러 계속하거나 금액을 변경하려면 돌아가십시오.", + "exchange_result_description": "다음 페이지에 표시된 주소로 최소 ${fetchingLabel} ${from} 를 보내야합니다. ${fetchingLabel} ${from} 보다 적은 금액을 보내면 변환되지 않고 환불되지 않을 수 있습니다.", + "exchange_result_write_down_ID": "*위에 표시된 ID를 복사하거나 적어 두십시오.", + "exchange_result_write_down_trade_id": "계속하려면 거래 ID를 복사하거나 적어 두십시오..", + "exchange_sync_alert_content": "지갑이 동기화 될 때까지 기다리십시오", + "expired": "만료", + "expires": "만료", + "expiresOn": "만료 날짜", + "export_backup": "백업 내보내기", + "extra_id": "추가 ID:", + "extracted_address_content": "당신은에 자금을 보낼 것입니다\n${recipient_name}", + "failed_authentication": "인증 실패. ${state_error}", + "faq": "FAQ", + "fetching": "가져 오는 중", + "fiat_api": "명목 화폐 API", + "fiat_balance": "피아트 잔액", + "field_required": "이 필드는 필수입니다", + "fill_code": "이메일에 제공된 인증 코드를 입력하세요.", + "filter_by": "필터링 기준", + "first_wallet_text": "Monero, Bitcoin, Ethereum, Litecoin 및 Haven을 위한 멋진 지갑", + "fixed_pair_not_supported": "이 고정 쌍은 선택한 교환에서 지원되지 않습니다.", + "fixed_rate": "고정 비율", + "fixed_rate_alert": "고정 금리 모드 체크시 수취 금액 입력이 가능합니다. 고정 속도 모드로 전환 하시겠습니까?", + "forgot_password": "비밀번호 찾기", + "freeze": "얼다", + "frequently_asked_questions": "자주 묻는 질문", + "frozen": "겨울 왕국", + "full_balance": "풀 밸런스", + "generate_name": "이름 생성", + "generating_gift_card": "기프트 카드 생성 중", + "get_a": "가져오기", + "get_card_note": " 디지털 통화로 충전할 수 있습니다. 추가 정보가 필요하지 않습니다!", + "get_your_yat": "당신의 Yat를 얻으십시오", + "gift_card_amount": "기프트 카드 금액", + "gift_card_balance_note": "잔액이 남아 있는 기프트 카드가 여기에 표시됩니다.", + "gift_card_is_generated": "기프트 카드가 생성되었습니다", + "gift_card_number": "기프트 카드 번호", + "gift_card_redeemed_note": "사용한 기프트 카드가 여기에 표시됩니다.", + "gift_cards": "기프트 카드", + "gift_cards_unavailable": "기프트 카드는 현재 Monero, Bitcoin 및 Litecoin을 통해서만 구매할 수 있습니다.", + "got_it": "알았다", + "gross_balance": "총 잔액", "group_by_type": "유형별 그룹", - "importNFTs": "NFT 가져오기", - "noNFTYet": "아직 NFT가 없습니다", - "address": "주소", - "enterTokenID": "토큰 ID를 입력하세요", - "tokenID": "ID", - "name": "이름", - "symbol": "상징", - "seed_phrase_length": "시드 문구 길이", - "unavailable_balance": "사용할 수 없는 잔액", - "unavailable_balance_description": "사용할 수 없는 잔액: 이 총계에는 보류 중인 거래에 잠겨 있는 자금과 코인 관리 설정에서 적극적으로 동결된 자금이 포함됩니다. 잠긴 잔액은 해당 거래가 완료되면 사용할 수 있게 되며, 동결된 잔액은 동결을 해제하기 전까지 거래에 액세스할 수 없습니다.", - "unspent_change": "변화", - "tor_connection": "토르 연결", - "setup_warning_2fa_text": "Cake 2FA는 지갑의 특정 작업에 대한 두 번째 인증입니다. 냉장 보관만큼 안전하지 않습니다.\n\n2FA 앱 또는 TOTP 키에 대한 액세스 권한을 상실하면 이 지갑에 대한 액세스 권한도 잃게 됩니다. 니모닉 시드에서 지갑을 복원해야 합니다.\n\n2FA 또는 니모닉 시드에 액세스할 수 없는 경우 Cake 지원팀에서 도움을 드릴 수 없습니다.\nCake 2FA를 사용하기 전에 가이드를 읽어 보시기 바랍니다.", - "scan_qr_on_device": "다른 기기에서 이 QR 코드를 스캔하세요.", + "haven_app": "Haven by Cake Wallet", + "haven_app_wallet_text": "Awesome wallet for Haven", + "help": "돕다", + "hidden_balance": "숨겨진 균형", + "hide_details": "세부 정보 숨기기", + "high_contrast_theme": "고대비 테마", + "home_screen_settings": "홈 화면 설정", "how_to_use": "사용하는 방법", + "how_to_use_card": "이 카드를 사용하는 방법", + "id": "ID: ", + "ignor": "무시하다", + "import": "수입", + "importNFTs": "NFT 가져오기", + "in_store": "매장 내", + "incoming": "들어오는", + "incorrect_seed": "입력하신 텍스트가 유효하지 않습니다.", + "introducing_cake_pay": "소개 Cake Pay!", + "invalid_input": "잘못된 입력", + "invoice_details": "인보이스 세부정보", + "is_percentage": "이다", + "last_30_days": "지난 30일", + "learn_more": "더 알아보기", + "light_theme": "빛", + "loading_your_wallet": "지갑 넣기", + "login": "로그인", + "logout": "로그아웃", + "low_fee": "낮은 수수료", + "low_fee_alert": "현재 낮은 네트워크 요금 우선 순위를 사용하고 있습니다. 이로 인해 긴 대기 시간, 다른 요금 또는 취소된 거래가 발생할 수 있습니다. 더 나은 경험을 위해 더 높은 요금을 설정하는 것이 좋습니다.", + "manage_nodes": "노드 관리", + "manage_pow_nodes": "PoW 노드 관리", + "manage_yats": "관리하다 Yats", + "mark_as_redeemed": "사용한 것으로 표시", + "market_place": "마켓플레이스", + "matrix_green_dark_theme": "매트릭스 그린 다크 테마", + "max_amount": "최대: ${value}", + "max_value": "맥스: ${value} ${currency}", + "memo": "메모:", + "message": "메시지", + "methods": "행동 양식", + "min_amount": "최소: ${value}", + "min_value": "최소: ${value} ${currency}", + "minutes_to_pin_code": "${minute}분", + "mm": "mm", + "modify_2fa": "수정 케이크 2FA", + "monero_com": "Monero.com by Cake Wallet", + "monero_com_wallet_text": "Awesome wallet for Monero", + "monero_dark_theme": "모네로 다크 테마", + "monero_light_theme": "모네로 라이트 테마", + "moonpay_alert_text": "금액은 다음보다 크거나 같아야합니다 ${minAmount} ${fiatCurrency}", + "more_options": "추가 옵션", + "name": "이름", + "narrow": "좁은", + "new_first_wallet_text": "cryptocurrency를 쉽게 안전하게 유지하십시오", + "new_node_testing": "새로운 노드 테스트", + "new_subaddress_create": "몹시 떠들어 대다", + "new_subaddress_label_name": "라벨 이름", + "new_subaddress_title": "새 주소", + "new_template": "새 템플릿", + "new_wallet": "새 월렛", + "newConnection": "새로운 연결", + "no_id_needed": "ID가 필요하지 않습니다!", + "no_id_required": "신분증이 필요하지 않습니다. 충전하고 어디에서나 사용하세요", + "no_relay_on_domain": "사용자 도메인에 릴레이가 없거나 릴레이를 사용할 수 없습니다. 사용할 릴레이를 선택해주세요.", + "no_relays": "릴레이 없음", + "no_relays_message": "이 사용자에 대한 Nostr NIP-05 레코드를 찾았지만 릴레이가 포함되어 있지 않습니다. 수신자에게 Nostr 기록에 릴레이를 추가하도록 지시하십시오.", + "node_address": "노드 주소", + "node_connection_failed": "연결 실패", + "node_connection_successful": "성공적으로 연결되었습니다.", + "node_new": "새로운 노드", + "node_port": "노드 포트", + "node_reset_settings_title": "설정 초기화", + "node_test": "테스트", + "nodes": "노드", + "nodes_list_reset_to_default_message": "설정을 기본값으로 재설정 하시겠습니까?", + "none_of_selected_providers_can_exchange": "선택한 공급자 중 누구도 이 교환을 할 수 없습니다.", + "noNFTYet": "아직 NFT가 없습니다", + "normal": "정상", + "note_optional": "참고 (선택 사항)", + "note_tap_to_change": "메모 (변경하려면 탭하세요)", + "nullURIError": "URI가 null입니다.", + "offer_expires_in": "쿠폰 만료일: ", + "offline": "오프라인", + "ok": "승인", + "onion_link": "양파 링크", + "online": "온라인", + "onramper_option_description": "많은 결제 방법으로 암호화를 신속하게 구입하십시오. 대부분의 국가에서 사용할 수 있습니다. 스프레드와 수수료는 다양합니다.", + "open_gift_card": "기프트 카드 열기", + "optional_description": "선택적 설명", + "optional_email_hint": "선택적 수취인 알림 이메일", + "optional_name": "선택적 수신자 이름", + "optionally_order_card": "선택적으로 실제 카드를 주문하십시오.", + "orbot_running_alert": "이 노드에 연결하기 전에 Orbot이 실행 중인지 확인하십시오.", + "order_by": "주문", + "order_id": "주문 ID", + "order_physical_card": "물리적 카드 주문", + "other_settings": "기타 설정", + "outdated_electrum_wallet_description": "Cake에서 생성 된 새로운 비트 코인 지갑에는 이제 24 단어 시드가 있습니다. 새로운 비트 코인 지갑을 생성하고 모든 자금을 새로운 24 단어 지갑으로 이체하고 12 단어 시드가있는 지갑 사용을 중지해야합니다. 자금을 확보하려면 즉시이 작업을 수행하십시오.", + "outdated_electrum_wallet_receive_warning": "이 지갑에 12 단어 시드가 있고 Cake에서 생성 된 경우이 지갑에 비트 코인을 입금하지 마십시오. 이 지갑으로 전송 된 모든 BTC는 손실 될 수 있습니다. 새로운 24 단어 지갑을 생성하고 (오른쪽 상단의 메뉴를 탭하고 지갑을 선택한 다음 새 지갑 생성을 선택한 다음 비트 코인을 선택하십시오) 즉시 BTC를 그곳으로 이동하십시오. Cake의 새로운 (24 단어) BTC 지갑은 안전합니다", + "outgoing": "나가는", + "overwrite_amount": "Overwrite amount", + "pairingInvalidEvent": "잘못된 이벤트 페어링", + "password": "암호", + "paste": "풀", + "pause_wallet_creation": "Haven Wallet 생성 기능이 현재 일시 중지되었습니다.", + "payment_id": "지불 ID: ", + "payment_was_received": "결제가 접수되었습니다.", + "pending": " (보류 중)", + "percentageOf": "${amount} 중", + "pin_at_top": "상단에 ${token} 고정", + "pin_is_incorrect": "PIN이 잘못되었습니다", + "pin_number": "PIN 번호", + "placeholder_contacts": "연락처가 여기에 표시됩니다", + "placeholder_transactions": "거래가 여기에 표시됩니다", + "please_fill_totp": "다른 기기에 있는 8자리 코드를 입력하세요.", + "please_make_selection": "아래에서 선택하십시오 지갑 만들기 또는 복구.", + "Please_reference_document": "자세한 내용은 아래 문서를 참조하십시오.", + "please_select": "선택 해주세요:", + "please_select_backup_file": "백업 파일을 선택하고 백업 암호를 입력하십시오.", + "please_try_to_connect_to_another_node": "다른 노드에 연결을 시도하십시오", + "please_wait": "기다리세요", + "polygonscan_history": "다각형 스캔 기록", + "powered_by": "에 의해 구동 ${title}", + "pre_seed_button_text": "이해 했어요. 내 씨앗을 보여줘", + "pre_seed_description": "다음 페이지에서 ${words} 개의 단어를 볼 수 있습니다. 이것은 귀하의 고유하고 개인적인 시드이며 분실 또는 오작동시 지갑을 복구하는 유일한 방법입니다. 기록해두고 Cake Wallet 앱 외부의 안전한 장소에 보관하는 것은 귀하의 책임입니다.", + "pre_seed_title": "중대한", + "prevent_screenshots": "스크린샷 및 화면 녹화 방지", + "privacy": "프라이버시", + "privacy_policy": "개인 정보 보호 정책", + "privacy_settings": "개인정보 설정", + "private_key": "개인 키", + "proceed_after_one_minute": "1분 후에도 화면이 진행되지 않으면 이메일을 확인하세요.", + "profile": "프로필", + "provider_error": "${provider} 오류", + "public_key": "공개 키", + "purchase_gift_card": "기프트 카드 구매", + "qr_fullscreen": "전체 화면 QR 코드를 열려면 탭하세요.", + "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", + "question_to_disable_2fa": "Cake 2FA를 비활성화하시겠습니까? 지갑 및 특정 기능에 액세스하는 데 더 이상 2FA 코드가 필요하지 않습니다.", + "receivable_balance": "채권 잔액", + "receive": "받다", + "receive_amount": "양", + "received": "받았습니다", + "recipient_address": "받는 사람 주소", + "reconnect": "다시 연결", + "reconnect_alert_text": "다시 연결 하시겠습니까?", + "reconnection": "재 연결", + "redeemed": "구함", + "refund_address": "환불 주소", + "reject": "거부하다", + "remaining": "남은", + "remove": "없애다", + "remove_node": "노드 제거", + "remove_node_message": "선택한 노드를 제거 하시겠습니까?", + "rename": "이름 바꾸기", + "require_for_adding_contacts": "연락처 추가에 필요", + "require_for_all_security_and_backup_settings": "모든 보안 및 백업 설정에 필요", + "require_for_assessing_wallet": "지갑 접근을 위해 필요", + "require_for_creating_new_wallets": "새 지갑 생성에 필요", + "require_for_exchanges_to_external_wallets": "외부 지갑으로의 교환을 위해 필요", + "require_for_exchanges_to_internal_wallets": "내부 지갑으로의 교환에 필요", + "require_for_sends_to_contacts": "연락처로 보내기에 필요", + "require_for_sends_to_internal_wallets": "내부 지갑으로 보내는 데 필요", + "require_for_sends_to_non_contacts": "비접촉자에게 보내는 데 필요", + "require_pin_after": "다음 이후에 PIN 필요", + "rescan": "재검색", + "resend_code": "다시 보내주세요", + "reset": "다시 놓기", + "reset_password": "비밀번호 재설정", + "restore_active_seed": "활성 종자", + "restore_address": "주소", + "restore_bitcoin_description_from_keys": "개인 키에서 생성 된 WIF 문자열에서 지갑 복원", + "restore_bitcoin_description_from_seed": "24 단어 조합 코드에서 지갑 복원", + "restore_bitcoin_title_from_keys": "WIF에서 복원", + "restore_description_from_backup": "백업 파일에서 전체 Cake Wallet 앱을 복원 할 수 있습니다.", + "restore_description_from_keys": "개인 키에서 저장된 생성 된 키 스트로크에서 월렛 복원", + "restore_description_from_seed": "25 단어 또는 13 단어 조합 코드에서 지갑을 복원하십시오.", + "restore_description_from_seed_keys": "안전한 장소에 저장 한 종자 / 키로 지갑을 되 찾으십시오.", + "restore_from_date_or_blockheight": "이 지갑을 생성하기 며칠 전에 날짜를 입력하십시오. 또는 블록 높이를 알고있는 경우 대신 입력하십시오.", + "restore_from_seed_placeholder": "여기에 코드 문구를 입력하거나 붙여 넣으십시오.", + "restore_new_seed": "새로운 씨앗", + "restore_next": "다음 것", + "restore_recover": "다시 덮다", + "restore_restore_wallet": "월렛 복원", + "restore_seed_keys_restore": "종자 / 키 복원", + "restore_spend_key_private": "지출 키 (은밀한)", + "restore_title_from_backup": "백업 파일에서 복원", + "restore_title_from_keys": "키에서 복원", + "restore_title_from_seed": "종자에서 복원", + "restore_title_from_seed_keys": "시드 / 키에서 복원", + "restore_view_key_private": "키보기 (은밀한)", + "restore_wallet": "월렛 복원", + "restore_wallet_name": "지갑 이름", + "restore_wallet_restore_description": "월렛 복원 설명", + "router_no_route": "에 정의 된 경로가 없습니다 ${name}", + "save": "구하다", + "save_backup_password": "백업 암호를 저장했는지 확인하십시오. 그것 없이는 백업 파일을 가져올 수 없습니다.", + "save_backup_password_alert": "백업 비밀번호 저장", + "save_to_downloads": "다운로드에 저장", + "saved_the_trade_id": "거래 ID를 저장했습니다", + "scan_qr_code": "QR 코드 스캔", + "scan_qr_code_to_get_address": "QR 코드를 스캔하여 주소를 얻습니다.", + "scan_qr_on_device": "다른 기기에서 이 QR 코드를 스캔하세요.", + "search": "찾다", + "search_add_token": "검색 / 토큰 추가", + "search_category": "검색 카테고리", + "search_currency": "통화 검색", + "search_language": "검색 언어", + "second_intro_content": "귀하의 Yat는 귀하의 모든 통화에 대해 긴 16진수 주소를 모두 대체하는 고유한 단일 이모지 주소입니다.", + "second_intro_title": "그들을 모두 지배하는 하나의 이모티콘 주소", + "security_and_backup": "보안 및 백업", + "seed_alert_back": "돌아 가기", + "seed_alert_content": "씨앗은 지갑을 복구하는 유일한 방법입니다. 적어 보셨나요?", + "seed_alert_title": "주의", + "seed_alert_yes": "네, 있어요", + "seed_choose": "시드 언어를 선택하십시오", "seed_hex_form": "지갑 씨앗 (16 진 양식)", + "seed_key": "시드 키", + "seed_language": "종자 언어", + "seed_language_chinese": "중국말", + "seed_language_chinese_traditional": "중국 전통)", + "seed_language_czech": "체코 사람", + "seed_language_dutch": "네덜란드 사람", + "seed_language_english": "영어", + "seed_language_french": "프랑스 국민", + "seed_language_german": "독일 사람", + "seed_language_italian": "이탈리아 사람", + "seed_language_japanese": "일본어", + "seed_language_korean": "한국인", + "seed_language_next": "다음 것", + "seed_language_portuguese": "포르투갈 인", + "seed_language_russian": "러시아인", + "seed_language_spanish": "스페인의", + "seed_phrase_length": "시드 문구 길이", + "seed_reminder": "휴대 전화를 분실하거나 닦을 경우를 대비해 적어 두세요.", + "seed_share": "시드 공유", + "seed_title": "씨", "seedtype": "시드 타입", "seedtype_legacy": "레거시 (25 단어)", "seedtype_polyseed": "다문 (16 단어)", - "seed_language_czech": "체코 사람", - "seed_language_korean": "한국인", - "seed_language_chinese_traditional": "중국 전통)", - "ascending": "오름차순", - "descending": "내림차순", - "dfx_option_description": "EUR 및 CHF로 암호화폐를 구매하세요. 추가 KYC 없이 최대 990€. 유럽의 소매 및 기업 고객용", - "polygonscan_history": "다각형 스캔 기록", - "wallet_seed_legacy": "레거시 지갑 시드", - "default_sell_provider": "기본 판매 공급자", + "select_backup_file": "백업 파일 선택", + "select_buy_provider_notice": "위의 구매 제공자를 선택하십시오. 앱 설정에서 기본 구매 제공자를 설정 하여이 화면을 건너 뛸 수 있습니다.", + "select_destination": "백업 파일의 대상을 선택하십시오.", "select_sell_provider_notice": "위에서 판매 공급자를 선택하세요. 앱 설정에서 기본 판매 공급자를 설정하면 이 화면을 건너뛸 수 있습니다.", - "custom_drag": "사용자 정의 (홀드 앤 드래그)", + "sell": "팔다", + "sell_alert_content": "현재 Bitcoin, Ethereum 및 Litecoin의 판매만 지원합니다. Bitcoin, Ethereum 또는 Litecoin 지갑을 생성하거나 전환하십시오.", + "sell_monero_com_alert_content": "지원되지 않습니다.", + "send": "보내다", + "send_address": "${cryptoCurrency} 주소", + "send_amount": "양:", + "send_creating_transaction": "거래 생성", + "send_error_currency": "통화는 숫자 만 포함 할 수 있습니다", + "send_error_minimum_value": "금액의 최소값은 0.01입니다", + "send_estimated_fee": "예상 수수료:", + "send_fee": "회비:", + "send_name": "이름", + "send_new": "새로운", + "send_payment_id": "지불 ID (optional)", + "send_priority": "현재 수수료는 ${transactionPriority} 우선 순위.\n거래 우선 순위는 설정에서 조정할 수 있습니다", + "send_sending": "배상...", + "send_success": "${crypto}가 성공적으로 전송되었습니다", + "send_templates": "템플릿", + "send_title": "보내다", + "send_to_this_address": "이 주소로 ${currency} ${tag}송금", + "send_xmr": "보내다 XMR", + "send_your_wallet": "지갑", + "sending": "배상", + "sent": "보냄", + "settings": "설정", + "settings_all": "모든", + "settings_allow_biometrical_authentication": "생체 인증 허용", + "settings_can_be_changed_later": "이 설정은 나중에 앱 설정에서 변경할 수 있습니다.", + "settings_change_language": "언어 변경", + "settings_change_pin": "PIN 변경", + "settings_currency": "통화", + "settings_current_node": "현재 노드", + "settings_dark_mode": "다크 모드", + "settings_display_balance": "디스플레이 잔액", + "settings_display_on_dashboard_list": "대시 보드 목록에 표시", + "settings_fee_priority": "수수료 우선", + "settings_nodes": "노드", + "settings_none": "없음", + "settings_only_trades": "거래 만", + "settings_only_transactions": "거래 만", + "settings_personal": "개인적인", + "settings_save_recipient_address": "수신자 주소 저장", + "settings_support": "지원하다", + "settings_terms_and_conditions": "이용 약관", + "settings_title": "설정", + "settings_trades": "거래", + "settings_transactions": "업무", + "settings_wallets": "지갑", + "setup_2fa": "케이크 2FA 설정", + "setup_2fa_text": "Cake 2FA는 TOTP를 두 번째 인증 요소로 사용하여 작동합니다.\n\nCake 2FA의 TOTP에는 SHA-512 및 8자리 지원이 필요합니다. 이는 보안을 강화합니다. 자세한 정보와 지원되는 앱은 가이드에서 확인할 수 있습니다.", + "setup_pin": "설정 PIN", + "setup_successful": "PIN이 성공적으로 설정되었습니다!", + "setup_totp_recommended": "TOTP 설정", + "setup_warning_2fa_text": "Cake 2FA는 지갑의 특정 작업에 대한 두 번째 인증입니다. 냉장 보관만큼 안전하지 않습니다.\n\n2FA 앱 또는 TOTP 키에 대한 액세스 권한을 상실하면 이 지갑에 대한 액세스 권한도 잃게 됩니다. 니모닉 시드에서 지갑을 복원해야 합니다.\n\n2FA 또는 니모닉 시드에 액세스할 수 없는 경우 Cake 지원팀에서 도움을 드릴 수 없습니다.\nCake 2FA를 사용하기 전에 가이드를 읽어 보시기 바랍니다.", + "setup_your_debit_card": "직불카드 설정", + "share": "공유하다", + "share_address": "주소 공유", + "show_details": "세부정보 표시", + "show_keys": "시드 / 키 표시", + "show_market_place": "마켓플레이스 표시", + "show_seed": "종자 표시", + "sign_up": "가입", + "signTransaction": "거래 서명", + "signup_for_card_accept_terms": "카드에 가입하고 약관에 동의합니다.", + "slidable": "슬라이딩 가능", + "sort_by": "정렬 기준", + "spend_key_private": "지출 키 (은밀한)", + "spend_key_public": "지출 키 (공공의)", + "status": "지위: ", + "subaddress_title": "하위 주소 목록", + "subaddresses": "하위 주소", + "submit_request": "요청을 제출", + "successful": "성공적인", + "support_description_guides": "일반적인 문제에 대한 문서화 및 지원", + "support_description_live_chat": "자유롭고 빠릅니다! 훈련 된 지원 담당자가 지원할 수 있습니다", + "support_description_other_links": "다른 방법을 통해 커뮤니티에 가입하거나 파트너에게 연락하십시오.", + "support_title_guides": "케이크 지갑 가이드", + "support_title_live_chat": "실시간 지원", + "support_title_other_links": "다른 지원 링크", + "sweeping_wallet": "스위핑 지갑", + "sweeping_wallet_alert": "오래 걸리지 않습니다. 이 화면을 떠나지 마십시오. 그렇지 않으면 스웹트 자금이 손실될 수 있습니다.", + "switchToETHWallet": "이더리움 지갑으로 전환한 후 다시 시도해 주세요.", "switchToEVMCompatibleWallet": "EVM 호환 지갑으로 전환 후 다시 시도해 주세요. (이더리움, 폴리곤)", - "receivable_balance": "채권 잔액", - "confirmed_tx": "확인", + "symbol": "상징", + "sync_all_wallets": "모든 지갑 동기화", + "sync_status_attempting_sync": "동기화 시도 중", + "sync_status_connected": "연결됨", + "sync_status_connecting": "연결 중", + "sync_status_failed_connect": "연결 해제", + "sync_status_not_connected": "연결되지 않은", + "sync_status_starting_sync": "동기화 시작", + "sync_status_syncronized": "동기화", + "sync_status_syncronizing": "동기화", + "syncing_wallet_alert_content": "상단에 \"동기화됨\"이라고 표시될 때까지 잔액 및 거래 목록이 완전하지 않을 수 있습니다. 자세히 알아보려면 클릭/탭하세요.", + "syncing_wallet_alert_title": "지갑 동기화 중", + "template": "주형", + "template_name": "템플릿 이름", + "third_intro_content": "Yats는 Cake Wallet 밖에서도 살고 있습니다. 지구상의 모든 지갑 주소는 Yat!", + "third_intro_title": "Yat는 다른 사람들과 잘 놉니다.", + "time": "${minutes}m ${seconds}s", + "tip": "팁:", + "today": "오늘", + "token_contract_address": "토큰 계약 주소", + "token_decimal": "토큰 십진수", + "token_name": "토큰 이름 예: Tether", + "token_symbol": "토큰 기호 예: USDT", + "tokenID": "ID", + "tor_connection": "토르 연결", + "tor_only": "Tor 뿐", + "total_saving": "총 절감액", + "totp_2fa_failure": "잘못된 코드입니다. 다른 코드를 시도하거나 새 비밀 키를 생성하십시오. 8자리 코드와 SHA512를 지원하는 호환되는 2FA 앱을 사용하세요.", + "totp_2fa_success": "성공! 이 지갑에 케이크 2FA가 활성화되었습니다. 지갑 액세스 권한을 잃을 경우를 대비하여 니모닉 시드를 저장하는 것을 잊지 마십시오.", + "totp_auth_url": "TOTP 인증 URL", + "totp_code": "TOTP 코드", + "totp_secret_code": "TOTP 비밀 코드", + "totp_verification_success": "확인 성공!", + "trade_details_copied": "${title} 클립 보드에 복사", + "trade_details_created_at": "에 작성", + "trade_details_fetching": "가져 오는 중", + "trade_details_id": "ID", + "trade_details_pair": "쌍", + "trade_details_provider": "공급자", + "trade_details_state": "상태", + "trade_details_title": "거래 세부 사항", + "trade_for_not_created": "거래 ${title} 생성되지 않습니다.", + "trade_history_title": "무역 역사", + "trade_id": "무역 ID:", + "trade_id_not_found": "무역 ${tradeId} 의 ${title} 찾을 수 없습니다.", + "trade_is_powered_by": "이 거래는 ${provider}", + "trade_not_created": "거래가 생성되지 않았습니다", + "trade_not_found": "거래를 찾을 수 없습니다.", + "trade_state_btc_sent": "보냄", + "trade_state_complete": "완전한", + "trade_state_confirming": "확인 중", + "trade_state_created": "만들어진", + "trade_state_finished": "끝마친", + "trade_state_paid": "유료", + "trade_state_paid_unconfirmed": "미확인 유료", + "trade_state_pending": "대기 중", + "trade_state_timeout": "타임 아웃", + "trade_state_to_be_created": "만들려면", + "trade_state_traded": "거래", + "trade_state_trading": "거래", + "trade_state_underpaid": "미지급", + "trade_state_unpaid": "미지급", + "trades": "거래", + "transaction_details_amount": "양", + "transaction_details_copied": "${title} 클립 보드에 복사", + "transaction_details_date": "날짜", + "transaction_details_fee": "회비", + "transaction_details_height": "신장", + "transaction_details_recipient_address": "받는 사람 주소", "transaction_details_source_address": "소스 주소", - "pause_wallet_creation": "Haven Wallet 생성 기능이 현재 일시 중지되었습니다.", - "contractName": "계약명", - "contractSymbol": "계약 기호", - "description": "설명", - "camera_consent": "귀하의 카메라는 ${provider}의 식별 목적으로 이미지를 캡처하는 데 사용됩니다. 자세한 내용은 해당 개인정보 보호정책을 확인하세요.", - "no_relays": "릴레이 없음", - "choose_relay": "사용할 릴레이를 선택해주세요", - "no_relays_message": "이 사용자에 대한 Nostr NIP-05 레코드를 찾았지만 릴레이가 포함되어 있지 않습니다. 수신자에게 Nostr 기록에 릴레이를 추가하도록 지시하십시오.", - "no_relay_on_domain": "사용자 도메인에 릴레이가 없거나 릴레이를 사용할 수 없습니다. 사용할 릴레이를 선택해주세요." -} + "transaction_details_title": "상세 거래 내역", + "transaction_details_transaction_id": "트랜잭션 ID", + "transaction_key": "거래 키", + "transaction_priority_fast": "빠른", + "transaction_priority_fastest": "가장 빠른", + "transaction_priority_medium": "매질", + "transaction_priority_regular": "정규병", + "transaction_priority_slow": "느린", + "transaction_sent": "거래가 전송되었습니다!", + "transaction_sent_notice": "1분 후에도 화면이 진행되지 않으면 블록 익스플로러와 이메일을 확인하세요.", + "transactions": "업무", + "transactions_by_date": "날짜 별 거래", + "trusted": "신뢰할 수 있는", + "unavailable_balance": "사용할 수 없는 잔액", + "unavailable_balance_description": "사용할 수 없는 잔액: 이 총계에는 보류 중인 거래에 잠겨 있는 자금과 코인 관리 설정에서 적극적으로 동결된 자금이 포함됩니다. 잠긴 잔액은 해당 거래가 완료되면 사용할 수 있게 되며, 동결된 잔액은 동결을 해제하기 전까지 거래에 액세스할 수 없습니다.", + "unconfirmed": "확인되지 않은 잔액", + "understand": "이해 했어요", + "unmatched_currencies": "현재 지갑의 통화가 스캔한 QR의 통화와 일치하지 않습니다.", + "unspent_change": "변화", + "unspent_coins_details_title": "사용하지 않은 동전 세부 정보", + "unspent_coins_title": "사용하지 않은 동전", + "unsupported_asset": "이 저작물에 대해 이 작업을 지원하지 않습니다. 지원되는 자산 유형의 지갑을 생성하거나 전환하십시오.", + "upto": "최대 ${value}", + "use": "사용하다 ", + "use_card_info_three": "디지털 카드를 온라인 또는 비접촉식 결제 수단으로 사용하십시오.", + "use_card_info_two": "디지털 화폐가 아닌 선불 계정에 보유하면 자금이 USD로 변환됩니다.", + "use_ssl": "SSL 사용", + "use_suggested": "추천 사용", + "variable_pair_not_supported": "이 변수 쌍은 선택한 교환에서 지원되지 않습니다.", + "verification": "검증", + "verify_with_2fa": "케이크 2FA로 확인", + "version": "버전 ${currentVersion}", + "view_all": "모두 보기", + "view_in_block_explorer": "View in Block Explorer", + "view_key_private": "키보기(은밀한)", + "view_key_public": "키보기 (공공의)", + "view_transaction_on": "View Transaction on ", + "wallet_keys": "지갑 시드 / 키", + "wallet_list_create_new_wallet": "새 월렛 만들기", + "wallet_list_edit_wallet": "지갑 수정", + "wallet_list_failed_to_load": "불러 오지 못했습니다 ${wallet_name} 지갑. ${error}", + "wallet_list_failed_to_remove": "제거하지 못했습니다 ${wallet_name} 지갑. ${error}", + "wallet_list_load_wallet": "지갑로드", + "wallet_list_loading_wallet": "로딩 ${wallet_name} 지갑", + "wallet_list_removing_wallet": "풀이 ${wallet_name} 지갑", + "wallet_list_restore_wallet": "월렛 복원", + "wallet_list_title": "모네로 월렛", + "wallet_list_wallet_name": "지갑 이름", + "wallet_menu": "월렛 메뉴", + "wallet_name": "지갑 이름", + "wallet_name_exists": "해당 이름의 지갑이 이미 존재합니다.", + "wallet_restoration_store_incorrect_seed_length": "시드 길이가 잘못되었습니다", + "wallet_seed": "지갑 시드", + "wallet_seed_legacy": "레거시 지갑 시드", + "wallet_store_monero_wallet": "모네로 월렛", + "walletConnect": "월렛커넥트", + "wallets": "지갑", + "warning": "경고", + "welcome": "환영 에", + "welcome_to_cakepay": "Cake Pay에 오신 것을 환영합니다!", + "widgets_address": "주소", + "widgets_or": "또는", + "widgets_restore_from_blockheight": "블록 높이에서 복원", + "widgets_restore_from_date": "날짜에서 복원", + "widgets_seed": "씨", + "wouoldLikeToConnect": "연결하고 싶습니다", + "write_down_backup_password": "백업 파일 가져 오기에 사용되는 백업 암호를 적어 두십시오.", + "xlm_extra_info": "교환을 위해 XLM 거래를 보낼 때 메모 ID를 지정하는 것을 잊지 마십시오", + "xmr_available_balance": "사용 가능한 잔액", + "xmr_full_balance": "풀 밸런스", + "xmr_hidden": "숨김", + "xmr_to_error": "XMR.TO 오류", + "xmr_to_error_description": "금액이 잘못되었습니다. 소수점 이하 최대 8 자리", + "xrp_extra_info": "교환을 위해 XRP 트랜잭션을 보내는 동안 대상 태그를 지정하는 것을 잊지 마십시오", + "yat": "Yat", + "yat_address": "Yat 주소", + "yat_alert_content": "Cake Wallet 사용자는 이제 독특한 이모티콘 기반 사용자 이름으로 좋아하는 모든 통화를 보내고 받을 수 있습니다.", + "yat_alert_title": "Yat으로 더 쉽게 암호화폐를 보내고 받으십시오.", + "yat_error": "Yat 오류", + "yat_error_content": "이 Yat와 연결된 주소가 없습니다. 다른 Yat 시도", + "yat_popup_content": "이제 Yat(이모티콘 기반의 짧은 사용자 이름)으로 Cake Wallet에서 암호화폐를 보내고 받을 수 있습니다. 설정 화면에서 언제든지 Yats 관리", + "yat_popup_title": "지갑 주소를 이모티콘으로 만들 수 있습니다.", + "yesterday": "어제", + "you_now_have_debit_card": "이제 직불카드가 있습니다.", + "you_pay": "당신이 지불합니다", + "you_will_get": "로 변환하다", + "you_will_send": "다음에서 변환", + "YY": "YY", + "zzzz": "zzzz" +} \ No newline at end of file diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index 27c9bdeeb..fecec9f18 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -1,777 +1,778 @@ { - "welcome": "မှကြိုဆိုပါတယ်။", - "cake_wallet": "Cake ပိုက်ဆံအိတ်", - "first_wallet_text": "Monero၊ Bitcoin၊ Ethereum၊ Litecoin နှင့် Haven အတွက် အလွန်ကောင်းမွန်သော ပိုက်ဆံအိတ်", - "please_make_selection": "သင့်ပိုက်ဆံအိတ်ကို ဖန်တီးရန် သို့မဟုတ် ပြန်လည်ရယူရန် အောက်တွင် ရွေးချယ်မှုတစ်ခု ပြုလုပ်ပါ။", - "create_new": "Wallet အသစ်ဖန်တီးပါ။", - "restore_wallet": "ပိုက်ဆံအိတ်ကို ပြန်ယူပါ။", - "monero_com": "Monero.com မှ Cake ပိုက်ဆံအိတ်", - "monero_com_wallet_text": "Monero အတွက် အမိုက်စား ပိုက်ဆံအိတ်", - "haven_app": "ဟေးဗင် ကိတ် ဝေါလက်", - "haven_app_wallet_text": "ဟေဗင်အတွက် အံ့ဩစရာကောင်းတဲ့ ပိုက်ဆံအုံး", - "accounts": "အကောင့်များ", - "edit": "တည်းဖြတ်ပါ။", + "about_cake_pay": "Cake Pay သည် အမေရိကန်ပြည်ထောင်စုရှိ ကုန်သည် 150,000 ကျော်တွင် လက်ဆောင်ကတ်များကို လက်ဆောင်ကတ်များကို အလွယ်တကူ ဝယ်ယူနိုင်စေပါသည်။", "account": "အကောင့်", + "accounts": "အကောင့်များ", + "accounts_subaddresses": "အကောင့်များနှင့် လိပ်စာများ", + "activate": "အသက်သွင်းပါ။", + "active": "အသက်ဝင်သည်။", + "active_cards": "အသက်ဝင်သောကတ်များ", + "activeConnectionsPrompt": "လက်ရှိချိတ်ဆက်မှုများ ဤနေရာတွင် ပေါ်လာပါမည်။", "add": "ထည့်ပါ။", + "add_contact": "အဆက်အသွယ်ထည့်ပါ။", + "add_custom_node": "စိတ်ကြိုက် Node အသစ်ကို ထည့်ပါ။", + "add_custom_redemption": "စိတ်ကြိုက်ရွေးယူမှုကို ထည့်ပါ။", + "add_fund_to_card": "ကတ်များသို့ ကြိုတင်ငွေပေးငွေများ ထည့်ပါ (${value} အထိ)", + "add_new_node": "နှာခေါင်း အသစ်ထည့်ပါ။", + "add_new_word": "စကားလုံးအသစ်ထည့်ပါ။", + "add_receiver": "အခြားလက်ခံသူ ထည့်ပါ (ချန်လှပ်ထားနိုင်သည်)", + "add_secret_code": "သို့မဟုတ် ဤလျှို့ဝှက်ကုဒ်ကို အထောက်အထားစိစစ်ခြင်းအက်ပ်တစ်ခုသို့ ထည့်ပါ။", + "add_tip": "အကြံပြုချက်ထည့်ပါ။", + "add_token_disclaimer_check": "ဂုဏ်သိက္ခာရှိသော အရင်းအမြစ်ကို အသုံးပြု၍ တိုကင်စာချုပ်လိပ်စာနှင့် အချက်အလက်ကို ကျွန်ုပ်အတည်ပြုပြီးဖြစ်သည်။ အန္တရာယ်ရှိသော သို့မဟုတ် မမှန်ကန်သော အချက်အလက်များကို ထည့်သွင်းခြင်းသည် ရန်ပုံငွေများ ဆုံးရှုံးသွားနိုင်သည်။", + "add_token_warning": "လိမ်လည်သူများ ညွှန်ကြားထားသည့်အတိုင်း တိုကင်များကို တည်းဖြတ်ခြင်း သို့မဟုတ် မထည့်ပါနှင့်။\nဂုဏ်သိက္ခာရှိသော အရင်းအမြစ်များဖြင့် အမြဲတမ်း တိုကင်လိပ်စာများကို အတည်ပြုပါ။", + "add_value": "တန်ဖိုးထည့်ပါ။", + "address": "လိပ်စာ", "address_book": "လိပ်စာစာအုပ်", - "contact": "ဆက်သွယ်ရန်", - "please_select": "ကျေးဇူးပြု၍ ရွေးချယ်ပါ-", - "cancel": "မလုပ်တော့", - "ok": "ရလား", - "contact_name": "ဆက်သွယ်ရန်အမည်", - "reset": "ပြန်လည်သတ်မှတ်ပါ။", - "save": "သိမ်းဆည်းပါ။", + "address_book_menu": "လိပ်စာစာအုပ်", + "address_detected": "လိပ်စာကို တွေ့ရှိခဲ့သည်။", + "address_from_domain": "ဤလိပ်စာသည် Unstoppable Domains ရှိ ${domain} မှဖြစ်သည်။", + "address_from_yat": "ဤလိပ်စာသည် Yat ရှိ ${emoji} မှဖြစ်သည်။", + "address_label": "လိပ်စာတံဆိပ်", "address_remove_contact": "အဆက်အသွယ်ကို ဖယ်ရှားပါ။", "address_remove_content": "ရွေးချယ်ထားသောအဆက်အသွယ်ကို ဖယ်ရှားလိုသည်မှာ သေချာပါသလား။", - "authenticated": "အစစ်အမှန်", - "authentication": "စစ်ဆေးခြင်း", - "failed_authentication": "အထောက်အထားစိစစ်ခြင်း မအောင်မြင်ပါ။. ${state_error}", - "wallet_menu": "မီနူး", - "Blocks_remaining": "${status} ဘလောက်များ ကျန်နေပါသည်။", - "please_try_to_connect_to_another_node": "အခြား node သို့ ချိတ်ဆက်ရန် ကြိုးစားပါ။", - "xmr_hidden": "ဝှက်ထားသည်။", - "xmr_available_balance": "လက်ကျန်ငွေ ရရှိနိုင်", - "xmr_full_balance": "မျှတမှု အပြည့်အစုံ", - "send": "ပို့ပါ။", - "receive": "လက်ခံသည်။", - "transactions": "ငွေပေးငွေယူ", - "incoming": "ဝင်လာ", - "outgoing": "အထွက်", - "transactions_by_date": "ရက်စွဲအလိုက် ငွေလွှဲမှုများ", - "trades": "ကုန်သွယ်မှုများ", - "filter_by": "အလိုက် စစ်ထုတ်ပါ။", - "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": "${title} မှ ပံ့ပိုးပေးသည်", - "error": "အမှား", - "estimated": "ခန့်မှန်း", - "min_value": "အနည်းဆုံး- ${value} ${currency}", - "max_value": "အများဆုံး- ${value} ${currency}", - "change_currency": "ငွေကြေးကိုပြောင်းပါ။", - "overwrite_amount": "ပမာဏကို ထပ်ရေးပါ။", - "qr_payment_amount": "ဤ QR ကုဒ်တွင် ငွေပေးချေမှုပမာဏတစ်ခုပါရှိသည်။ လက်ရှိတန်ဖိုးကို ထပ်ရေးလိုပါသလား။", - "copy_id": "ID ကူးယူပါ။", - "exchange_result_write_down_trade_id": "ရှေ့ဆက်ရန် ကုန်သွယ်မှု ID ကို ကူးယူ သို့မဟုတ် ချရေးပါ။", - "trade_id": "ကုန်သွယ်မှု ID:", - "copied_to_clipboard": "ကလစ်ဘုတ်သို့ ကူးယူထားသည်။", - "saved_the_trade_id": "ကုန်သွယ်မှု 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": "အမြဲမေးလေ့ရှိသောမေးခွန်းများ", - "enter_your_pin": "သင်၏ 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_to_get_address": "လိပ်စာရယူရန် QR ကုဒ်ကို စကင်န်ဖတ်ပါ။", - "qr_fullscreen": "မျက်နှာပြင်အပြည့် QR ကုဒ်ကိုဖွင့်ရန် တို့ပါ။", - "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": "သော့ကိုကြည့်ရန် (သီးသန့်)", - "restore_spend_key_private": "သော့သုံးရန် (သီးသန့်)", - "restore_recover": "ပြန်ယူပါ။", - "restore_wallet_restore_description": "Wallet ပြန်လည်ရယူသည့် ဖော်ပြချက်", - "restore_new_seed": "မျိုးစေ့အသစ်", - "restore_active_seed": "တက်ကြွသောအစေ့", - "restore_bitcoin_description_from_seed": "24 စကားလုံးပေါင်းစပ်ကုဒ်မှ သင့်ပိုက်ဆံအိတ်ကို ပြန်ယူပါ။", - "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": "မျိုးစေ့ဘာသာ", - "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": "ငပိ", - "seed_language_french": "ပြင်သစ်", - "seed_language_italian": "အီတလီ", - "send_title": "ပို့ပါ။", - "send_your_wallet": "သင့်ပိုက်ဆံအိတ်", - "send_address": "${cryptoCurrency} လိပ်စာ", - "send_payment_id": "ငွေပေးချေမှု ID (ချန်လှပ်ထား)", + "advanced_settings": "အဆင့်မြင့်ချိန်ညှိချက်များ", + "aggressive": "စိတ်အားထက်သန်ခြင်း။", + "agree": "သဘောတူသည်။", + "agree_and_continue": "သဘောတူပြီး ရှေ့ဆက်ပါ။", + "agree_to": "အကောင့်ဖန်တီးခြင်းဖြင့် သင်သည် ဤအရာကို သဘောတူပါသည်။", "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": "နာမည်", - "got_it": "ရပြီ", - "send_sending": "ပို့နေသည်...", - "send_success": "သင်၏ ${crypto} ကို အောင်မြင်စွာ ပို့လိုက်ပါပြီ။", - "settings_title": "ဆက်တင်များ", - "settings_nodes": "ဆုံမှတ်များ", - "settings_current_node": "လက်ရှိ node", - "settings_wallets": "ပိုက်ဆံအိတ်", - "settings_display_balance": "ပြသချိန်ခွင်", - "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": "ပင်နံပါတ် မမှန်ပါ။", - "setup_pin": "ပင်နံပါတ်ကို စနစ်ထည့်သွင်းပါ။", - "enter_your_pin_again": "သင့်ပင်နံပါတ်ကို ထပ်မံထည့်သွင်းပါ။", - "setup_successful": "သင့်ပင်နံပါတ်ကို အောင်မြင်စွာ သတ်မှတ်ပြီးပါပြီ။", - "wallet_keys": "ပိုက်ဆံအိတ် အစေ့/သော့များ", - "wallet_seed": "ပိုက်ဆံအိတ်စေ့", - "private_key": "သီးသန့်သော့", - "public_key": "အများသူငှာသော့", - "view_key_private": "သော့ကိုကြည့်ရန် (သီးသန့်)", - "view_key_public": "သော့ကိုကြည့်ရန် (အများပြည်သူ)", - "spend_key_private": "သော့သုံးရန် (သီးသန့်)", - "spend_key_public": "သုံးစွဲရန်သော့ (အများပြည်သူ)", - "copied_key_to_clipboard": "${key} ကို Clipboard သို့ ကူးယူထားသည်။", - "new_subaddress_title": "လိပ်စာအသစ်", - "new_subaddress_label_name": "အညွှန်းအမည်", - "new_subaddress_create": "ဖန်တီးပါ။", - "address_label": "လိပ်စာတံဆိပ်", - "subaddress_title": "လိပ်စာစာရင်း", - "trade_details_title": "ကုန်သွယ်မှုအသေးစိတ်", - "trade_details_id": "အမှတ်သညာ", - "trade_details_state": "အဆင့်အတန်း", - "trade_details_fetching": "ခေါ်ယူခြင်း။", - "trade_details_provider": "ပံ့ပိုးပေးသူ", - "trade_details_created_at": "တွင်ဖန်တီးခဲ့သည်။", - "trade_details_pair": "တွဲ", - "trade_details_copied": "${title} ကို Clipboard သို့ ကူးယူထားသည်။", - "trade_history_title": "ကုန်သွယ်မှုသမိုင်း", - "transaction_details_title": "ငွေပေးငွေယူအသေးစိတ်", - "transaction_details_transaction_id": "ငွေပေးငွေယူ ID", - "transaction_details_date": "ရက်စွဲ", - "transaction_details_height": "အရပ်အမြင့်", - "transaction_details_amount": "ပမာဏ", - "transaction_details_fee": "ကြေး", - "transaction_details_copied": "${title} ကို Clipboard သို့ ကူးယူထားသည်။", - "transaction_details_recipient_address": "လက်ခံသူလိပ်စာများ", - "wallet_list_title": "Monero ပိုက်ဆံအိတ်", - "wallet_list_create_new_wallet": "Wallet အသစ်ဖန်တီးပါ။", - "wallet_list_edit_wallet": "ပိုက်ဆံအိတ်ကို တည်းဖြတ်ပါ။", - "wallet_list_wallet_name": "ပိုက်ဆံအိတ်နာမည်", - "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": "Wallet လိပ်စာသည် အမျိုးအစား\no cryptocurrency နှင့် ကိုက်ညီရပါမည်။", - "error_text_node_address": "ကျေးဇူးပြု၍ iPv4 လိပ်စာကို ထည့်ပါ။", - "error_text_node_port": "နော်ဒီဆိပ်ကမ်း တွင် 0 နှင့် 65535 အကြား နံပါတ်များသာ ပါဝင်နိုင်သည်။", - "error_text_node_proxy_address": "ကျေးဇူးပြု၍ :၊ ဥပမာ 127.0.0.1:9050 ထည့်ပါ", - "error_text_payment_id": "ငွေပေးချေမှု ID တွင် hex တွင် စာလုံး 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 နှင့် 33 ကြားရှိရမည်", - "error_text_keys": "ပိုက်ဆံအိတ်သော့များတွင် hex တွင် 64 လုံးသာပါဝင်နိုင်သည်။", - "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 ကြား ရှိရမည်", + "all_trades": "ကုန်သွယ်မှုအားလုံး", + "all_transactions": "အရောင်းအဝယ်အားလုံး", + "alphabetical": "အက္ခရာစဉ်", + "already_have_account": "အကောင့်ရှိပြီးသားလား?", + "always": "အမြဲတမ်း", + "amount": "ပမာဏ:", + "amount_is_estimate": "ရရှိသည့်ပမာဏသည် ခန့်မှန်းချက်တစ်ခုဖြစ်သည်။", + "amount_is_guaranteed": "ရရှိသည့်ပမာဏကို အာမခံပါသည်။", + "and": "နှင့်", + "anonpay_description": "${type} ကို ဖန်တီးပါ။ လက်ခံသူက ${method} ကို ပံ့ပိုးပေးထားသည့် cryptocurrency တစ်ခုခုဖြင့် လုပ်ဆောင်နိုင်ပြီး၊ သင်သည် ဤပိုက်ဆံအိတ်တွင် ရံပုံငွေများ ရရှိမည်ဖြစ်သည်။", + "apk_update": "APK အပ်ဒိတ်", + "approve": "လက်မခံပါ။", + "arrive_in_this_address": "${currency} ${tag}ဤလိပ်စာသို့ ရောက်ရှိပါမည်။", + "ascending": "တက်", + "ask_each_time": "တစ်ခုချင်းစီကိုအချိန်မေးပါ", "auth_store_ban_timeout": "အချိန်ကို ပိတ်ပင်ခြင်း", "auth_store_banned_for": "ပိတ်ပင်ထားသည်။", "auth_store_banned_minutes": " မိနစ်များ", "auth_store_incorrect_password": "ပင်နံပါတ် မှားနေသည်။", - "wallet_store_monero_wallet": "Monero ပိုက်ဆံအိတ်", - "wallet_restoration_store_incorrect_seed_length": "မျိုးစေ့အရှည် မမှန်ပါ။", - "full_balance": "Balance အပြည့်", - "available_balance": "လက်ကျန်ငွေ ရရှိနိုင်", - "hidden_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": "ချိတ်ဆက်ထားသည်။", - "sync_status_attempting_sync": "ချိန်ကိုက်ခြင်းကို ကြိုးစားနေသည်။", - "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": "${title} ၏ ${tradeId} ကုန်သွယ်မှုကို ရှာမတွေ့ပါ။", - "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": "Btc ပို့လိုက်ပါတယ်။", - "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}", - "extracted_address_content": "သင်သည် \n${recipient_name} သို့ ရန်ပုံငွေများ ပေးပို့ပါမည်", - "card_address": "လိပ်စာ-", - "buy": "ဝယ်ပါ။", - "sell": "ရောင်း", - "placeholder_transactions": "သင်၏ ငွေပေးငွေယူများကို ဤနေရာတွင် ပြသပါမည်။", - "placeholder_contacts": "သင့်အဆက်အသွယ်များကို ဤနေရာတွင် ပြသပါမည်။", - "template": "ပုံစံခွက်", - "confirm_delete_template": "ဤလုပ်ဆောင်ချက်သည် ဤပုံစံပြားကို ဖျက်လိုက်ပါမည်။ ဆက်လုပ်လိုပါသလား။", - "confirm_delete_wallet": "ဤလုပ်ဆောင်ချက်သည် ဤပိုက်ဆံအိတ်ကို ဖျက်လိုက်ပါမည်။ ဆက်လုပ်လိုပါသလား။", - "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": "ပမာဏ မမှန်ပါ။ ဒဿမအမှတ်ပြီးနောက် ဂဏန်း ၈ လုံးတွင် အများဆုံးကန့်သတ်ချက်", - "provider_error": "${provider} အမှား", - "use_ssl": "SSL ကိုသုံးပါ။", - "trusted": "ယုံတယ်။", - "color_theme": "အရောင်အပြင်အဆင်", - "light_theme": "အလင်း", - "bright_theme": "တောက်ပ", - "dark_theme": "မှောငျမိုကျသော", - "enter_your_note": "သင့်မှတ်စုကို ထည့်ပါ...", - "note_optional": "မှတ်ချက် (ချန်လှပ်ထားနိုင်သည်)", - "note_tap_to_change": "မှတ်ချက် (ပြောင်းလဲရန် တို့ပါ)", - "view_in_block_explorer": "Block Explorer တွင်ကြည့်ရှုပါ။", - "view_transaction_on": "ငွေလွှဲခြင်းကို ဖွင့်ကြည့်ပါ။", - "transaction_key": "ငွေသွင်းငွေထုတ်ကီး", - "confirmations": "အတည်ပြုချက်များ", - "recipient_address": "လက်ခံသူလိပ်စာ", - "extra_id": "အပို ID-", - "destination_tag": "ခရီးဆုံးအမှတ်-", - "memo": "မှတ်စုတို:", - "backup": "မိတ္တူ", - "change_password": "စကားဝှက်ကိုပြောင်းရန်", - "backup_password": "စကားဝှက်ကို အရန်သိမ်းဆည်းပါ။", - "write_down_backup_password": "သင်၏ အရန်ဖိုင်များကို တင်သွင်းရန်အတွက် အသုံးပြုသည့် သင်၏ အရန်စကားဝှက်ကို ချရေးပါ။", - "export_backup": "အရန်ကူးထုတ်ရန်", - "save_backup_password": "သင်၏ အရန်စကားဝှက်ကို သိမ်းဆည်းထားကြောင်း သေချာပါစေ။ ၎င်းမပါဘဲ သင်၏ အရန်ဖိုင်များကို တင်သွင်းနိုင်မည် မဟုတ်ပါ။", - "backup_file": "အရန်ဖိုင်", - "edit_backup_password": "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 ငွေလွှဲပို့နေစဉ် Memo ID ကို သတ်မှတ်ရန် မမေ့ပါနှင့်", - "xrp_extra_info": "လဲလှယ်မှုအတွက် XRP ငွေလွှဲပို့နေစဉ် Destination Tag ကို သတ်မှတ်ရန် မမေ့ပါနှင့်", - "exchange_incorrect_current_wallet_for_xmr": "သင်၏ Cake Wallet Monero လက်ကျန်မှ XMR ကိုလဲလှယ်လိုပါက၊ သင်၏ Monero ပိုက်ဆံအိတ်သို့ ဦးစွာပြောင်းပါ။", - "confirmed": "အတည်ပြုထားသော လက်ကျန်ငွေ", - "unconfirmed": "အတည်မပြုနိုင်သော လက်ကျန်ငွေ", - "displayable": "ပြသနိုင်သည်။", - "submit_request": "တောင်းဆိုချက်တစ်ခုတင်ပြပါ။", - "buy_alert_content": "လက်ရှိတွင် ကျွန်ုပ်တို့သည် Bitcoin၊ Ethereum၊ Litecoin နှင့် Monero တို့ကိုသာ ဝယ်ယူမှုကို ပံ့ပိုးပေးပါသည်။ သင်၏ Bitcoin၊ Ethereum၊ Litecoin သို့မဟုတ် Monero ပိုက်ဆံအိတ်ကို ဖန်တီးပါ သို့မဟုတ် ပြောင်းပါ။", - "sell_alert_content": "ကျွန်ုပ်တို့သည် လက်ရှိတွင် Bitcoin၊ Ethereum နှင့် Litecoin ရောင်းချခြင်းကိုသာ ပံ့ပိုးပေးပါသည်။ သင်၏ Bitcoin၊ Ethereum သို့မဟုတ် Litecoin ပိုက်ဆံအိတ်ကို ဖန်တီးပါ သို့မဟုတ် ပြောင်းပါ။", - "outdated_electrum_wallet_description": "ယခု Cake တွင်ဖန်တီးထားသော Bitcoin ပိုက်ဆံအိတ်အသစ်တွင် စကားလုံး 24 မျိုးရှိသည်။ Bitcoin ပိုက်ဆံအိတ်အသစ်တစ်ခုကို ဖန်တီးပြီး သင့်ငွေအားလုံးကို 24 စကားလုံးပိုက်ဆံအိတ်အသစ်သို့ လွှဲပြောင်းပြီး 12 စကားလုံးမျိုးစေ့ဖြင့် ပိုက်ဆံအိတ်များကို အသုံးပြုခြင်းကို ရပ်တန့်ရန် မဖြစ်မနေလိုအပ်ပါသည်။ သင့်ရန်ပုံငွေများကို လုံခြုံစေရန်အတွက် ၎င်းကိုချက်ချင်းလုပ်ဆောင်ပါ။", - "understand": "ကျွန်တော်နားလည်ပါတယ်", - "apk_update": "APK အပ်ဒိတ်", - "buy_bitcoin": "Bitcoin ကိုဝယ်ပါ။", - "buy_with": "အတူဝယ်ပါ။", - "moonpay_alert_text": "ပမာဏ၏တန်ဖိုးသည် ${minAmount} ${fiatCurrency} နှင့် ပိုနေရမည်", - "outdated_electrum_wallet_receive_warning": "ဤပိုက်ဆံအိတ်တွင် စာလုံး 12 လုံးပါပြီး ကိတ်မုန့်တွင် ဖန်တီးပါက၊ Bitcoin ကို ဤပိုက်ဆံအိတ်ထဲသို့ မထည့်ပါနှင့်။ ဤပိုက်ဆံအိတ်သို့ လွှဲပြောင်းပေးသည့် မည်သည့် BTC မဆို ဆုံးရှုံးနိုင်သည်။ 24 စကားလုံးပိုက်ဆံအိတ်အသစ်တစ်ခုဖန်တီးပါ (ညာဘက်အပေါ်ထောင့်ရှိမီနူးကိုနှိပ်ပါ၊ Wallets ကိုရွေးချယ်ပါ၊ ပိုက်ဆံအိတ်အသစ်ဖန်တီးရန်ကိုရွေးချယ်ပါ၊ ထို့နောက် Bitcoin ကိုရွေးချယ်ပါ) နှင့်သင်၏ BTC ကိုထိုနေရာသို့ချက်ချင်းရွှေ့ပါ။ Cake မှ (24 စာလုံး) BTC ပိုက်ဆံအိတ်အသစ်များသည် လုံခြုံပါသည်။", - "do_not_show_me": "ဒါကို ထပ်မပြနဲ့", - "unspent_coins_title": "အသုံးမဝင်သော အကြွေစေ့များ", - "unspent_coins_details_title": "အသုံးမဝင်သော အကြွေစေ့အသေးစိတ်များ", - "freeze": "အေးခဲ", - "frozen": "ဖြူဖြူ", - "coin_control": "အကြွေစေ့ထိန်းချုပ်မှု (ချန်လှပ်ထားနိုင်သည်)", - "address_detected": "လိပ်စာကို တွေ့ရှိခဲ့သည်။", - "address_from_domain": "ဤလိပ်စာသည် Unstoppable Domains ရှိ ${domain} မှဖြစ်သည်။", - "add_receiver": "အခြားလက်ခံသူ ထည့်ပါ (ချန်လှပ်ထားနိုင်သည်)", - "manage_yats": "Yats ကို စီမံပါ။", - "yat_alert_title": "Yat ဖြင့် crypto ကိုပိုမိုလွယ်ကူစွာပေးပို့လက်ခံပါ။", - "yat_alert_content": "Cake Wallet အသုံးပြုသူများသည် တစ်မျိုးတည်းသော အီမိုဂျီအခြေခံအသုံးပြုသူအမည်ဖြင့် ၎င်းတို့၏ စိတ်ကြိုက်ငွေကြေးအားလုံးကို ပေးပို့နိုင်ပါပြီ။", - "get_your_yat": "မင်းရဲ့ Yat ကိုယူလိုက်ပါ။", - "connect_an_existing_yat": "ရှိပြီးသား Yat ကို ချိတ်ဆက်ပါ။", - "connect_yats": "Yats ကိုချိတ်ဆက်ပါ။", - "yat_address": "Yat လိပ်စာ", - "yat": "ယတ်", - "address_from_yat": "ဤလိပ်စာသည် Yat ရှိ ${emoji} မှဖြစ်သည်။", - "yat_error": "Yat အမှား", - "yat_error_content": "ဤ Yat နှင့် ချိတ်ဆက်ထားသော လိပ်စာမရှိပါ။ နောက်ထပ် Yat စမ်းကြည့်ပါ။", - "choose_address": "\n\nလိပ်စာကို ရွေးပါ-", - "yat_popup_title": "သင့်ပိုက်ဆံအိတ်လိပ်စာကို emojified လုပ်နိုင်ပါသည်။", - "yat_popup_content": "သင်၏ Yat - တိုတောင်းသော အီမိုဂျီအခြေခံအသုံးပြုသူအမည်ဖြင့် Cake Wallet တွင် crypto ကို ယခု ပေးပို့နိုင်ပါပြီ။ ဆက်တင်စခရင်ပေါ်တွင် Yats ကို အချိန်မရွေး စီမံခန့်ခွဲပါ။", - "second_intro_title": "၎င်းတို့အားလုံးကို အုပ်ချုပ်ရန် အီမိုဂျီလိပ်စာတစ်ခု", - "second_intro_content": "သင်၏ Yat သည် သင့်ငွေကြေးအားလုံးအတွက် သင်၏ ရှည်လျားသော ဆဋ္ဌမကိန်းဂဏန်းများအားလုံးကို အစားထိုးသည့် တစ်မူထူးခြားသော အီမိုဂျီလိပ်စာတစ်ခုဖြစ်သည်။", - "third_intro_title": "Yat သည် အခြားသူများနှင့် ကောင်းစွာကစားသည်။", - "third_intro_content": "Yats သည် Cake Wallet အပြင်ဘက်တွင် နေထိုင်ပါသည်။ ကမ္ဘာပေါ်ရှိ မည်သည့်ပိုက်ဆံအိတ်လိပ်စာကို Yat ဖြင့် အစားထိုးနိုင်ပါသည်။", - "learn_more": "ပိုမိုသိရှိရန်", - "search": "ရှာရန်", - "search_language": "ဘာသာစကားရှာပါ။", - "search_currency": "ငွေကြေးကိုရှာပါ။", - "new_template": "ပုံစံအသစ်", - "electrum_address_disclaimer": "သင်အသုံးပြုသည့်အချိန်တိုင်းတွင် ကျွန်ုပ်တို့သည် လိပ်စာအသစ်များကို ထုတ်ပေးသော်လည်း ယခင်လိပ်စာများသည် ဆက်လက်အလုပ်လုပ်နေပါသည်။", - "wallet_name_exists": "ထိုအမည်ဖြင့် ပိုက်ဆံအိတ်တစ်ခု ရှိနှင့်ပြီးဖြစ်သည်။ အခြားအမည်တစ်ခုကို ရွေးပါ သို့မဟုတ် အခြားပိုက်ဆံအိတ်ကို ဦးစွာ အမည်ပြောင်းပါ။", - "market_place": "ဈေး", - "cake_pay_title": "ကိတ်မုန့်လက်ဆောင်ကတ်များ", - "cake_pay_subtitle": "လျှော့စျေးလက်ဆောင်ကတ်များဝယ်ပါ (USA သာ)", - "cake_pay_web_cards_title": "Cake Pay ဝဘ်ကတ်များ", - "cake_pay_web_cards_subtitle": "ကမ္ဘာတစ်ဝှမ်း ကြိုတင်ငွေပေးကတ်များနှင့် လက်ဆောင်ကတ်များကို ဝယ်ယူပါ။", - "about_cake_pay": "Cake Pay သည် အမေရိကန်ပြည်ထောင်စုရှိ ကုန်သည် 150,000 ကျော်တွင် လက်ဆောင်ကတ်များကို လက်ဆောင်ကတ်များကို အလွယ်တကူ ဝယ်ယူနိုင်စေပါသည်။", - "cake_pay_account_note": "ကတ်များကြည့်ရှုဝယ်ယူရန် အီးမေးလ်လိပ်စာတစ်ခုဖြင့် စာရင်းသွင်းပါ။ အချို့ကို လျှော့ဈေးဖြင့်ပင် ရနိုင်သည်။", - "already_have_account": "အကောင့်ရှိပြီးသားလား?", - "create_account": "အကောင့်ပြုလုပ်ပါ", - "privacy_policy": "ကိုယ်ရေးအချက်အလက်မူဝါဒ", - "welcome_to_cakepay": "Cake Pay မှကြိုဆိုပါသည်။", - "sign_up": "ဆိုင်းအပ်", - "forgot_password": "စကားဝှက်မေ့နေပါသလား", - "reset_password": "လျှို့ဝှတ်နံပါတ်အားမူလအတိုင်းပြန်လုပ်သည်", - "gift_cards": "လက်ဆောင်ကဒ်ပြား", - "setup_your_debit_card": "သင့်ဒက်ဘစ်ကတ်ကို စနစ်ထည့်သွင်းပါ။", - "no_id_required": "ID မလိုအပ်ပါ။ ငွေဖြည့်ပြီး ဘယ်နေရာမဆို သုံးစွဲပါ။", - "how_to_use_card": "ဒီကတ်ကို ဘယ်လိုသုံးမလဲ။", - "purchase_gift_card": "လက်ဆောင်ကတ်ဝယ်ပါ။", - "verification": "စိစစ်ခြင်း။", - "fill_code": "သင့်အီးမေးလ်သို့ ပေးထားသည့် အတည်ပြုကုဒ်ကို ဖြည့်ပါ။", - "didnt_get_code": "ကုဒ်ကို မရဘူးလား?", - "resend_code": "ကျေးဇူးပြု၍ ပြန်ပို့ပါ။", - "debit_card": "ဒက်ဘစ်ကတ်", - "cakepay_prepaid_card": "CakePay ကြိုတင်ငွေဖြည့်ဒက်ဘစ်ကတ်", - "no_id_needed": "ID မလိုအပ်ပါ။", - "frequently_asked_questions": "မေးလေ့ရှိသောမေးခွန်းများ", - "debit_card_terms": "ဤဒစ်ဂျစ်တယ်ပိုက်ဆံအိတ်ရှိ သင့်ငွေပေးချေမှုကတ်နံပါတ် (နှင့် သင့်ငွေပေးချေကတ်နံပါတ်နှင့် သက်ဆိုင်သောအထောက်အထားများ) ၏ သိုလှောင်မှုနှင့် အသုံးပြုမှုသည် အချိန်အခါနှင့်အမျှ သက်ရောက်မှုရှိသကဲ့သို့ ကတ်ကိုင်ဆောင်ထားသူ၏ သဘောတူညီချက်၏ စည်းကမ်းသတ်မှတ်ချက်များနှင့် ကိုက်ညီပါသည်။", - "please_reference_document": "နောက်ထပ်အချက်အလက်များအတွက် အောက်ပါစာရွက်စာတမ်းများကို ကိုးကားပါ။", - "cardholder_agreement": "ကတ်ကိုင်ဆောင်သူ သဘောတူညီချက်", - "e_sign_consent": "E-Sign သဘောတူညီချက်", - "agree_and_continue": "သဘောတူပြီး ရှေ့ဆက်ပါ။", - "email_address": "အီးမေးလ်လိပ်စာ", - "agree_to": "အကောင့်ဖန်တီးခြင်းဖြင့် သင်သည် ဤအရာကို သဘောတူပါသည်။", - "and": "နှင့်", - "enter_code": "ကုဒ်ထည့်ပါ။", - "congratulations": "ဂုဏ်ယူပါသည်။", - "you_now_have_debit_card": "ယခု သင့်တွင် ဒက်ဘစ်ကတ်တစ်ခုရှိသည်။", - "min_amount": "အနည်းဆုံး- ${value}", - "max_amount": "အများဆုံး- ${value}", - "enter_amount": "ပမာဏကို ထည့်ပါ။", - "billing_address_info": "ငွေပေးချေရမည့်လိပ်စာကို တောင်းဆိုပါက သင့်ပို့ဆောင်ရေးလိပ်စာကို ပေးပါ။", - "order_physical_card": "ရုပ်ပိုင်းဆိုင်ရာကတ်ကို မှာယူပါ။", - "add_value": "တန်ဖိုးထည့်ပါ။", - "activate": "အသက်သွင်းပါ။", - "get_a": "တစ်ခုရယူပါ။", - "digital_and_physical_card": " ဒစ်ဂျစ်တယ်နှင့် ရုပ်ပိုင်းဆိုင်ရာ ကြိုတင်ငွေပေးချေသော ဒက်ဘစ်ကတ်", - "get_card_note": " ဒစ်ဂျစ်တယ်ငွေကြေးများဖြင့် ပြန်လည်စတင်နိုင်သည်။ နောက်ထပ် အချက်အလက် မလိုအပ်ပါ။", - "signup_for_card_accept_terms": "ကတ်အတွက် စာရင်းသွင်းပြီး စည်းကမ်းချက်များကို လက်ခံပါ။", - "add_fund_to_card": "ကတ်များသို့ ကြိုတင်ငွေပေးငွေများ ထည့်ပါ (${value} အထိ)", - "use_card_info_two": "ဒစ်ဂျစ်တယ်ငွေကြေးများဖြင့်မဟုတ်ဘဲ ကြိုတင်ငွေပေးချေသည့်အကောင့်တွင် သိမ်းထားသည့်အခါ ရန်ပုံငွေများကို USD သို့ ပြောင်းလဲပါသည်။", - "use_card_info_three": "ဒစ်ဂျစ်တယ်ကတ်ကို အွန်လိုင်း သို့မဟုတ် ထိတွေ့မှုမဲ့ ငွေပေးချေမှုနည်းလမ်းများဖြင့် အသုံးပြုပါ။", - "optionally_order_card": "ရုပ်ပိုင်းဆိုင်ရာကတ်ကို ရွေးချယ်နိုင်သည် ။", - "hide_details": "အသေးစိတ်ကို ဝှက်ပါ။", - "show_details": "အသေးစိတ်ပြ", - "upto": "${value} အထိ", - "discount": "${value}% ချွေတာ", - "gift_card_amount": "လက်ဆောင်ကတ် ပမာဏ", - "bill_amount": "ဘီလ်ပမာဏ", - "you_pay": "သင်ပေးချေပါ။", - "tip": "အကြံပြုချက်-", - "custom": "စိတ်ကြိုက်", - "by_cake_pay": "Cake Pay ဖြင့်", - "expires": "သက်တမ်းကုန်သည်။", - "mm": "MM", - "yy": "YY", - "online": "အွန်လိုင်း", - "offline": "အော့ဖ်လိုင်း", - "gift_card_number": "လက်ဆောင်ကတ်နံပါတ်", - "pin_number": "လျှို့ဝှက်နံပါတ်", - "total_saving": "စုစုပေါင်းစုဆောင်းငွေ", - "last_30_days": "လွန်ခဲ့သော ရက် 30", - "avg_savings": "ပျမ်းမျှ စုဆောင်းငွေ", - "view_all": "အားလုံးကိုကြည့်ရှုပါ။", - "active_cards": "အသက်ဝင်သောကတ်များ", - "delete_account": "အကောင့်ဖျက်ပါ။", - "cards": "ကတ်များ", - "active": "အသက်ဝင်သည်။", - "redeemed": "ရွေးနှုတ်ခဲ့သည်။", - "gift_card_balance_note": "လက်ကျန်လက်ကျန်ရှိသည့် လက်ဆောင်ကတ်များ ဤနေရာတွင် ပေါ်လာပါမည်။", - "gift_card_redeemed_note": "သင်ရွေးယူထားသော လက်ဆောင်ကတ်များ ဤနေရာတွင် ပေါ်လာပါမည်။", - "logout": "ထွက်လိုက်ပါ။", - "add_tip": "အကြံပြုချက်ထည့်ပါ။", - "percentageOf": "${amount} ၏", - "is_percentage": "သည်", - "search_category": "ရှာဖွေမှုအမျိုးအစား", - "mark_as_redeemed": "ရွေးနှုတ်ခြင်းအဖြစ် အမှတ်အသားပြုပါ။", - "more_options": "နောက်ထပ် ရွေးချယ်စရာများ", - "awaiting_payment_confirmation": "ငွေပေးချေမှု အတည်ပြုချက်ကို စောင့်မျှော်နေပါသည်။", - "transaction_sent_notice": "မျက်နှာပြင်သည် ၁ မိနစ်အကြာတွင် ဆက်လက်မလုပ်ဆောင်ပါက၊ ပိတ်ဆို့ရှာဖွေသူနှင့် သင့်အီးမေးလ်ကို စစ်ဆေးပါ။", - "agree": "သဘောတူသည်။", - "in_store": "စတိုးတွင်", - "generating_gift_card": "လက်ဆောင်ကတ်ထုတ်ပေးခြင်း။", - "payment_was_received": "သင့်ငွေပေးချေမှုကို လက်ခံရရှိခဲ့သည်။", - "proceed_after_one_minute": "မျက်နှာပြင်သည် ၁ မိနစ်အကြာတွင် ဆက်လက်မလုပ်ဆောင်ပါက သင့်အီးမေးလ်ကို စစ်ဆေးပါ။", - "order_id": "မှာယူမှု ID", - "gift_card_is_generated": "Gift Card ထုတ်ပေးပါသည်။", - "open_gift_card": "Gift Card ကိုဖွင့်ပါ။", - "contact_support": "ပံ့ပိုးကူညီမှုထံ ဆက်သွယ်ပါ။", - "gift_cards_unavailable": "လက်ဆောင်ကတ်များကို ယခုအချိန်တွင် Monero၊ Bitcoin နှင့် Litecoin တို့ဖြင့်သာ ဝယ်ယူနိုင်ပါပြီ။", - "introducing_cake_pay": "Cake Pay ကို မိတ်ဆက်ခြင်း။", - "cake_pay_learn_more": "အက်ပ်ရှိ လက်ဆောင်ကတ်များကို ချက်ချင်းဝယ်ယူပြီး ကူပွန်ဖြင့် လဲလှယ်ပါ။\nပိုမိုလေ့လာရန် ဘယ်မှညာသို့ ပွတ်ဆွဲပါ။", + "authenticated": "အစစ်အမှန်", + "authentication": "စစ်ဆေးခြင်း", + "auto_generate_subaddresses": "အော်တို Generate Subaddresses", "automatic": "အလိုအလျောက်", - "fixed_pair_not_supported": "ရွေးချယ်ထားသော ဖလှယ်မှုများဖြင့် ဤပုံသေအတွဲကို ပံ့ပိုးမထားပါ။", - "variable_pair_not_supported": "ရွေးချယ်ထားသော ဖလှယ်မှုများဖြင့် ဤပြောင်းလဲနိုင်သောအတွဲကို ပံ့ပိုးမထားပါ။", - "none_of_selected_providers_can_exchange": "ရွေးချယ်ထားသော ဝန်ဆောင်မှုပေးသူများမှ ဤလဲလှယ်မှုကို ပြုလုပ်၍မရပါ။", - "choose_one": "တစ်ခုရွေးပါ။", - "choose_from_available_options": "ရနိုင်သောရွေးချယ်မှုများမှ ရွေးပါ-", - "custom_redeem_amount": "စိတ်ကြိုက်သုံးငွေပမာဏ", - "add_custom_redemption": "စိတ်ကြိုက်ရွေးယူမှုကို ထည့်ပါ။", - "remaining": "ကျန်", - "delete_wallet": "ပိုက်ဆံအိတ်ကို ဖျက်ပါ။", - "delete_wallet_confirm_message": "${wallet_name} ပိုက်ဆံအိတ်ကို ဖျက်လိုသည်မှာ သေချာပါသလား။", - "low_fee": "အနိမ့်ကြေး", - "low_fee_alert": "သင်သည် လက်ရှိတွင် သက်သာသော ကွန်ရက်အခကြေးငွေဦးစားပေးကို အသုံးပြုနေပါသည်။ ၎င်းသည် အကြာကြီးစောင့်ဆိုင်းခြင်း၊ မတူညီသောနှုန်းထားများ သို့မဟုတ် ပယ်ဖျက်ထားသော ကုန်သွယ်မှုများကို ဖြစ်စေနိုင်သည်။ ပိုမိုကောင်းမွန်သော အတွေ့အကြုံအတွက် ပိုမိုမြင့်မားသော အခကြေးငွေ သတ်မှတ်ပေးရန် အကြံပြုအပ်ပါသည်။", - "ignor": "လျစ်လျူရှုပါ။", - "use_suggested": "အကြံပြုထားသည်ကို အသုံးပြုပါ။", - "do_not_share_warning_text": "ပံ့ပိုးကူညီမှုအပါအဝင် ဤအရာများကို အခြားမည်သူနှင့်မျှ မမျှဝေပါနှင့်။\n\nသင့်ငွေများကို ခိုးယူခံရနိုင်သည်!", - "help": "ကူညီပါ", - "all_transactions": "အရောင်းအဝယ်အားလုံး", - "all_trades": "ကုန်သွယ်မှုအားလုံး", - "connection_sync": "ချိတ်ဆက်မှုနှင့် ထပ်တူပြုခြင်း။", - "security_and_backup": "လုံခြုံရေးနှင့် မိတ္တူ", - "create_backup": "အရန်သိမ်းခြင်းကို ဖန်တီးပါ။", - "privacy_settings": "Privacy settings တွေကို", - "privacy": "ကိုယ်ရေးကိုယ်တာ", - "display_settings": "ပြသရန် ဆက်တင်များ", - "other_settings": "အခြားဆက်တင်များ", - "require_pin_after": "ပြီးနောက် PIN လိုအပ်ပါသည်။", - "always": "အမြဲတမ်း", - "minutes_to_pin_code": "${minute} မိနစ်", - "disable_exchange": "လဲလှယ်မှုကို ပိတ်ပါ။", - "advanced_settings": "အဆင့်မြင့်ချိန်ညှိချက်များ", - "settings_can_be_changed_later": "အက်ပ်ဆက်တင်များတွင် ဤဆက်တင်များကို နောက်ပိုင်းတွင် ပြောင်းလဲနိုင်သည်။", - "add_custom_node": "စိတ်ကြိုက် Node အသစ်ကို ထည့်ပါ။", - "disable_fiat": "Fiat ကိုပိတ်ပါ။", - "fiat_api": "Fiat API", - "disabled": "မသန်စွမ်း", - "enabled": "ဖွင့်ထားသည်။", - "tor_only": "Tor သာ", - "unmatched_currencies": "သင့်လက်ရှိပိုက်ဆံအိတ်၏ငွေကြေးသည် စကင်ဖတ်ထားသော QR နှင့် မကိုက်ညီပါ။", - "orbot_running_alert": "ဤ node သို့မချိတ်ဆက်မီ Orbot အလုပ်လုပ်နေကြောင်း သေချာပါစေ။", - "contact_list_contacts": "အဆက်အသွယ်များ", - "contact_list_wallets": "ကျွန်ုပ်၏ ပိုက်ဆံအိတ်များ", - "bitcoin_payments_require_1_confirmation": "Bitcoin ငွေပေးချေမှုများသည် မိနစ် 20 သို့မဟုတ် ထို့ထက်ပိုကြာနိုင်သည် 1 အတည်ပြုချက် လိုအပ်သည်။ မင်းရဲ့စိတ်ရှည်မှုအတွက် ကျေးဇူးတင်ပါတယ်။ ငွေပေးချေမှုကို အတည်ပြုပြီးသောအခါ သင့်ထံ အီးမေးလ်ပို့ပါမည်။", - "send_to_this_address": "ဤလိပ်စာသို့ ${currency} ${tag}သို့ ပို့ပါ။", - "arrive_in_this_address": "${currency} ${tag}ဤလိပ်စာသို့ ရောက်ရှိပါမည်။", - "do_not_send": "မပို့ပါနှင့်", - "error_dialog_content": "အိုး၊ ကျွန်ုပ်တို့တွင် အမှားအယွင်းအချို့ရှိသည်။\n\nအပလီကေးရှင်းကို ပိုမိုကောင်းမွန်စေရန်အတွက် ပျက်စီးမှုအစီရင်ခံစာကို ကျွန်ုပ်တို့၏ပံ့ပိုးကူညီရေးအဖွဲ့ထံ ပေးပို့ပါ။", - "scan_qr_code": "QR ကုဒ်ကို စကင်န်ဖတ်ပါ။", - "cold_or_recover_wallet": "အေးသောပိုက်ဆံအိတ်ထည့်ပါ သို့မဟုတ် စက္ကူပိုက်ဆံအိတ်ကို ပြန်ယူပါ။", - "please_wait": "ကျေးဇူးပြုပြီးခဏစောင့်ပါ", - "sweeping_wallet": "ိုက်ဆံအိတ် တံမြက်လှည်း", - "sweeping_wallet_alert": "ဒါက ကြာကြာမခံသင့်ပါဘူး။ ဤစခရင်ကို ချန်မထားပါနှင့် သို့မဟုတ် ထုတ်ယူထားသော ရန်ပုံငွေများ ဆုံးရှုံးနိုင်သည်", - "decimal_places_error": "ဒဿမနေရာများ များလွန်းသည်။", - "edit_node": "Node ကို တည်းဖြတ်ပါ။", - "invoice_details": "ပြေစာအသေးစိတ်", - "donation_link_details": "လှူဒါန်းရန်လင့်ခ်အသေးစိတ်", - "anonpay_description": "${type} ကို ဖန်တီးပါ။ လက်ခံသူက ${method} ကို ပံ့ပိုးပေးထားသည့် cryptocurrency တစ်ခုခုဖြင့် လုပ်ဆောင်နိုင်ပြီး၊ သင်သည် ဤပိုက်ဆံအိတ်တွင် ရံပုံငွေများ ရရှိမည်ဖြစ်သည်။", - "create_invoice": "ပြေစာဖန်တီးပါ။", - "create_donation_link": "လှူဒါန်းမှုလင့်ခ်ကို ဖန်တီးပါ။", - "optional_email_hint": "ရွေးချယ်နိုင်သော ငွေလက်ခံသူ အကြောင်းကြားချက် အီးမေးလ်", - "optional_description": "ရွေးချယ်နိုင်သော ဖော်ပြချက်", - "optional_name": "ရွေးချယ်နိုင်သော လက်ခံသူအမည်", - "clearnet_link": "Clearnet လင့်ခ်", - "onion_link": "ကြက်သွန်လင့်", - "settings": "ဆက်တင်များ", - "sell_monero_com_alert_content": "Monero ရောင်းချခြင်းကို မပံ့ပိုးရသေးပါ။", - "error_text_input_below_minimum_limit": "ပမာဏသည် အနိမ့်ဆုံးထက်နည်းသည်။", - "error_text_input_above_maximum_limit": "ပမာဏသည် အများဆုံးထက် ပိုများသည်။", - "show_market_place": "စျေးကွက်ကိုပြသပါ။", - "prevent_screenshots": "ဖန်သားပြင်ဓာတ်ပုံများနှင့် မျက်နှာပြင်ရိုက်ကူးခြင်းကို တားဆီးပါ။", - "profile": "ကိုယ်ရေးအကျဉ်း", - "close": "အနီးကပ်", - "modify_2fa": "ကိတ်မုန့် 2FA ကို ပြင်ဆင်ပါ။", - "disable_cake_2fa": "ကိတ်မုန့် 2FA ကို ပိတ်ပါ။", - "question_to_disable_2fa": "Cake 2FA ကို ပိတ်လိုသည်မှာ သေချာပါသလား။ ပိုက်ဆံအိတ်နှင့် အချို့သောလုပ်ဆောင်ချက်များကို အသုံးပြုရန်အတွက် 2FA ကုဒ်တစ်ခု မလိုအပ်တော့ပါ။", - "disable": "ပိတ်ပါ။", - "setup_2fa": "ကိတ်မုန့် 2FA စနစ်ထည့်သွင်းပါ။", - "verify_with_2fa": "Cake 2FA ဖြင့် စစ်ဆေးပါ။", - "totp_code": "TOTP ကုဒ်", - "please_fill_totp": "သင့်အခြားစက်တွင်ရှိသော ဂဏန်း ၈ လုံးကုဒ်ကို ကျေးဇူးပြု၍ ဖြည့်ပါ။", - "totp_2fa_success": "အောင်မြင် ဤပိုက်ဆံအိတ်အတွက် ကိတ်မုန့် 2FA ကို ဖွင့်ထားသည်။ ပိုက်ဆံအိတ်ဝင်ရောက်ခွင့်ဆုံးရှုံးသွားသောအခါတွင် သင်၏ mnemonic မျိုးစေ့များကို သိမ်းဆည်းရန် မမေ့ပါနှင့်။", - "totp_verification_success": "အတည်ပြုခြင်း အောင်မြင်ပါသည်။", - "totp_2fa_failure": "ကုဒ်မမှန်ပါ။ ကျေးဇူးပြု၍ အခြားကုဒ်တစ်ခုကို စမ်းကြည့်ပါ သို့မဟုတ် လျှို့ဝှက်သော့အသစ်တစ်ခု ဖန်တီးပါ။ ဂဏန်း ၈ လုံးကုဒ်များနှင့် SHA512 ကို ပံ့ပိုးပေးသည့် တွဲဖက်အသုံးပြုနိုင်သော 2FA အက်ပ်ကို အသုံးပြုပါ။", - "enter_totp_code": "ကျေးဇူးပြု၍ TOTP ကုဒ်ကို ထည့်ပါ။", - "add_secret_code": "သို့မဟုတ် ဤလျှို့ဝှက်ကုဒ်ကို အထောက်အထားစိစစ်ခြင်းအက်ပ်တစ်ခုသို့ ထည့်ပါ။", - "totp_secret_code": "TOTP လျှို့ဝှက်ကုဒ်", - "setup_2fa_text": "ကိတ်မုန့် 2FA သည် TOTP ကို ဒုတိယ စစ်မှန်ကြောင်းအထောက်အထားအဖြစ် အသုံးပြု၍ လုပ်ဆောင်သည်။\n\nကိတ်မုန့် 2FA ၏ TOTP သည် SHA-512 နှင့် 8 ဂဏန်းပံ့ပိုးမှု လိုအပ်သည်။ ဒါက လုံခြုံရေးကို တိုးမြှင့်ပေးတယ်။ နောက်ထပ်အချက်အလက်များနှင့် ပံ့ပိုးပေးထားသောအက်ပ်များကို လမ်းညွှန်တွင် တွေ့နိုင်ပါသည်။", - "setup_totp_recommended": "TOTP စနစ်ထည့်သွင်းပါ။", - "disable_buy": "ဝယ်ယူမှု လုပ်ဆောင်ချက်ကို ပိတ်ပါ။", - "disable_sell": "ရောင်းချခြင်းလုပ်ဆောင်ချက်ကို ပိတ်ပါ။", - "cake_2fa_preset": "ကိတ်မုန့် 2FA ကြိုတင်သတ်မှတ်", - "narrow": "ကျဉ်းသော", - "normal": "ပုံမှန်", - "aggressive": "စိတ်အားထက်သန်ခြင်း။", - "require_for_assessing_wallet": "ပိုက်ဆံအိတ်ကို ဝင်သုံးရန် လိုအပ်သည်။", - "require_for_sends_to_non_contacts": "အဆက်အသွယ်မရှိသူများထံ ပေးပို့ရန် လိုအပ်သည်။", - "require_for_sends_to_contacts": "အဆက်အသွယ်များထံ ပေးပို့ရန် လိုအပ်သည်။", - "require_for_sends_to_internal_wallets": "အတွင်းပိုင်း ပိုက်ဆံအိတ်များသို့ ပေးပို့ရန် လိုအပ်သည်။", - "require_for_exchanges_to_internal_wallets": "အတွင်းပိုင်းပိုက်ဆံအိတ်များသို့ လဲလှယ်ရန် လိုအပ်သည်။", - "require_for_adding_contacts": "အဆက်အသွယ်များထည့်ရန် လိုအပ်သည်။", - "require_for_creating_new_wallets": "ပိုက်ဆံအိတ်အသစ်များ ဖန်တီးရန် လိုအပ်သည်။", - "require_for_all_security_and_backup_settings": "လုံခြုံရေးနှင့် အရန်ဆက်တင်များအားလုံးအတွက် လိုအပ်ပါသည်။", + "available_balance": "လက်ကျန်ငွေ ရရှိနိုင်", "available_balance_description": "သင့်ရဲ့ အကောင့်တွင် ရရှိနိုင်သော ငွေကျန်ငွေကို ပြန်လည်ပေးသွင်းပါ။", - "syncing_wallet_alert_title": "သင့်ပိုက်ဆံအိတ်ကို စင့်ခ်လုပ်နေပါသည်။", - "syncing_wallet_alert_content": "သင်၏လက်ကျန်နှင့် ငွေပေးငွေယူစာရင်းသည် ထိပ်တွင် \"Synchronizeed\" ဟုပြောသည်အထိ မပြီးမြောက်နိုင်ပါ။ ပိုမိုလေ့လာရန် နှိပ်/နှိပ်ပါ။", - "home_screen_settings": "ပင်မစခရင် ဆက်တင်များ", - "sort_by": "အလိုက်စဥ်သည်", - "search_add_token": "ရှာဖွေရန် / တိုကင်ထည့်ပါ။", - "edit_token": "တိုကင်ကို တည်းဖြတ်ပါ။", - "warning": "သတိပေးချက်", - "add_token_warning": "လိမ်လည်သူများ ညွှန်ကြားထားသည့်အတိုင်း တိုကင်များကို တည်းဖြတ်ခြင်း သို့မဟုတ် မထည့်ပါနှင့်။\nဂုဏ်သိက္ခာရှိသော အရင်းအမြစ်များဖြင့် အမြဲတမ်း တိုကင်လိပ်စာများကို အတည်ပြုပါ။", - "add_token_disclaimer_check": "ဂုဏ်သိက္ခာရှိသော အရင်းအမြစ်ကို အသုံးပြု၍ တိုကင်စာချုပ်လိပ်စာနှင့် အချက်အလက်ကို ကျွန်ုပ်အတည်ပြုပြီးဖြစ်သည်။ အန္တရာယ်ရှိသော သို့မဟုတ် မမှန်ကန်သော အချက်အလက်များကို ထည့်သွင်းခြင်းသည် ရန်ပုံငွေများ ဆုံးရှုံးသွားနိုင်သည်။", - "token_contract_address": "တိုကင်စာချုပ်လိပ်စာ", - "token_name": "တိုကင်အမည် ဥပမာ- Tether", - "token_symbol": "တိုကင်သင်္ကေတ ဥပမာ- USDT", - "token_decimal": "တိုကင်ဒဿမ", - "field_required": "ဤစာကွက်လပ်မှာဖြည့်ရန်လိုအပ်ပါသည်", - "pin_at_top": "အပေါ်တွင် ${token} ပင်ထိုးပါ။", - "invalid_input": "ထည့်သွင်းမှု မမှန်ကန်ပါ။", - "fiat_balance": "Fiat Balance", - "gross_balance": "စုစုပေါင်းလက်ကျန်ငွေ", - "alphabetical": "အက္ခရာစဉ်", - "generate_name": "အမည်ဖန်တီးပါ။", + "avg_savings": "ပျမ်းမျှ စုဆောင်းငွေ", + "awaitDAppProcessing": "ကျေးဇူးပြု၍ dApp ကို စီမံလုပ်ဆောင်ခြင်း အပြီးသတ်ရန် စောင့်ပါ။", + "awaiting_payment_confirmation": "ငွေပေးချေမှု အတည်ပြုချက်ကို စောင့်မျှော်နေပါသည်။", + "backup": "မိတ္တူ", + "backup_file": "အရန်ဖိုင်", + "backup_password": "စကားဝှက်ကို အရန်သိမ်းဆည်းပါ။", "balance_page": "လက်ကျန်စာမျက်နှာ", - "share": "မျှဝေပါ။", - "slidable": "လျှောချနိုင်သည်။", - "monero_dark_theme": "Monero Dark အပြင်အဆင်", + "bill_amount": "ဘီလ်ပမာဏ", + "billing_address_info": "ငွေပေးချေရမည့်လိပ်စာကို တောင်းဆိုပါက သင့်ပို့ဆောင်ရေးလိပ်စာကို ပေးပါ။", + "biometric_auth_reason": "စစ်မှန်ကြောင်းအထောက်အထားပြရန် သင့်လက်ဗွေကို စကန်ဖတ်ပါ။", "bitcoin_dark_theme": "Bitcoin Dark Theme", "bitcoin_light_theme": "Bitcoin Light အပြင်အဆင်", - "high_contrast_theme": "အလင်းအမှောင် မြင့်မားသော အပြင်အဆင်", - "matrix_green_dark_theme": "Matrix Green Dark အပြင်အဆင်", - "monero_light_theme": "Monero Light အပြင်အဆင်", - "manage_nodes": "ဆုံမှတ်များကို စီမံပါ။", - "etherscan_history": "Etherscan သမိုင်း", - "template_name": "နမူနာပုံစံ", + "bitcoin_payments_require_1_confirmation": "Bitcoin ငွေပေးချေမှုများသည် မိနစ် 20 သို့မဟုတ် ထို့ထက်ပိုကြာနိုင်သည် 1 အတည်ပြုချက် လိုအပ်သည်။ မင်းရဲ့စိတ်ရှည်မှုအတွက် ကျေးဇူးတင်ပါတယ်။ ငွေပေးချေမှုကို အတည်ပြုပြီးသောအခါ သင့်ထံ အီးမေးလ်ပို့ပါမည်။", + "Blocks_remaining": "${status} ဘလောက်များ ကျန်နေပါသည်။", + "bright_theme": "တောက်ပ", + "buy": "ဝယ်ပါ။", + "buy_alert_content": "လက်ရှိတွင် ကျွန်ုပ်တို့သည် Bitcoin၊ Ethereum၊ Litecoin နှင့် Monero တို့ကိုသာ ဝယ်ယူမှုကို ပံ့ပိုးပေးပါသည်။ သင်၏ Bitcoin၊ Ethereum၊ Litecoin သို့မဟုတ် Monero ပိုက်ဆံအိတ်ကို ဖန်တီးပါ သို့မဟုတ် ပြောင်းပါ။", + "buy_bitcoin": "Bitcoin ကိုဝယ်ပါ။", + "buy_provider_unavailable": "လက်ရှိတွင်လက်ရှိမရနိုင်ပါ။", + "buy_with": "အတူဝယ်ပါ။", + "by_cake_pay": "Cake Pay ဖြင့်", + "cake_2fa_preset": "ကိတ်မုန့် 2FA ကြိုတင်သတ်မှတ်", + "cake_pay_account_note": "ကတ်များကြည့်ရှုဝယ်ယူရန် အီးမေးလ်လိပ်စာတစ်ခုဖြင့် စာရင်းသွင်းပါ။ အချို့ကို လျှော့ဈေးဖြင့်ပင် ရနိုင်သည်။", + "cake_pay_learn_more": "အက်ပ်ရှိ လက်ဆောင်ကတ်များကို ချက်ချင်းဝယ်ယူပြီး ကူပွန်ဖြင့် လဲလှယ်ပါ။\nပိုမိုလေ့လာရန် ဘယ်မှညာသို့ ပွတ်ဆွဲပါ။", + "cake_pay_subtitle": "လျှော့စျေးလက်ဆောင်ကတ်များဝယ်ပါ (USA သာ)", + "cake_pay_title": "ကိတ်မုန့်လက်ဆောင်ကတ်များ", + "cake_pay_web_cards_subtitle": "ကမ္ဘာတစ်ဝှမ်း ကြိုတင်ငွေပေးကတ်များနှင့် လက်ဆောင်ကတ်များကို ဝယ်ယူပါ။", + "cake_pay_web_cards_title": "Cake Pay ဝဘ်ကတ်များ", + "cake_wallet": "Cake ပိုက်ဆံအိတ်", + "cakepay_prepaid_card": "CakePay ကြိုတင်ငွေဖြည့်ဒက်ဘစ်ကတ်", + "camera_consent": "မှတ်ပုံတင်ခြင်းရည်ရွယ်ချက်များအတွက် ${provider} တွင် သင့်ကင်မရာကို အသုံးပြုပါမည်။ အသေးစိတ်အတွက် ၎င်းတို့၏ ကိုယ်ရေးကိုယ်တာမူဝါဒကို စစ်ဆေးပါ။", + "camera_permission_is_required": "ကင်မရာခွင့်ပြုချက် လိုအပ်ပါသည်။\nအက်ပ်ဆက်တင်များမှ ၎င်းကိုဖွင့်ပါ။", + "cancel": "မလုပ်တော့", + "card_address": "လိပ်စာ-", + "cardholder_agreement": "ကတ်ကိုင်ဆောင်သူ သဘောတူညီချက်", + "cards": "ကတ်များ", + "chains": "ဆွဲကြိုး", + "change": "ပြောင်းလဲပါ။", + "change_backup_password_alert": "အရန်စကားဝှက်အသစ်ဖြင့် သင်၏ယခင်မိတ္တူဖိုင်များကို တင်သွင်းရန် မရနိုင်ပါ။ အရန်စကားဝှက်အသစ်ကို အရန်ဖိုင်အသစ်အတွက်သာ အသုံးပြုပါမည်။ အရန်စကားဝှက်ကို ပြောင်းလိုသည်မှာ သေချာပါသလား။", + "change_currency": "ငွေကြေးကိုပြောင်းပါ။", + "change_current_node": "လက်ရှိ နှာခေါင်း ကို ${node} သို့ ပြောင်းရန် သေချာပါသလား။", + "change_current_node_title": "လက်ရှိ နှာခေါင်း ကိုပြောင်းပါ။", + "change_exchange_provider": "အပြန်အလှန် လဲလှယ်ရေး ထောက်ပံ့ပေးသူကို ပြောင်းလဲပါ", + "change_language": "ဘာသာစကားပြောင်းပါ။", + "change_language_to": "ဘာသာစကားကို ${language} သို့ ပြောင်းမလား။", + "change_password": "စကားဝှက်ကိုပြောင်းရန်", "change_rep": "ကိုယ်စားလှယ်ပြောင်းပါ။", "change_rep_message": "ကိုယ်စားလှယ်ပြောင်းလိုသည်မှာ သေချာပါသလား။", - "unsupported_asset": "ဤပိုင်ဆိုင်မှုအတွက် ဤလုပ်ဆောင်ချက်ကို ကျွန်ုပ်တို့ မပံ့ပိုးပါ။ ကျေးဇူးပြု၍ ပံ့ပိုးပေးထားသော ပိုင်ဆိုင်မှုအမျိုးအစား၏ ပိုက်ဆံအိတ်ကို ဖန်တီးပါ သို့မဟုတ် ပြောင်းပါ။", - "manage_pow_nodes": "PoW Nodes ကို စီမံပါ။", - "support_title_live_chat": "တိုက်ရိုက်ပံ့ပိုးမှု", - "support_description_live_chat": "အခမဲ့နှင့်အစာရှောင်ခြင်း! လေ့ကျင့်ထားသောထောက်ခံသူကိုယ်စားလှယ်များသည်ကူညီနိုင်သည်", - "support_title_guides": "ကိတ်မုန့်ပိုက်ဆံအိတ်လမ်းညွှန်များ", - "support_description_guides": "ဘုံပြ issues နာများအတွက်စာရွက်စာတမ်းများနှင့်ထောက်ခံမှု", - "support_title_other_links": "အခြားအထောက်အပံ့လင့်များ", - "support_description_other_links": "ကျွန်ုပ်တို့၏လူမှုအသိုင်းအဝိုင်းများသို့ 0 င်ရောက်ပါ", + "change_rep_successful": "အောင်မြင်စွာကိုယ်စားလှယ်ပြောင်းလဲသွားတယ်", + "change_wallet_alert_content": "လက်ရှိပိုက်ဆံအိတ်ကို ${wallet_name} သို့ ပြောင်းလိုပါသလား။", + "change_wallet_alert_title": "လက်ရှိပိုက်ဆံအိတ်ကို ပြောင်းပါ။", + "choose_account": "အကောင့်ကို ရွေးပါ။", + "choose_address": "\n\nလိပ်စာကို ရွေးပါ-", "choose_derivation": "ပိုက်ဆံအိတ်ကိုရွေးချယ်ပါ", - "new_first_wallet_text": "သင့်ရဲ့ cryptocurrencrencres ကိုအလွယ်တကူလုံခြုံစွာထားရှိပါ", - "select_destination": "အရန်ဖိုင်အတွက် ဦးတည်ရာကို ရွေးပါ။", - "auto_generate_subaddresses": "အော်တို Generate Subaddresses", - "save_to_downloads": "ဒေါင်းလုဒ်များထံ သိမ်းဆည်းပါ။", - "select_buy_provider_notice": "အပေါ်ကဝယ်သူတစ် ဦး ကိုရွေးချယ်ပါ။ သင်၏ default 0 ယ်သူအား app settings တွင် setting လုပ်ခြင်းဖြင့်ဤ screen ကိုကျော်သွားနိုင်သည်။", - "onramper_option_description": "ငွေပေးချေမှုနည်းလမ်းများစွာဖြင့် Crypto ကိုလျင်မြန်စွာ 0 ယ်ပါ။ နိုင်ငံအများစုတွင်ရရှိနိုင်ပါသည်။ ဖြန့်ဖြူးနှင့်အခကြေးငွေကွဲပြားခြားနားသည်။", + "choose_from_available_options": "ရနိုင်သောရွေးချယ်မှုများမှ ရွေးပါ-", + "choose_one": "တစ်ခုရွေးပါ။", + "choose_relay": "အသုံးပြုရန် relay ကိုရွေးချယ်ပါ။", + "choose_wallet_currency": "ပိုက်ဆံအိတ်ငွေကြေးကို ရွေးပါ-", + "clear": "ရှင်းလင်းသော", + "clearnet_link": "Clearnet လင့်ခ်", + "close": "အနီးကပ်", + "coin_control": "အကြွေစေ့ထိန်းချုပ်မှု (ချန်လှပ်ထားနိုင်သည်)", + "cold_or_recover_wallet": "အေးသောပိုက်ဆံအိတ်ထည့်ပါ သို့မဟုတ် စက္ကူပိုက်ဆံအိတ်ကို ပြန်ယူပါ။", + "color_theme": "အရောင်အပြင်အဆင်", + "commit_transaction_amount_fee": "ငွေလွှဲခြင်း\nပမာဏ- ${amount}\nအခကြေးငွေ- ${fee}", + "confirm": "အတည်ပြုပါ။", + "confirm_delete_template": "ဤလုပ်ဆောင်ချက်သည် ဤပုံစံပြားကို ဖျက်လိုက်ပါမည်။ ဆက်လုပ်လိုပါသလား။", + "confirm_delete_wallet": "ဤလုပ်ဆောင်ချက်သည် ဤပိုက်ဆံအိတ်ကို ဖျက်လိုက်ပါမည်။ ဆက်လုပ်လိုပါသလား။", + "confirm_sending": "ပေးပို့အတည်ပြုပါ။", + "confirmations": "အတည်ပြုချက်များ", + "confirmed": "အတည်ပြုထားသော လက်ကျန်ငွေ", + "confirmed_tx": "အတည်ပြုသည်", + "congratulations": "ဂုဏ်ယူပါသည်။", + "connect_an_existing_yat": "ရှိပြီးသား Yat ကို ချိတ်ဆက်ပါ။", + "connect_yats": "Yats ကိုချိတ်ဆက်ပါ။", + "connection_sync": "ချိတ်ဆက်မှုနှင့် ထပ်တူပြုခြင်း။", + "connectWalletPrompt": "အရောင်းအဝယ်ပြုလုပ်ရန် သင့်ပိုက်ဆံအိတ်ကို WalletConnect နှင့် ချိတ်ဆက်ပါ။", + "contact": "ဆက်သွယ်ရန်", + "contact_list_contacts": "အဆက်အသွယ်များ", + "contact_list_wallets": "ကျွန်ုပ်၏ ပိုက်ဆံအိတ်များ", + "contact_name": "ဆက်သွယ်ရန်အမည်", + "contact_support": "ပံ့ပိုးကူညီမှုထံ ဆက်သွယ်ပါ။", + "continue_text": "ဆက်လက်", + "contractName": "စာချုပ်အမည်", + "contractSymbol": "စာချုပ်သင်္ကေတ", + "copied_key_to_clipboard": "${key} ကို Clipboard သို့ ကူးယူထားသည်။", + "copied_to_clipboard": "ကလစ်ဘုတ်သို့ ကူးယူထားသည်။", + "copy": "ကော်ပီ", + "copy_address": "လိပ်စာကို ကူးယူပါ။", + "copy_id": "ID ကူးယူပါ။", + "copyWalletConnectLink": "dApp မှ WalletConnect လင့်ခ်ကို ကူးယူပြီး ဤနေရာတွင် ကူးထည့်ပါ။", + "create_account": "အကောင့်ပြုလုပ်ပါ", + "create_backup": "အရန်သိမ်းခြင်းကို ဖန်တီးပါ။", + "create_donation_link": "လှူဒါန်းမှုလင့်ခ်ကို ဖန်တီးပါ။", + "create_invoice": "ပြေစာဖန်တီးပါ။", + "create_new": "Wallet အသစ်ဖန်တီးပါ။", + "create_new_account": "အကောင့်အသစ်ဖန်တီးပါ။", + "creating_new_wallet": "ပိုက်ဆံအိတ်အသစ်ဖန်တီးခြင်း။", + "creating_new_wallet_error": "အမှား- ${description}", + "creation_date": "ဖန်တီးမှုနေ့စွဲ", + "custom": "စိတ်ကြိုက်", + "custom_drag": "စိတ်ကြိုက် (Drag)", + "custom_redeem_amount": "စိတ်ကြိုက်သုံးငွေပမာဏ", + "dark_theme": "မှောငျမိုကျသော", + "debit_card": "ဒက်ဘစ်ကတ်", + "debit_card_terms": "ဤဒစ်ဂျစ်တယ်ပိုက်ဆံအိတ်ရှိ သင့်ငွေပေးချေမှုကတ်နံပါတ် (နှင့် သင့်ငွေပေးချေကတ်နံပါတ်နှင့် သက်ဆိုင်သောအထောက်အထားများ) ၏ သိုလှောင်မှုနှင့် အသုံးပြုမှုသည် အချိန်အခါနှင့်အမျှ သက်ရောက်မှုရှိသကဲ့သို့ ကတ်ကိုင်ဆောင်ထားသူ၏ သဘောတူညီချက်၏ စည်းကမ်းသတ်မှတ်ချက်များနှင့် ကိုက်ညီပါသည်။", + "decimal_places_error": "ဒဿမနေရာများ များလွန်းသည်။", "default_buy_provider": "Default Provider ကိုဝယ်ပါ", - "ask_each_time": "တစ်ခုချင်းစီကိုအချိန်မေးပါ", - "buy_provider_unavailable": "လက်ရှိတွင်လက်ရှိမရနိုင်ပါ။", - "signTransaction": "ငွေလွှဲဝင်ပါ။", + "default_sell_provider": "ပုံသေရောင်းချပေးသူ", + "delete": "ဖျက်ပါ။", + "delete_account": "အကောင့်ဖျက်ပါ။", + "delete_wallet": "ပိုက်ဆံအိတ်ကို ဖျက်ပါ။", + "delete_wallet_confirm_message": "${wallet_name} ပိုက်ဆံအိတ်ကို ဖျက်လိုသည်မှာ သေချာပါသလား။", + "deleteConnectionConfirmationPrompt": "ချိတ်ဆက်မှုကို ဖျက်လိုသည်မှာ သေချာပါသလား။", + "descending": "ဆင်း", + "description": "ဖော်ပြချက်", + "destination_tag": "ခရီးဆုံးအမှတ်-", + "dfx_option_description": "EUR & CHF ဖြင့် crypto ကိုဝယ်ပါ။ အပို KYC မပါဘဲ 990€ အထိ။ ဥရောပရှိ လက်လီရောင်းချသူများနှင့် ကော်ပိုရိတ်ဖောက်သည်များအတွက်", + "didnt_get_code": "ကုဒ်ကို မရဘူးလား?", + "digit_pin": "-ဂဏန်း PIN", + "digital_and_physical_card": " ဒစ်ဂျစ်တယ်နှင့် ရုပ်ပိုင်းဆိုင်ရာ ကြိုတင်ငွေပေးချေသော ဒက်ဘစ်ကတ်", + "disable": "ပိတ်ပါ။", + "disable_buy": "ဝယ်ယူမှု လုပ်ဆောင်ချက်ကို ပိတ်ပါ။", + "disable_cake_2fa": "ကိတ်မုန့် 2FA ကို ပိတ်ပါ။", + "disable_exchange": "လဲလှယ်မှုကို ပိတ်ပါ။", + "disable_fiat": "Fiat ကိုပိတ်ပါ။", + "disable_sell": "ရောင်းချခြင်းလုပ်ဆောင်ချက်ကို ပိတ်ပါ။", + "disabled": "မသန်စွမ်း", + "discount": "${value}% ချွေတာ", + "display_settings": "ပြသရန် ဆက်တင်များ", + "displayable": "ပြသနိုင်သည်။", + "do_not_have_enough_gas_asset": "လက်ရှိ blockchain ကွန်ရက်အခြေအနေများနှင့် အရောင်းအဝယ်ပြုလုပ်ရန် သင့်တွင် ${currency} လုံလောက်မှုမရှိပါ။ သင်သည် မတူညီသော ပိုင်ဆိုင်မှုတစ်ခုကို ပေးပို့နေသော်လည်း blockchain ကွန်ရက်အခကြေးငွေကို ပေးဆောင်ရန် သင်သည် နောက်ထပ် ${currency} လိုအပ်ပါသည်။", + "do_not_send": "မပို့ပါနှင့်", + "do_not_share_warning_text": "ပံ့ပိုးကူညီမှုအပါအဝင် ဤအရာများကို အခြားမည်သူနှင့်မျှ မမျှဝေပါနှင့်။\n\nသင့်ငွေများကို ခိုးယူခံရနိုင်သည်!", + "do_not_show_me": "ဒါကို ထပ်မပြနဲ့", + "domain_looks_up": "ဒိုမိန်းရှာဖွေမှုများ", + "donation_link_details": "လှူဒါန်းရန်လင့်ခ်အသေးစိတ်", + "e_sign_consent": "E-Sign သဘောတူညီချက်", + "edit": "တည်းဖြတ်ပါ။", + "edit_backup_password": "Backup Password ကို တည်းဖြတ်ပါ။", + "edit_node": "Node ကို တည်းဖြတ်ပါ။", + "edit_token": "တိုကင်ကို တည်းဖြတ်ပါ။", + "electrum_address_disclaimer": "သင်အသုံးပြုသည့်အချိန်တိုင်းတွင် ကျွန်ုပ်တို့သည် လိပ်စာအသစ်များကို ထုတ်ပေးသော်လည်း ယခင်လိပ်စာများသည် ဆက်လက်အလုပ်လုပ်နေပါသည်။", + "email_address": "အီးမေးလ်လိပ်စာ", + "enabled": "ဖွင့်ထားသည်။", + "enter_amount": "ပမာဏကို ထည့်ပါ။", + "enter_backup_password": "အရန်စကားဝှက်ကို ဤနေရာတွင် ထည့်ပါ။", + "enter_code": "ကုဒ်ထည့်ပါ။", + "enter_seed_phrase": "သင့်ရဲ့မျိုးစေ့စကားစုကိုရိုက်ထည့်ပါ", + "enter_totp_code": "ကျေးဇူးပြု၍ TOTP ကုဒ်ကို ထည့်ပါ။", + "enter_your_note": "သင့်မှတ်စုကို ထည့်ပါ...", + "enter_your_pin": "သင်၏ PIN ကိုထည့်ပါ။", + "enter_your_pin_again": "သင့်ပင်နံပါတ်ကို ထပ်မံထည့်သွင်းပါ။", + "enterTokenID": "တိုကင် ID ကိုထည့်ပါ။", + "enterWalletConnectURI": "WalletConnect URI ကိုရိုက်ထည့်ပါ။", + "error": "အမှား", + "error_dialog_content": "အိုး၊ ကျွန်ုပ်တို့တွင် အမှားအယွင်းအချို့ရှိသည်။\n\nအပလီကေးရှင်းကို ပိုမိုကောင်းမွန်စေရန်အတွက် ပျက်စီးမှုအစီရင်ခံစာကို ကျွန်ုပ်တို့၏ပံ့ပိုးကူညီရေးအဖွဲ့ထံ ပေးပို့ပါ။", + "error_text_account_name": "အကောင့်အမည်သည် အက္ခရာများ၊ နံပါတ်များသာ ပါဝင်နိုင်သည်\nနှင့် စာလုံးရေ 1 နှင့် 15 ကြားရှိရပါမည်။", + "error_text_address": "Wallet လိပ်စာသည် အမျိုးအစား\no cryptocurrency နှင့် ကိုက်ညီရပါမည်။", + "error_text_amount": "ပမာဏသည် နံပါတ်များသာ ပါဝင်နိုင်သည်။", + "error_text_contact_name": "အဆက်အသွယ်အမည်တွင် ` , ' \" သင်္ကေတများ မပါဝင်နိုင်ပါ\nနှင့် စာလုံးအရှည် 1 နှင့် 32 ကြားရှိရမည်", + "error_text_crypto_currency": "အပိုင်းကိန်းဂဏန်းများ၏ အရေအတွက်\nလျော့နည်းသည် သို့မဟုတ် 12 နှင့် ညီမျှရပါမည်။", + "error_text_fiat": "ပမာဏ၏တန်ဖိုးသည် ရနိုင်သောလက်ကျန်ကို မကျော်လွန်နိုင်ပါ။\nအပိုင်းကိန်းဂဏန်းအရေအတွက်သည် 2 နှင့် လျော့နည်းရမည်", + "error_text_input_above_maximum_limit": "ပမာဏသည် အများဆုံးထက် ပိုများသည်။", + "error_text_input_below_minimum_limit": "ပမာဏသည် အနိမ့်ဆုံးထက်နည်းသည်။", + "error_text_keys": "ပိုက်ဆံအိတ်သော့များတွင် hex တွင် 64 လုံးသာပါဝင်နိုင်သည်။", + "error_text_limits_loading_failed": "${provider} အတွက် ကုန်သွယ်မှုကို ဖန်တီးမထားပါ။ ကန့်သတ်ချက်များ တင်ခြင်း မအောင်မြင်ပါ။", + "error_text_maximum_limit": "${provider} အတွက် ကုန်သွယ်မှုကို ဖန်တီးမထားပါ။ ပမာဏသည် အများဆုံးထက် ပိုများသည်- ${max} ${currency}", + "error_text_minimal_limit": "${provider} အတွက် ကုန်သွယ်မှုကို ဖန်တီးမထားပါ။ ပမာဏသည် အနည်းငယ်ထက်နည်းသည်- ${min} ${currency}", + "error_text_node_address": "ကျေးဇူးပြု၍ iPv4 လိပ်စာကို ထည့်ပါ။", + "error_text_node_port": "နော်ဒီဆိပ်ကမ်း တွင် 0 နှင့် 65535 အကြား နံပါတ်များသာ ပါဝင်နိုင်သည်။", + "error_text_node_proxy_address": "ကျေးဇူးပြု၍ :၊ ဥပမာ 127.0.0.1:9050 ထည့်ပါ", + "error_text_payment_id": "ငွေပေးချေမှု ID တွင် hex တွင် စာလုံး 16 လုံးမှ 64 လုံးသာ ပါဝင်နိုင်သည်။", + "error_text_subaddress_name": "လိပ်စာခွဲအမည်တွင် ` , ' \" သင်္ကေတများ မပါဝင်နိုင်ပါ\nနှင့် စာလုံးရေ 1 နှင့် 20 ကြားရှိရမည်", + "error_text_template": "နမူနာပုံစံအမည်နှင့် လိပ်စာတွင် ` , ' \" သင်္ကေတများ မပါဝင်နိုင်ပါ\nနှင့် စာလုံးအရှည် 1 နှင့် 106 ကြား ရှိရမည်", + "error_text_wallet_name": "ပိုက်ဆံအိတ်အမည်တွင် စာလုံးများ၊ နံပါတ်များ၊ _ - သင်္ကေတများသာ ပါဝင်နိုင်သည် \n နှင့် စာလုံးအရှည် 1 နှင့် 33 ကြားရှိရမည်", + "error_text_xmr": "XMR တန်ဖိုးသည် ရနိုင်သောလက်ကျန်ကို ကျော်လွန်၍မရပါ။\nအပိုင်းကိန်းဂဏန်းများ သည် 12 နှင့် လျော့နည်းရမည်", "errorGettingCredentials": "မအောင်မြင်ပါ- အထောက်အထားများ ရယူနေစဉ် အမှားအယွင်း", "errorSigningTransaction": "ငွေပေးငွေယူ လက်မှတ်ထိုးစဉ် အမှားအယွင်းတစ်ခု ဖြစ်ပေါ်ခဲ့သည်။", - "pairingInvalidEvent": "မမှန်ကန်သောဖြစ်ရပ်ကို တွဲချိတ်ခြင်း။", - "chains": "ဆွဲကြိုး", - "methods": "နည်းလမ်းများ", - "events": "အဲ့ဒါနဲ့", - "reject": "ငြင်းပယ်ပါ။", - "approve": "လက်မခံပါ။", - "expiresOn": "သက်တမ်းကုန်သည်။", - "walletConnect": "Wallet ချိတ်ဆက်မှု", - "nullURIError": "URI သည် null ဖြစ်သည်။", - "connectWalletPrompt": "အရောင်းအဝယ်ပြုလုပ်ရန် သင့်ပိုက်ဆံအိတ်ကို WalletConnect နှင့် ချိတ်ဆက်ပါ။", - "newConnection": "ချိတ်ဆက်မှုအသစ်", - "activeConnectionsPrompt": "လက်ရှိချိတ်ဆက်မှုများ ဤနေရာတွင် ပေါ်လာပါမည်။", - "deleteConnectionConfirmationPrompt": "ချိတ်ဆက်မှုကို ဖျက်လိုသည်မှာ သေချာပါသလား။", + "estimated": "ခန့်မှန်း", + "etherscan_history": "Etherscan သမိုင်း", "event": "ပွဲ", - "successful": "အောင်မြင်တယ်။", - "wouoldLikeToConnect": "ချိတ်ဆက်ချင်ပါတယ်။", - "message": "မက်ဆေ့ချ်", - "do_not_have_enough_gas_asset": "လက်ရှိ blockchain ကွန်ရက်အခြေအနေများနှင့် အရောင်းအဝယ်ပြုလုပ်ရန် သင့်တွင် ${currency} လုံလောက်မှုမရှိပါ။ သင်သည် မတူညီသော ပိုင်ဆိုင်မှုတစ်ခုကို ပေးပို့နေသော်လည်း blockchain ကွန်ရက်အခကြေးငွေကို ပေးဆောင်ရန် သင်သည် နောက်ထပ် ${currency} လိုအပ်ပါသည်။", - "totp_auth_url": "TOTP AUTH URL", - "awaitDAppProcessing": "ကျေးဇူးပြု၍ dApp ကို စီမံလုပ်ဆောင်ခြင်း အပြီးသတ်ရန် စောင့်ပါ။", - "copyWalletConnectLink": "dApp မှ WalletConnect လင့်ခ်ကို ကူးယူပြီး ဤနေရာတွင် ကူးထည့်ပါ။", - "enterWalletConnectURI": "WalletConnect URI ကိုရိုက်ထည့်ပါ။", - "seed_key": "မျိုးစေ့သော့", - "enter_seed_phrase": "သင့်ရဲ့မျိုးစေ့စကားစုကိုရိုက်ထည့်ပါ", - "change_rep_successful": "အောင်မြင်စွာကိုယ်စားလှယ်ပြောင်းလဲသွားတယ်", - "add_contact": "အဆက်အသွယ်ထည့်ပါ။", + "events": "အဲ့ဒါနဲ့", + "exchange": "ချိန်းတယ်။", + "exchange_incorrect_current_wallet_for_xmr": "သင်၏ Cake Wallet Monero လက်ကျန်မှ XMR ကိုလဲလှယ်လိုပါက၊ သင်၏ Monero ပိုက်ဆံအိတ်သို့ ဦးစွာပြောင်းပါ။", + "exchange_new_template": "ပုံစံအသစ်", "exchange_provider_unsupported": "${providerName} မရှိတော့ပါ!", - "domain_looks_up": "ဒိုမိန်းရှာဖွေမှုများ", - "require_for_exchanges_to_external_wallets": "ပြင်ပပိုက်ဆံအိတ်များသို့ လဲလှယ်ရန် လိုအပ်သည်။", - "camera_permission_is_required": "ကင်မရာခွင့်ပြုချက် လိုအပ်ပါသည်။\nအက်ပ်ဆက်တင်များမှ ၎င်းကိုဖွင့်ပါ။", - "switchToETHWallet": "ကျေးဇူးပြု၍ Ethereum ပိုက်ဆံအိတ်သို့ ပြောင်းပြီး ထပ်စမ်းကြည့်ပါ။", - "order_by": "အမှာစာ", - "creation_date": "ဖန်တီးမှုနေ့စွဲ", + "exchange_result_confirm": "အတည်ပြုချက်ကို နှိပ်ခြင်းဖြင့်၊ သင်သည် ${fetchingLabel} ${from} ဟုခေါ်သော သင့်ပိုက်ဆံအိတ်မှ ${walletName} ကို အောက်ဖော်ပြပါလိပ်စာသို့ ပေးပို့မည်ဖြစ်ပါသည်။ သို့မဟုတ် သင့်ပြင်ပပိုက်ဆံအိတ်မှ အောက်ပါလိပ်စာ/QR ကုဒ်သို့ ပေးပို့နိုင်ပါသည်။\n\nပမာဏများကို ပြောင်းလဲရန် ဆက်လက်လုပ်ဆောင်ရန် သို့မဟုတ် ပြန်သွားရန် အတည်ပြုချက်ကို နှိပ်ပါ။", + "exchange_result_description": "သင်သည် အနည်းဆုံး ${fetchingLabel} ${from} ကို နောက်စာမျက်နှာတွင် ပြသထားသည့် လိပ်စာသို့ ပေးပို့ရပါမည်။ ${fetchingLabel} ${from} ထက်နည်းသော ပမာဏကို ပေးပို့ပါက ၎င်းသည် ပြောင်းလဲ၍မရသည့်အပြင် ပြန်အမ်းမည်မဟုတ်ပါ။", + "exchange_result_write_down_ID": "* ကျေးဇူးပြု၍ အထက်ဖော်ပြပါ သင်၏ ID ကို ကော်ပီ သို့မဟုတ် ရေးမှတ်ပါ။", + "exchange_result_write_down_trade_id": "ရှေ့ဆက်ရန် ကုန်သွယ်မှု ID ကို ကူးယူ သို့မဟုတ် ချရေးပါ။", + "exchange_sync_alert_content": "သင့်ပိုက်ဆံအိတ်ကို စင့်ခ်လုပ်ထားသည့်အချိန်အထိ စောင့်ပါ။", + "expired": "သက်တမ်းကုန်သွားပြီ", + "expires": "သက်တမ်းကုန်သည်။", + "expiresOn": "သက်တမ်းကုန်သည်။", + "export_backup": "အရန်ကူးထုတ်ရန်", + "extra_id": "အပို ID-", + "extracted_address_content": "သင်သည် \n${recipient_name} သို့ ရန်ပုံငွေများ ပေးပို့ပါမည်", + "failed_authentication": "အထောက်အထားစိစစ်ခြင်း မအောင်မြင်ပါ။. ${state_error}", + "faq": "အမြဲမေးလေ့ရှိသောမေးခွန်းများ", + "fetching": "ခေါ်ယူခြင်း။", + "fiat_api": "Fiat API", + "fiat_balance": "Fiat Balance", + "field_required": "ဤစာကွက်လပ်မှာဖြည့်ရန်လိုအပ်ပါသည်", + "fill_code": "သင့်အီးမေးလ်သို့ ပေးထားသည့် အတည်ပြုကုဒ်ကို ဖြည့်ပါ။", + "filter_by": "အလိုက် စစ်ထုတ်ပါ။", + "first_wallet_text": "Monero၊ Bitcoin၊ Ethereum၊ Litecoin နှင့် Haven အတွက် အလွန်ကောင်းမွန်သော ပိုက်ဆံအိတ်", + "fixed_pair_not_supported": "ရွေးချယ်ထားသော ဖလှယ်မှုများဖြင့် ဤပုံသေအတွဲကို ပံ့ပိုးမထားပါ။", + "fixed_rate": "ပုံသေနှုန်း", + "fixed_rate_alert": "ပုံသေနှုန်းထားမုဒ်ကို စစ်ဆေးသည့်အခါ လက်ခံပမာဏကို ထည့်သွင်းနိုင်မည်ဖြစ်သည်။ ပုံသေနှုန်းမုဒ်သို့ ပြောင်းလိုပါသလား။", + "forgot_password": "စကားဝှက်မေ့နေပါသလား", + "freeze": "အေးခဲ", + "frequently_asked_questions": "မေးလေ့ရှိသောမေးခွန်းများ", + "frozen": "ဖြူဖြူ", + "full_balance": "Balance အပြည့်", + "generate_name": "အမည်ဖန်တီးပါ။", + "generating_gift_card": "လက်ဆောင်ကတ်ထုတ်ပေးခြင်း။", + "get_a": "တစ်ခုရယူပါ။", + "get_card_note": " ဒစ်ဂျစ်တယ်ငွေကြေးများဖြင့် ပြန်လည်စတင်နိုင်သည်။ နောက်ထပ် အချက်အလက် မလိုအပ်ပါ။", + "get_your_yat": "မင်းရဲ့ Yat ကိုယူလိုက်ပါ။", + "gift_card_amount": "လက်ဆောင်ကတ် ပမာဏ", + "gift_card_balance_note": "လက်ကျန်လက်ကျန်ရှိသည့် လက်ဆောင်ကတ်များ ဤနေရာတွင် ပေါ်လာပါမည်။", + "gift_card_is_generated": "Gift Card ထုတ်ပေးပါသည်။", + "gift_card_number": "လက်ဆောင်ကတ်နံပါတ်", + "gift_card_redeemed_note": "သင်ရွေးယူထားသော လက်ဆောင်ကတ်များ ဤနေရာတွင် ပေါ်လာပါမည်။", + "gift_cards": "လက်ဆောင်ကဒ်ပြား", + "gift_cards_unavailable": "လက်ဆောင်ကတ်များကို ယခုအချိန်တွင် Monero၊ Bitcoin နှင့် Litecoin တို့ဖြင့်သာ ဝယ်ယူနိုင်ပါပြီ။", + "got_it": "ရပြီ", + "gross_balance": "စုစုပေါင်းလက်ကျန်ငွေ", "group_by_type": "အမျိုးအစားအလိုက်အုပ်စုဖွဲ့", - "importNFTs": "NFTs များကို တင်သွင်းပါ။", - "noNFTYet": "NFTs မရှိသေးပါ။", - "address": "လိပ်စာ", - "enterTokenID": "တိုကင် ID ကိုထည့်ပါ။", - "tokenID": "အမှတ်သညာ", - "name": "နာမည်", - "symbol": "သင်္ကေတ", - "seed_phrase_length": "မျိုးစေ့စာပိုဒ်တိုအရှည်", - "unavailable_balance": "လက်ကျန်ငွေ မရရှိနိုင်ပါ။", - "unavailable_balance_description": "မရရှိနိုင်သော လက်ကျန်ငွေ- ဤစုစုပေါင်းတွင် ဆိုင်းငံ့ထားသော ငွေပေးငွေယူများတွင် သော့ခတ်ထားသော ငွေကြေးများနှင့် သင်၏ coin ထိန်းချုပ်မှုဆက်တင်များတွင် သင် တက်ကြွစွာ အေးခဲထားသော ငွေများ ပါဝင်သည်။ သော့ခတ်ထားသော လက်ကျန်ငွေများကို ၎င်းတို့၏ သက်ဆိုင်ရာ ငွေပေးငွေယူများ ပြီးမြောက်သည်နှင့် တပြိုင်နက် ရရှိနိုင်မည်ဖြစ်ပြီး၊ အေးခဲထားသော လက်ကျန်များကို ၎င်းတို့အား ပြန်ဖြုတ်ရန် သင်ဆုံးဖြတ်သည်အထိ ငွေပေးငွေယူများအတွက် ဆက်လက်၍မရနိုင်ပါ။", - "unspent_change": "ပေြာင်းလဲခြင်း", - "tor_connection": "Tor ချိတ်ဆက်မှု", - "setup_warning_2fa_text": "ကိတ်မုန့် 2FA သည် ပိုက်ဆံအိတ်ရှိ အချို့သော လုပ်ဆောင်ချက်များ အတွက် ဒုတိယ စစ်မှန်ကြောင်း အထောက်အထား ဖြစ်သည်။ ၎င်းသည် အအေးခန်းကဲ့သို့ မလုံခြုံပါ။\n\nသင်၏ 2FA အက်ပ် သို့မဟုတ် TOTP သော့များကို အသုံးပြုခွင့် ဆုံးရှုံးပါက၊ သင်သည် ဤပိုက်ဆံအိတ်သို့ ဝင်ရောက်ခွင့် ဆုံးရှုံးမည်ဖြစ်သည်။ သင့်ပိုက်ဆံအိတ်ကို mnemonic မျိုးစေ့မှ ပြန်လည်ရယူရန် လိုအပ်မည်ဖြစ်သည်။\n\nသင်သည် သင်၏ 2FA သို့မဟုတ် mnemonic အစေ့များကို အသုံးပြုခွင့်ဆုံးရှုံးသွားပါက ကိတ်မုန့်ပံ့ပိုးကူညီမှု မပေးနိုင်ပါ။\nCake 2FA ကို အသုံးမပြုမီ၊ လမ်းညွှန်ချက်မှတစ်ဆင့် ဖတ်ရန် အကြံပြုအပ်ပါသည်။", - "scan_qr_on_device": "အခြားစက်တွင် ဤ QR ကုဒ်ကို စကင်ဖတ်ပါ။", + "haven_app": "ဟေးဗင် ကိတ် ဝေါလက်", + "haven_app_wallet_text": "ဟေဗင်အတွက် အံ့ဩစရာကောင်းတဲ့ ပိုက်ဆံအုံး", + "help": "ကူညီပါ", + "hidden_balance": "Hidden Balance", + "hide_details": "အသေးစိတ်ကို ဝှက်ပါ။", + "high_contrast_theme": "အလင်းအမှောင် မြင့်မားသော အပြင်အဆင်", + "home_screen_settings": "ပင်မစခရင် ဆက်တင်များ", "how_to_use": "အသုံးပြုနည်း", + "how_to_use_card": "ဒီကတ်ကို ဘယ်လိုသုံးမလဲ။", + "id": "ID:", + "ignor": "လျစ်လျူရှုပါ။", + "import": "သွင်းကုန်", + "importNFTs": "NFTs များကို တင်သွင်းပါ။", + "in_store": "စတိုးတွင်", + "incoming": "ဝင်လာ", + "incorrect_seed": "ထည့်သွင်းထားသော စာသားသည် မမှန်ကန်ပါ။", + "introducing_cake_pay": "Cake Pay ကို မိတ်ဆက်ခြင်း။", + "invalid_input": "ထည့်သွင်းမှု မမှန်ကန်ပါ။", + "invoice_details": "ပြေစာအသေးစိတ်", + "is_percentage": "သည်", + "last_30_days": "လွန်ခဲ့သော ရက် 30", + "learn_more": "ပိုမိုသိရှိရန်", + "light_theme": "အလင်း", + "loading_your_wallet": "သင့်ပိုက်ဆံအိတ်ကို ဖွင့်နေသည်။", + "login": "လော့ဂ်အင်", + "logout": "ထွက်လိုက်ပါ။", + "low_fee": "အနိမ့်ကြေး", + "low_fee_alert": "သင်သည် လက်ရှိတွင် သက်သာသော ကွန်ရက်အခကြေးငွေဦးစားပေးကို အသုံးပြုနေပါသည်။ ၎င်းသည် အကြာကြီးစောင့်ဆိုင်းခြင်း၊ မတူညီသောနှုန်းထားများ သို့မဟုတ် ပယ်ဖျက်ထားသော ကုန်သွယ်မှုများကို ဖြစ်စေနိုင်သည်။ ပိုမိုကောင်းမွန်သော အတွေ့အကြုံအတွက် ပိုမိုမြင့်မားသော အခကြေးငွေ သတ်မှတ်ပေးရန် အကြံပြုအပ်ပါသည်။", + "manage_nodes": "ဆုံမှတ်များကို စီမံပါ။", + "manage_pow_nodes": "PoW Nodes ကို စီမံပါ။", + "manage_yats": "Yats ကို စီမံပါ။", + "mark_as_redeemed": "ရွေးနှုတ်ခြင်းအဖြစ် အမှတ်အသားပြုပါ။", + "market_place": "ဈေး", + "matrix_green_dark_theme": "Matrix Green Dark အပြင်အဆင်", + "max_amount": "အများဆုံး- ${value}", + "max_value": "အများဆုံး- ${value} ${currency}", + "memo": "မှတ်စုတို:", + "message": "မက်ဆေ့ချ်", + "methods": "နည်းလမ်းများ", + "min_amount": "အနည်းဆုံး- ${value}", + "min_value": "အနည်းဆုံး- ${value} ${currency}", + "minutes_to_pin_code": "${minute} မိနစ်", + "mm": "MM", + "modify_2fa": "ကိတ်မုန့် 2FA ကို ပြင်ဆင်ပါ။", + "monero_com": "Monero.com မှ Cake ပိုက်ဆံအိတ်", + "monero_com_wallet_text": "Monero အတွက် အမိုက်စား ပိုက်ဆံအိတ်", + "monero_dark_theme": "Monero Dark အပြင်အဆင်", + "monero_light_theme": "Monero Light အပြင်အဆင်", + "moonpay_alert_text": "ပမာဏ၏တန်ဖိုးသည် ${minAmount} ${fiatCurrency} နှင့် ပိုနေရမည်", + "more_options": "နောက်ထပ် ရွေးချယ်စရာများ", + "name": "နာမည်", + "narrow": "ကျဉ်းသော", + "new_first_wallet_text": "သင့်ရဲ့ cryptocurrencrencres ကိုအလွယ်တကူလုံခြုံစွာထားရှိပါ", + "new_node_testing": "နှာခေါင်း အသစ်စမ်းသပ်ခြင်း။", + "new_subaddress_create": "ဖန်တီးပါ။", + "new_subaddress_label_name": "အညွှန်းအမည်", + "new_subaddress_title": "လိပ်စာအသစ်", + "new_template": "ပုံစံအသစ်", + "new_wallet": "ပိုက်ဆံအိတ်အသစ်", + "newConnection": "ချိတ်ဆက်မှုအသစ်", + "no_id_needed": "ID မလိုအပ်ပါ။", + "no_id_required": "ID မလိုအပ်ပါ။ ငွေဖြည့်ပြီး ဘယ်နေရာမဆို သုံးစွဲပါ။", + "no_relay_on_domain": "အသုံးပြုသူ၏ဒိုမိန်းအတွက် ထပ်ဆင့်လွှင့်ခြင်း မရှိပါ သို့မဟုတ် ထပ်ဆင့်လွှင့်ခြင်း မရနိုင်ပါ။ အသုံးပြုရန် relay ကိုရွေးချယ်ပါ။", + "no_relays": "Relay မရှိပါ။", + "no_relays_message": "ဤအသုံးပြုသူအတွက် Nostr NIP-05 မှတ်တမ်းကို ကျွန်ုပ်တို့တွေ့ရှိသော်လည်း ၎င်းတွင် မည်သည့် relays မှ မပါဝင်ပါ။ ကျေးဇူးပြု၍ လက်ခံသူကို ၎င်းတို့၏ Nostr မှတ်တမ်းတွင် ထပ်လောင်းထည့်ရန် ညွှန်ကြားပါ။", + "node_address": "နိုဒီ လိပ်စာ", + "node_connection_failed": "ချိတ်ဆက်မှု မအောင်မြင်ပါ။", + "node_connection_successful": "ချိတ်ဆက်မှု အောင်မြင်ခဲ့သည်။", + "node_new": "နော်ဒီအသစ်", + "node_port": "နော်ဒီဆိပ်ကမ်း", + "node_reset_settings_title": "ဆက်တင်များကို ပြန်လည်သတ်မှတ်ပါ။", + "node_test": "စမ်း", + "nodes": "ဆုံမှတ်များ", + "nodes_list_reset_to_default_message": "ဆက်တင်များကို မူရင်းအတိုင်း ပြန်လည်သတ်မှတ်လိုသည်မှာ သေချာပါသလား။", + "none_of_selected_providers_can_exchange": "ရွေးချယ်ထားသော ဝန်ဆောင်မှုပေးသူများမှ ဤလဲလှယ်မှုကို ပြုလုပ်၍မရပါ။", + "noNFTYet": "NFTs မရှိသေးပါ။", + "normal": "ပုံမှန်", + "note_optional": "မှတ်ချက် (ချန်လှပ်ထားနိုင်သည်)", + "note_tap_to_change": "မှတ်ချက် (ပြောင်းလဲရန် တို့ပါ)", + "nullURIError": "URI သည် null ဖြစ်သည်။", + "offer_expires_in": "ကမ်းလှမ်းချက် သက်တမ်းကုန်သည်:", + "offline": "အော့ဖ်လိုင်း", + "ok": "ရလား", + "onion_link": "ကြက်သွန်လင့်", + "online": "အွန်လိုင်း", + "onramper_option_description": "ငွေပေးချေမှုနည်းလမ်းများစွာဖြင့် Crypto ကိုလျင်မြန်စွာ 0 ယ်ပါ။ နိုင်ငံအများစုတွင်ရရှိနိုင်ပါသည်။ ဖြန့်ဖြူးနှင့်အခကြေးငွေကွဲပြားခြားနားသည်။", + "open_gift_card": "Gift Card ကိုဖွင့်ပါ။", + "optional_description": "ရွေးချယ်နိုင်သော ဖော်ပြချက်", + "optional_email_hint": "ရွေးချယ်နိုင်သော ငွေလက်ခံသူ အကြောင်းကြားချက် အီးမေးလ်", + "optional_name": "ရွေးချယ်နိုင်သော လက်ခံသူအမည်", + "optionally_order_card": "ရုပ်ပိုင်းဆိုင်ရာကတ်ကို ရွေးချယ်နိုင်သည် ။", + "orbot_running_alert": "ဤ node သို့မချိတ်ဆက်မီ Orbot အလုပ်လုပ်နေကြောင်း သေချာပါစေ။", + "order_by": "အမှာစာ", + "order_id": "မှာယူမှု ID", + "order_physical_card": "ရုပ်ပိုင်းဆိုင်ရာကတ်ကို မှာယူပါ။", + "other_settings": "အခြားဆက်တင်များ", + "outdated_electrum_wallet_description": "ယခု Cake တွင်ဖန်တီးထားသော Bitcoin ပိုက်ဆံအိတ်အသစ်တွင် စကားလုံး 24 မျိုးရှိသည်။ Bitcoin ပိုက်ဆံအိတ်အသစ်တစ်ခုကို ဖန်တီးပြီး သင့်ငွေအားလုံးကို 24 စကားလုံးပိုက်ဆံအိတ်အသစ်သို့ လွှဲပြောင်းပြီး 12 စကားလုံးမျိုးစေ့ဖြင့် ပိုက်ဆံအိတ်များကို အသုံးပြုခြင်းကို ရပ်တန့်ရန် မဖြစ်မနေလိုအပ်ပါသည်။ သင့်ရန်ပုံငွေများကို လုံခြုံစေရန်အတွက် ၎င်းကိုချက်ချင်းလုပ်ဆောင်ပါ။", + "outdated_electrum_wallet_receive_warning": "ဤပိုက်ဆံအိတ်တွင် စာလုံး 12 လုံးပါပြီး ကိတ်မုန့်တွင် ဖန်တီးပါက၊ Bitcoin ကို ဤပိုက်ဆံအိတ်ထဲသို့ မထည့်ပါနှင့်။ ဤပိုက်ဆံအိတ်သို့ လွှဲပြောင်းပေးသည့် မည်သည့် BTC မဆို ဆုံးရှုံးနိုင်သည်။ 24 စကားလုံးပိုက်ဆံအိတ်အသစ်တစ်ခုဖန်တီးပါ (ညာဘက်အပေါ်ထောင့်ရှိမီနူးကိုနှိပ်ပါ၊ Wallets ကိုရွေးချယ်ပါ၊ ပိုက်ဆံအိတ်အသစ်ဖန်တီးရန်ကိုရွေးချယ်ပါ၊ ထို့နောက် Bitcoin ကိုရွေးချယ်ပါ) နှင့်သင်၏ BTC ကိုထိုနေရာသို့ချက်ချင်းရွှေ့ပါ။ Cake မှ (24 စာလုံး) BTC ပိုက်ဆံအိတ်အသစ်များသည် လုံခြုံပါသည်။", + "outgoing": "အထွက်", + "overwrite_amount": "ပမာဏကို ထပ်ရေးပါ။", + "pairingInvalidEvent": "မမှန်ကန်သောဖြစ်ရပ်ကို တွဲချိတ်ခြင်း။", + "password": "စကားဝှက်", + "paste": "ငါးပိ", + "pause_wallet_creation": "Haven Wallet ဖန်တီးနိုင်မှုကို လောလောဆယ် ခေတ္တရပ်ထားသည်။", + "payment_id": "ငွေပေးချေမှု ID:", + "payment_was_received": "သင့်ငွေပေးချေမှုကို လက်ခံရရှိခဲ့သည်။", + "pending": " (ဆိုင်းငံ့)", + "percentageOf": "${amount} ၏", + "pin_at_top": "အပေါ်တွင် ${token} ပင်ထိုးပါ။", + "pin_is_incorrect": "ပင်နံပါတ် မမှန်ပါ။", + "pin_number": "လျှို့ဝှက်နံပါတ်", + "placeholder_contacts": "သင့်အဆက်အသွယ်များကို ဤနေရာတွင် ပြသပါမည်။", + "placeholder_transactions": "သင်၏ ငွေပေးငွေယူများကို ဤနေရာတွင် ပြသပါမည်။", + "please_fill_totp": "သင့်အခြားစက်တွင်ရှိသော ဂဏန်း ၈ လုံးကုဒ်ကို ကျေးဇူးပြု၍ ဖြည့်ပါ။", + "please_make_selection": "သင့်ပိုက်ဆံအိတ်ကို ဖန်တီးရန် သို့မဟုတ် ပြန်လည်ရယူရန် အောက်တွင် ရွေးချယ်မှုတစ်ခု ပြုလုပ်ပါ။", + "please_reference_document": "နောက်ထပ်အချက်အလက်များအတွက် အောက်ပါစာရွက်စာတမ်းများကို ကိုးကားပါ။", + "please_select": "ကျေးဇူးပြု၍ ရွေးချယ်ပါ-", + "please_select_backup_file": "အရန်ဖိုင်ကို ရွေးပြီး အရန်စကားဝှက်ကို ထည့်ပါ။", + "please_try_to_connect_to_another_node": "အခြား node သို့ ချိတ်ဆက်ရန် ကြိုးစားပါ။", + "please_wait": "ကျေးဇူးပြုပြီးခဏစောင့်ပါ", + "polygonscan_history": "PolygonScan မှတ်တမ်း", + "powered_by": "${title} မှ ပံ့ပိုးပေးသည်", + "pre_seed_button_text": "ကျွန်တော်နားလည်ပါတယ်။ ငါ့အမျိုးအနွယ်ကို ပြလော့", + "pre_seed_description": "နောက်စာမျက်နှာတွင် ${words} စကားလုံးများ အတွဲလိုက်ကို တွေ့ရပါမည်။ ၎င်းသည် သင်၏ထူးခြားပြီး သီးသန့်မျိုးစေ့ဖြစ်ပြီး ပျောက်ဆုံးခြင်း သို့မဟုတ် ချွတ်ယွင်းမှုရှိပါက သင့်ပိုက်ဆံအိတ်ကို ပြန်လည်ရယူရန် တစ်ခုတည်းသောနည်းလမ်းဖြစ်သည်။ ၎င်းကို Cake Wallet အက်ပ်၏အပြင်ဘက်တွင် လုံခြုံသောနေရာတွင် သိမ်းဆည်းရန်မှာ သင်၏တာဝန်ဖြစ်သည်။", + "pre_seed_title": "အရေးကြီးသည်။", + "prevent_screenshots": "ဖန်သားပြင်ဓာတ်ပုံများနှင့် မျက်နှာပြင်ရိုက်ကူးခြင်းကို တားဆီးပါ။", + "privacy": "ကိုယ်ရေးကိုယ်တာ", + "privacy_policy": "ကိုယ်ရေးအချက်အလက်မူဝါဒ", + "privacy_settings": "Privacy settings တွေကို", + "private_key": "သီးသန့်သော့", + "proceed_after_one_minute": "မျက်နှာပြင်သည် ၁ မိနစ်အကြာတွင် ဆက်လက်မလုပ်ဆောင်ပါက သင့်အီးမေးလ်ကို စစ်ဆေးပါ။", + "profile": "ကိုယ်ရေးအကျဉ်း", + "provider_error": "${provider} အမှား", + "public_key": "အများသူငှာသော့", + "purchase_gift_card": "လက်ဆောင်ကတ်ဝယ်ပါ။", + "qr_fullscreen": "မျက်နှာပြင်အပြည့် QR ကုဒ်ကိုဖွင့်ရန် တို့ပါ။", + "qr_payment_amount": "ဤ QR ကုဒ်တွင် ငွေပေးချေမှုပမာဏတစ်ခုပါရှိသည်။ လက်ရှိတန်ဖိုးကို ထပ်ရေးလိုပါသလား။", + "question_to_disable_2fa": "Cake 2FA ကို ပိတ်လိုသည်မှာ သေချာပါသလား။ ပိုက်ဆံအိတ်နှင့် အချို့သောလုပ်ဆောင်ချက်များကို အသုံးပြုရန်အတွက် 2FA ကုဒ်တစ်ခု မလိုအပ်တော့ပါ။", + "receivable_balance": "လက်ကျန်ငွေ", + "receive": "လက်ခံသည်။", + "receive_amount": "ပမာဏ", + "received": "ရရှိခဲ့သည်။", + "recipient_address": "လက်ခံသူလိပ်စာ", + "reconnect": "ပြန်လည်ချိတ်ဆက်ပါ။", + "reconnect_alert_text": "ပြန်လည်ချိတ်ဆက်လိုသည်မှာ သေချာပါသလား။ ?", + "reconnection": "ပြန်လည်ချိတ်ဆက်မှု", + "redeemed": "ရွေးနှုတ်ခဲ့သည်။", + "refund_address": "ပြန်အမ်းငွေလိပ်စာ", + "reject": "ငြင်းပယ်ပါ။", + "remaining": "ကျန်", + "remove": "ဖယ်ရှားပါ။", + "remove_node": "နှာခေါင်း ကို ဖယ်ရှားပါ။", + "remove_node_message": "ရွေးချယ်ထားသော ကုဒ်ကို ဖယ်ရှားလိုသည်မှာ သေချာပါသလား။", + "rename": "အမည်ပြောင်းပါ။", + "require_for_adding_contacts": "အဆက်အသွယ်များထည့်ရန် လိုအပ်သည်။", + "require_for_all_security_and_backup_settings": "လုံခြုံရေးနှင့် အရန်ဆက်တင်များအားလုံးအတွက် လိုအပ်ပါသည်။", + "require_for_assessing_wallet": "ပိုက်ဆံအိတ်ကို ဝင်သုံးရန် လိုအပ်သည်။", + "require_for_creating_new_wallets": "ပိုက်ဆံအိတ်အသစ်များ ဖန်တီးရန် လိုအပ်သည်။", + "require_for_exchanges_to_external_wallets": "ပြင်ပပိုက်ဆံအိတ်များသို့ လဲလှယ်ရန် လိုအပ်သည်။", + "require_for_exchanges_to_internal_wallets": "အတွင်းပိုင်းပိုက်ဆံအိတ်များသို့ လဲလှယ်ရန် လိုအပ်သည်။", + "require_for_sends_to_contacts": "အဆက်အသွယ်များထံ ပေးပို့ရန် လိုအပ်သည်။", + "require_for_sends_to_internal_wallets": "အတွင်းပိုင်း ပိုက်ဆံအိတ်များသို့ ပေးပို့ရန် လိုအပ်သည်။", + "require_for_sends_to_non_contacts": "အဆက်အသွယ်မရှိသူများထံ ပေးပို့ရန် လိုအပ်သည်။", + "require_pin_after": "ပြီးနောက် PIN လိုအပ်ပါသည်။", + "rescan": "ပြန်စကင်န်လုပ်ပါ။", + "resend_code": "ကျေးဇူးပြု၍ ပြန်ပို့ပါ။", + "reset": "ပြန်လည်သတ်မှတ်ပါ။", + "reset_password": "လျှို့ဝှတ်နံပါတ်အားမူလအတိုင်းပြန်လုပ်သည်", + "restore_active_seed": "တက်ကြွသောအစေ့", + "restore_address": "လိပ်စာ", + "restore_bitcoin_description_from_keys": "သင့်ကိုယ်ပိုင်သော့များမှ ထုတ်လုပ်ထားသော WIF စာကြောင်းမှ သင့်ပိုက်ဆံအိတ်ကို ပြန်လည်ရယူပါ။", + "restore_bitcoin_description_from_seed": "24 စကားလုံးပေါင်းစပ်ကုဒ်မှ သင့်ပိုက်ဆံအိတ်ကို ပြန်ယူပါ။", + "restore_bitcoin_title_from_keys": "WIF မှ ပြန်လည်ရယူပါ။", + "restore_description_from_backup": "သင့်အရန်ဖိုင်မှ Cake Wallet အက်ပ်တစ်ခုလုံးကို သင်ပြန်လည်ရယူနိုင်သည်။", + "restore_description_from_keys": "သင့်ကိုယ်ပိုင်သော့များမှ သိမ်းဆည်းထားသော ထုတ်ပေးထားသော သော့ချက်များမှ သင့်ပိုက်ဆံအိတ်ကို ပြန်လည်ရယူပါ။", + "restore_description_from_seed": "25 စကားလုံး သို့မဟုတ် 13 စကားလုံးပေါင်းစပ်ကုဒ်မှ သင့်ပိုက်ဆံအိတ်ကို ပြန်လည်ရယူပါ။", + "restore_description_from_seed_keys": "သင့်ပိုက်ဆံအိတ်ကို လုံခြုံသောနေရာတွင် သိမ်းဆည်းထားသော မျိုးစေ့/သော့များမှ ပြန်လည်ရယူပါ။", + "restore_from_date_or_blockheight": "ဤပိုက်ဆံအိတ်ကို သင်မဖန်တီးမီ ရက်အနည်းငယ်အလိုတွင် ရက်စွဲတစ်ခု ထည့်သွင်းပါ။ သို့မဟုတ် ဘလော့ခ်ဟိုက် ကို သိပါက ၎င်းအစား ၎င်းကို ထည့်ပါ။", + "restore_from_seed_placeholder": "သင့်အစေ့ကို ဤနေရာတွင် ထည့်ပါ သို့မဟုတ် ကူးထည့်ပါ။", + "restore_new_seed": "မျိုးစေ့အသစ်", + "restore_next": "နောက်တစ်ခု", + "restore_recover": "ပြန်ယူပါ။", + "restore_restore_wallet": "ပိုက်ဆံအိတ်ကို ပြန်ယူပါ။", + "restore_seed_keys_restore": "မျိုးစေ့/သော့များ ပြန်လည်ရယူပါ။", + "restore_spend_key_private": "သော့သုံးရန် (သီးသန့်)", + "restore_title_from_backup": "အရန်သိမ်းခြင်းမှ ပြန်လည်ရယူပါ။", + "restore_title_from_keys": "သော့များမှ ပြန်လည်ရယူပါ။", + "restore_title_from_seed": "မျိုးစေ့မှပြန်လည်ရယူပါ။", + "restore_title_from_seed_keys": "မျိုးစေ့/သော့များမှ ပြန်လည်ရယူပါ။", + "restore_view_key_private": "သော့ကိုကြည့်ရန် (သီးသန့်)", + "restore_wallet": "ပိုက်ဆံအိတ်ကို ပြန်ယူပါ။", + "restore_wallet_name": "ပိုက်ဆံအိတ်နာမည်", + "restore_wallet_restore_description": "Wallet ပြန်လည်ရယူသည့် ဖော်ပြချက်", + "router_no_route": "${name} အတွက် သတ်မှတ်ထားသော လမ်းကြောင်းမရှိပါ", + "save": "သိမ်းဆည်းပါ။", + "save_backup_password": "သင်၏ အရန်စကားဝှက်ကို သိမ်းဆည်းထားကြောင်း သေချာပါစေ။ ၎င်းမပါဘဲ သင်၏ အရန်ဖိုင်များကို တင်သွင်းနိုင်မည် မဟုတ်ပါ။", + "save_backup_password_alert": "အရန်စကားဝှက်ကို သိမ်းဆည်းပါ။", + "save_to_downloads": "ဒေါင်းလုဒ်များထံ သိမ်းဆည်းပါ။", + "saved_the_trade_id": "ကုန်သွယ်မှု ID ကို သိမ်းဆည်းပြီးပါပြီ။", + "scan_qr_code": "QR ကုဒ်ကို စကင်န်ဖတ်ပါ။", + "scan_qr_code_to_get_address": "လိပ်စာရယူရန် QR ကုဒ်ကို စကင်န်ဖတ်ပါ။", + "scan_qr_on_device": "အခြားစက်တွင် ဤ QR ကုဒ်ကို စကင်ဖတ်ပါ။", + "search": "ရှာရန်", + "search_add_token": "ရှာဖွေရန် / တိုကင်ထည့်ပါ။", + "search_category": "ရှာဖွေမှုအမျိုးအစား", + "search_currency": "ငွေကြေးကိုရှာပါ။", + "search_language": "ဘာသာစကားရှာပါ။", + "second_intro_content": "သင်၏ Yat သည် သင့်ငွေကြေးအားလုံးအတွက် သင်၏ ရှည်လျားသော ဆဋ္ဌမကိန်းဂဏန်းများအားလုံးကို အစားထိုးသည့် တစ်မူထူးခြားသော အီမိုဂျီလိပ်စာတစ်ခုဖြစ်သည်။", + "second_intro_title": "၎င်းတို့အားလုံးကို အုပ်ချုပ်ရန် အီမိုဂျီလိပ်စာတစ်ခု", + "security_and_backup": "လုံခြုံရေးနှင့် မိတ္တူ", + "seed_alert_back": "ပြန်သွားသည်", + "seed_alert_content": "မျိုးစေ့သည် သင့်ပိုက်ဆံအိတ်ကို ပြန်လည်ရယူရန် တစ်ခုတည်းသောနည်းလမ်းဖြစ်သည်။ ရေးပြီးပြီလား။", + "seed_alert_title": "အာရုံ", + "seed_alert_yes": "ဟုတ်ကဲ့၊", + "seed_choose": "မျိုးစေ့ဘာသာစကားကို ရွေးချယ်ပါ။", "seed_hex_form": "ပိုက်ဆံအိတ်မျိုးစေ့ (Hex Form)", + "seed_key": "မျိုးစေ့သော့", + "seed_language": "မျိုးစေ့ဘာသာ", + "seed_language_chinese": "တရုတ်", + "seed_language_chinese_traditional": "တရုတ်ရိုးရာ)", + "seed_language_czech": "ချက်", + "seed_language_dutch": "ဒတ်ခ်ျ", + "seed_language_english": "အင်္ဂလိပ်စာ", + "seed_language_french": "ပြင်သစ်", + "seed_language_german": "ဂျာမန်", + "seed_language_italian": "အီတလီ", + "seed_language_japanese": "ဂျပန်", + "seed_language_korean": "ကိုးရီးယား", + "seed_language_next": "နောက်တစ်ခု", + "seed_language_portuguese": "ပေါ်တူဂီ", + "seed_language_russian": "ရုရှ", + "seed_language_spanish": "ငပိ", + "seed_phrase_length": "မျိုးစေ့စာပိုဒ်တိုအရှည်", + "seed_reminder": "ကျေးဇူးပြု၍ သင့်ဖုန်းကို ပျောက်ဆုံးသွားပါက သို့မဟုတ် ဖျက်မိပါက ၎င်းတို့ကို ချရေးပါ။", + "seed_share": "မျိုးစေ့မျှဝေပါ။", + "seed_title": "မျိုးစေ့", "seedtype": "မျိုးပွားခြင်း", "seedtype_legacy": "အမွေအနှစ် (စကားလုံး 25 လုံး)", "seedtype_polyseed": "polyseed (စကားလုံး 16 လုံး)", - "seed_language_czech": "ချက်", - "seed_language_korean": "ကိုးရီးယား", - "seed_language_chinese_traditional": "တရုတ်ရိုးရာ)", - "ascending": "တက်", - "descending": "ဆင်း", - "dfx_option_description": "EUR & CHF ဖြင့် crypto ကိုဝယ်ပါ။ အပို KYC မပါဘဲ 990€ အထိ။ ဥရောပရှိ လက်လီရောင်းချသူများနှင့် ကော်ပိုရိတ်ဖောက်သည်များအတွက်", - "polygonscan_history": "PolygonScan မှတ်တမ်း", - "wallet_seed_legacy": "အမွေအနှစ်ပိုက်ဆံအိတ်မျိုးစေ့", - "default_sell_provider": "ပုံသေရောင်းချပေးသူ", + "select_backup_file": "အရန်ဖိုင်ကို ရွေးပါ။", + "select_buy_provider_notice": "အပေါ်ကဝယ်သူတစ် ဦး ကိုရွေးချယ်ပါ။ သင်၏ default 0 ယ်သူအား app settings တွင် setting လုပ်ခြင်းဖြင့်ဤ screen ကိုကျော်သွားနိုင်သည်။", + "select_destination": "အရန်ဖိုင်အတွက် ဦးတည်ရာကို ရွေးပါ။", "select_sell_provider_notice": "အထက်ဖော်ပြပါ အရောင်းဝန်ဆောင်မှုပေးသူကို ရွေးပါ။ အက်ပ်ဆက်တင်များတွင် သင်၏မူလရောင်းချပေးသူကို သတ်မှတ်ခြင်းဖြင့် ဤစခရင်ကို ကျော်နိုင်သည်။", - "custom_drag": "စိတ်ကြိုက် (Drag)", + "sell": "ရောင်း", + "sell_alert_content": "ကျွန်ုပ်တို့သည် လက်ရှိတွင် Bitcoin၊ Ethereum နှင့် Litecoin ရောင်းချခြင်းကိုသာ ပံ့ပိုးပေးပါသည်။ သင်၏ Bitcoin၊ Ethereum သို့မဟုတ် Litecoin ပိုက်ဆံအိတ်ကို ဖန်တီးပါ သို့မဟုတ် ပြောင်းပါ။", + "sell_monero_com_alert_content": "Monero ရောင်းချခြင်းကို မပံ့ပိုးရသေးပါ။", + "send": "ပို့ပါ။", + "send_address": "${cryptoCurrency} လိပ်စာ", + "send_amount": "ပမာဏ-", + "send_creating_transaction": "အရောင်းအဝယ်ပြုလုပ်ခြင်း။", + "send_error_currency": "ငွေကြေးတွင် နံပါတ်များသာ ပါဝင်နိုင်သည်။", + "send_error_minimum_value": "ပမာဏ၏ အနည်းဆုံးတန်ဖိုးမှာ 0.01 ဖြစ်သည်။", + "send_estimated_fee": "ခန့်မှန်းကြေး-", + "send_fee": "အခကြေးငွေ-", + "send_name": "နာမည်", + "send_new": "အသစ်", + "send_payment_id": "ငွေပေးချေမှု ID (ချန်လှပ်ထား)", + "send_priority": "လောလောဆယ်အခကြေးငွေကို ${transactionPriority} ဦးစားပေးတွင် သတ်မှတ်ထားပါသည်။\nငွေပေးငွေယူဦးစားပေးကို ဆက်တင်များတွင် ချိန်ညှိနိုင်ပါသည်။", + "send_sending": "ပို့နေသည်...", + "send_success": "သင်၏ ${crypto} ကို အောင်မြင်စွာ ပို့လိုက်ပါပြီ။", + "send_templates": "ပုံစံများ", + "send_title": "ပို့ပါ။", + "send_to_this_address": "ဤလိပ်စာသို့ ${currency} ${tag}သို့ ပို့ပါ။", + "send_xmr": "XMR ပို့ပါ။", + "send_your_wallet": "သင့်ပိုက်ဆံအိတ်", + "sending": "ပေးပို့ခြင်း။", + "sent": "ပို့လိုက်ပါတယ်။", + "settings": "ဆက်တင်များ", + "settings_all": "အားလုံး", + "settings_allow_biometrical_authentication": "ဇီဝဗေဒဆိုင်ရာ အထောက်အထားစိစစ်ခြင်းကို ခွင့်ပြုပါ။", + "settings_can_be_changed_later": "အက်ပ်ဆက်တင်များတွင် ဤဆက်တင်များကို နောက်ပိုင်းတွင် ပြောင်းလဲနိုင်သည်။", + "settings_change_language": "ဘာသာစကားပြောင်းပါ။", + "settings_change_pin": "ပင်နံပါတ်ပြောင်းပါ။", + "settings_currency": "ငွေကြေး", + "settings_current_node": "လက်ရှိ node", + "settings_dark_mode": "အမှောင်မုဒ်", + "settings_display_balance": "ပြသချိန်ခွင်", + "settings_display_on_dashboard_list": "ဒက်ရှ်ဘုတ်စာရင်းတွင် ပြသပါ။", + "settings_fee_priority": "အခကြေးငွေဦးစားပေး", + "settings_nodes": "ဆုံမှတ်များ", + "settings_none": "တစ်ခုမှ", + "settings_only_trades": "အရောင်းအဝယ်တွေချည်းပဲ။", + "settings_only_transactions": "အရောင်းအဝယ်များသာ", + "settings_personal": "ပုဂ္ဂိုလ်ရေး", + "settings_save_recipient_address": "လက်ခံသူလိပ်စာကို သိမ်းဆည်းပါ။", + "settings_support": "အထောက်အပံ့", + "settings_terms_and_conditions": "စည်းကမ်းနှင့်သတ်မှတ်ချက်များ", + "settings_title": "ဆက်တင်များ", + "settings_trades": "ကုန်သွယ်မှုများ", + "settings_transactions": "ငွေပေးငွေယူ", + "settings_wallets": "ပိုက်ဆံအိတ်", + "setup_2fa": "ကိတ်မုန့် 2FA စနစ်ထည့်သွင်းပါ။", + "setup_2fa_text": "ကိတ်မုန့် 2FA သည် TOTP ကို ဒုတိယ စစ်မှန်ကြောင်းအထောက်အထားအဖြစ် အသုံးပြု၍ လုပ်ဆောင်သည်။\n\nကိတ်မုန့် 2FA ၏ TOTP သည် SHA-512 နှင့် 8 ဂဏန်းပံ့ပိုးမှု လိုအပ်သည်။ ဒါက လုံခြုံရေးကို တိုးမြှင့်ပေးတယ်။ နောက်ထပ်အချက်အလက်များနှင့် ပံ့ပိုးပေးထားသောအက်ပ်များကို လမ်းညွှန်တွင် တွေ့နိုင်ပါသည်။", + "setup_pin": "ပင်နံပါတ်ကို စနစ်ထည့်သွင်းပါ။", + "setup_successful": "သင့်ပင်နံပါတ်ကို အောင်မြင်စွာ သတ်မှတ်ပြီးပါပြီ။", + "setup_totp_recommended": "TOTP စနစ်ထည့်သွင်းပါ။", + "setup_warning_2fa_text": "ကိတ်မုန့် 2FA သည် ပိုက်ဆံအိတ်ရှိ အချို့သော လုပ်ဆောင်ချက်များ အတွက် ဒုတိယ စစ်မှန်ကြောင်း အထောက်အထား ဖြစ်သည်။ ၎င်းသည် အအေးခန်းကဲ့သို့ မလုံခြုံပါ။\n\nသင်၏ 2FA အက်ပ် သို့မဟုတ် TOTP သော့များကို အသုံးပြုခွင့် ဆုံးရှုံးပါက၊ သင်သည် ဤပိုက်ဆံအိတ်သို့ ဝင်ရောက်ခွင့် ဆုံးရှုံးမည်ဖြစ်သည်။ သင့်ပိုက်ဆံအိတ်ကို mnemonic မျိုးစေ့မှ ပြန်လည်ရယူရန် လိုအပ်မည်ဖြစ်သည်။\n\nသင်သည် သင်၏ 2FA သို့မဟုတ် mnemonic အစေ့များကို အသုံးပြုခွင့်ဆုံးရှုံးသွားပါက ကိတ်မုန့်ပံ့ပိုးကူညီမှု မပေးနိုင်ပါ။\nCake 2FA ကို အသုံးမပြုမီ၊ လမ်းညွှန်ချက်မှတစ်ဆင့် ဖတ်ရန် အကြံပြုအပ်ပါသည်။", + "setup_your_debit_card": "သင့်ဒက်ဘစ်ကတ်ကို စနစ်ထည့်သွင်းပါ။", + "share": "မျှဝေပါ။", + "share_address": "လိပ်စာမျှဝေပါ။", + "show_details": "အသေးစိတ်ပြ", + "show_keys": "မျိုးစေ့ /သော့များကို ပြပါ။", + "show_market_place": "စျေးကွက်ကိုပြသပါ။", + "show_seed": "မျိုးစေ့ကိုပြပါ။", + "sign_up": "ဆိုင်းအပ်", + "signTransaction": "ငွေလွှဲဝင်ပါ။", + "signup_for_card_accept_terms": "ကတ်အတွက် စာရင်းသွင်းပြီး စည်းကမ်းချက်များကို လက်ခံပါ။", + "slidable": "လျှောချနိုင်သည်။", + "sort_by": "အလိုက်စဥ်သည်", + "spend_key_private": "သော့သုံးရန် (သီးသန့်)", + "spend_key_public": "သုံးစွဲရန်သော့ (အများပြည်သူ)", + "status": "အခြေအနေ:", + "subaddress_title": "လိပ်စာစာရင်း", + "subaddresses": "လိပ်စာများ", + "submit_request": "တောင်းဆိုချက်တစ်ခုတင်ပြပါ။", + "successful": "အောင်မြင်တယ်။", + "support_description_guides": "ဘုံပြ issues နာများအတွက်စာရွက်စာတမ်းများနှင့်ထောက်ခံမှု", + "support_description_live_chat": "အခမဲ့နှင့်အစာရှောင်ခြင်း! လေ့ကျင့်ထားသောထောက်ခံသူကိုယ်စားလှယ်များသည်ကူညီနိုင်သည်", + "support_description_other_links": "ကျွန်ုပ်တို့၏လူမှုအသိုင်းအဝိုင်းများသို့ 0 င်ရောက်ပါ", + "support_title_guides": "ကိတ်မုန့်ပိုက်ဆံအိတ်လမ်းညွှန်များ", + "support_title_live_chat": "တိုက်ရိုက်ပံ့ပိုးမှု", + "support_title_other_links": "အခြားအထောက်အပံ့လင့်များ", + "sweeping_wallet": "ိုက်ဆံအိတ် တံမြက်လှည်း", + "sweeping_wallet_alert": "ဒါက ကြာကြာမခံသင့်ပါဘူး။ ဤစခရင်ကို ချန်မထားပါနှင့် သို့မဟုတ် ထုတ်ယူထားသော ရန်ပုံငွေများ ဆုံးရှုံးနိုင်သည်", + "switchToETHWallet": "ကျေးဇူးပြု၍ Ethereum ပိုက်ဆံအိတ်သို့ ပြောင်းပြီး ထပ်စမ်းကြည့်ပါ။", "switchToEVMCompatibleWallet": "ကျေးဇူးပြု၍ EVM တွဲဖက်သုံးနိုင်သော ပိုက်ဆံအိတ်သို့ ပြောင်းပြီး ထပ်စမ်းကြည့်ပါ (Ethereum၊ Polygon)", - "receivable_balance": "လက်ကျန်ငွေ", - "confirmed_tx": "အတည်ပြုသည်", + "symbol": "သင်္ကေတ", + "sync_status_attempting_sync": "ချိန်ကိုက်ခြင်းကို ကြိုးစားနေသည်။", + "sync_status_connected": "ချိတ်ဆက်ထားသည်။", + "sync_status_connecting": "ချိတ်ဆက်ခြင်း။", + "sync_status_failed_connect": "အဆက်အသွယ်ဖြတ်ထားသည်။", + "sync_status_not_connected": "မချိတ်ဆက်ပါ။", + "sync_status_starting_sync": "စင့်ခ်လုပ်ခြင်း။", + "sync_status_syncronized": "ထပ်တူပြုထားသည်။", + "sync_status_syncronizing": "ထပ်တူပြုခြင်း။", + "syncing_wallet_alert_content": "သင်၏လက်ကျန်နှင့် ငွေပေးငွေယူစာရင်းသည် ထိပ်တွင် \"Synchronizeed\" ဟုပြောသည်အထိ မပြီးမြောက်နိုင်ပါ။ ပိုမိုလေ့လာရန် နှိပ်/နှိပ်ပါ။", + "syncing_wallet_alert_title": "သင့်ပိုက်ဆံအိတ်ကို စင့်ခ်လုပ်နေပါသည်။", + "template": "ပုံစံခွက်", + "template_name": "နမူနာပုံစံ", + "third_intro_content": "Yats သည် Cake Wallet အပြင်ဘက်တွင် နေထိုင်ပါသည်။ ကမ္ဘာပေါ်ရှိ မည်သည့်ပိုက်ဆံအိတ်လိပ်စာကို Yat ဖြင့် အစားထိုးနိုင်ပါသည်။", + "third_intro_title": "Yat သည် အခြားသူများနှင့် ကောင်းစွာကစားသည်။", + "time": "${minutes}m ${seconds}s", + "tip": "အကြံပြုချက်-", + "today": "ဒီနေ့", + "token_contract_address": "တိုကင်စာချုပ်လိပ်စာ", + "token_decimal": "တိုကင်ဒဿမ", + "token_name": "တိုကင်အမည် ဥပမာ- Tether", + "token_symbol": "တိုကင်သင်္ကေတ ဥပမာ- USDT", + "tokenID": "အမှတ်သညာ", + "tor_connection": "Tor ချိတ်ဆက်မှု", + "tor_only": "Tor သာ", + "total_saving": "စုစုပေါင်းစုဆောင်းငွေ", + "totp_2fa_failure": "ကုဒ်မမှန်ပါ။ ကျေးဇူးပြု၍ အခြားကုဒ်တစ်ခုကို စမ်းကြည့်ပါ သို့မဟုတ် လျှို့ဝှက်သော့အသစ်တစ်ခု ဖန်တီးပါ။ ဂဏန်း ၈ လုံးကုဒ်များနှင့် SHA512 ကို ပံ့ပိုးပေးသည့် တွဲဖက်အသုံးပြုနိုင်သော 2FA အက်ပ်ကို အသုံးပြုပါ။", + "totp_2fa_success": "အောင်မြင် ဤပိုက်ဆံအိတ်အတွက် ကိတ်မုန့် 2FA ကို ဖွင့်ထားသည်။ ပိုက်ဆံအိတ်ဝင်ရောက်ခွင့်ဆုံးရှုံးသွားသောအခါတွင် သင်၏ mnemonic မျိုးစေ့များကို သိမ်းဆည်းရန် မမေ့ပါနှင့်။", + "totp_auth_url": "TOTP AUTH URL", + "totp_code": "TOTP ကုဒ်", + "totp_secret_code": "TOTP လျှို့ဝှက်ကုဒ်", + "totp_verification_success": "အတည်ပြုခြင်း အောင်မြင်ပါသည်။", + "trade_details_copied": "${title} ကို Clipboard သို့ ကူးယူထားသည်။", + "trade_details_created_at": "တွင်ဖန်တီးခဲ့သည်။", + "trade_details_fetching": "ခေါ်ယူခြင်း။", + "trade_details_id": "အမှတ်သညာ", + "trade_details_pair": "တွဲ", + "trade_details_provider": "ပံ့ပိုးပေးသူ", + "trade_details_state": "အဆင့်အတန်း", + "trade_details_title": "ကုန်သွယ်မှုအသေးစိတ်", + "trade_for_not_created": "${title} အတွက် ကုန်သွယ်မှုကို ဖန်တီးမထားပါ။", + "trade_history_title": "ကုန်သွယ်မှုသမိုင်း", + "trade_id": "ကုန်သွယ်မှု ID:", + "trade_id_not_found": "${title} ၏ ${tradeId} ကုန်သွယ်မှုကို ရှာမတွေ့ပါ။", + "trade_is_powered_by": "ဤကုန်သွယ်မှုကို ${provider} မှ လုပ်ဆောင်သည်", + "trade_not_created": "ကုန်သွယ်မှု မဖန်တီးပါ။", + "trade_not_found": "ကုန်သွယ်မှု မတွေ့။", + "trade_state_btc_sent": "Btc ပို့လိုက်ပါတယ်။", + "trade_state_complete": "ပြီးအောင်", + "trade_state_confirming": "အတည်ပြုခြင်း။", + "trade_state_created": "ဖန်တီးခဲ့သည်။", + "trade_state_finished": "ပြီးပြီ။", + "trade_state_paid": "အခကြေးငွေ", + "trade_state_paid_unconfirmed": "အတည်မပြုနိုင်သေးပါ။", + "trade_state_pending": "ဆိုင်းငံ့ထားသည်။", + "trade_state_timeout": "ခဏပွဲရပ်ခြင်း", + "trade_state_to_be_created": "ဖန်တီးဖို့", + "trade_state_traded": "အရောင်းအဝယ်ဖြစ်ခဲ့သည်။", + "trade_state_trading": "ရောင်းဝယ်ရေး", + "trade_state_underpaid": "ပေးချေမှုနည်းပါးသည်။", + "trade_state_unpaid": "အခကြေးငွေမယူရသေး", + "trades": "ကုန်သွယ်မှုများ", + "transaction_details_amount": "ပမာဏ", + "transaction_details_copied": "${title} ကို Clipboard သို့ ကူးယူထားသည်။", + "transaction_details_date": "ရက်စွဲ", + "transaction_details_fee": "ကြေး", + "transaction_details_height": "အရပ်အမြင့်", + "transaction_details_recipient_address": "လက်ခံသူလိပ်စာများ", "transaction_details_source_address": "အရင်းအမြစ်လိပ်စာ", - "pause_wallet_creation": "Haven Wallet ဖန်တီးနိုင်မှုကို လောလောဆယ် ခေတ္တရပ်ထားသည်။", - "contractName": "စာချုပ်အမည်", - "contractSymbol": "စာချုပ်သင်္ကေတ", - "description": "ဖော်ပြချက်", - "camera_consent": "မှတ်ပုံတင်ခြင်းရည်ရွယ်ချက်များအတွက် ${provider} တွင် သင့်ကင်မရာကို အသုံးပြုပါမည်။ အသေးစိတ်အတွက် ၎င်းတို့၏ ကိုယ်ရေးကိုယ်တာမူဝါဒကို စစ်ဆေးပါ။", - "no_relays": "Relay မရှိပါ။", - "choose_relay": "အသုံးပြုရန် relay ကိုရွေးချယ်ပါ။", - "no_relays_message": "ဤအသုံးပြုသူအတွက် Nostr NIP-05 မှတ်တမ်းကို ကျွန်ုပ်တို့တွေ့ရှိသော်လည်း ၎င်းတွင် မည်သည့် relays မှ မပါဝင်ပါ။ ကျေးဇူးပြု၍ လက်ခံသူကို ၎င်းတို့၏ Nostr မှတ်တမ်းတွင် ထပ်လောင်းထည့်ရန် ညွှန်ကြားပါ။", - "no_relay_on_domain": "အသုံးပြုသူ၏ဒိုမိန်းအတွက် ထပ်ဆင့်လွှင့်ခြင်း မရှိပါ သို့မဟုတ် ထပ်ဆင့်လွှင့်ခြင်း မရနိုင်ပါ။ အသုံးပြုရန် relay ကိုရွေးချယ်ပါ။" -} + "transaction_details_title": "ငွေပေးငွေယူအသေးစိတ်", + "transaction_details_transaction_id": "ငွေပေးငွေယူ ID", + "transaction_key": "ငွေသွင်းငွေထုတ်ကီး", + "transaction_priority_fast": "မြန်သည်။", + "transaction_priority_fastest": "အမြန်ဆုံး", + "transaction_priority_medium": "အလယ်အလတ်", + "transaction_priority_regular": "ပုံမှန်အစည်းအဝေး", + "transaction_priority_slow": "နှေးနှေး", + "transaction_sent": "ငွေပေးချေမှု ပို့ပြီးပါပြီ။!", + "transaction_sent_notice": "မျက်နှာပြင်သည် ၁ မိနစ်အကြာတွင် ဆက်လက်မလုပ်ဆောင်ပါက၊ ပိတ်ဆို့ရှာဖွေသူနှင့် သင့်အီးမေးလ်ကို စစ်ဆေးပါ။", + "transactions": "ငွေပေးငွေယူ", + "transactions_by_date": "ရက်စွဲအလိုက် ငွေလွှဲမှုများ", + "trusted": "ယုံတယ်။", + "unavailable_balance": "လက်ကျန်ငွေ မရရှိနိုင်ပါ။", + "unavailable_balance_description": "မရရှိနိုင်သော လက်ကျန်ငွေ- ဤစုစုပေါင်းတွင် ဆိုင်းငံ့ထားသော ငွေပေးငွေယူများတွင် သော့ခတ်ထားသော ငွေကြေးများနှင့် သင်၏ coin ထိန်းချုပ်မှုဆက်တင်များတွင် သင် တက်ကြွစွာ အေးခဲထားသော ငွေများ ပါဝင်သည်။ သော့ခတ်ထားသော လက်ကျန်ငွေများကို ၎င်းတို့၏ သက်ဆိုင်ရာ ငွေပေးငွေယူများ ပြီးမြောက်သည်နှင့် တပြိုင်နက် ရရှိနိုင်မည်ဖြစ်ပြီး၊ အေးခဲထားသော လက်ကျန်များကို ၎င်းတို့အား ပြန်ဖြုတ်ရန် သင်ဆုံးဖြတ်သည်အထိ ငွေပေးငွေယူများအတွက် ဆက်လက်၍မရနိုင်ပါ။", + "unconfirmed": "အတည်မပြုနိုင်သော လက်ကျန်ငွေ", + "understand": "ကျွန်တော်နားလည်ပါတယ်", + "unmatched_currencies": "သင့်လက်ရှိပိုက်ဆံအိတ်၏ငွေကြေးသည် စကင်ဖတ်ထားသော QR နှင့် မကိုက်ညီပါ။", + "unspent_change": "ပေြာင်းလဲခြင်း", + "unspent_coins_details_title": "အသုံးမဝင်သော အကြွေစေ့အသေးစိတ်များ", + "unspent_coins_title": "အသုံးမဝင်သော အကြွေစေ့များ", + "unsupported_asset": "ဤပိုင်ဆိုင်မှုအတွက် ဤလုပ်ဆောင်ချက်ကို ကျွန်ုပ်တို့ မပံ့ပိုးပါ။ ကျေးဇူးပြု၍ ပံ့ပိုးပေးထားသော ပိုင်ဆိုင်မှုအမျိုးအစား၏ ပိုက်ဆံအိတ်ကို ဖန်တီးပါ သို့မဟုတ် ပြောင်းပါ။", + "upto": "${value} အထိ", + "use": "သို့ပြောင်းပါ။", + "use_card_info_three": "ဒစ်ဂျစ်တယ်ကတ်ကို အွန်လိုင်း သို့မဟုတ် ထိတွေ့မှုမဲ့ ငွေပေးချေမှုနည်းလမ်းများဖြင့် အသုံးပြုပါ။", + "use_card_info_two": "ဒစ်ဂျစ်တယ်ငွေကြေးများဖြင့်မဟုတ်ဘဲ ကြိုတင်ငွေပေးချေသည့်အကောင့်တွင် သိမ်းထားသည့်အခါ ရန်ပုံငွေများကို USD သို့ ပြောင်းလဲပါသည်။", + "use_ssl": "SSL ကိုသုံးပါ။", + "use_suggested": "အကြံပြုထားသည်ကို အသုံးပြုပါ။", + "variable_pair_not_supported": "ရွေးချယ်ထားသော ဖလှယ်မှုများဖြင့် ဤပြောင်းလဲနိုင်သောအတွဲကို ပံ့ပိုးမထားပါ။", + "verification": "စိစစ်ခြင်း။", + "verify_with_2fa": "Cake 2FA ဖြင့် စစ်ဆေးပါ။", + "version": "ဗားရှင်း ${currentVersion}", + "view_all": "အားလုံးကိုကြည့်ရှုပါ။", + "view_in_block_explorer": "Block Explorer တွင်ကြည့်ရှုပါ။", + "view_key_private": "သော့ကိုကြည့်ရန် (သီးသန့်)", + "view_key_public": "သော့ကိုကြည့်ရန် (အများပြည်သူ)", + "view_transaction_on": "ငွေလွှဲခြင်းကို ဖွင့်ကြည့်ပါ။", + "wallet_keys": "ပိုက်ဆံအိတ် အစေ့/သော့များ", + "wallet_list_create_new_wallet": "Wallet အသစ်ဖန်တီးပါ။", + "wallet_list_edit_wallet": "ပိုက်ဆံအိတ်ကို တည်းဖြတ်ပါ။", + "wallet_list_failed_to_load": "${wallet_name} ပိုက်ဆံအိတ်ကို ဖွင့်၍မရပါ။ ${error}", + "wallet_list_failed_to_remove": "${wallet_name} ပိုက်ဆံအိတ်ကို ဖယ်ရှား၍မရပါ။ ${error}", + "wallet_list_load_wallet": "ပိုက်ဆံအိတ်ကို တင်ပါ။", + "wallet_list_loading_wallet": "${wallet_name} ပိုက်ဆံအိတ်ကို ဖွင့်နေသည်။", + "wallet_list_removing_wallet": "${wallet_name} ပိုက်ဆံအိတ်ကို ဖယ်ရှားခြင်း။", + "wallet_list_restore_wallet": "ပိုက်ဆံအိတ်ကို ပြန်ယူပါ။", + "wallet_list_title": "Monero ပိုက်ဆံအိတ်", + "wallet_list_wallet_name": "ပိုက်ဆံအိတ်နာမည်", + "wallet_menu": "မီနူး", + "wallet_name": "ပိုက်ဆံအိတ်နာမည", + "wallet_name_exists": "ထိုအမည်ဖြင့် ပိုက်ဆံအိတ်တစ်ခု ရှိနှင့်ပြီးဖြစ်သည်။ အခြားအမည်တစ်ခုကို ရွေးပါ သို့မဟုတ် အခြားပိုက်ဆံအိတ်ကို ဦးစွာ အမည်ပြောင်းပါ။", + "wallet_restoration_store_incorrect_seed_length": "မျိုးစေ့အရှည် မမှန်ပါ။", + "wallet_seed": "ပိုက်ဆံအိတ်စေ့", + "wallet_seed_legacy": "အမွေအနှစ်ပိုက်ဆံအိတ်မျိုးစေ့", + "wallet_store_monero_wallet": "Monero ပိုက်ဆံအိတ်", + "walletConnect": "Wallet ချိတ်ဆက်မှု", + "wallets": "ပိုက်ဆံအိတ်", + "warning": "သတိပေးချက်", + "welcome": "မှကြိုဆိုပါတယ်။", + "welcome_to_cakepay": "Cake Pay မှကြိုဆိုပါသည်။", + "widgets_address": "လိပ်စာ", + "widgets_or": "သို့မဟုတ်", + "widgets_restore_from_blockheight": "အမြင့်မှ ပြန်လည်ရယူပါ။", + "widgets_restore_from_date": "ရက်စွဲမှ ပြန်လည်ရယူပါ။", + "widgets_seed": "မျိုးစေ့", + "wouoldLikeToConnect": "ချိတ်ဆက်ချင်ပါတယ်။", + "write_down_backup_password": "သင်၏ အရန်ဖိုင်များကို တင်သွင်းရန်အတွက် အသုံးပြုသည့် သင်၏ အရန်စကားဝှက်ကို ချရေးပါ။", + "xlm_extra_info": "လဲလှယ်မှုအတွက် XLM ငွေလွှဲပို့နေစဉ် Memo ID ကို သတ်မှတ်ရန် မမေ့ပါနှင့်", + "xmr_available_balance": "လက်ကျန်ငွေ ရရှိနိုင်", + "xmr_full_balance": "မျှတမှု အပြည့်အစုံ", + "xmr_hidden": "ဝှက်ထားသည်။", + "xmr_to_error": "XMR.TO အမှား", + "xmr_to_error_description": "ပမာဏ မမှန်ပါ။ ဒဿမအမှတ်ပြီးနောက် ဂဏန်း ၈ လုံးတွင် အများဆုံးကန့်သတ်ချက်", + "xrp_extra_info": "လဲလှယ်မှုအတွက် XRP ငွေလွှဲပို့နေစဉ် Destination Tag ကို သတ်မှတ်ရန် မမေ့ပါနှင့်", + "yat": "ယတ်", + "yat_address": "Yat လိပ်စာ", + "yat_alert_content": "Cake Wallet အသုံးပြုသူများသည် တစ်မျိုးတည်းသော အီမိုဂျီအခြေခံအသုံးပြုသူအမည်ဖြင့် ၎င်းတို့၏ စိတ်ကြိုက်ငွေကြေးအားလုံးကို ပေးပို့နိုင်ပါပြီ။", + "yat_alert_title": "Yat ဖြင့် crypto ကိုပိုမိုလွယ်ကူစွာပေးပို့လက်ခံပါ။", + "yat_error": "Yat အမှား", + "yat_error_content": "ဤ Yat နှင့် ချိတ်ဆက်ထားသော လိပ်စာမရှိပါ။ နောက်ထပ် Yat စမ်းကြည့်ပါ။", + "yat_popup_content": "သင်၏ Yat - တိုတောင်းသော အီမိုဂျီအခြေခံအသုံးပြုသူအမည်ဖြင့် Cake Wallet တွင် crypto ကို ယခု ပေးပို့နိုင်ပါပြီ။ ဆက်တင်စခရင်ပေါ်တွင် Yats ကို အချိန်မရွေး စီမံခန့်ခွဲပါ။", + "yat_popup_title": "သင့်ပိုက်ဆံအိတ်လိပ်စာကို emojified လုပ်နိုင်ပါသည်။", + "yesterday": "မနေ့က", + "you_now_have_debit_card": "ယခု သင့်တွင် ဒက်ဘစ်ကတ်တစ်ခုရှိသည်။", + "you_pay": "သင်ပေးချေပါ။", + "you_will_get": "သို့ပြောင်းပါ။", + "you_will_send": "မှပြောင်းပါ။", + "yy": "YY", + "zzzz": "မိုးခေဇဇ်" +} \ No newline at end of file diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 51f25e64a..225c7fc42 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -1,779 +1,780 @@ { - "welcome": "Welkom bij", - "cake_wallet": "Cake Wallet", - "first_wallet_text": "Geweldige portemonnee voor Monero, Bitcoin, Ethereum, Litecoin, en Haven", - "please_make_selection": "Maak hieronder uw keuze tot maak of herstel je portemonnee.", - "create_new": "Maak een nieuwe portemonnee", - "restore_wallet": "Portemonnee herstellen", - "monero_com": "Monero.com by Cake Wallet", - "monero_com_wallet_text": "Awesome wallet for Monero", - "haven_app": "Haven by Cake Wallet", - "haven_app_wallet_text": "Awesome wallet for Haven", - "accounts": "Accounts", - "edit": "Bewerk", + "about_cake_pay": "Met Cake Pay kunt u eenvoudig cadeaubonnen kopen met virtuele activa, die direct kunnen worden uitgegeven bij meer dan 150.000 handelaren in de Verenigde Staten.", "account": "Account", + "accounts": "Accounts", + "accounts_subaddresses": "Accounts en subadressen", + "activate": "Activeren", + "active": "Actief", + "active_cards": "Actieve kaarten", + "activeConnectionsPrompt": "Actieve verbindingen worden hier weergegeven", "add": "Toevoegen", + "add_contact": "Contactpersoon toevoegen", + "add_custom_node": "Voeg een nieuw aangepast knooppunt toe", + "add_custom_redemption": "Voeg aangepaste inwisseling toe", + "add_fund_to_card": "Voeg prepaid tegoed toe aan de kaarten (tot ${value})", + "add_new_node": "Voeg een nieuw knooppunt toe", + "add_new_word": "Nieuw woord toevoegen", + "add_receiver": "Nog een ontvanger toevoegen (optioneel)", + "add_secret_code": "Of voeg deze geheime code toe aan een authenticator-app", + "add_tip": "Tip toevoegen", + "add_token_disclaimer_check": "Ik heb het adres en de informatie van het tokencontract bevestigd met behulp van een betrouwbare bron. Het toevoegen van kwaadaardige of onjuiste informatie kan leiden tot verlies van geld.", + "add_token_warning": "Bewerk of voeg geen tokens toe volgens de instructies van oplichters.\nBevestig tokenadressen altijd met betrouwbare bronnen!", + "add_value": "Waarde toevoegen", + "address": "Adres", "address_book": "Adresboek", - "contact": "Contact", - "please_select": "Selecteer alstublieft:", - "cancel": "Annuleer", - "ok": "OK", - "contact_name": "Contactnaam", - "reset": "Reset", - "save": "Opslaan", + "address_book_menu": "Adresboek", + "address_detected": "Adres gedetecteerd", + "address_from_domain": "Dit adres is van ${domain} op Unstoppable Domains", + "address_from_yat": "Dit adres is van ${emoji} op Yat", + "address_label": "Address label", "address_remove_contact": "Contact verwijderen", "address_remove_content": "Weet u zeker dat u het geselecteerde contact wilt verwijderen?", - "authenticated": "Authenticated", - "authentication": "Authenticatie", - "failed_authentication": "Mislukte authenticatie. ${state_error}", - "wallet_menu": "Portemonnee-menu", - "Blocks_remaining": "${status} Resterende blokken", - "please_try_to_connect_to_another_node": "Probeer verbinding te maken met een ander knooppunt", - "xmr_hidden": "Verborgen", - "xmr_available_balance": "Beschikbaar saldo", - "xmr_full_balance": "Volledig saldo", - "send": "Sturen", - "receive": "Krijgen", - "transactions": "Transacties", - "incoming": "inkomend", - "outgoing": "Uitgaande", - "transactions_by_date": "Transacties op datum", - "trades": "Trades", - "filter_by": "Filteren op", - "today": "Vandaag", - "yesterday": "Gisteren", - "received": "Ontvangen", - "sent": "Verzonden", - "pending": " (in afwachting)", - "rescan": "Opnieuw scannen", - "reconnect": "Sluit", - "wallets": "Portefeuilles", - "show_seed": "Toon zaad", - "show_keys": "Toon zaad/sleutels", - "address_book_menu": "Adresboek", - "reconnection": "Reconnection", - "reconnect_alert_text": "Weet u zeker dat u opnieuw verbinding wilt maken?", - "exchange": "Uitwisseling", - "clear": "Duidelijk", - "refund_address": "Adres voor terugbetaling", - "change_exchange_provider": "Wijzig Exchange Provider", - "you_will_send": "Converteren van", - "you_will_get": "Converteren naar", - "amount_is_guaranteed": "Het ontvangen bedrag is gegarandeerd", - "amount_is_estimate": "Het ontvangen bedrag is een schatting", - "powered_by": "Aangedreven door ${title}", - "error": "Fout", - "estimated": "Geschatte", - "min_value": "Min: ${value} ${currency}", - "max_value": "Max: ${value} ${currency}", - "change_currency": "Verander valuta", - "overwrite_amount": "Overwrite amount", - "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", - "copy_id": "ID kopiëren", - "exchange_result_write_down_trade_id": "Kopieer of noteer de handels-ID om door te gaan.", - "trade_id": "Trade ID:", - "copied_to_clipboard": "Gekopieerd naar het klembord", - "saved_the_trade_id": "Ik heb de ruil-ID opgeslagen", - "fetching": "Ophalen", - "id": "ID: ", - "amount": "Bedrag: ", - "payment_id": "Betaling ID: ", - "status": "Staat: ", - "offer_expires_in": "Aanbieding verloopt over: ", - "trade_is_powered_by": "Deze transactie wordt mogelijk gemaakt door ${provider}", - "copy_address": "Adres kopiëren", - "exchange_result_confirm": "Door op bevestigen te drukken, wordt u verzonden ${fetchingLabel} ${from} uit je portemonnee genoemd ${walletName} naar het onderstaande adres. Of u kunt vanuit uw externe portemonnee naar het onderstaande adres verzenden / QR-code sturen.\n\nDruk op bevestigen om door te gaan of terug te gaan om de bedragen te wijzigen.", - "exchange_result_description": "U moet minimaal ${fetchingLabel} ${from} verzenden naar het adres dat op de volgende pagina wordt weergegeven. Als u een bedrag verzendt dat lager is dan ${fetchingLabel} ${from}, wordt het mogelijk niet omgezet en wordt het mogelijk niet terugbetaald.", - "exchange_result_write_down_ID": "*Kopieer of noteer uw hierboven getoonde ID.", - "confirm": "Bevestigen", - "confirm_sending": "Bevestig verzending", - "commit_transaction_amount_fee": "Verricht transactie\nBedrag: ${amount}\nhonorarium: ${fee}", - "sending": "Bezig met verzenden", - "transaction_sent": "Transactie verzonden!", - "expired": "Verlopen", - "time": "${minutes}m ${seconds}s", - "send_xmr": "Sturen XMR", - "exchange_new_template": "Nieuwe sjabloon", - "faq": "FAQ", - "enter_your_pin": "Voer uw pincode in", - "loading_your_wallet": "Uw portemonnee laden", - "new_wallet": "Nieuwe portemonnee", - "wallet_name": "Portemonnee naam", - "continue_text": "Doorgaan met", - "choose_wallet_currency": "Kies een portemonnee-valuta:", - "node_new": "Nieuw knooppunt", - "node_address": "Knooppunt adres", - "node_port": "Knooppunt poort", - "login": "Log in", - "password": "Wachtwoord", - "nodes": "Knooppunten", - "node_reset_settings_title": "Reset instellingen", - "nodes_list_reset_to_default_message": "Weet u zeker dat u de standaardinstellingen wilt herstellen?", - "change_current_node": "Weet u zeker dat u het huidige knooppunt wilt wijzigen in ${node}?", - "change": "Verandering", - "remove_node": "Knoop verwijderen", - "remove_node_message": "Weet u zeker dat u het geselecteerde knooppunt wilt verwijderen?", - "remove": "Verwijderen", - "delete": "Delete", - "add_new_node": "Voeg een nieuw knooppunt toe", - "change_current_node_title": "Wijzig het huidige knooppunt", - "node_test": "Test", - "node_connection_successful": "Verbinding is gelukt", - "node_connection_failed": "De verbinding is mislukt", - "new_node_testing": "Nieuwe knooppunttest", - "use": "Gebruik ", - "digit_pin": "-cijferige PIN", - "share_address": "Deel adres", - "receive_amount": "Bedrag", - "subaddresses": "Subadressen", - "rename": "Hernoemen", "addresses": "Adressen", - "scan_qr_code_to_get_address": "Scan de QR-code om het adres te krijgen", - "qr_fullscreen": "Tik om de QR-code op volledig scherm te openen", - "choose_account": "Kies account", - "create_new_account": "Creëer een nieuw account", - "accounts_subaddresses": "Accounts en subadressen", - "restore_restore_wallet": "Portemonnee herstellen", - "restore_title_from_seed_keys": "Herstel van zaad / sleutels", - "restore_description_from_seed_keys": "Ontvang uw portemonnee terug uit seed / keys die u hebt opgeslagen op een veilige plaats", - "restore_next": "Volgende", - "restore_title_from_backup": "Herstellen vanuit een back-upbestand", - "restore_description_from_backup": "Je kunt de hele Cake Wallet-app herstellen van uw back-upbestand", - "restore_seed_keys_restore": "Zaad / sleutels herstellen", - "restore_title_from_seed": "Herstel van zaad", - "restore_description_from_seed": "Herstel uw portemonnee van het 25 woord of 13 woord combinatiecode", - "restore_title_from_keys": "Herstel van sleutels", - "restore_description_from_keys": "Herstel uw portemonnee van gegenereerd toetsaanslagen opgeslagen van uw privésleutels", - "restore_wallet_name": "Portemonnee naam", - "restore_address": "Adres", - "restore_view_key_private": "Bekijk sleutel (privaat)", - "restore_spend_key_private": "Sleutel uitgeven (privaat)", - "restore_recover": "Herstellen", - "restore_wallet_restore_description": "Portemonnee-herstelbeschrijving", - "restore_new_seed": "Nieuw zaad", - "restore_active_seed": "Actief zaad", - "restore_bitcoin_description_from_seed": "Herstel uw portemonnee met een combinatiecode van 24 woorden", - "restore_bitcoin_description_from_keys": "Herstel uw portemonnee van de gegenereerde WIF-string van uw privésleutels", - "restore_bitcoin_title_from_keys": "Herstel van WIF", - "restore_from_date_or_blockheight": "Voer een datum in een paar dagen voordat u deze portemonnee heeft gemaakt. Of als u de blokhoogte kent, voert u deze in", - "seed_reminder": "Schrijf deze op voor het geval u uw telefoon kwijtraakt of veegt", - "seed_title": "Zaad", - "seed_share": "Deel zaad", - "copy": "Kopiëren", - "seed_language": "Zaadtaal", - "seed_choose": "Kies een starttaal", - "seed_language_next": "Volgende", - "seed_language_english": "Engels", - "seed_language_chinese": "Chinese", - "seed_language_dutch": "Nederlands", - "seed_language_german": "Duitse", - "seed_language_japanese": "Japans", - "seed_language_portuguese": "Portugees", - "seed_language_russian": "Russisch", - "seed_language_spanish": "Spaans", - "seed_language_french": "Frans", - "seed_language_italian": "Italiaans", - "send_title": "Stuur", - "send_your_wallet": "Uw portemonnee", - "send_address": "${cryptoCurrency}-adres", - "send_payment_id": "Betaling ID (facultatief)", + "advanced_settings": "Geavanceerde instellingen", + "aggressive": "Overijverig", + "agree": "mee eens", + "agree_and_continue": "Akkoord & doorgaan", + "agree_to": "Door een account aan te maken gaat u akkoord met de ", "all": "ALLE", - "send_error_minimum_value": "Minimale waarde van bedrag is 0,01", - "send_error_currency": "Valuta kan alleen cijfers bevatten", - "send_estimated_fee": "Geschatte vergoeding:", - "send_priority": "Momenteel is de vergoeding vastgesteld op ${transactionPriority} prioriteit.\nTransactieprioriteit kan worden aangepast in de instellingen", - "send_creating_transaction": "Transactie maken", - "send_templates": "Sjablonen", - "send_new": "Nieuw", - "send_amount": "Bedrag:", - "send_fee": "Vergoeding:", - "send_name": "Naam", - "got_it": "Ik snap het", - "send_sending": "Bezig met verzenden...", - "send_success": "Uw ${crypto} is succesvol verzonden", - "settings_title": "Instellingen", - "settings_nodes": "knooppunten", - "settings_current_node": "Huidige knooppunt", - "settings_wallets": "Portemonnee", - "settings_display_balance": "Saldo weergeven", - "settings_currency": "Valuta", - "settings_fee_priority": "Tariefprioriteit", - "settings_save_recipient_address": "Adres ontvanger opslaan", - "settings_personal": "Persoonlijk", - "settings_change_pin": "Verander pincode", - "settings_change_language": "Verander de taal", - "settings_allow_biometrical_authentication": "Biometrische authenticatie toestaan", - "settings_dark_mode": "Donkere modus", - "settings_transactions": "Transacties", - "settings_trades": "Trades", - "settings_display_on_dashboard_list": "Weergeven op dashboardlijst", - "settings_all": "ALLE", - "settings_only_trades": "Alleen handel", - "settings_only_transactions": "Alleen transacties", - "settings_none": "Geen", - "settings_support": "Ondersteuning", - "settings_terms_and_conditions": "Voorwaarden", - "pin_is_incorrect": "PIN is onjuist", - "setup_pin": "PIN instellen", - "enter_your_pin_again": "Voer uw PIN opnieuw in", - "setup_successful": "Uw PIN is succesvol ingesteld!", - "wallet_keys": "Portemonnee zaad/sleutels", - "wallet_seed": "Portemonnee zaad", - "private_key": "Prive sleutel", - "public_key": "Publieke sleutel", - "view_key_private": "Bekijk sleutel (privaat)", - "view_key_public": "Bekijk sleutel (openbaar)", - "spend_key_private": "Sleutel uitgeven (privaat)", - "spend_key_public": "Sleutel uitgeven (openbaar)", - "copied_key_to_clipboard": "Gekopieerd ${key} naar het klembord", - "new_subaddress_title": "Nieuw adres", - "new_subaddress_label_name": "Label naam", - "new_subaddress_create": "Creëren", - "address_label": "Address label", - "subaddress_title": "Subadreslijst", - "trade_details_title": "Handelsgegevens", - "trade_details_id": "ID", - "trade_details_state": "Toestand", - "trade_details_fetching": "Ophalen", - "trade_details_provider": "Leverancier", - "trade_details_created_at": "Gemaakt bij", - "trade_details_pair": "Paar", - "trade_details_copied": "${title} gekopieerd naar het klembord", - "trade_history_title": "Handelsgeschiedenis", - "transaction_details_title": "Transactie details", - "transaction_details_transaction_id": "Transactie ID", - "transaction_details_date": "Datum", - "transaction_details_height": "Hoogte", - "transaction_details_amount": "Bedrag", - "transaction_details_fee": "Vergoeding", - "transaction_details_copied": "${title} gekopieerd naar het klembord", - "transaction_details_recipient_address": "Adressen van ontvangers", - "wallet_list_title": "Monero portemonnee", - "wallet_list_create_new_wallet": "Maak een nieuwe portemonnee", - "wallet_list_edit_wallet": "Portemonnee bewerken", - "wallet_list_wallet_name": "Portemonnee naam", - "wallet_list_restore_wallet": "Portemonnee herstellen", - "wallet_list_load_wallet": "Portemonnee laden", - "wallet_list_loading_wallet": "Bezig met laden ${wallet_name} portemonnee", - "wallet_list_failed_to_load": "Laden mislukt ${wallet_name} portemonnee. ${error}", - "wallet_list_removing_wallet": "Verwijderen ${wallet_name} portemonnee", - "wallet_list_failed_to_remove": "Verwijderen mislukt ${wallet_name} portemonnee. ${error}", - "widgets_address": "Adres", - "widgets_restore_from_blockheight": "Herstel vanaf blockheight", - "widgets_restore_from_date": "Herstel vanaf datum", - "widgets_or": "of", - "widgets_seed": "Zaad", - "router_no_route": "Geen route gedefinieerd voor ${name}", - "error_text_account_name": "Accountnaam mag alleen letters, cijfers bevatten\nen moet tussen de 1 en 15 tekens lang zijn", - "error_text_contact_name": "Naam contactpersoon kan niet bevatten ` , ' \" symbolen\nen moet tussen de 1 en 32 tekens lang zijn", - "error_text_address": "Portemonnee-adres moet overeenkomen met het type\nvan cryptocurrency", - "error_text_node_address": "Voer een iPv4-adres in", - "error_text_node_port": "Knooppuntpoort kan alleen nummers tussen 0 en 65535 bevatten", - "error_text_node_proxy_address": "Voer : in, bijvoorbeeld 127.0.0.1:9050", - "error_text_payment_id": "Betalings-ID kan alleen 16 tot 64 tekens bevatten in hexadecimale volgorde", - "error_text_xmr": "XMR-waarde kan het beschikbare saldo niet overschrijden.\nHet aantal breukcijfers moet kleiner zijn dan of gelijk zijn aan 12", - "error_text_fiat": "Waarde van bedrag kan het beschikbare saldo niet overschrijden.\nHet aantal breukcijfers moet kleiner zijn dan of gelijk zijn aan 2", - "error_text_subaddress_name": "Naam subadres mag niet bevatten ` , ' \" symbolen\nen moet tussen de 1 en 20 tekens lang zijn", - "error_text_amount": "Bedrag kan alleen cijfers bevatten", - "error_text_wallet_name": "Naam portemonnee kan alleen letters, cijfers , _ - symbolen bevatten\nen moet tussen de 1 en 33 tekens lang zijn", - "error_text_keys": "Portefeuillesleutels kunnen maximaal 64 tekens bevatten in hexadecimale volgorde", - "error_text_crypto_currency": "Het aantal breukcijfers\nmoet kleiner zijn dan of gelijk zijn aan 12", - "error_text_minimal_limit": "Ruil voor ${provider} is niet gemaakt. Bedrag is minder dan minimaal: ${min} ${currency}", - "error_text_maximum_limit": "Ruil voor ${provider} is niet gemaakt. Bedrag is meer dan maximaal: ${max} ${currency}", - "error_text_limits_loading_failed": "Ruil voor ${provider} is niet gemaakt. Beperkingen laden mislukt", - "error_text_template": "Sjabloonnaam en -adres mogen niet bevatten ` , ' \" symbolen\nen moet tussen de 1 en 106 tekens lang zijn", + "all_trades": "Alle transacties", + "all_transactions": "Alle transacties", + "alphabetical": "Alfabetisch", + "already_have_account": "Heb je al een account?", + "always": "altijd", + "amount": "Bedrag: ", + "amount_is_estimate": "Het ontvangen bedrag is een schatting", + "amount_is_guaranteed": "Het ontvangen bedrag is gegarandeerd", + "and": "en", + "anonpay_description": "Genereer ${type}. De ontvanger kan ${method} gebruiken met elke ondersteunde cryptocurrency en u ontvangt geld in deze portemonnee", + "apk_update": "APK-update", + "approve": "Goedkeuren", + "arrive_in_this_address": "${currency} ${tag}komt aan op dit adres", + "ascending": "Stijgend", + "ask_each_time": "Vraag het elke keer", "auth_store_ban_timeout": "time-out verbieden", "auth_store_banned_for": "Verboden voor ", "auth_store_banned_minutes": " notulen", "auth_store_incorrect_password": "Incorrect PIN", - "wallet_store_monero_wallet": "Monero portemonnee", - "wallet_restoration_store_incorrect_seed_length": "Onjuiste zaadlengte", - "full_balance": "Volledig saldo", - "available_balance": "Beschikbaar saldo", - "hidden_balance": "Verborgen balans", - "sync_status_syncronizing": "SYNCHRONISEREN", - "sync_status_syncronized": "SYNCHRONIZED", - "sync_status_not_connected": "NIET VERBONDEN", - "sync_status_starting_sync": "BEGINNEN MET SYNCHRONISEREN", - "sync_status_failed_connect": "LOSGEKOPPELD", - "sync_status_connecting": "AANSLUITING", - "sync_status_connected": "VERBONDEN", - "sync_status_attempting_sync": "SYNCHRONISATIE PROBEREN", - "transaction_priority_slow": "Langzaam", - "transaction_priority_regular": "Regelmatig", - "transaction_priority_medium": "Medium", - "transaction_priority_fast": "Snel", - "transaction_priority_fastest": "Snelste", - "trade_for_not_created": "Ruilen voor ${title} is niet gemaakt.", - "trade_not_created": "Handel niet gecreëerd", - "trade_id_not_found": "Handel ${tradeId} van ${title} niet gevonden.", - "trade_not_found": "Handel niet gevonden.", - "trade_state_pending": "In afwachting", - "trade_state_confirming": "Bevestiging", - "trade_state_trading": "Handel", - "trade_state_traded": "Traded", - "trade_state_complete": "Compleet", - "trade_state_to_be_created": "Om gecreëerd te worden", - "trade_state_unpaid": "Onbetaald", - "trade_state_underpaid": "Slecht betaald", - "trade_state_paid_unconfirmed": "Niet bevestigd", - "trade_state_paid": "Betaald", - "trade_state_btc_sent": "Verzonden", - "trade_state_timeout": "Time-out", - "trade_state_created": "Gemaakt", - "trade_state_finished": "Afgewerkt", - "change_language": "Verander de taal", - "change_language_to": "Verander de taal in ${language}?", - "paste": "Plakken", - "restore_from_seed_placeholder": "Voer hier uw codefrase in of plak deze", - "add_new_word": "Nieuw woord toevoegen", - "incorrect_seed": "De ingevoerde tekst is niet geldig.", - "biometric_auth_reason": "Scan uw vingerafdruk om te verifiëren", - "version": "Versie ${currentVersion}", - "extracted_address_content": "U stuurt geld naar\n${recipient_name}", - "card_address": "Adres:", - "buy": "Kopen", - "sell": "Verkopen", - "placeholder_transactions": "Uw transacties worden hier weergegeven", - "placeholder_contacts": "Je contacten worden hier weergegeven", - "template": "Sjabloon", - "confirm_delete_template": "Met deze actie wordt deze sjabloon verwijderd. Wilt u doorgaan?", - "confirm_delete_wallet": "Met deze actie wordt deze portemonnee verwijderd. Wilt u doorgaan?", - "change_wallet_alert_title": "Wijzig huidige portemonnee", - "change_wallet_alert_content": "Wilt u de huidige portemonnee wijzigen in ${wallet_name}?", - "creating_new_wallet": "Nieuwe portemonnee aanmaken", - "creating_new_wallet_error": "Fout: ${description}", - "seed_alert_title": "Aandacht", - "seed_alert_content": "Het zaad is de enige manier om uw portemonnee te herstellen. Heb je het opgeschreven?", - "seed_alert_back": "Ga terug", - "seed_alert_yes": "Ja ik heb", - "exchange_sync_alert_content": "Wacht tot uw portemonnee is gesynchroniseerd", - "pre_seed_title": "BELANGRIJK", - "pre_seed_description": "Op de volgende pagina ziet u een reeks van ${words} woorden. Dit is uw unieke en persoonlijke zaadje en het is de ENIGE manier om uw portemonnee te herstellen in geval van verlies of storing. Het is JOUW verantwoordelijkheid om het op te schrijven en op een veilige plaats op te slaan buiten de Cake Wallet app.", - "pre_seed_button_text": "Ik begrijp het. Laat me mijn zaad zien", - "xmr_to_error": "XMR.TO-fout", - "xmr_to_error_description": "Ongeldige hoeveelheid. Maximaal 8 cijfers achter de komma", - "provider_error": "${provider} fout", - "use_ssl": "Gebruik SSL", - "trusted": "vertrouwd", - "color_theme": "Kleur thema", - "light_theme": "Licht", - "bright_theme": "Helder", - "dark_theme": "Donker", - "enter_your_note": "Voer uw notitie in ...", - "note_optional": "Opmerking (optioneel)", - "note_tap_to_change": "Opmerking (tik om te wijzigen)", - "view_in_block_explorer": "View in Block Explorer", - "view_transaction_on": "View Transaction on ", - "transaction_key": "Transactiesleutel", - "confirmations": "Bevestigingen", - "recipient_address": "Adres ontvanger", - "extra_id": "Extra ID:", - "destination_tag": "Bestemmingstag:", - "memo": "Memo:", - "backup": "Back-up", - "change_password": "Wachtwoord wijzigen", - "backup_password": "Reservewachtwoord", - "write_down_backup_password": "Noteer uw back-upwachtwoord, dat wordt gebruikt voor het importeren van uw back-upbestanden.", - "export_backup": "Back-up exporteren", - "save_backup_password": "Zorg ervoor dat u uw reservewachtwoord heeft opgeslagen. Zonder dit kunt u uw back-upbestanden niet importeren.", - "backup_file": "Backup bestand", - "edit_backup_password": "Bewerk back-upwachtwoord", - "save_backup_password_alert": "Bewaar back-upwachtwoord", - "change_backup_password_alert": "Uw vorige back-upbestanden kunnen niet worden geïmporteerd met een nieuw back-upwachtwoord. Het nieuwe back-upwachtwoord wordt alleen gebruikt voor nieuwe back-upbestanden. Weet u zeker dat u het back-upwachtwoord wilt wijzigen?", - "enter_backup_password": "Voer hier een back-upwachtwoord in", - "select_backup_file": "Selecteer een back-upbestand", - "import": "Importeren", - "please_select_backup_file": "Selecteer een back-upbestand en voer een back-upwachtwoord in.", - "fixed_rate": "Vast tarief", - "fixed_rate_alert": "U kunt het ontvangen bedrag invoeren wanneer de modus voor vaste tarieven is aangevinkt. Wilt u overschakelen naar de vaste-tariefmodus?", - "xlm_extra_info": "Vergeet niet om de Memo-ID op te geven tijdens het verzenden van de XLM-transactie voor de uitwisseling", - "xrp_extra_info": "Vergeet niet om de Destination Tag op te geven tijdens het verzenden van de XRP-transactie voor de uitwisseling", - "exchange_incorrect_current_wallet_for_xmr": "Als u XMR wilt omwisselen van uw Cake Wallet Monero-saldo, moet u eerst overschakelen naar uw Monero-portemonnee.", - "confirmed": "Bevestigd saldo", - "unconfirmed": "Onbevestigd saldo", - "displayable": "Weer te geven", - "submit_request": "een verzoek indienen", - "buy_alert_content": "Momenteel ondersteunen we alleen de aankoop van Bitcoin, Ethereum, Litecoin en Monero. Maak of schakel over naar uw Bitcoin-, Ethereum-, Litecoin- of Monero-portemonnee.", - "sell_alert_content": "We ondersteunen momenteel alleen de verkoop van Bitcoin, Ethereum en Litecoin. Maak of schakel over naar uw Bitcoin-, Ethereum- of Litecoin-portemonnee.", - "outdated_electrum_wallet_description": "Nieuwe Bitcoin-portefeuilles die in Cake zijn gemaakt, hebben nu een zaadje van 24 woorden. Het is verplicht dat u een nieuwe Bitcoin-portemonnee maakt en al uw geld overmaakt naar de nieuwe portemonnee van 24 woorden, en stopt met het gebruik van wallets met een seed van 12 woorden. Doe dit onmiddellijk om uw geld veilig te stellen.", - "understand": "Ik begrijp het", - "apk_update": "APK-update", - "buy_bitcoin": "Koop Bitcoin", - "buy_with": "Koop met", - "moonpay_alert_text": "Waarde van het bedrag moet meer of gelijk zijn aan ${minAmount} ${fiatCurrency}", - "outdated_electrum_wallet_receive_warning": "Als deze portemonnee een seed van 12 woorden heeft en is gemaakt in Cake, stort dan GEEN Bitcoin in deze portemonnee. Elke BTC die naar deze portemonnee is overgebracht, kan verloren gaan. Maak een nieuwe portemonnee van 24 woorden (tik op het menu rechtsboven, selecteer Portefeuilles, kies Nieuwe portemonnee maken en selecteer vervolgens Bitcoin) en verplaats je BTC ONMIDDELLIJK daar. Nieuwe (24-woorden) BTC-portefeuilles van Cake zijn veilig", - "do_not_show_me": "laat me dit niet opnieuw zien", - "unspent_coins_title": "Ongebruikte munten", - "unspent_coins_details_title": "Details van niet-uitgegeven munten", - "freeze": "Bevriezen", - "frozen": "Bevroren", - "coin_control": "Muntcontrole (optioneel)", - "address_detected": "Adres gedetecteerd", - "address_from_domain": "Dit adres is van ${domain} op Unstoppable Domains", - "add_receiver": "Nog een ontvanger toevoegen (optioneel)", - "manage_yats": "Yats beheren", - "yat_alert_title": "Verzend en ontvang crypto gemakkelijker met Yat", - "yat_alert_content": "Cake Wallet-gebruikers kunnen nu al hun favoriete valuta's verzenden en ontvangen met een unieke emoji-gebaseerde gebruikersnaam.", - "get_your_yat": "Haal je Yato", - "connect_an_existing_yat": "Verbind een bestaande Yat", - "yat_address": "Yat-adres", - "yat": "Yat", - "connect_yats": "Verbind Yats", - "address_from_yat": "Dit adres is van ${emoji} op Yat", - "yat_error": "Yat fout", - "yat_error_content": "Geen adressen gekoppeld aan deze Yat. Probeer een andere Yato", - "choose_address": "\n\nKies het adres:", - "yat_popup_title": "Uw portemonnee-adres kan worden ge-emojiificeerd.", - "yat_popup_content": "Je kunt nu crypto verzenden en ontvangen in Cake Wallet met je Yat - een korte, op emoji gebaseerde gebruikersnaam. Beheer Yats op elk moment op het instellingenscherm", - "second_intro_title": "Eén emoji-adres om ze allemaal te regeren", - "second_intro_content": "Je Yat is een enkel uniek emoji-adres dat al je lange hexadecimale adressen vervangt voor al je valuta's.", - "third_intro_title": "Yat speelt leuk met anderen", - "third_intro_content": "Yats wonen ook buiten Cake Wallet. Elk portemonnee-adres op aarde kan worden vervangen door een Yat!", - "learn_more": "Kom meer te weten", - "search": "Zoekopdracht", - "search_language": "Zoektaal", - "search_currency": "Zoek valuta", - "new_template": "Nieuwe sjabloon", - "electrum_address_disclaimer": "We genereren nieuwe adressen elke keer dat u er een gebruikt, maar eerdere adressen blijven werken", - "wallet_name_exists": "Portemonnee met die naam bestaat al", - "market_place": "Marktplaats", - "cake_pay_title": "Cake Pay-cadeaubonnen", - "cake_pay_subtitle": "Koop cadeaubonnen met korting (alleen VS)", - "cake_pay_web_cards_title": "Cake Pay-webkaarten", - "cake_pay_web_cards_subtitle": "Koop wereldwijd prepaidkaarten en cadeaubonnen", - "about_cake_pay": "Met Cake Pay kunt u eenvoudig cadeaubonnen kopen met virtuele activa, die direct kunnen worden uitgegeven bij meer dan 150.000 handelaren in de Verenigde Staten.", - "cake_pay_account_note": "Meld u aan met alleen een e-mailadres om kaarten te bekijken en te kopen. Sommige zijn zelfs met korting verkrijgbaar!", - "already_have_account": "Heb je al een account?", - "create_account": "Account aanmaken", - "privacy_policy": "Privacybeleid", - "welcome_to_cakepay": "Welkom bij Cake Pay!", - "sign_up": "Aanmelden", - "forgot_password": "Wachtwoord vergeten", - "reset_password": "Wachtwoord resetten", - "gift_cards": "Cadeaubonnen", - "setup_your_debit_card": "Stel uw debetkaart in", - "no_id_required": "Geen ID vereist. Opwaarderen en overal uitgeven", - "how_to_use_card": "Hoe deze kaart te gebruiken", - "purchase_gift_card": "Cadeaubon kopen", - "verification": "Verificatie", - "fill_code": "Vul de verificatiecode in die u in uw e-mail hebt ontvangen", - "didnt_get_code": "Geen code?", - "resend_code": "Stuur het alstublieft opnieuw", - "debit_card": "Debetkaart", - "cakepay_prepaid_card": "CakePay Prepaid Debetkaart", - "no_id_needed": "Geen ID nodig!", - "frequently_asked_questions": "Veelgestelde vragen", - "debit_card_terms": "De opslag en het gebruik van uw betaalkaartnummer (en inloggegevens die overeenkomen met uw betaalkaartnummer) in deze digitale portemonnee zijn onderworpen aan de Algemene voorwaarden van de toepasselijke kaarthouderovereenkomst met de uitgever van de betaalkaart, zoals van kracht vanaf tijd tot tijd.", - "please_reference_document": "Raadpleeg de onderstaande documenten voor meer informatie.", - "cardholder_agreement": "Kaarthouderovereenkomst", - "e_sign_consent": "Toestemming e-ondertekenen", - "agree_and_continue": "Akkoord & doorgaan", - "email_address": "E-mailadres", - "agree_to": "Door een account aan te maken gaat u akkoord met de ", - "and": "en", - "enter_code": "Voer code in", - "congratulations": "gefeliciteerd!", - "you_now_have_debit_card": "Je hebt nu een debetkaart", - "min_amount": "Min: ${value}", - "max_amount": "Max: ${value}", - "enter_amount": "Voer Bedrag in", - "billing_address_info": "Als u om een ​​factuuradres wordt gevraagd, geef dan uw verzendadres op", - "order_physical_card": "Fysieke kaart bestellen", - "add_value": "Waarde toevoegen", - "activate": "Activeren", - "get_a": "Krijg een ", - "digital_and_physical_card": "digitale en fysieke prepaid debetkaart", - "get_card_note": " die u kunt herladen met digitale valuta. Geen aanvullende informatie nodig!", - "signup_for_card_accept_terms": "Meld je aan voor de kaart en accepteer de voorwaarden.", - "add_fund_to_card": "Voeg prepaid tegoed toe aan de kaarten (tot ${value})", - "use_card_info_two": "Tegoeden worden omgezet naar USD wanneer ze op de prepaid-rekening staan, niet in digitale valuta.", - "use_card_info_three": "Gebruik de digitale kaart online of met contactloze betaalmethoden.", - "optionally_order_card": "Optioneel een fysieke kaart bestellen.", - "hide_details": "Details verbergen", - "show_details": "Toon details", - "upto": "tot ${value}", - "discount": "Bespaar ${value}%", - "gift_card_amount": "Bedrag cadeaubon", - "bill_amount": "Bill bedrag", - "you_pay": "U betaalt", - "tip": "Tip:", - "custom": "aangepast", - "by_cake_pay": "door Cake Pay", - "expires": "Verloopt", - "mm": "MM", - "yy": "JJ", - "online": "online", - "offline": "Offline", - "gift_card_number": "Cadeaukaartnummer", - "pin_number": "PIN-nummer", - "total_saving": "Totale besparingen", - "last_30_days": "Laatste 30 dagen", - "avg_savings": "Gem. besparingen", - "view_all": "Alles bekijken", - "active_cards": "Actieve kaarten", - "delete_account": "Account verwijderen", - "cards": "Kaarten", - "active": "Actief", - "redeemed": "Verzilverd", - "gift_card_balance_note": "Cadeaukaarten met een resterend saldo verschijnen hier", - "gift_card_redeemed_note": "Cadeaubonnen die je hebt ingewisseld, verschijnen hier", - "logout": "Uitloggen", - "add_tip": "Tip toevoegen", - "percentageOf": "van ${amount}", - "is_percentage": "is", - "search_category": "Zoek categorie", - "mark_as_redeemed": "Markeer als ingewisseld", - "more_options": "Meer opties", - "waiting_payment_confirmation": "In afwachting van betalingsbevestiging", - "transaction_sent_notice": "Als het scherm na 1 minuut niet verder gaat, controleer dan een blokverkenner en je e-mail.", - "agree": "mee eens", - "in_store": "In winkel", - "generating_gift_card": "Cadeaubon genereren", - "payment_was_received": "Uw betaling is ontvangen.", - "proceed_after_one_minute": "Als het scherm na 1 minuut niet verder gaat, controleer dan uw e-mail.", - "order_id": "Order-ID", - "gift_card_is_generated": "Cadeaukaart is gegenereerd", - "open_gift_card": "Geschenkkaart openen", - "contact_support": "Contact opnemen met ondersteuning", - "gift_cards_unavailable": "Cadeaubonnen kunnen momenteel alleen worden gekocht via Monero, Bitcoin en Litecoin", - "background_sync_mode": "Achtergrondsynchronisatiemodus", - "sync_all_wallets": "Alle portemonnees synchroniseren", - "introducing_cake_pay": "Introductie van Cake Pay!", - "cake_pay_learn_more": "Koop en wissel cadeaubonnen direct in de app in!\nSwipe van links naar rechts voor meer informatie.", - "automatic": "automatisch", - "fixed_pair_not_supported": "Dit vaste paar wordt niet ondersteund bij de geselecteerde exchanges", - "variable_pair_not_supported": "Dit variabelenpaar wordt niet ondersteund met de geselecteerde uitwisselingen", - "none_of_selected_providers_can_exchange": "Geen van de geselecteerde providers kan deze uitwisseling maken", - "choose_one": "Kies er een", - "choose_from_available_options": "Kies uit de beschikbare opties:", - "custom_redeem_amount": "Aangepast inwisselbedrag", - "add_custom_redemption": "Voeg aangepaste inwisseling toe", - "remaining": "resterende", - "delete_wallet": "Portemonnee verwijderen", - "delete_wallet_confirm_message": "Weet u zeker dat u de portemonnee van ${wallet_name} wilt verwijderen?", - "low_fee": "Lage vergoeding", - "low_fee_alert": "U gebruikt momenteel een lage prioriteit voor netwerkkosten. Dit kan lange wachttijden, andere tarieven of geannuleerde transacties veroorzaken. We raden aan een hogere vergoeding in te stellen voor een betere ervaring.", - "ignor": "Negeren", - "use_suggested": "Gebruik aanbevolen", - "do_not_share_warning_text": "Deel deze met niemand anders, ook niet met support.\n\nUw geld kan en zal worden gestolen!", - "help": "helpen", - "all_transactions": "Alle transacties", - "all_trades": "Alle transacties", - "connection_sync": "Verbinding en synchronisatie", - "security_and_backup": "Beveiliging en back-up", - "create_backup": "Maak een back-up", - "privacy_settings": "Privacy-instellingen", - "privacy": "Privacy", - "display_settings": "Weergave-instellingen", - "other_settings": "Andere instellingen", - "require_pin_after": "Pincode vereist na", - "always": "altijd", - "minutes_to_pin_code": "${minute} minuten", - "disable_exchange": "Uitwisseling uitschakelen", - "advanced_settings": "Geavanceerde instellingen", - "settings_can_be_changed_later": "Deze instellingen kunnen later worden gewijzigd in de app-instellingen", - "add_custom_node": "Voeg een nieuw aangepast knooppunt toe", - "disable_fiat": "Schakel Fiat uit", - "fiat_api": "Fiat API", - "disabled": "Gehandicapt", - "enabled": "Ingeschakeld", - "tor_only": "Alleen Tor", - "unmatched_currencies": "De valuta van uw huidige portemonnee komt niet overeen met die van de gescande QR", - "orbot_running_alert": "Zorg ervoor dat Orbot actief is voordat u verbinding maakt met dit knooppunt.", - "contact_list_contacts": "Contacten", - "contact_list_wallets": "Mijn portefeuilles", - "bitcoin_payments_require_1_confirmation": "Bitcoin-betalingen vereisen 1 bevestiging, wat 20 minuten of langer kan duren. Dank voor uw geduld! U ontvangt een e-mail wanneer de betaling is bevestigd.", - "send_to_this_address": "Stuur ${currency} ${tag}naar dit adres", - "arrive_in_this_address": "${currency} ${tag}komt aan op dit adres", - "do_not_send": "Niet sturen", - "error_dialog_content": "Oeps, er is een fout opgetreden.\n\nStuur het crashrapport naar ons ondersteuningsteam om de applicatie te verbeteren.", - "scan_qr_code": "Scan QR-code", - "cold_or_recover_wallet": "Voeg een cold wallet toe of herstel een paper wallet", - "please_wait": "Even geduld aub", - "sweeping_wallet": "Vegende portemonnee", - "sweeping_wallet_alert": "Dit duurt niet lang. VERLAAT DIT SCHERM NIET, ANDERS KAN HET SWEPT-GELD VERLOREN WORDEN", - "decimal_places_error": "Te veel decimalen", - "edit_node": "Knooppunt bewerken", - "invoice_details": "Factuurgegevens", - "donation_link_details": "Details van de donatielink", - "anonpay_description": "Genereer ${type}. De ontvanger kan ${method} gebruiken met elke ondersteunde cryptocurrency en u ontvangt geld in deze portemonnee", - "create_invoice": "Factuur maken", - "create_donation_link": "Maak een donatielink aan", - "optional_email_hint": "Optionele kennisgeving per e-mail aan de begunstigde", - "optional_description": "Optionele beschrijving", - "optional_name": "Optionele naam ontvanger", - "clearnet_link": "Clearnet-link", - "onion_link": "Ui koppeling", - "settings": "Instellingen", - "sell_monero_com_alert_content": "Het verkopen van Monero wordt nog niet ondersteund", - "error_text_input_below_minimum_limit": "Bedrag is minder dan minimaal", - "error_text_input_above_maximum_limit": "Bedrag is meer dan maximaal", - "show_market_place": "Toon Marktplaats", - "prevent_screenshots": "Voorkom screenshots en schermopname", - "profile": "Profiel", - "close": "Dichtbij", - "modify_2fa": "Wijzig Cake 2FA", - "disable_cake_2fa": "Taart 2FA uitschakelen", - "question_to_disable_2fa": "Weet je zeker dat je Cake 2FA wilt uitschakelen? Er is geen 2FA-code meer nodig om toegang te krijgen tot de portemonnee en bepaalde functies.", - "disable": "Uitzetten", - "setup_2fa": "Opstelling Taart 2FA", - "verify_with_2fa": "Controleer met Cake 2FA", - "totp_code": "TOTP-code", - "please_fill_totp": "Vul de 8-cijferige code in die op uw andere apparaat aanwezig is", - "totp_2fa_success": "Succes! Cake 2FA ingeschakeld voor deze portemonnee. Vergeet niet om uw geheugensteuntje op te slaan voor het geval u de toegang tot de portemonnee kwijtraakt.", - "totp_verification_success": "Verificatie geslaagd!", - "totp_2fa_failure": "Foute code. Probeer een andere code of genereer een nieuwe geheime sleutel. Gebruik een compatibele 2FA-app die 8-cijferige codes en SHA512 ondersteunt.", - "enter_totp_code": "Voer de TOTP-code in.", - "add_secret_code": "Of voeg deze geheime code toe aan een authenticator-app", - "totp_secret_code": "TOTP-geheime code", - "setup_2fa_text": "Cake 2FA werkt met TOTP als tweede authenticatiefactor.\n\nCake 2FA's TOTP vereist SHA-512 en 8-cijferige ondersteuning; dit zorgt voor meer veiligheid. Meer informatie en ondersteunde apps vindt u in de gids.", - "setup_totp_recommended": "TOTP instellen", - "disable_buy": "Koopactie uitschakelen", - "disable_sell": "Verkoopactie uitschakelen", + "authenticated": "Authenticated", + "authentication": "Authenticatie", "auto_generate_subaddresses": "Automatisch subadressen genereren", - "cake_2fa_preset": "Taart 2FA Voorinstelling", - "narrow": "Smal", - "normal": "Normaal", - "aggressive": "Overijverig", - "require_for_assessing_wallet": "Vereist voor toegang tot portemonnee", - "require_for_sends_to_non_contacts": "Vereist voor verzendingen naar niet-contacten", - "require_for_sends_to_contacts": "Vereist voor verzending naar contacten", - "require_for_sends_to_internal_wallets": "Vereist voor verzendingen naar interne portefeuilles", - "require_for_exchanges_to_internal_wallets": "Vereist voor uitwisselingen naar interne portefeuilles", - "require_for_adding_contacts": "Vereist voor het toevoegen van contacten", - "require_for_creating_new_wallets": "Vereist voor het maken van nieuwe portefeuilles", - "require_for_all_security_and_backup_settings": "Vereist voor alle beveiligings- en back-upinstellingen", + "automatic": "automatisch", + "available_balance": "Beschikbaar saldo", "available_balance_description": "Beschikbaar saldo is het saldo dat u kunt uitgeven. Het kan lager zijn dan uw totale saldo als u onlangs geld hebt verzonden.", - "syncing_wallet_alert_title": "Uw portemonnee wordt gesynchroniseerd", - "syncing_wallet_alert_content": "Uw saldo- en transactielijst is mogelijk pas compleet als er bovenaan 'GESYNCHRONISEERD' staat. Klik/tik voor meer informatie.", - "home_screen_settings": "Instellingen voor het startscherm", - "sort_by": "Sorteer op", - "search_add_token": "Token zoeken / toevoegen", - "edit_token": "Token bewerken", - "warning": "Waarschuwing", - "add_token_warning": "Bewerk of voeg geen tokens toe volgens de instructies van oplichters.\nBevestig tokenadressen altijd met betrouwbare bronnen!", - "add_token_disclaimer_check": "Ik heb het adres en de informatie van het tokencontract bevestigd met behulp van een betrouwbare bron. Het toevoegen van kwaadaardige of onjuiste informatie kan leiden tot verlies van geld.", - "token_contract_address": "Token contractadres", - "token_name": "Tokennaam bijv.: Tether", - "token_symbol": "Tokensymbool bijv.: USDT", - "token_decimal": "Token decimaal", - "field_required": "dit veld is verplicht", - "pin_at_top": "speld ${token} bovenaan", - "invalid_input": "Ongeldige invoer", - "fiat_balance": "Fiat Balans", - "gross_balance": "Bruto saldo", - "alphabetical": "Alfabetisch", - "generate_name": "Naam genereren", + "avg_savings": "Gem. besparingen", + "awaitDAppProcessing": "Wacht tot de dApp klaar is met verwerken.", + "background_sync_mode": "Achtergrondsynchronisatiemodus", + "backup": "Back-up", + "backup_file": "Backup bestand", + "backup_password": "Reservewachtwoord", "balance_page": "Saldo pagina", - "share": "Deel", - "slidable": "Verschuifbaar", - "monero_dark_theme": "Monero donker thema", + "bill_amount": "Bill bedrag", + "billing_address_info": "Als u om een ​​factuuradres wordt gevraagd, geef dan uw verzendadres op", + "biometric_auth_reason": "Scan uw vingerafdruk om te verifiëren", "bitcoin_dark_theme": "Bitcoin donker thema", "bitcoin_light_theme": "Bitcoin Light-thema", - "high_contrast_theme": "Thema met hoog contrast", - "matrix_green_dark_theme": "Matrix groen donker thema", - "monero_light_theme": "Monero Light-thema", - "manage_nodes": "Beheer knooppunten", - "etherscan_history": "Etherscan-geschiedenis", - "template_name": "Sjabloonnaam", + "bitcoin_payments_require_1_confirmation": "Bitcoin-betalingen vereisen 1 bevestiging, wat 20 minuten of langer kan duren. Dank voor uw geduld! U ontvangt een e-mail wanneer de betaling is bevestigd.", + "Blocks_remaining": "${status} Resterende blokken", + "bright_theme": "Helder", + "buy": "Kopen", + "buy_alert_content": "Momenteel ondersteunen we alleen de aankoop van Bitcoin, Ethereum, Litecoin en Monero. Maak of schakel over naar uw Bitcoin-, Ethereum-, Litecoin- of Monero-portemonnee.", + "buy_bitcoin": "Koop Bitcoin", + "buy_provider_unavailable": "Provider momenteel niet beschikbaar.", + "buy_with": "Koop met", + "by_cake_pay": "door Cake Pay", + "cake_2fa_preset": "Taart 2FA Voorinstelling", + "cake_pay_account_note": "Meld u aan met alleen een e-mailadres om kaarten te bekijken en te kopen. Sommige zijn zelfs met korting verkrijgbaar!", + "cake_pay_learn_more": "Koop en wissel cadeaubonnen direct in de app in!\nSwipe van links naar rechts voor meer informatie.", + "cake_pay_subtitle": "Koop cadeaubonnen met korting (alleen VS)", + "cake_pay_title": "Cake Pay-cadeaubonnen", + "cake_pay_web_cards_subtitle": "Koop wereldwijd prepaidkaarten en cadeaubonnen", + "cake_pay_web_cards_title": "Cake Pay-webkaarten", + "cake_wallet": "Cake Wallet", + "cakepay_prepaid_card": "CakePay Prepaid Debetkaart", + "camera_consent": "Uw camera wordt gebruikt om vóór ${provider} een beeld vast te leggen voor identificatiedoeleinden. Raadpleeg hun privacybeleid voor meer informatie.", + "camera_permission_is_required": "Cameratoestemming is vereist.\nSchakel dit in via de app-instellingen.", + "cancel": "Annuleer", + "card_address": "Adres:", + "cardholder_agreement": "Kaarthouderovereenkomst", + "cards": "Kaarten", + "chains": "Ketens", + "change": "Verandering", + "change_backup_password_alert": "Uw vorige back-upbestanden kunnen niet worden geïmporteerd met een nieuw back-upwachtwoord. Het nieuwe back-upwachtwoord wordt alleen gebruikt voor nieuwe back-upbestanden. Weet u zeker dat u het back-upwachtwoord wilt wijzigen?", + "change_currency": "Verander valuta", + "change_current_node": "Weet u zeker dat u het huidige knooppunt wilt wijzigen in ${node}?", + "change_current_node_title": "Wijzig het huidige knooppunt", + "change_exchange_provider": "Wijzig Exchange Provider", + "change_language": "Verander de taal", + "change_language_to": "Verander de taal in ${language}?", + "change_password": "Wachtwoord wijzigen", "change_rep": "Vertegenwoordiger wijzigen", "change_rep_message": "Weet u zeker dat u van vertegenwoordiger wilt veranderen?", - "unsupported_asset": "We ondersteunen deze actie niet voor dit item. Maak of schakel over naar een portemonnee van een ondersteund activatype.", - "manage_pow_nodes": "PoW-knooppunten beheren", - "support_title_live_chat": "Live ondersteuning", - "support_description_live_chat": "Gratis en snel! Getrainde ondersteuningsvertegenwoordigers zijn beschikbaar om te helpen", - "support_title_guides": "Cake -portemonnee gidsen", - "support_description_guides": "Documentatie en ondersteuning voor gemeenschappelijke problemen", - "support_title_other_links": "Andere ondersteuningslinks", - "support_description_other_links": "Word lid van onze gemeenschappen of bereik ons ​​onze partners via andere methoden", + "change_rep_successful": "Met succes veranderde vertegenwoordiger", + "change_wallet_alert_content": "Wilt u de huidige portemonnee wijzigen in ${wallet_name}?", + "change_wallet_alert_title": "Wijzig huidige portemonnee", + "choose_account": "Kies account", + "choose_address": "\n\nKies het adres:", "choose_derivation": "Kies portemonnee -afleiding", - "new_first_wallet_text": "Houd uw cryptocurrency gemakkelijk veilig", - "select_destination": "Selecteer de bestemming voor het back-upbestand.", - "save_to_downloads": "Opslaan in downloads", - "select_buy_provider_notice": "Selecteer hierboven een koopprovider. U kunt dit scherm overslaan door uw standaard kopenprovider in te stellen in app -instellingen.", - "onramper_option_description": "Koop snel crypto met veel betaalmethoden. Beschikbaar in de meeste landen. Spreads en vergoedingen variëren.", + "choose_from_available_options": "Kies uit de beschikbare opties:", + "choose_one": "Kies er een", + "choose_relay": "Kies een relais dat u wilt gebruiken", + "choose_wallet_currency": "Kies een portemonnee-valuta:", + "clear": "Duidelijk", + "clearnet_link": "Clearnet-link", + "close": "Dichtbij", + "coin_control": "Muntcontrole (optioneel)", + "cold_or_recover_wallet": "Voeg een cold wallet toe of herstel een paper wallet", + "color_theme": "Kleur thema", + "commit_transaction_amount_fee": "Verricht transactie\nBedrag: ${amount}\nhonorarium: ${fee}", + "confirm": "Bevestigen", + "confirm_delete_template": "Met deze actie wordt deze sjabloon verwijderd. Wilt u doorgaan?", + "confirm_delete_wallet": "Met deze actie wordt deze portemonnee verwijderd. Wilt u doorgaan?", + "confirm_sending": "Bevestig verzending", + "confirmations": "Bevestigingen", + "confirmed": "Bevestigd saldo", + "confirmed_tx": "Bevestigd", + "congratulations": "gefeliciteerd!", + "connect_an_existing_yat": "Verbind een bestaande Yat", + "connect_yats": "Verbind Yats", + "connection_sync": "Verbinding en synchronisatie", + "connectWalletPrompt": "Verbind uw portemonnee met WalletConnect om transacties uit te voeren", + "contact": "Contact", + "contact_list_contacts": "Contacten", + "contact_list_wallets": "Mijn portefeuilles", + "contact_name": "Contactnaam", + "contact_support": "Contact opnemen met ondersteuning", + "continue_text": "Doorgaan met", + "contractName": "Contractnaam", + "contractSymbol": "Contractsymbool", + "copied_key_to_clipboard": "Gekopieerd ${key} naar het klembord", + "copied_to_clipboard": "Gekopieerd naar het klembord", + "copy": "Kopiëren", + "copy_address": "Adres kopiëren", + "copy_id": "ID kopiëren", + "copyWalletConnectLink": "Kopieer de WalletConnect-link van dApp en plak deze hier", + "create_account": "Account aanmaken", + "create_backup": "Maak een back-up", + "create_donation_link": "Maak een donatielink aan", + "create_invoice": "Factuur maken", + "create_new": "Maak een nieuwe portemonnee", + "create_new_account": "Creëer een nieuw account", + "creating_new_wallet": "Nieuwe portemonnee aanmaken", + "creating_new_wallet_error": "Fout: ${description}", + "creation_date": "Aanmaakdatum", + "custom": "aangepast", + "custom_drag": "Custom (vasthouden en slepen)", + "custom_redeem_amount": "Aangepast inwisselbedrag", + "dark_theme": "Donker", + "debit_card": "Debetkaart", + "debit_card_terms": "De opslag en het gebruik van uw betaalkaartnummer (en inloggegevens die overeenkomen met uw betaalkaartnummer) in deze digitale portemonnee zijn onderworpen aan de Algemene voorwaarden van de toepasselijke kaarthouderovereenkomst met de uitgever van de betaalkaart, zoals van kracht vanaf tijd tot tijd.", + "decimal_places_error": "Te veel decimalen", "default_buy_provider": "Standaard Koopprovider", - "ask_each_time": "Vraag het elke keer", - "buy_provider_unavailable": "Provider momenteel niet beschikbaar.", - "signTransaction": "Transactie ondertekenen", + "default_sell_provider": "Standaard verkoopaanbieder", + "delete": "Delete", + "delete_account": "Account verwijderen", + "delete_wallet": "Portemonnee verwijderen", + "delete_wallet_confirm_message": "Weet u zeker dat u de portemonnee van ${wallet_name} wilt verwijderen?", + "deleteConnectionConfirmationPrompt": "Weet u zeker dat u de verbinding met", + "descending": "Aflopend", + "description": "Beschrijving", + "destination_tag": "Bestemmingstag:", + "dfx_option_description": "Koop crypto met EUR & CHF. Tot 990€ zonder extra KYC. Voor particuliere en zakelijke klanten in Europa", + "didnt_get_code": "Geen code?", + "digit_pin": "-cijferige PIN", + "digital_and_physical_card": "digitale en fysieke prepaid debetkaart", + "disable": "Uitzetten", + "disable_buy": "Koopactie uitschakelen", + "disable_cake_2fa": "Taart 2FA uitschakelen", + "disable_exchange": "Uitwisseling uitschakelen", + "disable_fiat": "Schakel Fiat uit", + "disable_sell": "Verkoopactie uitschakelen", + "disabled": "Gehandicapt", + "discount": "Bespaar ${value}%", + "display_settings": "Weergave-instellingen", + "displayable": "Weer te geven", + "do_not_have_enough_gas_asset": "U heeft niet genoeg ${currency} om een transactie uit te voeren met de huidige blockchain-netwerkomstandigheden. U heeft meer ${currency} nodig om blockchain-netwerkkosten te betalen, zelfs als u een ander item verzendt.", + "do_not_send": "Niet sturen", + "do_not_share_warning_text": "Deel deze met niemand anders, ook niet met support.\n\nUw geld kan en zal worden gestolen!", + "do_not_show_me": "laat me dit niet opnieuw zien", + "domain_looks_up": "Domein opzoeken", + "donation_link_details": "Details van de donatielink", + "e_sign_consent": "Toestemming e-ondertekenen", + "edit": "Bewerk", + "edit_backup_password": "Bewerk back-upwachtwoord", + "edit_node": "Knooppunt bewerken", + "edit_token": "Token bewerken", + "electrum_address_disclaimer": "We genereren nieuwe adressen elke keer dat u er een gebruikt, maar eerdere adressen blijven werken", + "email_address": "E-mailadres", + "enabled": "Ingeschakeld", + "enter_amount": "Voer Bedrag in", + "enter_backup_password": "Voer hier een back-upwachtwoord in", + "enter_code": "Voer code in", + "enter_seed_phrase": "Voer uw zaadzin in", + "enter_totp_code": "Voer de TOTP-code in.", + "enter_your_note": "Voer uw notitie in ...", + "enter_your_pin": "Voer uw pincode in", + "enter_your_pin_again": "Voer uw PIN opnieuw in", + "enterTokenID": "Voer de token-ID in", + "enterWalletConnectURI": "Voer WalletConnect-URI in", + "error": "Fout", + "error_dialog_content": "Oeps, er is een fout opgetreden.\n\nStuur het crashrapport naar ons ondersteuningsteam om de applicatie te verbeteren.", + "error_text_account_name": "Accountnaam mag alleen letters, cijfers bevatten\nen moet tussen de 1 en 15 tekens lang zijn", + "error_text_address": "Portemonnee-adres moet overeenkomen met het type\nvan cryptocurrency", + "error_text_amount": "Bedrag kan alleen cijfers bevatten", + "error_text_contact_name": "Naam contactpersoon kan niet bevatten ` , ' \" symbolen\nen moet tussen de 1 en 32 tekens lang zijn", + "error_text_crypto_currency": "Het aantal breukcijfers\nmoet kleiner zijn dan of gelijk zijn aan 12", + "error_text_fiat": "Waarde van bedrag kan het beschikbare saldo niet overschrijden.\nHet aantal breukcijfers moet kleiner zijn dan of gelijk zijn aan 2", + "error_text_input_above_maximum_limit": "Bedrag is meer dan maximaal", + "error_text_input_below_minimum_limit": "Bedrag is minder dan minimaal", + "error_text_keys": "Portefeuillesleutels kunnen maximaal 64 tekens bevatten in hexadecimale volgorde", + "error_text_limits_loading_failed": "Ruil voor ${provider} is niet gemaakt. Beperkingen laden mislukt", + "error_text_maximum_limit": "Ruil voor ${provider} is niet gemaakt. Bedrag is meer dan maximaal: ${max} ${currency}", + "error_text_minimal_limit": "Ruil voor ${provider} is niet gemaakt. Bedrag is minder dan minimaal: ${min} ${currency}", + "error_text_node_address": "Voer een iPv4-adres in", + "error_text_node_port": "Knooppuntpoort kan alleen nummers tussen 0 en 65535 bevatten", + "error_text_node_proxy_address": "Voer : in, bijvoorbeeld 127.0.0.1:9050", + "error_text_payment_id": "Betalings-ID kan alleen 16 tot 64 tekens bevatten in hexadecimale volgorde", + "error_text_subaddress_name": "Naam subadres mag niet bevatten ` , ' \" symbolen\nen moet tussen de 1 en 20 tekens lang zijn", + "error_text_template": "Sjabloonnaam en -adres mogen niet bevatten ` , ' \" symbolen\nen moet tussen de 1 en 106 tekens lang zijn", + "error_text_wallet_name": "Naam portemonnee kan alleen letters, cijfers , _ - symbolen bevatten\nen moet tussen de 1 en 33 tekens lang zijn", + "error_text_xmr": "XMR-waarde kan het beschikbare saldo niet overschrijden.\nHet aantal breukcijfers moet kleiner zijn dan of gelijk zijn aan 12", "errorGettingCredentials": "Mislukt: fout bij het ophalen van inloggegevens", "errorSigningTransaction": "Er is een fout opgetreden tijdens het ondertekenen van de transactie", - "pairingInvalidEvent": "Koppelen Ongeldige gebeurtenis", - "chains": "Ketens", - "methods": "Methoden", - "events": "Evenementen", - "reject": "Afwijzen", - "approve": "Goedkeuren", - "expiresOn": "Verloopt op", - "walletConnect": "WalletConnect", - "nullURIError": "URI is nul", - "connectWalletPrompt": "Verbind uw portemonnee met WalletConnect om transacties uit te voeren", - "newConnection": "Nieuwe verbinding", - "activeConnectionsPrompt": "Actieve verbindingen worden hier weergegeven", - "deleteConnectionConfirmationPrompt": "Weet u zeker dat u de verbinding met", + "estimated": "Geschatte", + "etherscan_history": "Etherscan-geschiedenis", "event": "Evenement", - "successful": "Succesvol", - "wouoldLikeToConnect": "wil graag verbinden", - "message": "Bericht", - "do_not_have_enough_gas_asset": "U heeft niet genoeg ${currency} om een transactie uit te voeren met de huidige blockchain-netwerkomstandigheden. U heeft meer ${currency} nodig om blockchain-netwerkkosten te betalen, zelfs als u een ander item verzendt.", - "totp_auth_url": "TOTP AUTH-URL", - "awaitDAppProcessing": "Wacht tot de dApp klaar is met verwerken.", - "copyWalletConnectLink": "Kopieer de WalletConnect-link van dApp en plak deze hier", - "enterWalletConnectURI": "Voer WalletConnect-URI in", - "seed_key": "Zaadsleutel", - "enter_seed_phrase": "Voer uw zaadzin in", - "change_rep_successful": "Met succes veranderde vertegenwoordiger", - "add_contact": "Contactpersoon toevoegen", + "events": "Evenementen", + "exchange": "Uitwisseling", + "exchange_incorrect_current_wallet_for_xmr": "Als u XMR wilt omwisselen van uw Cake Wallet Monero-saldo, moet u eerst overschakelen naar uw Monero-portemonnee.", + "exchange_new_template": "Nieuwe sjabloon", "exchange_provider_unsupported": "${providerName} wordt niet langer ondersteund!", - "domain_looks_up": "Domein opzoeken", - "require_for_exchanges_to_external_wallets": "Vereist voor uitwisselingen naar externe portemonnees", - "camera_permission_is_required": "Cameratoestemming is vereist.\nSchakel dit in via de app-instellingen.", - "switchToETHWallet": "Schakel over naar een Ethereum-portemonnee en probeer het opnieuw", - "order_by": "Bestellen door", - "creation_date": "Aanmaakdatum", + "exchange_result_confirm": "Door op bevestigen te drukken, wordt u verzonden ${fetchingLabel} ${from} uit je portemonnee genoemd ${walletName} naar het onderstaande adres. Of u kunt vanuit uw externe portemonnee naar het onderstaande adres verzenden / QR-code sturen.\n\nDruk op bevestigen om door te gaan of terug te gaan om de bedragen te wijzigen.", + "exchange_result_description": "U moet minimaal ${fetchingLabel} ${from} verzenden naar het adres dat op de volgende pagina wordt weergegeven. Als u een bedrag verzendt dat lager is dan ${fetchingLabel} ${from}, wordt het mogelijk niet omgezet en wordt het mogelijk niet terugbetaald.", + "exchange_result_write_down_ID": "*Kopieer of noteer uw hierboven getoonde ID.", + "exchange_result_write_down_trade_id": "Kopieer of noteer de handels-ID om door te gaan.", + "exchange_sync_alert_content": "Wacht tot uw portemonnee is gesynchroniseerd", + "expired": "Verlopen", + "expires": "Verloopt", + "expiresOn": "Verloopt op", + "export_backup": "Back-up exporteren", + "extra_id": "Extra ID:", + "extracted_address_content": "U stuurt geld naar\n${recipient_name}", + "failed_authentication": "Mislukte authenticatie. ${state_error}", + "faq": "FAQ", + "fetching": "Ophalen", + "fiat_api": "Fiat API", + "fiat_balance": "Fiat Balans", + "field_required": "dit veld is verplicht", + "fill_code": "Vul de verificatiecode in die u in uw e-mail hebt ontvangen", + "filter_by": "Filteren op", + "first_wallet_text": "Geweldige portemonnee voor Monero, Bitcoin, Ethereum, Litecoin, en Haven", + "fixed_pair_not_supported": "Dit vaste paar wordt niet ondersteund bij de geselecteerde exchanges", + "fixed_rate": "Vast tarief", + "fixed_rate_alert": "U kunt het ontvangen bedrag invoeren wanneer de modus voor vaste tarieven is aangevinkt. Wilt u overschakelen naar de vaste-tariefmodus?", + "forgot_password": "Wachtwoord vergeten", + "freeze": "Bevriezen", + "frequently_asked_questions": "Veelgestelde vragen", + "frozen": "Bevroren", + "full_balance": "Volledig saldo", + "generate_name": "Naam genereren", + "generating_gift_card": "Cadeaubon genereren", + "get_a": "Krijg een ", + "get_card_note": " die u kunt herladen met digitale valuta. Geen aanvullende informatie nodig!", + "get_your_yat": "Haal je Yato", + "gift_card_amount": "Bedrag cadeaubon", + "gift_card_balance_note": "Cadeaukaarten met een resterend saldo verschijnen hier", + "gift_card_is_generated": "Cadeaukaart is gegenereerd", + "gift_card_number": "Cadeaukaartnummer", + "gift_card_redeemed_note": "Cadeaubonnen die je hebt ingewisseld, verschijnen hier", + "gift_cards": "Cadeaubonnen", + "gift_cards_unavailable": "Cadeaubonnen kunnen momenteel alleen worden gekocht via Monero, Bitcoin en Litecoin", + "got_it": "Ik snap het", + "gross_balance": "Bruto saldo", "group_by_type": "Groep voor type", - "importNFTs": "NFT's importeren", - "noNFTYet": "Nog geen NFT's", - "address": "Adres", - "enterTokenID": "Voer de token-ID in", - "tokenID": "ID kaart", - "name": "Naam", - "symbol": "Symbool", - "seed_phrase_length": "Lengte van de zaadzin", - "unavailable_balance": "Onbeschikbaar saldo", - "unavailable_balance_description": "Niet-beschikbaar saldo: Dit totaal omvat het geld dat is vergrendeld in lopende transacties en het geld dat u actief hebt bevroren in uw muntcontrole-instellingen. Vergrendelde saldi komen beschikbaar zodra de betreffende transacties zijn voltooid, terwijl bevroren saldi ontoegankelijk blijven voor transacties totdat u besluit ze weer vrij te geven.", - "unspent_change": "Wijziging", - "tor_connection": "Tor-verbinding", - "setup_warning_2fa_text": "U moet uw portemonnee herstellen vanuit het geheugensteuntje.\n\nCake Support kan u niet helpen als u de toegang tot uw 2FA- of mnemonic-zaden verliest.\nCake 2FA is een tweede authenticatie voor bepaalde acties in de portemonnee. Voordat u Cake 2FA gebruikt, raden wij u aan de handleiding door te lezen.Het is NIET zo veilig als koude opslag.\n\nAls u de toegang tot uw 2FA-app of TOTP-sleutels verliest, verliest u de toegang tot deze portemonnee. ", - "scan_qr_on_device": "Scan deze QR-code op een ander apparaat", + "haven_app": "Haven by Cake Wallet", + "haven_app_wallet_text": "Awesome wallet for Haven", + "help": "helpen", + "hidden_balance": "Verborgen balans", + "hide_details": "Details verbergen", + "high_contrast_theme": "Thema met hoog contrast", + "home_screen_settings": "Instellingen voor het startscherm", "how_to_use": "Hoe te gebruiken", + "how_to_use_card": "Hoe deze kaart te gebruiken", + "id": "ID: ", + "ignor": "Negeren", + "import": "Importeren", + "importNFTs": "NFT's importeren", + "in_store": "In winkel", + "incoming": "inkomend", + "incorrect_seed": "De ingevoerde tekst is niet geldig.", + "introducing_cake_pay": "Introductie van Cake Pay!", + "invalid_input": "Ongeldige invoer", + "invoice_details": "Factuurgegevens", + "is_percentage": "is", + "last_30_days": "Laatste 30 dagen", + "learn_more": "Kom meer te weten", + "light_theme": "Licht", + "loading_your_wallet": "Uw portemonnee laden", + "login": "Log in", + "logout": "Uitloggen", + "low_fee": "Lage vergoeding", + "low_fee_alert": "U gebruikt momenteel een lage prioriteit voor netwerkkosten. Dit kan lange wachttijden, andere tarieven of geannuleerde transacties veroorzaken. We raden aan een hogere vergoeding in te stellen voor een betere ervaring.", + "manage_nodes": "Beheer knooppunten", + "manage_pow_nodes": "PoW-knooppunten beheren", + "manage_yats": "Yats beheren", + "mark_as_redeemed": "Markeer als ingewisseld", + "market_place": "Marktplaats", + "matrix_green_dark_theme": "Matrix groen donker thema", + "max_amount": "Max: ${value}", + "max_value": "Max: ${value} ${currency}", + "memo": "Memo:", + "message": "Bericht", + "methods": "Methoden", + "min_amount": "Min: ${value}", + "min_value": "Min: ${value} ${currency}", + "minutes_to_pin_code": "${minute} minuten", + "mm": "MM", + "modify_2fa": "Wijzig Cake 2FA", + "monero_com": "Monero.com by Cake Wallet", + "monero_com_wallet_text": "Awesome wallet for Monero", + "monero_dark_theme": "Monero donker thema", + "monero_light_theme": "Monero Light-thema", + "moonpay_alert_text": "Waarde van het bedrag moet meer of gelijk zijn aan ${minAmount} ${fiatCurrency}", + "more_options": "Meer opties", + "name": "Naam", + "narrow": "Smal", + "new_first_wallet_text": "Houd uw cryptocurrency gemakkelijk veilig", + "new_node_testing": "Nieuwe knooppunttest", + "new_subaddress_create": "Creëren", + "new_subaddress_label_name": "Label naam", + "new_subaddress_title": "Nieuw adres", + "new_template": "Nieuwe sjabloon", + "new_wallet": "Nieuwe portemonnee", + "newConnection": "Nieuwe verbinding", + "no_id_needed": "Geen ID nodig!", + "no_id_required": "Geen ID vereist. Opwaarderen en overal uitgeven", + "no_relay_on_domain": "Er is geen relay voor het domein van de gebruiker of de relay is niet beschikbaar. Kies een relais dat u wilt gebruiken.", + "no_relays": "Geen relais", + "no_relays_message": "We hebben een Nostr NIP-05-record voor deze gebruiker gevonden, maar deze bevat geen relays. Instrueer de ontvanger om relays toe te voegen aan zijn Nostr-record.", + "node_address": "Knooppunt adres", + "node_connection_failed": "De verbinding is mislukt", + "node_connection_successful": "Verbinding is gelukt", + "node_new": "Nieuw knooppunt", + "node_port": "Knooppunt poort", + "node_reset_settings_title": "Reset instellingen", + "node_test": "Test", + "nodes": "Knooppunten", + "nodes_list_reset_to_default_message": "Weet u zeker dat u de standaardinstellingen wilt herstellen?", + "none_of_selected_providers_can_exchange": "Geen van de geselecteerde providers kan deze uitwisseling maken", + "noNFTYet": "Nog geen NFT's", + "normal": "Normaal", + "note_optional": "Opmerking (optioneel)", + "note_tap_to_change": "Opmerking (tik om te wijzigen)", + "nullURIError": "URI is nul", + "offer_expires_in": "Aanbieding verloopt over: ", + "offline": "Offline", + "ok": "OK", + "onion_link": "Ui koppeling", + "online": "online", + "onramper_option_description": "Koop snel crypto met veel betaalmethoden. Beschikbaar in de meeste landen. Spreads en vergoedingen variëren.", + "open_gift_card": "Geschenkkaart openen", + "optional_description": "Optionele beschrijving", + "optional_email_hint": "Optionele kennisgeving per e-mail aan de begunstigde", + "optional_name": "Optionele naam ontvanger", + "optionally_order_card": "Optioneel een fysieke kaart bestellen.", + "orbot_running_alert": "Zorg ervoor dat Orbot actief is voordat u verbinding maakt met dit knooppunt.", + "order_by": "Bestellen door", + "order_id": "Order-ID", + "order_physical_card": "Fysieke kaart bestellen", + "other_settings": "Andere instellingen", + "outdated_electrum_wallet_description": "Nieuwe Bitcoin-portefeuilles die in Cake zijn gemaakt, hebben nu een zaadje van 24 woorden. Het is verplicht dat u een nieuwe Bitcoin-portemonnee maakt en al uw geld overmaakt naar de nieuwe portemonnee van 24 woorden, en stopt met het gebruik van wallets met een seed van 12 woorden. Doe dit onmiddellijk om uw geld veilig te stellen.", + "outdated_electrum_wallet_receive_warning": "Als deze portemonnee een seed van 12 woorden heeft en is gemaakt in Cake, stort dan GEEN Bitcoin in deze portemonnee. Elke BTC die naar deze portemonnee is overgebracht, kan verloren gaan. Maak een nieuwe portemonnee van 24 woorden (tik op het menu rechtsboven, selecteer Portefeuilles, kies Nieuwe portemonnee maken en selecteer vervolgens Bitcoin) en verplaats je BTC ONMIDDELLIJK daar. Nieuwe (24-woorden) BTC-portefeuilles van Cake zijn veilig", + "outgoing": "Uitgaande", + "overwrite_amount": "Overwrite amount", + "pairingInvalidEvent": "Koppelen Ongeldige gebeurtenis", + "password": "Wachtwoord", + "paste": "Plakken", + "pause_wallet_creation": "De mogelijkheid om Haven Wallet te maken is momenteel onderbroken.", + "payment_id": "Betaling ID: ", + "payment_was_received": "Uw betaling is ontvangen.", + "pending": " (in afwachting)", + "percentageOf": "van ${amount}", + "pin_at_top": "speld ${token} bovenaan", + "pin_is_incorrect": "PIN is onjuist", + "pin_number": "PIN-nummer", + "placeholder_contacts": "Je contacten worden hier weergegeven", + "placeholder_transactions": "Uw transacties worden hier weergegeven", + "please_fill_totp": "Vul de 8-cijferige code in die op uw andere apparaat aanwezig is", + "please_make_selection": "Maak hieronder uw keuze tot maak of herstel je portemonnee.", + "please_reference_document": "Raadpleeg de onderstaande documenten voor meer informatie.", + "please_select": "Selecteer alstublieft:", + "please_select_backup_file": "Selecteer een back-upbestand en voer een back-upwachtwoord in.", + "please_try_to_connect_to_another_node": "Probeer verbinding te maken met een ander knooppunt", + "please_wait": "Even geduld aub", + "polygonscan_history": "PolygonScan-geschiedenis", + "powered_by": "Aangedreven door ${title}", + "pre_seed_button_text": "Ik begrijp het. Laat me mijn zaad zien", + "pre_seed_description": "Op de volgende pagina ziet u een reeks van ${words} woorden. Dit is uw unieke en persoonlijke zaadje en het is de ENIGE manier om uw portemonnee te herstellen in geval van verlies of storing. Het is JOUW verantwoordelijkheid om het op te schrijven en op een veilige plaats op te slaan buiten de Cake Wallet app.", + "pre_seed_title": "BELANGRIJK", + "prevent_screenshots": "Voorkom screenshots en schermopname", + "privacy": "Privacy", + "privacy_policy": "Privacybeleid", + "privacy_settings": "Privacy-instellingen", + "private_key": "Prive sleutel", + "proceed_after_one_minute": "Als het scherm na 1 minuut niet verder gaat, controleer dan uw e-mail.", + "profile": "Profiel", + "provider_error": "${provider} fout", + "public_key": "Publieke sleutel", + "purchase_gift_card": "Cadeaubon kopen", + "qr_fullscreen": "Tik om de QR-code op volledig scherm te openen", + "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", + "question_to_disable_2fa": "Weet je zeker dat je Cake 2FA wilt uitschakelen? Er is geen 2FA-code meer nodig om toegang te krijgen tot de portemonnee en bepaalde functies.", + "receivable_balance": "Het saldo", + "receive": "Krijgen", + "receive_amount": "Bedrag", + "received": "Ontvangen", + "recipient_address": "Adres ontvanger", + "reconnect": "Sluit", + "reconnect_alert_text": "Weet u zeker dat u opnieuw verbinding wilt maken?", + "reconnection": "Reconnection", + "redeemed": "Verzilverd", + "refund_address": "Adres voor terugbetaling", + "reject": "Afwijzen", + "remaining": "resterende", + "remove": "Verwijderen", + "remove_node": "Knoop verwijderen", + "remove_node_message": "Weet u zeker dat u het geselecteerde knooppunt wilt verwijderen?", + "rename": "Hernoemen", + "require_for_adding_contacts": "Vereist voor het toevoegen van contacten", + "require_for_all_security_and_backup_settings": "Vereist voor alle beveiligings- en back-upinstellingen", + "require_for_assessing_wallet": "Vereist voor toegang tot portemonnee", + "require_for_creating_new_wallets": "Vereist voor het maken van nieuwe portefeuilles", + "require_for_exchanges_to_external_wallets": "Vereist voor uitwisselingen naar externe portemonnees", + "require_for_exchanges_to_internal_wallets": "Vereist voor uitwisselingen naar interne portefeuilles", + "require_for_sends_to_contacts": "Vereist voor verzending naar contacten", + "require_for_sends_to_internal_wallets": "Vereist voor verzendingen naar interne portefeuilles", + "require_for_sends_to_non_contacts": "Vereist voor verzendingen naar niet-contacten", + "require_pin_after": "Pincode vereist na", + "rescan": "Opnieuw scannen", + "resend_code": "Stuur het alstublieft opnieuw", + "reset": "Reset", + "reset_password": "Wachtwoord resetten", + "restore_active_seed": "Actief zaad", + "restore_address": "Adres", + "restore_bitcoin_description_from_keys": "Herstel uw portemonnee van de gegenereerde WIF-string van uw privésleutels", + "restore_bitcoin_description_from_seed": "Herstel uw portemonnee met een combinatiecode van 24 woorden", + "restore_bitcoin_title_from_keys": "Herstel van WIF", + "restore_description_from_backup": "Je kunt de hele Cake Wallet-app herstellen van uw back-upbestand", + "restore_description_from_keys": "Herstel uw portemonnee van gegenereerd toetsaanslagen opgeslagen van uw privésleutels", + "restore_description_from_seed": "Herstel uw portemonnee van het 25 woord of 13 woord combinatiecode", + "restore_description_from_seed_keys": "Ontvang uw portemonnee terug uit seed / keys die u hebt opgeslagen op een veilige plaats", + "restore_from_date_or_blockheight": "Voer een datum in een paar dagen voordat u deze portemonnee heeft gemaakt. Of als u de blokhoogte kent, voert u deze in", + "restore_from_seed_placeholder": "Voer hier uw codefrase in of plak deze", + "restore_new_seed": "Nieuw zaad", + "restore_next": "Volgende", + "restore_recover": "Herstellen", + "restore_restore_wallet": "Portemonnee herstellen", + "restore_seed_keys_restore": "Zaad / sleutels herstellen", + "restore_spend_key_private": "Sleutel uitgeven (privaat)", + "restore_title_from_backup": "Herstellen vanuit een back-upbestand", + "restore_title_from_keys": "Herstel van sleutels", + "restore_title_from_seed": "Herstel van zaad", + "restore_title_from_seed_keys": "Herstel van zaad / sleutels", + "restore_view_key_private": "Bekijk sleutel (privaat)", + "restore_wallet": "Portemonnee herstellen", + "restore_wallet_name": "Portemonnee naam", + "restore_wallet_restore_description": "Portemonnee-herstelbeschrijving", + "router_no_route": "Geen route gedefinieerd voor ${name}", + "save": "Opslaan", + "save_backup_password": "Zorg ervoor dat u uw reservewachtwoord heeft opgeslagen. Zonder dit kunt u uw back-upbestanden niet importeren.", + "save_backup_password_alert": "Bewaar back-upwachtwoord", + "save_to_downloads": "Opslaan in downloads", + "saved_the_trade_id": "Ik heb de ruil-ID opgeslagen", + "scan_qr_code": "Scan QR-code", + "scan_qr_code_to_get_address": "Scan de QR-code om het adres te krijgen", + "scan_qr_on_device": "Scan deze QR-code op een ander apparaat", + "search": "Zoekopdracht", + "search_add_token": "Token zoeken / toevoegen", + "search_category": "Zoek categorie", + "search_currency": "Zoek valuta", + "search_language": "Zoektaal", + "second_intro_content": "Je Yat is een enkel uniek emoji-adres dat al je lange hexadecimale adressen vervangt voor al je valuta's.", + "second_intro_title": "Eén emoji-adres om ze allemaal te regeren", + "security_and_backup": "Beveiliging en back-up", + "seed_alert_back": "Ga terug", + "seed_alert_content": "Het zaad is de enige manier om uw portemonnee te herstellen. Heb je het opgeschreven?", + "seed_alert_title": "Aandacht", + "seed_alert_yes": "Ja ik heb", + "seed_choose": "Kies een starttaal", "seed_hex_form": "Portemonnee zaad (hexvorm)", + "seed_key": "Zaadsleutel", + "seed_language": "Zaadtaal", + "seed_language_chinese": "Chinese", + "seed_language_chinese_traditional": "Chinese (traditionele)", + "seed_language_czech": "Tsjechisch", + "seed_language_dutch": "Nederlands", + "seed_language_english": "Engels", + "seed_language_french": "Frans", + "seed_language_german": "Duitse", + "seed_language_italian": "Italiaans", + "seed_language_japanese": "Japans", + "seed_language_korean": "Koreaans", + "seed_language_next": "Volgende", + "seed_language_portuguese": "Portugees", + "seed_language_russian": "Russisch", + "seed_language_spanish": "Spaans", + "seed_phrase_length": "Lengte van de zaadzin", + "seed_reminder": "Schrijf deze op voor het geval u uw telefoon kwijtraakt of veegt", + "seed_share": "Deel zaad", + "seed_title": "Zaad", "seedtype": "Zaadtype", "seedtype_legacy": "Legacy (25 woorden)", "seedtype_polyseed": "Polyseed (16 woorden)", - "seed_language_czech": "Tsjechisch", - "seed_language_korean": "Koreaans", - "ascending": "Stijgend", - "descending": "Aflopend", - "seed_language_chinese_traditional": "Chinese (traditionele)", - "dfx_option_description": "Koop crypto met EUR & CHF. Tot 990€ zonder extra KYC. Voor particuliere en zakelijke klanten in Europa", - "polygonscan_history": "PolygonScan-geschiedenis", - "wallet_seed_legacy": "Legacy portemonnee zaad", - "default_sell_provider": "Standaard verkoopaanbieder", + "select_backup_file": "Selecteer een back-upbestand", + "select_buy_provider_notice": "Selecteer hierboven een koopprovider. U kunt dit scherm overslaan door uw standaard kopenprovider in te stellen in app -instellingen.", + "select_destination": "Selecteer de bestemming voor het back-upbestand.", "select_sell_provider_notice": "Selecteer hierboven een verkoopaanbieder. U kunt dit scherm overslaan door uw standaardverkoopprovider in te stellen in de app-instellingen.", - "custom_drag": "Custom (vasthouden en slepen)", + "sell": "Verkopen", + "sell_alert_content": "We ondersteunen momenteel alleen de verkoop van Bitcoin, Ethereum en Litecoin. Maak of schakel over naar uw Bitcoin-, Ethereum- of Litecoin-portemonnee.", + "sell_monero_com_alert_content": "Het verkopen van Monero wordt nog niet ondersteund", + "send": "Sturen", + "send_address": "${cryptoCurrency}-adres", + "send_amount": "Bedrag:", + "send_creating_transaction": "Transactie maken", + "send_error_currency": "Valuta kan alleen cijfers bevatten", + "send_error_minimum_value": "Minimale waarde van bedrag is 0,01", + "send_estimated_fee": "Geschatte vergoeding:", + "send_fee": "Vergoeding:", + "send_name": "Naam", + "send_new": "Nieuw", + "send_payment_id": "Betaling ID (facultatief)", + "send_priority": "Momenteel is de vergoeding vastgesteld op ${transactionPriority} prioriteit.\nTransactieprioriteit kan worden aangepast in de instellingen", + "send_sending": "Bezig met verzenden...", + "send_success": "Uw ${crypto} is succesvol verzonden", + "send_templates": "Sjablonen", + "send_title": "Stuur", + "send_to_this_address": "Stuur ${currency} ${tag}naar dit adres", + "send_xmr": "Sturen XMR", + "send_your_wallet": "Uw portemonnee", + "sending": "Bezig met verzenden", + "sent": "Verzonden", + "settings": "Instellingen", + "settings_all": "ALLE", + "settings_allow_biometrical_authentication": "Biometrische authenticatie toestaan", + "settings_can_be_changed_later": "Deze instellingen kunnen later worden gewijzigd in de app-instellingen", + "settings_change_language": "Verander de taal", + "settings_change_pin": "Verander pincode", + "settings_currency": "Valuta", + "settings_current_node": "Huidige knooppunt", + "settings_dark_mode": "Donkere modus", + "settings_display_balance": "Saldo weergeven", + "settings_display_on_dashboard_list": "Weergeven op dashboardlijst", + "settings_fee_priority": "Tariefprioriteit", + "settings_nodes": "knooppunten", + "settings_none": "Geen", + "settings_only_trades": "Alleen handel", + "settings_only_transactions": "Alleen transacties", + "settings_personal": "Persoonlijk", + "settings_save_recipient_address": "Adres ontvanger opslaan", + "settings_support": "Ondersteuning", + "settings_terms_and_conditions": "Voorwaarden", + "settings_title": "Instellingen", + "settings_trades": "Trades", + "settings_transactions": "Transacties", + "settings_wallets": "Portemonnee", + "setup_2fa": "Opstelling Taart 2FA", + "setup_2fa_text": "Cake 2FA werkt met TOTP als tweede authenticatiefactor.\n\nCake 2FA's TOTP vereist SHA-512 en 8-cijferige ondersteuning; dit zorgt voor meer veiligheid. Meer informatie en ondersteunde apps vindt u in de gids.", + "setup_pin": "PIN instellen", + "setup_successful": "Uw PIN is succesvol ingesteld!", + "setup_totp_recommended": "TOTP instellen", + "setup_warning_2fa_text": "U moet uw portemonnee herstellen vanuit het geheugensteuntje.\n\nCake Support kan u niet helpen als u de toegang tot uw 2FA- of mnemonic-zaden verliest.\nCake 2FA is een tweede authenticatie voor bepaalde acties in de portemonnee. Voordat u Cake 2FA gebruikt, raden wij u aan de handleiding door te lezen.Het is NIET zo veilig als koude opslag.\n\nAls u de toegang tot uw 2FA-app of TOTP-sleutels verliest, verliest u de toegang tot deze portemonnee. ", + "setup_your_debit_card": "Stel uw debetkaart in", + "share": "Deel", + "share_address": "Deel adres", + "show_details": "Toon details", + "show_keys": "Toon zaad/sleutels", + "show_market_place": "Toon Marktplaats", + "show_seed": "Toon zaad", + "sign_up": "Aanmelden", + "signTransaction": "Transactie ondertekenen", + "signup_for_card_accept_terms": "Meld je aan voor de kaart en accepteer de voorwaarden.", + "slidable": "Verschuifbaar", + "sort_by": "Sorteer op", + "spend_key_private": "Sleutel uitgeven (privaat)", + "spend_key_public": "Sleutel uitgeven (openbaar)", + "status": "Staat: ", + "subaddress_title": "Subadreslijst", + "subaddresses": "Subadressen", + "submit_request": "een verzoek indienen", + "successful": "Succesvol", + "support_description_guides": "Documentatie en ondersteuning voor gemeenschappelijke problemen", + "support_description_live_chat": "Gratis en snel! Getrainde ondersteuningsvertegenwoordigers zijn beschikbaar om te helpen", + "support_description_other_links": "Word lid van onze gemeenschappen of bereik ons ​​onze partners via andere methoden", + "support_title_guides": "Cake -portemonnee gidsen", + "support_title_live_chat": "Live ondersteuning", + "support_title_other_links": "Andere ondersteuningslinks", + "sweeping_wallet": "Vegende portemonnee", + "sweeping_wallet_alert": "Dit duurt niet lang. VERLAAT DIT SCHERM NIET, ANDERS KAN HET SWEPT-GELD VERLOREN WORDEN", + "switchToETHWallet": "Schakel over naar een Ethereum-portemonnee en probeer het opnieuw", "switchToEVMCompatibleWallet": "Schakel over naar een EVM-compatibele portemonnee en probeer het opnieuw (Ethereum, Polygon)", - "receivable_balance": "Het saldo", - "confirmed_tx": "Bevestigd", + "symbol": "Symbool", + "sync_all_wallets": "Alle portemonnees synchroniseren", + "sync_status_attempting_sync": "SYNCHRONISATIE PROBEREN", + "sync_status_connected": "VERBONDEN", + "sync_status_connecting": "AANSLUITING", + "sync_status_failed_connect": "LOSGEKOPPELD", + "sync_status_not_connected": "NIET VERBONDEN", + "sync_status_starting_sync": "BEGINNEN MET SYNCHRONISEREN", + "sync_status_syncronized": "SYNCHRONIZED", + "sync_status_syncronizing": "SYNCHRONISEREN", + "syncing_wallet_alert_content": "Uw saldo- en transactielijst is mogelijk pas compleet als er bovenaan 'GESYNCHRONISEERD' staat. Klik/tik voor meer informatie.", + "syncing_wallet_alert_title": "Uw portemonnee wordt gesynchroniseerd", + "template": "Sjabloon", + "template_name": "Sjabloonnaam", + "third_intro_content": "Yats wonen ook buiten Cake Wallet. Elk portemonnee-adres op aarde kan worden vervangen door een Yat!", + "third_intro_title": "Yat speelt leuk met anderen", + "time": "${minutes}m ${seconds}s", + "tip": "Tip:", + "today": "Vandaag", + "token_contract_address": "Token contractadres", + "token_decimal": "Token decimaal", + "token_name": "Tokennaam bijv.: Tether", + "token_symbol": "Tokensymbool bijv.: USDT", + "tokenID": "ID kaart", + "tor_connection": "Tor-verbinding", + "tor_only": "Alleen Tor", + "total_saving": "Totale besparingen", + "totp_2fa_failure": "Foute code. Probeer een andere code of genereer een nieuwe geheime sleutel. Gebruik een compatibele 2FA-app die 8-cijferige codes en SHA512 ondersteunt.", + "totp_2fa_success": "Succes! Cake 2FA ingeschakeld voor deze portemonnee. Vergeet niet om uw geheugensteuntje op te slaan voor het geval u de toegang tot de portemonnee kwijtraakt.", + "totp_auth_url": "TOTP AUTH-URL", + "totp_code": "TOTP-code", + "totp_secret_code": "TOTP-geheime code", + "totp_verification_success": "Verificatie geslaagd!", + "trade_details_copied": "${title} gekopieerd naar het klembord", + "trade_details_created_at": "Gemaakt bij", + "trade_details_fetching": "Ophalen", + "trade_details_id": "ID", + "trade_details_pair": "Paar", + "trade_details_provider": "Leverancier", + "trade_details_state": "Toestand", + "trade_details_title": "Handelsgegevens", + "trade_for_not_created": "Ruilen voor ${title} is niet gemaakt.", + "trade_history_title": "Handelsgeschiedenis", + "trade_id": "Trade ID:", + "trade_id_not_found": "Handel ${tradeId} van ${title} niet gevonden.", + "trade_is_powered_by": "Deze transactie wordt mogelijk gemaakt door ${provider}", + "trade_not_created": "Handel niet gecreëerd", + "trade_not_found": "Handel niet gevonden.", + "trade_state_btc_sent": "Verzonden", + "trade_state_complete": "Compleet", + "trade_state_confirming": "Bevestiging", + "trade_state_created": "Gemaakt", + "trade_state_finished": "Afgewerkt", + "trade_state_paid": "Betaald", + "trade_state_paid_unconfirmed": "Niet bevestigd", + "trade_state_pending": "In afwachting", + "trade_state_timeout": "Time-out", + "trade_state_to_be_created": "Om gecreëerd te worden", + "trade_state_traded": "Traded", + "trade_state_trading": "Handel", + "trade_state_underpaid": "Slecht betaald", + "trade_state_unpaid": "Onbetaald", + "trades": "Trades", + "transaction_details_amount": "Bedrag", + "transaction_details_copied": "${title} gekopieerd naar het klembord", + "transaction_details_date": "Datum", + "transaction_details_fee": "Vergoeding", + "transaction_details_height": "Hoogte", + "transaction_details_recipient_address": "Adressen van ontvangers", "transaction_details_source_address": "Bron adres", - "pause_wallet_creation": "De mogelijkheid om Haven Wallet te maken is momenteel onderbroken.", - "contractName": "Contractnaam", - "contractSymbol": "Contractsymbool", - "description": "Beschrijving", - "camera_consent": "Uw camera wordt gebruikt om vóór ${provider} een beeld vast te leggen voor identificatiedoeleinden. Raadpleeg hun privacybeleid voor meer informatie.", - "no_relays": "Geen relais", - "choose_relay": "Kies een relais dat u wilt gebruiken", - "no_relays_message": "We hebben een Nostr NIP-05-record voor deze gebruiker gevonden, maar deze bevat geen relays. Instrueer de ontvanger om relays toe te voegen aan zijn Nostr-record.", - "no_relay_on_domain": "Er is geen relay voor het domein van de gebruiker of de relay is niet beschikbaar. Kies een relais dat u wilt gebruiken." -} + "transaction_details_title": "Transactie details", + "transaction_details_transaction_id": "Transactie ID", + "transaction_key": "Transactiesleutel", + "transaction_priority_fast": "Snel", + "transaction_priority_fastest": "Snelste", + "transaction_priority_medium": "Medium", + "transaction_priority_regular": "Regelmatig", + "transaction_priority_slow": "Langzaam", + "transaction_sent": "Transactie verzonden!", + "transaction_sent_notice": "Als het scherm na 1 minuut niet verder gaat, controleer dan een blokverkenner en je e-mail.", + "transactions": "Transacties", + "transactions_by_date": "Transacties op datum", + "trusted": "vertrouwd", + "unavailable_balance": "Onbeschikbaar saldo", + "unavailable_balance_description": "Niet-beschikbaar saldo: Dit totaal omvat het geld dat is vergrendeld in lopende transacties en het geld dat u actief hebt bevroren in uw muntcontrole-instellingen. Vergrendelde saldi komen beschikbaar zodra de betreffende transacties zijn voltooid, terwijl bevroren saldi ontoegankelijk blijven voor transacties totdat u besluit ze weer vrij te geven.", + "unconfirmed": "Onbevestigd saldo", + "understand": "Ik begrijp het", + "unmatched_currencies": "De valuta van uw huidige portemonnee komt niet overeen met die van de gescande QR", + "unspent_change": "Wijziging", + "unspent_coins_details_title": "Details van niet-uitgegeven munten", + "unspent_coins_title": "Ongebruikte munten", + "unsupported_asset": "We ondersteunen deze actie niet voor dit item. Maak of schakel over naar een portemonnee van een ondersteund activatype.", + "upto": "tot ${value}", + "use": "Gebruik ", + "use_card_info_three": "Gebruik de digitale kaart online of met contactloze betaalmethoden.", + "use_card_info_two": "Tegoeden worden omgezet naar USD wanneer ze op de prepaid-rekening staan, niet in digitale valuta.", + "use_ssl": "Gebruik SSL", + "use_suggested": "Gebruik aanbevolen", + "variable_pair_not_supported": "Dit variabelenpaar wordt niet ondersteund met de geselecteerde uitwisselingen", + "verification": "Verificatie", + "verify_with_2fa": "Controleer met Cake 2FA", + "version": "Versie ${currentVersion}", + "view_all": "Alles bekijken", + "view_in_block_explorer": "View in Block Explorer", + "view_key_private": "Bekijk sleutel (privaat)", + "view_key_public": "Bekijk sleutel (openbaar)", + "view_transaction_on": "View Transaction on ", + "waiting_payment_confirmation": "In afwachting van betalingsbevestiging", + "wallet_keys": "Portemonnee zaad/sleutels", + "wallet_list_create_new_wallet": "Maak een nieuwe portemonnee", + "wallet_list_edit_wallet": "Portemonnee bewerken", + "wallet_list_failed_to_load": "Laden mislukt ${wallet_name} portemonnee. ${error}", + "wallet_list_failed_to_remove": "Verwijderen mislukt ${wallet_name} portemonnee. ${error}", + "wallet_list_load_wallet": "Portemonnee laden", + "wallet_list_loading_wallet": "Bezig met laden ${wallet_name} portemonnee", + "wallet_list_removing_wallet": "Verwijderen ${wallet_name} portemonnee", + "wallet_list_restore_wallet": "Portemonnee herstellen", + "wallet_list_title": "Monero portemonnee", + "wallet_list_wallet_name": "Portemonnee naam", + "wallet_menu": "Portemonnee-menu", + "wallet_name": "Portemonnee naam", + "wallet_name_exists": "Portemonnee met die naam bestaat al", + "wallet_restoration_store_incorrect_seed_length": "Onjuiste zaadlengte", + "wallet_seed": "Portemonnee zaad", + "wallet_seed_legacy": "Legacy portemonnee zaad", + "wallet_store_monero_wallet": "Monero portemonnee", + "walletConnect": "WalletConnect", + "wallets": "Portefeuilles", + "warning": "Waarschuwing", + "welcome": "Welkom bij", + "welcome_to_cakepay": "Welkom bij Cake Pay!", + "widgets_address": "Adres", + "widgets_or": "of", + "widgets_restore_from_blockheight": "Herstel vanaf blockheight", + "widgets_restore_from_date": "Herstel vanaf datum", + "widgets_seed": "Zaad", + "wouoldLikeToConnect": "wil graag verbinden", + "write_down_backup_password": "Noteer uw back-upwachtwoord, dat wordt gebruikt voor het importeren van uw back-upbestanden.", + "xlm_extra_info": "Vergeet niet om de Memo-ID op te geven tijdens het verzenden van de XLM-transactie voor de uitwisseling", + "xmr_available_balance": "Beschikbaar saldo", + "xmr_full_balance": "Volledig saldo", + "xmr_hidden": "Verborgen", + "xmr_to_error": "XMR.TO-fout", + "xmr_to_error_description": "Ongeldige hoeveelheid. Maximaal 8 cijfers achter de komma", + "xrp_extra_info": "Vergeet niet om de Destination Tag op te geven tijdens het verzenden van de XRP-transactie voor de uitwisseling", + "yat": "Yat", + "yat_address": "Yat-adres", + "yat_alert_content": "Cake Wallet-gebruikers kunnen nu al hun favoriete valuta's verzenden en ontvangen met een unieke emoji-gebaseerde gebruikersnaam.", + "yat_alert_title": "Verzend en ontvang crypto gemakkelijker met Yat", + "yat_error": "Yat fout", + "yat_error_content": "Geen adressen gekoppeld aan deze Yat. Probeer een andere Yato", + "yat_popup_content": "Je kunt nu crypto verzenden en ontvangen in Cake Wallet met je Yat - een korte, op emoji gebaseerde gebruikersnaam. Beheer Yats op elk moment op het instellingenscherm", + "yat_popup_title": "Uw portemonnee-adres kan worden ge-emojiificeerd.", + "yesterday": "Gisteren", + "you_now_have_debit_card": "Je hebt nu een debetkaart", + "you_pay": "U betaalt", + "you_will_get": "Converteren naar", + "you_will_send": "Converteren van", + "yy": "JJ", + "zzzz": "Zzzz" +} \ No newline at end of file diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 4363ef5ae..f7293c754 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -1,779 +1,780 @@ { - "welcome": "Witamy w", - "cake_wallet": "Cake Wallet", - "first_wallet_text": "Świetny portfel na Monero, Bitcoin, Ethereum, Litecoin, i Haven", - "please_make_selection": "Wybierz poniżej, aby utworzyć lub przywrócić swój portfel.", - "create_new": "Utwórz nowy portfel", - "restore_wallet": "Przywróć portfel", - "monero_com": "Monero.com by Cake Wallet", - "monero_com_wallet_text": "Awesome wallet for Monero", - "haven_app": "Haven by Cake Wallet", - "haven_app_wallet_text": "Awesome wallet for Haven", - "accounts": "Konta", - "edit": "Edytuj", + "about_cake_pay": "Cake Pay umożliwia łatwe kupowanie kart podarunkowych z wirtualnymi aktywami, które można natychmiast wydać u ponad 150 000 sprzedawców w Stanach Zjednoczonych.", "account": "Konto", + "accounts": "Konta", + "accounts_subaddresses": "Konta i podadresy", + "activate": "Aktywuj", + "active": "Aktywny", + "active_cards": "Aktywne karty", + "activeConnectionsPrompt": "Tutaj pojawią się aktywne połączenia", "add": "Dodaj", + "add_contact": "Dodaj kontakt", + "add_custom_node": "Dodaj nowy węzeł niestandardowy", + "add_custom_redemption": "Dodaj niestandardowe wykorzystanie", + "add_fund_to_card": "Dodaj przedpłacone środki do kart (do ${value})", + "add_new_node": "Dodaj nowy węzeł", + "add_new_word": "Dodaj nowe słowo", + "add_receiver": "Dodaj kolejnego odbiorcę (opcjonalnie)", + "add_secret_code": "Możesz też dodać ten tajny kod do aplikacji uwierzytelniającej", + "add_tip": "Dodaj wskazówkę", + "add_token_disclaimer_check": "Potwierdziłem adres kontraktu tokena i informacje, korzystając z renomowanego źródła. Dodanie złośliwych lub niepoprawnych informacji może spowodować utratę środków.", + "add_token_warning": "Nie edytuj ani nie dodawaj tokenów zgodnie z instrukcjami oszustów.\nZawsze potwierdzaj adresy tokenów z renomowanymi źródłami!", + "add_value": "Dodaj wartość", + "address": "Adres", "address_book": "Kontakty", - "contact": "Kontakt", - "please_select": "Proszę wybrać:", - "cancel": "Anuluj", - "ok": "Ok", - "contact_name": "Nazwa Kontaktu", - "reset": "Wyczyść", - "save": "Zapisz", + "address_book_menu": "Kontakty", + "address_detected": "Wykryto adres", + "address_from_domain": "Ten adres to ${domain} na Unstoppable Domains", + "address_from_yat": "Ten adres jest od ${emoji} na Yat", + "address_label": "Etykieta Adresu", "address_remove_contact": "Usuń kontakt", "address_remove_content": "Czy na pewno chcesz usunąć wybrany kontakt?", - "authenticated": "Uwierzytelniony", - "authentication": "Uwierzytelnianie", - "failed_authentication": "Nieudane uwierzytelnienie. ${state_error}", - "wallet_menu": "Menu portfela", - "Blocks_remaining": "Pozostało ${status} bloków", - "please_try_to_connect_to_another_node": "Spróbuj połączyć się z innym węzłem", - "xmr_hidden": "Ukryty", - "xmr_available_balance": "Dostępne środki", - "xmr_full_balance": "Pełne saldo", - "send": "Wyślij", - "receive": "Otrzymaj", - "transactions": "Transakcje", - "incoming": "Przychodzące", - "outgoing": "Wychodzące", - "transactions_by_date": "Transakcje według daty", - "trades": "Transakcje", - "filter_by": "Filtruj według", - "today": "Dzisiaj", - "yesterday": "Wczoraj", - "received": "Odebrane", - "sent": "Wysłano", - "pending": " (w oczekiwaniu)", - "rescan": "Skanuj ponownie", - "reconnect": "Połącz ponownie", - "wallets": "Portfele", - "show_seed": "Pokaż frazy seed", - "show_keys": "Pokaż seed/klucze", - "address_book_menu": "Kontakty", - "reconnection": "Ponowne łączenie", - "reconnect_alert_text": "Czy na pewno ponownie się ponownie połączysz?", - "exchange": "Wymień", - "clear": "Wyczyść", - "refund_address": "Adres do zwrotu", - "change_exchange_provider": "Zmień dostawcę wymiany", - "you_will_send": "Konwertuj z", - "you_will_get": "Konwertuj na", - "amount_is_guaranteed": "Otrzymana kwota jest gwarantowana", - "amount_is_estimate": "Otrzymana kwota jest wartością szacunkową", - "powered_by": "Obsługiwane przez ${title}", - "error": "Błąd", - "estimated": "Oszacowano", - "min_value": "Min: ${value} ${currency}", - "max_value": "Max: ${value} ${currency}", - "change_currency": "Zmień walutę", - "overwrite_amount": "Nadpisz ilość", - "qr_payment_amount": "Ten kod QR zawiera kwotę do zapłaty. Czy chcesz nadpisać obecną wartość?", - "copy_id": "skopiuj ID", - "exchange_result_write_down_trade_id": "Skopiuj lub zanotuj identyfikator transakcji (ID), aby kontynuować.", - "trade_id": "ID transakcji:", - "copied_to_clipboard": "Skopiowano do schowka", - "saved_the_trade_id": "Zapisałem ID", - "fetching": "Pobieranie", - "id": "ID: ", - "amount": "Ilość: ", - "payment_id": "ID Płatności: ", - "status": "Status: ", - "offer_expires_in": "Oferta wygasa za ", - "trade_is_powered_by": "Ta wymiana jest obsługiwana przez ${provider}", - "copy_address": "Skopiuj adress", - "exchange_result_confirm": "Naciskając Potwierdź, wyślesz ${fetchingLabel} ${from} z twojego portfela ${walletName} na adres podany poniżej. Lub możesz wysłać z zewnętrznego portfela na poniższy adres / kod QR.\n\nNaciśnij Potwierdź, aby kontynuować lub wróć, aby zmienić kwoty.", - "exchange_result_description": "Musisz wysłać co najmniej ${fetchingLabel} ${from} na adres podany na następnej stronie. Jeśli wyślesz kwotę niższą niż ${fetchingLabel} ${from}, może ona nie zostać uwzględniona i może nie zostać zwrócona.", - "exchange_result_write_down_ID": "*Skopiuj lub zanotuj identyfikator transakcji pokazany powyżej.", - "confirm": "Potwierdzać", - "confirm_sending": "Potwierdź wysłanie", - "commit_transaction_amount_fee": "Zatwierdź transakcję\nIlość: ${amount}\nOpłata: ${fee}", - "sending": "Wysyłanie", - "transaction_sent": "Transakcja wysłana!", - "expired": "Przedawniony", - "time": "${minutes}m ${seconds}s", - "send_xmr": "Wyślij XMR", - "exchange_new_template": "Nowy szablon wymiany", - "faq": "FAQ", - "enter_your_pin": "Wpisz kod PIN", - "loading_your_wallet": "Ładowanie portfela", - "new_wallet": "Nowy portfel", - "wallet_name": "Nazwa portfela", - "continue_text": "Dalej", - "choose_wallet_currency": "Wybierz walutę portfela:", - "node_new": "Nowy węzeł", - "node_address": "Adres węzła", - "node_port": "Port węzła", - "login": "Login", - "password": "Hasło", - "nodes": "Węzły", - "node_reset_settings_title": "Zresetuj ustawienia węzłów", - "nodes_list_reset_to_default_message": "Czy na pewno chcesz przywrócić ustawienia domyślne?", - "change_current_node": "Czy na pewno chcesz wybrać ten węzeł? ${node}?", - "change": "Zmień", - "remove_node": "Usuń węzeł", - "remove_node_message": "Czy na pewno chcesz usunąć wybrany węzeł?", - "remove": "Usuń", - "delete": "Skasuj", - "add_new_node": "Dodaj nowy węzeł", - "change_current_node_title": "Zmień bieżący węzeł", - "node_test": "Test", - "node_connection_successful": "Połączenie powiodło się", - "node_connection_failed": "Połączenie nie powiodło się", - "new_node_testing": "Testowanie nowych węzłów", - "use": "Użyj ", - "digit_pin": "-znakowy PIN", - "share_address": "Udostępnij adres", - "receive_amount": "Ilość", - "subaddresses": "Podadresy", "addresses": "Adresy", - "scan_qr_code_to_get_address": "Zeskanuj kod QR, aby uzyskać adres", - "qr_fullscreen": "Dotknij, aby otworzyć pełnoekranowy kod QR", - "rename": "Zmień nazwę", - "choose_account": "Wybierz konto", - "create_new_account": "Stwórz nowe konto", - "accounts_subaddresses": "Konta i podadresy", - "restore_restore_wallet": "Przywróć portfel", - "restore_title_from_seed_keys": "Przywróć z seedów / kluczy", - "restore_description_from_seed_keys": "Odzyskaj swój portfel z seedów / kluczy, które zapisałeś w bezpiecznym miejscu", - "restore_next": "Kolejny", - "restore_title_from_backup": "Przywróć z pliku kopii zapasowej", - "restore_description_from_backup": "Możesz przywrócić całą aplikację Cake Wallet z pliku kopii zapasowej", - "restore_seed_keys_restore": "Przywracanie seedów / kluczy", - "restore_title_from_seed": "Przywróć z seedów", - "restore_description_from_seed": "Przywróć swój portfel z 25 lub 13-słownej frazy seed", - "restore_title_from_keys": "Przywróć z kluczy", - "restore_description_from_keys": "Przywróć swój portfel z kluczy prywatnych", - "restore_wallet_name": "Nazwa portfela", - "restore_address": "Adres", - "restore_view_key_private": "Podaj klucz prywatny", - "restore_spend_key_private": "Podaj prywatny klucz wglądu (view key)", - "restore_recover": "Przywróć", - "restore_wallet_restore_description": "Przywracanie portfela", - "restore_new_seed": "Nowy seed", - "restore_active_seed": "Aktywne seedy", - "restore_bitcoin_description_from_seed": "Przywróć swój portfel z frazy seed złożonej z 24 słów", - "restore_bitcoin_description_from_keys": "Przywróć swój portfel z klucza prywatnego", - "restore_bitcoin_title_from_keys": "Przywróć z klucza prywatnego", - "restore_from_date_or_blockheight": "Wprowadź datę na kilka dni przed utworzeniem tego portfela, lub jeśli znasz wysokość bloku, wprowadź go zamiast daty", - "seed_reminder": "Musisz zapisać tą fraze, bo bez niej możesz nie odzyskać portfela!", - "seed_title": "Seed", - "seed_share": "Udostępnij seed", - "copy": "Kopiuj", - "seed_language": "Język nasion", - "seed_choose": "Wybierz język", - "seed_language_next": "Następny", - "seed_language_english": "Angielski", - "seed_language_chinese": "Chiński", - "seed_language_dutch": "Holenderski", - "seed_language_german": "Niemiecki", - "seed_language_japanese": "Japoński", - "seed_language_portuguese": "Portugalski", - "seed_language_russian": "Rosyjski", - "seed_language_spanish": "Hiszpański", - "seed_language_french": "Francuski", - "seed_language_italian": "Włoski", - "send_title": "Wyślij", - "send_your_wallet": "Twój portfel", - "send_address": "Adres ${cryptoCurrency}", - "send_payment_id": "Identyfikator płatności (opcjonalny)", + "advanced_settings": "Zaawansowane ustawienia", + "aggressive": "Nadgorliwy", + "agree": "Zgadzam się", + "agree_and_continue": "Zgadzam się i kontynuuj", + "agree_to": "Tworząc konto wyrażasz zgodę na ", "all": "WSZYSTKO", - "send_error_minimum_value": "Minimalna wartość to 0,01", - "send_error_currency": "Waluta może zawierać tylko cyfry", - "send_estimated_fee": "Szacowana opłata:", - "send_priority": "Obecnie opłata ustalona jest na ${transactionPriority} priorytet.\nPriorytet transakcji można zmienić w ustawieniach", - "send_creating_transaction": "Tworzenie transakcji", - "send_templates": "Szablony", - "send_new": "Nowy", - "send_amount": "Ilość:", - "send_fee": "Opłata:", - "send_name": "Imię", - "got_it": "Wysłano", - "send_sending": "Wysyłanie...", - "send_success": "Twoje ${crypto} zostało pomyślnie wysłane", - "settings_title": "Ustawienia", - "settings_nodes": "Węzły", - "settings_current_node": "Bieżący węzeł", - "settings_wallets": "Portfele", - "settings_display_balance": "Wyświetl saldo", - "settings_currency": "Waluta", - "settings_fee_priority": "Priorytet opłaty", - "settings_save_recipient_address": "Zapisz adres odbiorcy", - "settings_personal": "Osobiste", - "settings_change_pin": "Zmień PIN", - "settings_change_language": "Zmień język", - "settings_allow_biometrical_authentication": "Zezwalaj na uwierzytelnianie biometryczne", - "settings_dark_mode": "Tryb ciemny", - "settings_transactions": "Transakcje", - "settings_trades": "Transakcje", - "settings_display_on_dashboard_list": "Wyświetl na pulpicie", - "settings_all": "Wszystkie", - "settings_only_trades": "Tylko transakcje", - "settings_only_transactions": "Tylko transakcje", - "settings_none": "Żaden", - "settings_support": "Wsparcie", - "settings_terms_and_conditions": "Zasady i warunki", - "pin_is_incorrect": "PIN jest niepoprawny", - "setup_pin": "Ustaw PIN", - "enter_your_pin_again": "Wprowadź ponownie swój kod PIN", - "setup_successful": "Twój kod PIN został pomyślnie skonfigurowany!", - "wallet_keys": "Klucze portfela", - "wallet_seed": "Seed portfela", - "private_key": "Klucz prywatny", - "public_key": "Klucz publiczny", - "view_key_private": "Prywatny Klucz Wglądu", - "view_key_public": "Publiczny Klucz Wglądu", - "spend_key_private": "Klucz prywatny", - "spend_key_public": "Klucz publiczny", - "copied_key_to_clipboard": "Skopiowaneo ${key} do schowka", - "new_subaddress_title": "Nowy adres", - "new_subaddress_label_name": "Etykieta nazwy adresu", - "new_subaddress_create": "Stwórz", - "address_label": "Etykieta Adresu", - "subaddress_title": "Lista podadresów", - "trade_details_title": "Szczegóły transakcji", - "trade_details_id": "ID", - "trade_details_state": "Status", - "trade_details_fetching": "Pobieranie", - "trade_details_provider": "Dostawca", - "trade_details_created_at": "Utworzono ", - "trade_details_pair": "Para", - "trade_details_copied": "${title} skopiowane do schowka", - "trade_history_title": "Historia wymian", - "transaction_details_title": "Szczegóły transakcji", - "transaction_details_transaction_id": "ID Trancakcji", - "transaction_details_date": "Data", - "transaction_details_height": "Wysokość Bloku", - "transaction_details_amount": "Ilość", - "transaction_details_fee": "Opłata", - "transaction_details_copied": "${title} skopiowane do schowka", - "transaction_details_recipient_address": "Adres odbiorcy", - "wallet_list_title": "Portfel Monero", - "wallet_list_create_new_wallet": "Utwórz nowy portfel", - "wallet_list_edit_wallet": "Edytuj portfel", - "wallet_list_wallet_name": "Nazwa portfela", - "wallet_list_restore_wallet": "Przywróć portfel", - "wallet_list_load_wallet": "Załaduj portfel", - "wallet_list_loading_wallet": "Ładuję ${wallet_name} portfel", - "wallet_list_failed_to_load": "Nie udało się załadować ${wallet_name} portfel. ${error}", - "wallet_list_removing_wallet": "Usuwanie ${wallet_name} portfel", - "wallet_list_failed_to_remove": "Nie udało się usunąć ${wallet_name} portfel. ${error}", - "widgets_address": "Adres", - "widgets_restore_from_blockheight": "Przywróć z wysokości bloku", - "widgets_restore_from_date": "Przywróć od daty", - "widgets_or": "lub", - "widgets_seed": "Seed", - "router_no_route": "Brak zdefiniowanej trasy dla ${name}", - "error_text_account_name": "Nazwa konta może zawierać tylko litery, cyfry\ni musi mieć od 1 do 15 znaków", - "error_text_contact_name": "Nazwa kontaktu nie może zawierać symboli ` , ' \"\ni musi mieć od 1 do 32 znaków ", - "error_text_address": "Adres musi odpowiadać typowi kryptowaluty", - "error_text_node_address": "Wpisz adres iPv4", - "error_text_node_port": "Port węzła może zawierać tylko liczby od 0 do 65535", - "error_text_node_proxy_address": "Wprowadź :, na przykład 127.0.0.1:9050", - "error_text_payment_id": "ID może zawierać od 16 do 64 znaków w formacie szesnastkowym", - "error_text_xmr": "Wartość XMR nie może przekraczać dostępnego salda.\nLiczba cyfr ułamkowych musi być mniejsza lub równa 12", - "error_text_fiat": "Wartość kwoty nie może przekroczyć dostępnego salda.\nLiczba cyfr ułamkowych musi być mniejsza lub równa 2", - "error_text_subaddress_name": "Nazwa podadresu nie może zawierać symboli ` , ' \"\ni musi mieć od 1 do 20 znaków", - "error_text_amount": "Kwota może zawierać tylko liczby", - "error_text_wallet_name": "Nazwa portfela może zawierać tylko litery, cyfry lub symbole _ - \ni musi mieć od 1 do 33 znaków", - "error_text_keys": "Klucze portfela mogą zawierać tylko 64 znaki w systemie szesnastkowym", - "error_text_crypto_currency": "Liczba cyfr ułamkowych\nmusi być mniejsza lub równa 12", - "error_text_minimal_limit": "Wymiana dla ${provider} nie została utworzona. Kwota jest mniejsza niż minimalna: ${min} ${currency}", - "error_text_maximum_limit": "Wymiana dla ${provider} nie została utworzona. Kwota jest większa niż maksymalna: ${max} ${currency}", - "error_text_limits_loading_failed": "Wymiana dla ${provider} nie została utworzona. Ładowanie limitów nie powiodło się", - "error_text_template": "Nazwa i adres szablonu nie mogą zawierać ` , ' \" symbolika\ni musi mieć od 1 do 106 znaków", + "all_trades": "Wszystkie operacje", + "all_transactions": "Wszystkie transakcje", + "alphabetical": "Alfabetyczny", + "already_have_account": "Masz już konto?", + "always": "zawsze", + "amount": "Ilość: ", + "amount_is_estimate": "Otrzymana kwota jest wartością szacunkową", + "amount_is_guaranteed": "Otrzymana kwota jest gwarantowana", + "and": "i", + "anonpay_description": "Wygeneruj ${type}. Odbiorca może ${method} z dowolną obsługiwaną kryptowalutą, a Ty otrzymasz środki w tym portfelu.", + "apk_update": "Aktualizacja APK", + "approve": "Zatwierdzić", + "arrive_in_this_address": "${currency} ${tag}dotrze na ten adres", + "ascending": "Wznoszący się", + "ask_each_time": "Zapytaj za każdym razem", "auth_store_ban_timeout": "przekroczenie limitu czasu", "auth_store_banned_for": "Zablokowany za ", "auth_store_banned_minutes": " minuty", "auth_store_incorrect_password": "Niepoprawny PIN", - "wallet_store_monero_wallet": "Portfel Monero", - "wallet_restoration_store_incorrect_seed_length": "Nieprawidłowa długość frazy seed", - "full_balance": "Pełne saldo", - "available_balance": "Dostępne środki", - "hidden_balance": "Ukryte saldo", - "sync_status_syncronizing": "SYNCHRONIZACJA", - "sync_status_syncronized": "ZSYNCHRONIZOWANO", - "sync_status_not_connected": "NIE POŁĄCZONY", - "sync_status_starting_sync": "ROZPOCZĘCIE SYNCHRONIZACJI", - "sync_status_failed_connect": "POŁĄCZENIE NIEUDANE", - "sync_status_connecting": "ŁĄCZENIE", - "sync_status_connected": "POŁĄCZONY", - "sync_status_attempting_sync": "PRÓBA SYNCHRONIZACJI", - "transaction_priority_slow": "Wolna(Zalecane)", - "transaction_priority_regular": "Regularna", - "transaction_priority_medium": "Średnia", - "transaction_priority_fast": "Szybka", - "transaction_priority_fastest": "Najszybsza", - "trade_for_not_created": "Wymiana za ${title} nie została utworzona.", - "trade_not_created": "Wymiana nie została utworzona", - "trade_id_not_found": "Transakcja ${tradeId} ${title} nie znaleziona.", - "trade_not_found": "Nie znaleziono transakcji.", - "trade_state_pending": "Oczekująca", - "trade_state_confirming": "Potwierdzanie", - "trade_state_trading": "Wymiana", - "trade_state_traded": "Wymienione", - "trade_state_complete": "Ukończona", - "trade_state_to_be_created": "Została stworzona", - "trade_state_unpaid": "Nie opłacona", - "trade_state_underpaid": "Niedopłacone", - "trade_state_paid_unconfirmed": "Transakcja niepotwierdzona", - "trade_state_paid": "Opłacona", - "trade_state_btc_sent": "Wysłanie", - "trade_state_timeout": "Koniec czasu", - "trade_state_created": "Stworzona", - "trade_state_finished": "Zakończona", - "change_language": "Zmień język", - "change_language_to": "Zmień język na ${language}?", - "paste": "Wklej", - "restore_from_seed_placeholder": "Wpisz lub wklej tutaj swoją frazę seed", - "add_new_word": "Dodaj nowe słowo", - "incorrect_seed": "Wprowadzony seed jest nieprawidłowy.", - "biometric_auth_reason": "Zeskanuj swój odcisk palca, aby uwierzytelnić", - "version": "Wersja ${currentVersion}", - "extracted_address_content": "Wysyłasz środki na\n${recipient_name}", - "card_address": "Adres:", - "buy": "Kup", - "sell": "Sprzedać", - "placeholder_transactions": "Twoje transakcje zostaną wyświetlone tutaj", - "placeholder_contacts": "Twoje kontakty zostaną wyświetlone tutaj", - "template": "Szablon", - "confirm_delete_template": "Ta czynność usunie ten szablon. Czy chcesz kontynuować?", - "confirm_delete_wallet": "Ta czynność usunie ten portfel. Czy chcesz kontynuować?", - "change_wallet_alert_title": "Zmień obecny portfel", - "change_wallet_alert_content": "Czy chcesz zmienić obecny portfel na ${wallet_name}?", - "creating_new_wallet": "Tworzenie nowego portfela", - "creating_new_wallet_error": "Błąd: ${description}", - "seed_alert_title": "Uwaga", - "seed_alert_content": "Fraza Seed to jedyny sposób na odzyskanie portfela. Zapisałeś ją?", - "seed_alert_back": "Wróć", - "seed_alert_yes": "Tak", - "exchange_sync_alert_content": "Poczekaj, aż portfel zostanie zsynchronizowany", - "pre_seed_title": "WAŻNY", - "pre_seed_description": "Na następnej stronie zobaczysz serię ${words} słów. To jest Twoja unikalna i prywatna fraza seed i jest to JEDYNY sposób na odzyskanie portfela w przypadku utraty lub awarii telefonu. Twoim obowiązkiem jest zapisanie go i przechowywanie w bezpiecznym miejscu (np. na kartce w SEJFIE).", - "pre_seed_button_text": "Rozumiem. Pokaż mi moją fraze seed", - "xmr_to_error": "Błąd XMR.TO", - "xmr_to_error_description": "Nieprawidłowa kwota. Maksymalny limit to 8 cyfr po przecinku", - "provider_error": "${provider} pomyłka", - "use_ssl": "Użyj SSL", - "trusted": "Zaufany", - "color_theme": "Motyw kolorystyczny", - "light_theme": "Jasny", - "bright_theme": "Biały", - "dark_theme": "Ciemny", - "enter_your_note": "Wpisz notatkę…", - "note_optional": "Notatka (opcjonalnie)", - "note_tap_to_change": "Notatka (dotknij, aby zmienić)", - "view_in_block_explorer": "Zobacz w eksploratorze bloków", - "view_transaction_on": "Zobacz transakcje na ", - "transaction_key": "Klucz transakcji", - "confirmations": "Potwierdzenia", - "recipient_address": "Adres odbiorcy", - "extra_id": "Dodatkowy ID:", - "destination_tag": "Tag docelowy:", - "memo": "Notatka:", - "backup": "Kopia zapasowa", - "change_password": "Zmień hasło", - "backup_password": "Hasło kpoii zapasowej", - "write_down_backup_password": "Zapisz swoje hasło kopii zapasowej, które jest używane do importowania plików kopii zapasowych.", - "export_backup": "Eksportuj kopię zapasową", - "save_backup_password": "Upewnij się, że zapisałeś swoje hasło kopii zapasowej. Bez tego nie będziesz mógł zaimportować pliku kopii zapasowej.", - "backup_file": "Plik kopii zapasowej", - "edit_backup_password": "Edytuj hasło kopii zapasowej", - "save_backup_password_alert": "Zapisz hasło kopii zapasowej", - "change_backup_password_alert": "Twoje poprzednie pliki kopii zapasowej nie będą dostępne do zaimportowania z nowym hasłem kopii zapasowej. Nowe hasło kopii zapasowej będzie używane tylko dla nowych plików kopii zapasowych. Czy na pewno chcesz zmienić hasło zapasowe?", - "enter_backup_password": "Wprowadź tutaj hasło kopii zapasowej", - "select_backup_file": "Wybierz plik kopii zapasowej", - "import": "Import", - "please_select_backup_file": "Wybierz plik kopii zapasowej i wprowadź hasło.", - "fixed_rate": "Stała stawka", - "fixed_rate_alert": "Będziesz mógł wprowadzić kwotę do otrzymania, gdy wybrany bedzie tryb stałego przeliczenia. Czy chcesz przejść do trybu stałej stawki?", - "xlm_extra_info": "Nie zapomnij podać dodatkowego identyfikatora (memo) podczas wysyłania transakcji XLM do wymiany", - "xrp_extra_info": "Nie zapomnij podać tagu docelowego podczas wysyłania transakcji XRP do wymiany", - "exchange_incorrect_current_wallet_for_xmr": "Jeśli chcesz wymienić XMR z salda Cake Wallet Monero, najpierw przełącz się na portfel Monero.", - "confirmed": "Potwierdzone saldo", - "unconfirmed": "Niepotwierdzone saldo", - "displayable": "Wyświetlane", - "submit_request": "Złóż wniosek", - "buy_alert_content": "Obecnie obsługujemy tylko zakup Bitcoin, Ethereum, Litecoin i Monero. Utwórz lub przełącz się na swój portfel Bitcoin, Ethereum, Litecoin lub Monero.", - "sell_alert_content": "Obecnie obsługujemy tylko sprzedaż Bitcoin, Ethereum i Litecoin. Utwórz lub przełącz się na swój portfel Bitcoin, Ethereum lub Litecoin.", - "outdated_electrum_wallet_description": "Nowe portfele Bitcoin utworzone w Cake mają teraz fraze seed składające się z 24 słów. Konieczne jest utworzenie nowego portfela Bitcoin i przeniesienie wszystkich środków do nowego portfela na 24 słowa oraz zaprzestanie korzystania z portfeli z frazą seed na 12 słów. Zrób to natychmiast, aby zabezpieczyć swoje fundusze.", - "understand": "Rozumiem", - "apk_update": "Aktualizacja APK", - "buy_bitcoin": "Kup Bitcoin", - "buy_with": "Kup za pomocą", - "moonpay_alert_text": "Wartość kwoty musi być większa lub równa ${minAmount} ${fiatCurrency}", - "outdated_electrum_wallet_receive_warning": "Jeśli ten portfel ma 12-wyrazowy seed i został utworzony w Cake, NIE Wpłacaj Bitcoina do tego portfela. Wszelkie BTC przeniesione do tego portfela mogą zostać utracone. Utwórz nowy portfel z 24 słowami (dotknij menu w prawym górnym rogu, wybierz Portfele, wybierz Utwórz nowy portfel, a następnie Bitcoin) i NATYCHMIAST przenieś tam swoje BTC. Nowe (24 słowa) portfele BTC Cake Wallet są bezpieczne", - "do_not_show_me": "Nie pokazuj mi tego ponownie", - "unspent_coins_title": "Niewydane monety", - "unspent_coins_details_title": "Szczegóły niewydanych monet", - "freeze": "Zamróź", - "frozen": "Zamrożone", - "coin_control": "Kontrola monet (opcjonalnie)", - "address_detected": "Wykryto adres", - "address_from_domain": "Ten adres to ${domain} na Unstoppable Domains", - "add_receiver": "Dodaj kolejnego odbiorcę (opcjonalnie)", - "manage_yats": "Zarządzaj Yats", - "yat_alert_title": "Łatwiejsze wysyłanie i odbieranie kryptowalut dzięki Yat", - "yat_alert_content": "Użytkownicy Cake Wallet mogą teraz wysyłać i odbierać wszystkie swoje ulubione waluty za pomocą jedynej w swoim rodzaju nazwy użytkownika opartej na emoji.", - "get_your_yat": "Zdobądź swój Yat", - "connect_an_existing_yat": "Podłącz istniejący Yat", - "yat_address": "Adres Yat", - "yat": "Yat", - "connect_yats": "Połącz Yats", - "address_from_yat": "Ten adres jest od ${emoji} na Yat", - "yat_error": "Błąd Yat", - "yat_error_content": "Brak adresów powiązanych z tym Yat. Wypróbuj inny Yat", - "choose_address": "\n\nWybierz adres:", - "yat_popup_title": "Twój adres portfela może być zemotkowany.", - "yat_popup_content": "Możesz teraz wysyłać i odbierać krypto w Cake Wallet za pomocą swojego Yat – krótkiej nazwy użytkownika opartej na emotikonach. Zarządzaj Yats w dowolnym momencie na ekranie ustawień", - "second_intro_title": "Jeden adres emoji, aby zarzadzać wszystkimi walutami", - "second_intro_content": "Twój Yat to jeden unikalny adres emoji, który zastępuje wszystkie Twoje długie adresy szesnastkowe dla wszystkich Twoich walut.", - "third_intro_title": "Yat ładnie bawi się z innymi", - "third_intro_content": "Yats mieszkają również poza Cake Wallet. Każdy adres portfela na ziemi można zastąpić Yat!", - "learn_more": "Dowiedz się więcej", - "search": "Szukaj", - "search_language": "Wyszukaj język", - "search_currency": "Wyszukaj walutę", - "new_template": "Nowy szablon", - "electrum_address_disclaimer": "Za każdym razem, gdy wykorzystasz adres, dla wiekszej prywatności generujemy nowy, ale poprzednie adresy nadal działają, i moga odbierać środki", - "wallet_name_exists": "Portfel o tej nazwie już istnieje", - "market_place": "Rynek", - "cake_pay_title": "Karty podarunkowe Cake Pay", - "cake_pay_subtitle": "Kup karty upominkowe ze zniżką (tylko USA)", - "cake_pay_web_cards_title": "Cake Pay Web Cards", - "cake_pay_web_cards_subtitle": "Kupuj na całym świecie karty przedpłacone i karty podarunkowe", - "about_cake_pay": "Cake Pay umożliwia łatwe kupowanie kart podarunkowych z wirtualnymi aktywami, które można natychmiast wydać u ponad 150 000 sprzedawców w Stanach Zjednoczonych.", - "cake_pay_account_note": "Zarejestruj się, używając tylko adresu e-mail, aby przeglądać i kupować karty. Niektóre są nawet dostępne ze zniżką!", - "already_have_account": "Masz już konto?", - "create_account": "Utwórz konto", - "privacy_policy": "Polityka prywatności", - "welcome_to_cakepay": "Witamy w Cake Pay!", - "sign_up": "Zarejestruj się", - "forgot_password": "Zapomniałem hasła", - "reset_password": "Zresetuj hasło", - "gift_cards": "Karty podarunkowe", - "setup_your_debit_card": "Skonfiguruj swoją kartę debetową", - "no_id_required": "Nie wymagamy Dowodu. Doładuj i wydawaj gdziekolwiek", - "how_to_use_card": "Jak korzystać z tej karty?", - "purchase_gift_card": "Kup kartę podarunkową", - "verification": "Weryfikacja", - "fill_code": "Proszę wpisać kod weryfikacyjny który otrzymałeś w wiadomości e-mail", - "didnt_get_code": "Nie dostałeś kodu?", - "resend_code": "Wyślij go ponownie", - "debit_card": "Karta debetowa", - "cakepay_prepaid_card": "Przedpłacona karta debetowa CakePay", - "no_id_needed": "Nie potrzeba Dowodu!", - "frequently_asked_questions": "Często zadawane pytania", - "debit_card_terms": "Przechowywanie i używanie numeru karty płatniczej (oraz danych uwierzytelniających odpowiadających numerowi karty płatniczej) w tym portfelu cyfrowym podlega Warunkom odpowiedniej umowy posiadacza karty z wydawcą karty płatniczej, zgodnie z obowiązującym od od czasu do czasu.", - "please_reference_document": "Proszę odwołać się do poniższych dokumentów, aby uzyskać więcej informacji.", - "cardholder_agreement": "Umowa posiadacza karty", - "e_sign_consent": "Zgoda na podpis elektroniczny", - "agree_and_continue": "Zgadzam się i kontynuuj", - "email_address": "Adres e-mail", - "agree_to": "Tworząc konto wyrażasz zgodę na ", - "and": "i", - "enter_code": "Wprowadź kod", - "congratulations": "gratulacje!", - "you_now_have_debit_card": "Masz teraz kartę debetową", - "min_amount": "Min: ${value}", - "max_amount": "Max: ${value}", - "enter_amount": "Wprowadź kwotę", - "billing_address_info": "Jeśli zostaniesz poproszony o podanie adresu rozliczeniowego, podaj swój adres wysyłki", - "order_physical_card": "Zamów kartę fizyczną", - "add_value": "Dodaj wartość", - "activate": "Aktywuj", - "get_a": "Zdobądź ", - "digital_and_physical_card": " cyfrowa i fizyczna przedpłacona karta debetowa", - "get_card_note": " które możesz doładować walutami cyfrowymi. Nie są potrzebne żadne dodatkowe informacje!", - "signup_for_card_accept_terms": "Zarejestruj się, aby otrzymać kartę i zaakceptuj warunki.", - "add_fund_to_card": "Dodaj przedpłacone środki do kart (do ${value})", - "use_card_info_two": "Środki są przeliczane na USD, gdy są przechowywane na koncie przedpłaconym, a nie w walutach cyfrowych.", - "use_card_info_three": "Użyj cyfrowej karty online lub za pomocą zbliżeniowych metod płatności.", - "optionally_order_card": "Opcjonalnie zamów kartę fizyczną.", - "hide_details": "Ukryj szczegóły", - "show_details": "Pokaż szczegóły", - "upto": "do ${value}", - "discount": "Zaoszczędź ${value}%", - "gift_card_amount": "Kwota karty podarunkowej", - "bill_amount": "Kwota rachunku", - "you_pay": "Płacisz", - "tip": "wskazówka:", - "custom": "niestandardowy", - "by_cake_pay": "przez Cake Pay", - "expires": "Wygasa", - "mm": "MM", - "yy": "RR", - "online": "online", - "offline": "Offline", - "gift_card_number": "Numer karty podarunkowej", - "pin_number": "Numer PIN", - "total_saving": "Całkowite oszczędności", - "last_30_days": "Ostatnie 30 dni", - "avg_savings": "Śr. oszczędności", - "view_all": "Wyświetl wszystko", - "active_cards": "Aktywne karty", - "delete_account": "Usuń konto", - "cards": "Karty", - "active": "Aktywny", - "redeemed": "wykupione", - "gift_card_balance_note": "Tutaj pojawią się karty podarunkowe z pozostałym saldem", - "gift_card_redeemed_note": "Karty podarunkowe, które wykorzystałeś, pojawią się tutaj", - "logout": "Wyloguj", - "add_tip": "Dodaj wskazówkę", - "percentageOf": "z ${amount}", - "is_percentage": "jest", - "search_category": "Kategoria wyszukiwania", - "mark_as_redeemed": "Oznacz jako wykorzystany", - "more_options": "Więcej opcji", - "awaiting_payment_confirmation": "Oczekiwanie na potwierdzenie płatności", - "transaction_sent_notice": "Jeśli ekran nie zmieni się po 1 minucie, sprawdź eksplorator bloków i swój e-mail.", - "agree": "Zgadzam się", - "in_store": "W Sklepie", - "generating_gift_card": "Generowanie karty podarunkowej", - "payment_was_received": "Twoja płatność została otrzymana.", - "proceed_after_one_minute": "Jeśli ekran nie przejdzie dalej po 1 minucie, sprawdź pocztę.", - "order_id": "Identyfikator zamówienia", - "gift_card_is_generated": "Karta podarunkowa jest generowana", - "open_gift_card": "Otwórz kartę podarunkową", - "contact_support": "Skontaktuj się z pomocą techniczną", - "gift_cards_unavailable": "Karty podarunkowe można obecnie kupić tylko za pośrednictwem Monero, Bitcoin i Litecoin", - "background_sync_mode": "Tryb synchronizacji w tle", - "sync_all_wallets": "Synchronizuj wszystkie portfele", - "introducing_cake_pay": "Przedstawiamy Cake Pay!", - "cake_pay_learn_more": "Kupuj i wykorzystuj karty podarunkowe od razu w aplikacji!\nPrzesuń od lewej do prawej, aby dowiedzieć się więcej.", - "automatic": "Automatyczny", - "fixed_pair_not_supported": "Ta stała para nie jest obsługiwana na wybranych giełdach", - "variable_pair_not_supported": "Ta para zmiennych nie jest obsługiwana na wybranych giełdach", - "none_of_selected_providers_can_exchange": "Żaden z wybranych dostawców nie może dokonać tej wymiany", - "choose_one": "Wybierz jeden", - "choose_from_available_options": "Wybierz z dostępnych opcji:", - "custom_redeem_amount": "Niestandardowa kwota wykorzystania", - "add_custom_redemption": "Dodaj niestandardowe wykorzystanie", - "remaining": "pozostałe", - "delete_wallet": "Usuń portfel", - "delete_wallet_confirm_message": "Czy na pewno chcesz usunąć portfel ${wallet_name}?", - "low_fee": "Niska opłata", - "low_fee_alert": "Obecnie korzystasz z niskiego priorytetu opłaty sieciowej. Może to spowodować długie oczekiwanie, różne stawki lub anulowane transakcje. Zalecamy ustawienie wyższej opłaty, aby zapewnić lepsze wrażenia.", - "ignor": "Ignorować", - "use_suggested": "Użyj sugerowane", - "do_not_share_warning_text": "NIE udostępniaj ich nikomu innemu, w tym pomocy technicznej.\n\nTwoje środki wtedy prawdopodobnie zostaną skradzione!", - "help": "pomoc", - "all_transactions": "Wszystkie transakcje", - "all_trades": "Wszystkie operacje", - "connection_sync": "Połączenie i synchronizacja", - "security_and_backup": "Bezpieczeństwo i kopia zapasowa", - "create_backup": "Utwórz kopię zapasową", - "privacy_settings": "Ustawienia prywatności", - "privacy": "Prywatność", - "display_settings": "Ustawienia wyświetlania", - "other_settings": "Inne ustawienia", - "require_pin_after": "Wymagaj kodu PIN po", - "always": "zawsze", - "minutes_to_pin_code": "${minute} minut", - "disable_exchange": "Wyłącz wymianę", - "advanced_settings": "Zaawansowane ustawienia", - "settings_can_be_changed_later": "Te ustawienia można później zmienić w ustawieniach aplikacji", - "add_custom_node": "Dodaj nowy węzeł niestandardowy", - "disable_fiat": "Wyłącz waluty FIAT", - "fiat_api": "API Walut FIAT", - "disabled": "Wyłączone", - "enabled": "Włączone", - "tor_only": "Tylko sieć Tor", - "unmatched_currencies": "Waluta Twojego obecnego portfela nie zgadza się z waluctą zeskanowanego kodu QR", - "orbot_running_alert": "Upewnij się, że Orbot działa przed połączeniem z tym węzłem.", - "contact_list_contacts": "Łączność", - "contact_list_wallets": "Moje portfele", - "bitcoin_payments_require_1_confirmation": "Płatności Bitcoin wymagają 1 potwierdzenia, co może zająć 20 minut lub dłużej. Dziękuję za cierpliwość! Otrzymasz wiadomość e-mail, gdy płatność zostanie potwierdzona.", - "send_to_this_address": "Wyślij ${currency} ${tag}na ten adres", - "arrive_in_this_address": "${currency} ${tag}dotrze na ten adres", - "do_not_send": "Nie wysyłaj", - "error_dialog_content": "Ups, wystąpił błąd.\n\nPrześlij raport o awarii do naszego zespołu wsparcia, aby ulepszyć aplikację.", - "scan_qr_code": "Skanowania QR code", - "cold_or_recover_wallet": "Dodaj zimny portfel lub odzyskaj portfel papierowy", - "please_wait": "Proszę czekać", - "sweeping_wallet": "Zamiatanie portfela", - "sweeping_wallet_alert": "To nie powinno zająć dużo czasu. NIE WYCHODŹ Z TEGO EKRANU, W PRZECIWNYM WYPADKU MOŻE ZOSTAĆ UTRACONA ŚRODKI", - "decimal_places_error": "Za dużo miejsc dziesiętnych", - "edit_node": "Edytuj węzeł", - "invoice_details": "Dane do faktury", - "donation_link_details": "Szczegóły linku darowizny", - "anonpay_description": "Wygeneruj ${type}. Odbiorca może ${method} z dowolną obsługiwaną kryptowalutą, a Ty otrzymasz środki w tym portfelu.", - "create_invoice": "Wystaw fakturę", - "create_donation_link": "Utwórz link do darowizny", - "optional_email_hint": "Opcjonalny e-mail z powiadomieniem odbiorcy płatności", - "optional_description": "Opcjonalny opis", - "optional_name": "Opcjonalna nazwa odbiorcy", - "clearnet_link": "łącze Clearnet", - "onion_link": "Łącznik cebulowy", - "settings": "Ustawienia", - "sell_monero_com_alert_content": "Sprzedaż Monero nie jest jeszcze obsługiwana", - "error_text_input_below_minimum_limit": "Kwota jest mniejsza niż minimalna", - "error_text_input_above_maximum_limit": "Kwota jest większa niż maksymalna", - "show_market_place": "Pokaż rynek", - "prevent_screenshots": "Zapobiegaj zrzutom ekranu i nagrywaniu ekranu", - "profile": "Profil", - "close": "Zamknąć", - "modify_2fa": "Zmodyfikuj ciasto 2FA", - "disable_cake_2fa": "Wyłącz Cake 2FA", - "question_to_disable_2fa": "Czy na pewno chcesz wyłączyć Cake 2FA? Kod 2FA nie będzie już potrzebny do uzyskania dostępu do portfela i niektórych funkcji.", - "disable": "Wyłączyć", - "setup_2fa": "Skonfiguruj ciasto 2FA", - "verify_with_2fa": "Sprawdź za pomocą Cake 2FA", - "totp_code": "Kod TOTP", - "please_fill_totp": "Wpisz 8-cyfrowy kod znajdujący się na drugim urządzeniu", - "totp_2fa_success": "Powodzenie! Cake 2FA włączony dla tego portfela. Pamiętaj, aby zapisać swoje mnemoniczne ziarno na wypadek utraty dostępu do portfela.", - "totp_verification_success": "Weryfikacja powiodła się!", - "totp_2fa_failure": "Błędny kod. Spróbuj użyć innego kodu lub wygeneruj nowy tajny klucz. Użyj kompatybilnej aplikacji 2FA, która obsługuje 8-cyfrowe kody i SHA512.", - "enter_totp_code": "Wprowadź kod TOTP.", - "add_secret_code": "Możesz też dodać ten tajny kod do aplikacji uwierzytelniającej", - "totp_secret_code": "Tajny kod TOTP", - "setup_2fa_text": "Cake 2FA działa przy użyciu TOTP jako drugiego czynnika uwierzytelniającego.\n\nTOTP Cake 2FA wymaga obsługi SHA-512 i 8 cyfr; zapewnia to większe bezpieczeństwo. Więcej informacji i obsługiwane aplikacje znajdziesz w przewodniku.", - "setup_totp_recommended": "Skonfiguruj TOTP", - "disable_buy": "Wyłącz akcję kupna", - "disable_sell": "Wyłącz akcję sprzedaży", + "authenticated": "Uwierzytelniony", + "authentication": "Uwierzytelnianie", "auto_generate_subaddresses": "Automatycznie generuj podadresy", - "cake_2fa_preset": "Ciasto 2FA Preset", - "narrow": "Wąski", - "normal": "Normalna", - "aggressive": "Nadgorliwy", - "require_for_assessing_wallet": "Wymagaj dostępu do portfela", - "require_for_sends_to_non_contacts": "Wymagaj wysyłania do osób niekontaktowych", - "require_for_sends_to_contacts": "Wymagaj wysyłania do kontaktów", - "require_for_sends_to_internal_wallets": "Wymagaj wysyłania do portfeli wewnętrznych", - "require_for_exchanges_to_internal_wallets": "Wymagaj wymiany do portfeli wewnętrznych", - "require_for_adding_contacts": "Wymagane do dodania kontaktów", - "require_for_creating_new_wallets": "Wymagane do tworzenia nowych portfeli", - "require_for_all_security_and_backup_settings": "Wymagaj dla wszystkich ustawień zabezpieczeń i kopii zapasowych", + "automatic": "Automatyczny", + "available_balance": "Dostępne środki", "available_balance_description": "Dostępne saldo jest równoważne z saldem portfela minus zamrożone saldo.", - "syncing_wallet_alert_title": "Twój portfel się synchronizuje", - "syncing_wallet_alert_content": "Twoje saldo i lista transakcji mogą nie być kompletne, dopóki u góry nie pojawi się napis „SYNCHRONIZOWANY”. Kliknij/stuknij, aby dowiedzieć się więcej.", - "home_screen_settings": "Ustawienia ekranu głównego", - "sort_by": "Sortuj według", - "search_add_token": "Wyszukaj / Dodaj token", - "edit_token": "Edytuj token", - "warning": "Ostrzeżenie", - "add_token_warning": "Nie edytuj ani nie dodawaj tokenów zgodnie z instrukcjami oszustów.\nZawsze potwierdzaj adresy tokenów z renomowanymi źródłami!", - "add_token_disclaimer_check": "Potwierdziłem adres kontraktu tokena i informacje, korzystając z renomowanego źródła. Dodanie złośliwych lub niepoprawnych informacji może spowodować utratę środków.", - "token_contract_address": "Adres kontraktu tokena", - "token_name": "Nazwa tokena, np.: Tether", - "token_symbol": "Symbol tokena np.: USDT", - "token_decimal": "Token dziesiętny", - "field_required": "To pole jest wymagane", - "pin_at_top": "przypnij ${token} na górze", - "invalid_input": "Nieprawidłowe dane wejściowe", - "fiat_balance": "Bilans Fiata", - "gross_balance": "Saldo brutto", - "alphabetical": "Alfabetyczny", - "generate_name": "Wygeneruj nazwę", + "avg_savings": "Śr. oszczędności", + "awaitDAppProcessing": "Poczekaj, aż dApp zakończy przetwarzanie.", + "awaiting_payment_confirmation": "Oczekiwanie na potwierdzenie płatności", + "background_sync_mode": "Tryb synchronizacji w tle", + "backup": "Kopia zapasowa", + "backup_file": "Plik kopii zapasowej", + "backup_password": "Hasło kpoii zapasowej", "balance_page": "Strona salda", - "share": "Udział", - "slidable": "Przesuwne", - "monero_dark_theme": "Ciemny motyw Monero", + "bill_amount": "Kwota rachunku", + "billing_address_info": "Jeśli zostaniesz poproszony o podanie adresu rozliczeniowego, podaj swój adres wysyłki", + "biometric_auth_reason": "Zeskanuj swój odcisk palca, aby uwierzytelnić", "bitcoin_dark_theme": "Ciemny motyw Bitcoina", "bitcoin_light_theme": "Lekki motyw Bitcoin", - "high_contrast_theme": "Motyw o wysokim kontraście", - "matrix_green_dark_theme": "Matrix Zielony ciemny motyw", - "monero_light_theme": "Lekki motyw Monero", - "manage_nodes": "Zarządzaj węzłami", - "etherscan_history": "Historia Etherscanu", - "template_name": "Nazwa szablonu", + "bitcoin_payments_require_1_confirmation": "Płatności Bitcoin wymagają 1 potwierdzenia, co może zająć 20 minut lub dłużej. Dziękuję za cierpliwość! Otrzymasz wiadomość e-mail, gdy płatność zostanie potwierdzona.", + "Blocks_remaining": "Pozostało ${status} bloków", + "bright_theme": "Biały", + "buy": "Kup", + "buy_alert_content": "Obecnie obsługujemy tylko zakup Bitcoin, Ethereum, Litecoin i Monero. Utwórz lub przełącz się na swój portfel Bitcoin, Ethereum, Litecoin lub Monero.", + "buy_bitcoin": "Kup Bitcoin", + "buy_provider_unavailable": "Dostawca obecnie niedostępny.", + "buy_with": "Kup za pomocą", + "by_cake_pay": "przez Cake Pay", + "cake_2fa_preset": "Ciasto 2FA Preset", + "cake_pay_account_note": "Zarejestruj się, używając tylko adresu e-mail, aby przeglądać i kupować karty. Niektóre są nawet dostępne ze zniżką!", + "cake_pay_learn_more": "Kupuj i wykorzystuj karty podarunkowe od razu w aplikacji!\nPrzesuń od lewej do prawej, aby dowiedzieć się więcej.", + "cake_pay_subtitle": "Kup karty upominkowe ze zniżką (tylko USA)", + "cake_pay_title": "Karty podarunkowe Cake Pay", + "cake_pay_web_cards_subtitle": "Kupuj na całym świecie karty przedpłacone i karty podarunkowe", + "cake_pay_web_cards_title": "Cake Pay Web Cards", + "cake_wallet": "Cake Wallet", + "cakepay_prepaid_card": "Przedpłacona karta debetowa CakePay", + "camera_consent": "Twój aparat zostanie użyty do przechwycenia obrazu w celach identyfikacyjnych przez ${provider}. Aby uzyskać szczegółowe informacje, sprawdź ich Politykę prywatności.", + "camera_permission_is_required": "Wymagane jest pozwolenie na korzystanie z aparatu.\nWłącz tę funkcję w ustawieniach aplikacji.", + "cancel": "Anuluj", + "card_address": "Adres:", + "cardholder_agreement": "Umowa posiadacza karty", + "cards": "Karty", + "chains": "Więzy", + "change": "Zmień", + "change_backup_password_alert": "Twoje poprzednie pliki kopii zapasowej nie będą dostępne do zaimportowania z nowym hasłem kopii zapasowej. Nowe hasło kopii zapasowej będzie używane tylko dla nowych plików kopii zapasowych. Czy na pewno chcesz zmienić hasło zapasowe?", + "change_currency": "Zmień walutę", + "change_current_node": "Czy na pewno chcesz wybrać ten węzeł? ${node}?", + "change_current_node_title": "Zmień bieżący węzeł", + "change_exchange_provider": "Zmień dostawcę wymiany", + "change_language": "Zmień język", + "change_language_to": "Zmień język na ${language}?", + "change_password": "Zmień hasło", "change_rep": "Zmień przedstawiciela", "change_rep_message": "Czy na pewno chcesz zmienić przedstawiciela?", - "unsupported_asset": "Nie obsługujemy tego działania w przypadku tego zasobu. Utwórz lub przełącz się na portfel obsługiwanego typu aktywów.", - "manage_pow_nodes": "Zarządzaj węzłami PoW", - "support_title_live_chat": "Wsparcie na żywo", - "support_description_live_chat": "Darmowe i szybkie! Do pomocy są dostępni przeszkoleni przedstawiciele wsparcia", - "support_title_guides": "Przewodniki portfela ciasta", - "support_description_guides": "Dokumentacja i wsparcie dla typowych problemów", - "support_title_other_links": "Inne linki wsparcia", - "support_description_other_links": "Dołącz do naszych społeczności lub skontaktuj się z nami naszymi partnerami za pomocą innych metod", + "change_rep_successful": "Pomyślnie zmienił przedstawiciela", + "change_wallet_alert_content": "Czy chcesz zmienić obecny portfel na ${wallet_name}?", + "change_wallet_alert_title": "Zmień obecny portfel", + "choose_account": "Wybierz konto", + "choose_address": "\n\nWybierz adres:", "choose_derivation": "Wybierz wyprowadzenie portfela", - "new_first_wallet_text": "Łatwo zapewnić bezpieczeństwo kryptowalut", - "select_destination": "Wybierz miejsce docelowe dla pliku kopii zapasowej.", - "save_to_downloads": "Zapisz w Pobranych", - "select_buy_provider_notice": "Wybierz powyższe dostawcę zakupu. Możesz pominąć ten ekran, ustawiając domyślnego dostawcę zakupu w ustawieniach aplikacji.", - "onramper_option_description": "Szybko kup kryptowaluty z wieloma metodami płatności. Dostępne w większości krajów. Spready i opłaty różnią się.", + "choose_from_available_options": "Wybierz z dostępnych opcji:", + "choose_one": "Wybierz jeden", + "choose_relay": "Wybierz przekaźnik, którego chcesz użyć", + "choose_wallet_currency": "Wybierz walutę portfela:", + "clear": "Wyczyść", + "clearnet_link": "łącze Clearnet", + "close": "Zamknąć", + "coin_control": "Kontrola monet (opcjonalnie)", + "cold_or_recover_wallet": "Dodaj zimny portfel lub odzyskaj portfel papierowy", + "color_theme": "Motyw kolorystyczny", + "commit_transaction_amount_fee": "Zatwierdź transakcję\nIlość: ${amount}\nOpłata: ${fee}", + "confirm": "Potwierdzać", + "confirm_delete_template": "Ta czynność usunie ten szablon. Czy chcesz kontynuować?", + "confirm_delete_wallet": "Ta czynność usunie ten portfel. Czy chcesz kontynuować?", + "confirm_sending": "Potwierdź wysłanie", + "confirmations": "Potwierdzenia", + "confirmed": "Potwierdzone saldo", + "confirmed_tx": "Potwierdzony", + "congratulations": "gratulacje!", + "connect_an_existing_yat": "Podłącz istniejący Yat", + "connect_yats": "Połącz Yats", + "connection_sync": "Połączenie i synchronizacja", + "connectWalletPrompt": "Połącz swój portfel z WalletConnect, aby dokonywać transakcji", + "contact": "Kontakt", + "contact_list_contacts": "Łączność", + "contact_list_wallets": "Moje portfele", + "contact_name": "Nazwa Kontaktu", + "contact_support": "Skontaktuj się z pomocą techniczną", + "continue_text": "Dalej", + "contractName": "Nazwa umowy", + "contractSymbol": "Symbol kontraktu", + "copied_key_to_clipboard": "Skopiowaneo ${key} do schowka", + "copied_to_clipboard": "Skopiowano do schowka", + "copy": "Kopiuj", + "copy_address": "Skopiuj adress", + "copy_id": "skopiuj ID", + "copyWalletConnectLink": "Skopiuj link do WalletConnect z dApp i wklej tutaj", + "create_account": "Utwórz konto", + "create_backup": "Utwórz kopię zapasową", + "create_donation_link": "Utwórz link do darowizny", + "create_invoice": "Wystaw fakturę", + "create_new": "Utwórz nowy portfel", + "create_new_account": "Stwórz nowe konto", + "creating_new_wallet": "Tworzenie nowego portfela", + "creating_new_wallet_error": "Błąd: ${description}", + "creation_date": "Data utworzenia", + "custom": "niestandardowy", + "custom_drag": "Niestandardowe (trzymaj i przeciągnij)", + "custom_redeem_amount": "Niestandardowa kwota wykorzystania", + "dark_theme": "Ciemny", + "debit_card": "Karta debetowa", + "debit_card_terms": "Przechowywanie i używanie numeru karty płatniczej (oraz danych uwierzytelniających odpowiadających numerowi karty płatniczej) w tym portfelu cyfrowym podlega Warunkom odpowiedniej umowy posiadacza karty z wydawcą karty płatniczej, zgodnie z obowiązującym od od czasu do czasu.", + "decimal_places_error": "Za dużo miejsc dziesiętnych", "default_buy_provider": "Domyślny dostawca zakupu", - "ask_each_time": "Zapytaj za każdym razem", - "buy_provider_unavailable": "Dostawca obecnie niedostępny.", - "signTransaction": "Podpisz transakcję", + "default_sell_provider": "Domyślny dostawca sprzedaży", + "delete": "Skasuj", + "delete_account": "Usuń konto", + "delete_wallet": "Usuń portfel", + "delete_wallet_confirm_message": "Czy na pewno chcesz usunąć portfel ${wallet_name}?", + "deleteConnectionConfirmationPrompt": "Czy na pewno chcesz usunąć połączenie z", + "descending": "Schodzenie", + "description": "Opis", + "destination_tag": "Tag docelowy:", + "dfx_option_description": "Kupuj kryptowaluty za EUR i CHF. Do 990 € bez dodatkowego KYC. Dla klientów detalicznych i korporacyjnych w Europie", + "didnt_get_code": "Nie dostałeś kodu?", + "digit_pin": "-znakowy PIN", + "digital_and_physical_card": " cyfrowa i fizyczna przedpłacona karta debetowa", + "disable": "Wyłączyć", + "disable_buy": "Wyłącz akcję kupna", + "disable_cake_2fa": "Wyłącz Cake 2FA", + "disable_exchange": "Wyłącz wymianę", + "disable_fiat": "Wyłącz waluty FIAT", + "disable_sell": "Wyłącz akcję sprzedaży", + "disabled": "Wyłączone", + "discount": "Zaoszczędź ${value}%", + "display_settings": "Ustawienia wyświetlania", + "displayable": "Wyświetlane", + "do_not_have_enough_gas_asset": "Nie masz wystarczającej ilości ${currency}, aby dokonać transakcji przy bieżących warunkach sieci blockchain. Potrzebujesz więcej ${currency}, aby uiścić opłaty za sieć blockchain, nawet jeśli wysyłasz inny zasób.", + "do_not_send": "Nie wysyłaj", + "do_not_share_warning_text": "NIE udostępniaj ich nikomu innemu, w tym pomocy technicznej.\n\nTwoje środki wtedy prawdopodobnie zostaną skradzione!", + "do_not_show_me": "Nie pokazuj mi tego ponownie", + "domain_looks_up": "Wyszukiwanie domen", + "donation_link_details": "Szczegóły linku darowizny", + "e_sign_consent": "Zgoda na podpis elektroniczny", + "edit": "Edytuj", + "edit_backup_password": "Edytuj hasło kopii zapasowej", + "edit_node": "Edytuj węzeł", + "edit_token": "Edytuj token", + "electrum_address_disclaimer": "Za każdym razem, gdy wykorzystasz adres, dla wiekszej prywatności generujemy nowy, ale poprzednie adresy nadal działają, i moga odbierać środki", + "email_address": "Adres e-mail", + "enabled": "Włączone", + "enter_amount": "Wprowadź kwotę", + "enter_backup_password": "Wprowadź tutaj hasło kopii zapasowej", + "enter_code": "Wprowadź kod", + "enter_seed_phrase": "Wprowadź swoją frazę nasienną", + "enter_totp_code": "Wprowadź kod TOTP.", + "enter_your_note": "Wpisz notatkę…", + "enter_your_pin": "Wpisz kod PIN", + "enter_your_pin_again": "Wprowadź ponownie swój kod PIN", + "enterTokenID": "Wprowadź identyfikator tokena", + "enterWalletConnectURI": "Wprowadź identyfikator URI WalletConnect", + "error": "Błąd", + "error_dialog_content": "Ups, wystąpił błąd.\n\nPrześlij raport o awarii do naszego zespołu wsparcia, aby ulepszyć aplikację.", + "error_text_account_name": "Nazwa konta może zawierać tylko litery, cyfry\ni musi mieć od 1 do 15 znaków", + "error_text_address": "Adres musi odpowiadać typowi kryptowaluty", + "error_text_amount": "Kwota może zawierać tylko liczby", + "error_text_contact_name": "Nazwa kontaktu nie może zawierać symboli ` , ' \"\ni musi mieć od 1 do 32 znaków ", + "error_text_crypto_currency": "Liczba cyfr ułamkowych\nmusi być mniejsza lub równa 12", + "error_text_fiat": "Wartość kwoty nie może przekroczyć dostępnego salda.\nLiczba cyfr ułamkowych musi być mniejsza lub równa 2", + "error_text_input_above_maximum_limit": "Kwota jest większa niż maksymalna", + "error_text_input_below_minimum_limit": "Kwota jest mniejsza niż minimalna", + "error_text_keys": "Klucze portfela mogą zawierać tylko 64 znaki w systemie szesnastkowym", + "error_text_limits_loading_failed": "Wymiana dla ${provider} nie została utworzona. Ładowanie limitów nie powiodło się", + "error_text_maximum_limit": "Wymiana dla ${provider} nie została utworzona. Kwota jest większa niż maksymalna: ${max} ${currency}", + "error_text_minimal_limit": "Wymiana dla ${provider} nie została utworzona. Kwota jest mniejsza niż minimalna: ${min} ${currency}", + "error_text_node_address": "Wpisz adres iPv4", + "error_text_node_port": "Port węzła może zawierać tylko liczby od 0 do 65535", + "error_text_node_proxy_address": "Wprowadź :, na przykład 127.0.0.1:9050", + "error_text_payment_id": "ID może zawierać od 16 do 64 znaków w formacie szesnastkowym", + "error_text_subaddress_name": "Nazwa podadresu nie może zawierać symboli ` , ' \"\ni musi mieć od 1 do 20 znaków", + "error_text_template": "Nazwa i adres szablonu nie mogą zawierać ` , ' \" symbolika\ni musi mieć od 1 do 106 znaków", + "error_text_wallet_name": "Nazwa portfela może zawierać tylko litery, cyfry lub symbole _ - \ni musi mieć od 1 do 33 znaków", + "error_text_xmr": "Wartość XMR nie może przekraczać dostępnego salda.\nLiczba cyfr ułamkowych musi być mniejsza lub równa 12", "errorGettingCredentials": "Niepowodzenie: Błąd podczas uzyskiwania poświadczeń", "errorSigningTransaction": "Wystąpił błąd podczas podpisywania transakcji", - "pairingInvalidEvent": "Nieprawidłowe zdarzenie parowania", - "chains": "Więzy", - "methods": "Metody", - "events": "Wydarzenia", - "reject": "Odrzucić", - "approve": "Zatwierdzić", - "expiresOn": "Upływa w dniu", - "walletConnect": "PortfelPołącz", - "nullURIError": "URI ma wartość zerową", - "connectWalletPrompt": "Połącz swój portfel z WalletConnect, aby dokonywać transakcji", - "newConnection": "Nowe połączenie", - "activeConnectionsPrompt": "Tutaj pojawią się aktywne połączenia", - "deleteConnectionConfirmationPrompt": "Czy na pewno chcesz usunąć połączenie z", + "estimated": "Oszacowano", + "etherscan_history": "Historia Etherscanu", "event": "Wydarzenie", - "successful": "Udany", - "wouoldLikeToConnect": "chciałbym się połączyć", - "message": "Wiadomość", - "do_not_have_enough_gas_asset": "Nie masz wystarczającej ilości ${currency}, aby dokonać transakcji przy bieżących warunkach sieci blockchain. Potrzebujesz więcej ${currency}, aby uiścić opłaty za sieć blockchain, nawet jeśli wysyłasz inny zasób.", - "totp_auth_url": "Adres URL TOTP AUTH", - "awaitDAppProcessing": "Poczekaj, aż dApp zakończy przetwarzanie.", - "copyWalletConnectLink": "Skopiuj link do WalletConnect z dApp i wklej tutaj", - "enterWalletConnectURI": "Wprowadź identyfikator URI WalletConnect", - "seed_key": "Klucz nasion", - "enter_seed_phrase": "Wprowadź swoją frazę nasienną", - "change_rep_successful": "Pomyślnie zmienił przedstawiciela", - "add_contact": "Dodaj kontakt", + "events": "Wydarzenia", + "exchange": "Wymień", + "exchange_incorrect_current_wallet_for_xmr": "Jeśli chcesz wymienić XMR z salda Cake Wallet Monero, najpierw przełącz się na portfel Monero.", + "exchange_new_template": "Nowy szablon wymiany", "exchange_provider_unsupported": "${providerName} nie jest już obsługiwany!", - "domain_looks_up": "Wyszukiwanie domen", - "require_for_exchanges_to_external_wallets": "Wymagaj wymiany na portfele zewnętrzne", - "camera_permission_is_required": "Wymagane jest pozwolenie na korzystanie z aparatu.\nWłącz tę funkcję w ustawieniach aplikacji.", - "switchToETHWallet": "Przejdź na portfel Ethereum i spróbuj ponownie", - "order_by": "Zamów przez", - "creation_date": "Data utworzenia", + "exchange_result_confirm": "Naciskając Potwierdź, wyślesz ${fetchingLabel} ${from} z twojego portfela ${walletName} na adres podany poniżej. Lub możesz wysłać z zewnętrznego portfela na poniższy adres / kod QR.\n\nNaciśnij Potwierdź, aby kontynuować lub wróć, aby zmienić kwoty.", + "exchange_result_description": "Musisz wysłać co najmniej ${fetchingLabel} ${from} na adres podany na następnej stronie. Jeśli wyślesz kwotę niższą niż ${fetchingLabel} ${from}, może ona nie zostać uwzględniona i może nie zostać zwrócona.", + "exchange_result_write_down_ID": "*Skopiuj lub zanotuj identyfikator transakcji pokazany powyżej.", + "exchange_result_write_down_trade_id": "Skopiuj lub zanotuj identyfikator transakcji (ID), aby kontynuować.", + "exchange_sync_alert_content": "Poczekaj, aż portfel zostanie zsynchronizowany", + "expired": "Przedawniony", + "expires": "Wygasa", + "expiresOn": "Upływa w dniu", + "export_backup": "Eksportuj kopię zapasową", + "extra_id": "Dodatkowy ID:", + "extracted_address_content": "Wysyłasz środki na\n${recipient_name}", + "failed_authentication": "Nieudane uwierzytelnienie. ${state_error}", + "faq": "FAQ", + "fetching": "Pobieranie", + "fiat_api": "API Walut FIAT", + "fiat_balance": "Bilans Fiata", + "field_required": "To pole jest wymagane", + "fill_code": "Proszę wpisać kod weryfikacyjny który otrzymałeś w wiadomości e-mail", + "filter_by": "Filtruj według", + "first_wallet_text": "Świetny portfel na Monero, Bitcoin, Ethereum, Litecoin, i Haven", + "fixed_pair_not_supported": "Ta stała para nie jest obsługiwana na wybranych giełdach", + "fixed_rate": "Stała stawka", + "fixed_rate_alert": "Będziesz mógł wprowadzić kwotę do otrzymania, gdy wybrany bedzie tryb stałego przeliczenia. Czy chcesz przejść do trybu stałej stawki?", + "forgot_password": "Zapomniałem hasła", + "freeze": "Zamróź", + "frequently_asked_questions": "Często zadawane pytania", + "frozen": "Zamrożone", + "full_balance": "Pełne saldo", + "generate_name": "Wygeneruj nazwę", + "generating_gift_card": "Generowanie karty podarunkowej", + "get_a": "Zdobądź ", + "get_card_note": " które możesz doładować walutami cyfrowymi. Nie są potrzebne żadne dodatkowe informacje!", + "get_your_yat": "Zdobądź swój Yat", + "gift_card_amount": "Kwota karty podarunkowej", + "gift_card_balance_note": "Tutaj pojawią się karty podarunkowe z pozostałym saldem", + "gift_card_is_generated": "Karta podarunkowa jest generowana", + "gift_card_number": "Numer karty podarunkowej", + "gift_card_redeemed_note": "Karty podarunkowe, które wykorzystałeś, pojawią się tutaj", + "gift_cards": "Karty podarunkowe", + "gift_cards_unavailable": "Karty podarunkowe można obecnie kupić tylko za pośrednictwem Monero, Bitcoin i Litecoin", + "got_it": "Wysłano", + "gross_balance": "Saldo brutto", "group_by_type": "Grupa według typu", - "importNFTs": "Importuj NFT", - "noNFTYet": "Nie ma jeszcze NFT", - "address": "Adres", - "enterTokenID": "Wprowadź identyfikator tokena", - "tokenID": "ID", - "name": "Nazwa", - "symbol": "Symbol", - "seed_phrase_length": "Długość frazy początkowej", - "unavailable_balance": "Niedostępne saldo", - "unavailable_balance_description": "Niedostępne saldo: Suma ta obejmuje środki zablokowane w transakcjach oczekujących oraz te, które aktywnie zamroziłeś w ustawieniach kontroli monet. Zablokowane salda staną się dostępne po zakończeniu odpowiednich transakcji, natomiast zamrożone salda pozostaną niedostępne dla transakcji, dopóki nie zdecydujesz się ich odblokować.", - "unspent_change": "Zmiana", - "tor_connection": "Połączenie Torem", - "setup_warning_2fa_text": "Będziesz musiał przywrócić swój portfel z nasion mnemonicznych.\n\nWsparcie Cake nie będzie w stanie Ci pomóc, jeśli utracisz dostęp do swoich nasion 2FA lub mnemoników.\nCake 2FA to drugie uwierzytelnienie niektórych działań w portfelu. Przed użyciem Cake 2FA zalecamy zapoznanie się z instrukcją.NIE jest tak bezpieczne jak przechowywanie w chłodni.\n\nJeśli utracisz dostęp do aplikacji 2FA lub kluczy TOTP, UTRAcisz dostęp do tego portfela. ", - "scan_qr_on_device": "Zeskanuj ten kod QR na innym urządzeniu", + "haven_app": "Haven by Cake Wallet", + "haven_app_wallet_text": "Awesome wallet for Haven", + "help": "pomoc", + "hidden_balance": "Ukryte saldo", + "hide_details": "Ukryj szczegóły", + "high_contrast_theme": "Motyw o wysokim kontraście", + "home_screen_settings": "Ustawienia ekranu głównego", "how_to_use": "Jak używać", + "how_to_use_card": "Jak korzystać z tej karty?", + "id": "ID: ", + "ignor": "Ignorować", + "import": "Import", + "importNFTs": "Importuj NFT", + "in_store": "W Sklepie", + "incoming": "Przychodzące", + "incorrect_seed": "Wprowadzony seed jest nieprawidłowy.", + "introducing_cake_pay": "Przedstawiamy Cake Pay!", + "invalid_input": "Nieprawidłowe dane wejściowe", + "invoice_details": "Dane do faktury", + "is_percentage": "jest", + "last_30_days": "Ostatnie 30 dni", + "learn_more": "Dowiedz się więcej", + "light_theme": "Jasny", + "loading_your_wallet": "Ładowanie portfela", + "login": "Login", + "logout": "Wyloguj", + "low_fee": "Niska opłata", + "low_fee_alert": "Obecnie korzystasz z niskiego priorytetu opłaty sieciowej. Może to spowodować długie oczekiwanie, różne stawki lub anulowane transakcje. Zalecamy ustawienie wyższej opłaty, aby zapewnić lepsze wrażenia.", + "manage_nodes": "Zarządzaj węzłami", + "manage_pow_nodes": "Zarządzaj węzłami PoW", + "manage_yats": "Zarządzaj Yats", + "mark_as_redeemed": "Oznacz jako wykorzystany", + "market_place": "Rynek", + "matrix_green_dark_theme": "Matrix Zielony ciemny motyw", + "max_amount": "Max: ${value}", + "max_value": "Max: ${value} ${currency}", + "memo": "Notatka:", + "message": "Wiadomość", + "methods": "Metody", + "min_amount": "Min: ${value}", + "min_value": "Min: ${value} ${currency}", + "minutes_to_pin_code": "${minute} minut", + "mm": "MM", + "modify_2fa": "Zmodyfikuj ciasto 2FA", + "monero_com": "Monero.com by Cake Wallet", + "monero_com_wallet_text": "Awesome wallet for Monero", + "monero_dark_theme": "Ciemny motyw Monero", + "monero_light_theme": "Lekki motyw Monero", + "moonpay_alert_text": "Wartość kwoty musi być większa lub równa ${minAmount} ${fiatCurrency}", + "more_options": "Więcej opcji", + "name": "Nazwa", + "narrow": "Wąski", + "new_first_wallet_text": "Łatwo zapewnić bezpieczeństwo kryptowalut", + "new_node_testing": "Testowanie nowych węzłów", + "new_subaddress_create": "Stwórz", + "new_subaddress_label_name": "Etykieta nazwy adresu", + "new_subaddress_title": "Nowy adres", + "new_template": "Nowy szablon", + "new_wallet": "Nowy portfel", + "newConnection": "Nowe połączenie", + "no_id_needed": "Nie potrzeba Dowodu!", + "no_id_required": "Nie wymagamy Dowodu. Doładuj i wydawaj gdziekolwiek", + "no_relay_on_domain": "Brak przekaźnika dla domeny użytkownika lub przekaźnik jest niedostępny. Wybierz przekaźnik, którego chcesz użyć.", + "no_relays": "Żadnych przekaźników", + "no_relays_message": "Znaleźliśmy rekord Nostr NIP-05 dla tego użytkownika, ale nie zawiera on żadnych przekaźników. Poinstruuj odbiorcę, aby dodał przekaźniki do swojego rekordu Nostr.", + "node_address": "Adres węzła", + "node_connection_failed": "Połączenie nie powiodło się", + "node_connection_successful": "Połączenie powiodło się", + "node_new": "Nowy węzeł", + "node_port": "Port węzła", + "node_reset_settings_title": "Zresetuj ustawienia węzłów", + "node_test": "Test", + "nodes": "Węzły", + "nodes_list_reset_to_default_message": "Czy na pewno chcesz przywrócić ustawienia domyślne?", + "none_of_selected_providers_can_exchange": "Żaden z wybranych dostawców nie może dokonać tej wymiany", + "noNFTYet": "Nie ma jeszcze NFT", + "normal": "Normalna", + "note_optional": "Notatka (opcjonalnie)", + "note_tap_to_change": "Notatka (dotknij, aby zmienić)", + "nullURIError": "URI ma wartość zerową", + "offer_expires_in": "Oferta wygasa za ", + "offline": "Offline", + "ok": "Ok", + "onion_link": "Łącznik cebulowy", + "online": "online", + "onramper_option_description": "Szybko kup kryptowaluty z wieloma metodami płatności. Dostępne w większości krajów. Spready i opłaty różnią się.", + "open_gift_card": "Otwórz kartę podarunkową", + "optional_description": "Opcjonalny opis", + "optional_email_hint": "Opcjonalny e-mail z powiadomieniem odbiorcy płatności", + "optional_name": "Opcjonalna nazwa odbiorcy", + "optionally_order_card": "Opcjonalnie zamów kartę fizyczną.", + "orbot_running_alert": "Upewnij się, że Orbot działa przed połączeniem z tym węzłem.", + "order_by": "Zamów przez", + "order_id": "Identyfikator zamówienia", + "order_physical_card": "Zamów kartę fizyczną", + "other_settings": "Inne ustawienia", + "outdated_electrum_wallet_description": "Nowe portfele Bitcoin utworzone w Cake mają teraz fraze seed składające się z 24 słów. Konieczne jest utworzenie nowego portfela Bitcoin i przeniesienie wszystkich środków do nowego portfela na 24 słowa oraz zaprzestanie korzystania z portfeli z frazą seed na 12 słów. Zrób to natychmiast, aby zabezpieczyć swoje fundusze.", + "outdated_electrum_wallet_receive_warning": "Jeśli ten portfel ma 12-wyrazowy seed i został utworzony w Cake, NIE Wpłacaj Bitcoina do tego portfela. Wszelkie BTC przeniesione do tego portfela mogą zostać utracone. Utwórz nowy portfel z 24 słowami (dotknij menu w prawym górnym rogu, wybierz Portfele, wybierz Utwórz nowy portfel, a następnie Bitcoin) i NATYCHMIAST przenieś tam swoje BTC. Nowe (24 słowa) portfele BTC Cake Wallet są bezpieczne", + "outgoing": "Wychodzące", + "overwrite_amount": "Nadpisz ilość", + "pairingInvalidEvent": "Nieprawidłowe zdarzenie parowania", + "password": "Hasło", + "paste": "Wklej", + "pause_wallet_creation": "Możliwość utworzenia Portfela Haven jest obecnie wstrzymana.", + "payment_id": "ID Płatności: ", + "payment_was_received": "Twoja płatność została otrzymana.", + "pending": " (w oczekiwaniu)", + "percentageOf": "z ${amount}", + "pin_at_top": "przypnij ${token} na górze", + "pin_is_incorrect": "PIN jest niepoprawny", + "pin_number": "Numer PIN", + "placeholder_contacts": "Twoje kontakty zostaną wyświetlone tutaj", + "placeholder_transactions": "Twoje transakcje zostaną wyświetlone tutaj", + "please_fill_totp": "Wpisz 8-cyfrowy kod znajdujący się na drugim urządzeniu", + "please_make_selection": "Wybierz poniżej, aby utworzyć lub przywrócić swój portfel.", + "please_reference_document": "Proszę odwołać się do poniższych dokumentów, aby uzyskać więcej informacji.", + "please_select": "Proszę wybrać:", + "please_select_backup_file": "Wybierz plik kopii zapasowej i wprowadź hasło.", + "please_try_to_connect_to_another_node": "Spróbuj połączyć się z innym węzłem", + "please_wait": "Proszę czekać", + "polygonscan_history": "Historia PolygonScan", + "powered_by": "Obsługiwane przez ${title}", + "pre_seed_button_text": "Rozumiem. Pokaż mi moją fraze seed", + "pre_seed_description": "Na następnej stronie zobaczysz serię ${words} słów. To jest Twoja unikalna i prywatna fraza seed i jest to JEDYNY sposób na odzyskanie portfela w przypadku utraty lub awarii telefonu. Twoim obowiązkiem jest zapisanie go i przechowywanie w bezpiecznym miejscu (np. na kartce w SEJFIE).", + "pre_seed_title": "WAŻNY", + "prevent_screenshots": "Zapobiegaj zrzutom ekranu i nagrywaniu ekranu", + "privacy": "Prywatność", + "privacy_policy": "Polityka prywatności", + "privacy_settings": "Ustawienia prywatności", + "private_key": "Klucz prywatny", + "proceed_after_one_minute": "Jeśli ekran nie przejdzie dalej po 1 minucie, sprawdź pocztę.", + "profile": "Profil", + "provider_error": "${provider} pomyłka", + "public_key": "Klucz publiczny", + "purchase_gift_card": "Kup kartę podarunkową", + "qr_fullscreen": "Dotknij, aby otworzyć pełnoekranowy kod QR", + "qr_payment_amount": "Ten kod QR zawiera kwotę do zapłaty. Czy chcesz nadpisać obecną wartość?", + "question_to_disable_2fa": "Czy na pewno chcesz wyłączyć Cake 2FA? Kod 2FA nie będzie już potrzebny do uzyskania dostępu do portfela i niektórych funkcji.", + "receivable_balance": "Saldo należności", + "receive": "Otrzymaj", + "receive_amount": "Ilość", + "received": "Odebrane", + "recipient_address": "Adres odbiorcy", + "reconnect": "Połącz ponownie", + "reconnect_alert_text": "Czy na pewno ponownie się ponownie połączysz?", + "reconnection": "Ponowne łączenie", + "redeemed": "wykupione", + "refund_address": "Adres do zwrotu", + "reject": "Odrzucić", + "remaining": "pozostałe", + "remove": "Usuń", + "remove_node": "Usuń węzeł", + "remove_node_message": "Czy na pewno chcesz usunąć wybrany węzeł?", + "rename": "Zmień nazwę", + "require_for_adding_contacts": "Wymagane do dodania kontaktów", + "require_for_all_security_and_backup_settings": "Wymagaj dla wszystkich ustawień zabezpieczeń i kopii zapasowych", + "require_for_assessing_wallet": "Wymagaj dostępu do portfela", + "require_for_creating_new_wallets": "Wymagane do tworzenia nowych portfeli", + "require_for_exchanges_to_external_wallets": "Wymagaj wymiany na portfele zewnętrzne", + "require_for_exchanges_to_internal_wallets": "Wymagaj wymiany do portfeli wewnętrznych", + "require_for_sends_to_contacts": "Wymagaj wysyłania do kontaktów", + "require_for_sends_to_internal_wallets": "Wymagaj wysyłania do portfeli wewnętrznych", + "require_for_sends_to_non_contacts": "Wymagaj wysyłania do osób niekontaktowych", + "require_pin_after": "Wymagaj kodu PIN po", + "rescan": "Skanuj ponownie", + "resend_code": "Wyślij go ponownie", + "reset": "Wyczyść", + "reset_password": "Zresetuj hasło", + "restore_active_seed": "Aktywne seedy", + "restore_address": "Adres", + "restore_bitcoin_description_from_keys": "Przywróć swój portfel z klucza prywatnego", + "restore_bitcoin_description_from_seed": "Przywróć swój portfel z frazy seed złożonej z 24 słów", + "restore_bitcoin_title_from_keys": "Przywróć z klucza prywatnego", + "restore_description_from_backup": "Możesz przywrócić całą aplikację Cake Wallet z pliku kopii zapasowej", + "restore_description_from_keys": "Przywróć swój portfel z kluczy prywatnych", + "restore_description_from_seed": "Przywróć swój portfel z 25 lub 13-słownej frazy seed", + "restore_description_from_seed_keys": "Odzyskaj swój portfel z seedów / kluczy, które zapisałeś w bezpiecznym miejscu", + "restore_from_date_or_blockheight": "Wprowadź datę na kilka dni przed utworzeniem tego portfela, lub jeśli znasz wysokość bloku, wprowadź go zamiast daty", + "restore_from_seed_placeholder": "Wpisz lub wklej tutaj swoją frazę seed", + "restore_new_seed": "Nowy seed", + "restore_next": "Kolejny", + "restore_recover": "Przywróć", + "restore_restore_wallet": "Przywróć portfel", + "restore_seed_keys_restore": "Przywracanie seedów / kluczy", + "restore_spend_key_private": "Podaj prywatny klucz wglądu (view key)", + "restore_title_from_backup": "Przywróć z pliku kopii zapasowej", + "restore_title_from_keys": "Przywróć z kluczy", + "restore_title_from_seed": "Przywróć z seedów", + "restore_title_from_seed_keys": "Przywróć z seedów / kluczy", + "restore_view_key_private": "Podaj klucz prywatny", + "restore_wallet": "Przywróć portfel", + "restore_wallet_name": "Nazwa portfela", + "restore_wallet_restore_description": "Przywracanie portfela", + "router_no_route": "Brak zdefiniowanej trasy dla ${name}", + "save": "Zapisz", + "save_backup_password": "Upewnij się, że zapisałeś swoje hasło kopii zapasowej. Bez tego nie będziesz mógł zaimportować pliku kopii zapasowej.", + "save_backup_password_alert": "Zapisz hasło kopii zapasowej", + "save_to_downloads": "Zapisz w Pobranych", + "saved_the_trade_id": "Zapisałem ID", + "scan_qr_code": "Skanowania QR code", + "scan_qr_code_to_get_address": "Zeskanuj kod QR, aby uzyskać adres", + "scan_qr_on_device": "Zeskanuj ten kod QR na innym urządzeniu", + "search": "Szukaj", + "search_add_token": "Wyszukaj / Dodaj token", + "search_category": "Kategoria wyszukiwania", + "search_currency": "Wyszukaj walutę", + "search_language": "Wyszukaj język", + "second_intro_content": "Twój Yat to jeden unikalny adres emoji, który zastępuje wszystkie Twoje długie adresy szesnastkowe dla wszystkich Twoich walut.", + "second_intro_title": "Jeden adres emoji, aby zarzadzać wszystkimi walutami", + "security_and_backup": "Bezpieczeństwo i kopia zapasowa", + "seed_alert_back": "Wróć", + "seed_alert_content": "Fraza Seed to jedyny sposób na odzyskanie portfela. Zapisałeś ją?", + "seed_alert_title": "Uwaga", + "seed_alert_yes": "Tak", + "seed_choose": "Wybierz język", "seed_hex_form": "Nasiona portfela (forma sześciokątna)", + "seed_key": "Klucz nasion", + "seed_language": "Język nasion", + "seed_language_chinese": "Chiński", + "seed_language_chinese_traditional": "Chiński tradycyjny)", + "seed_language_czech": "Czech", + "seed_language_dutch": "Holenderski", + "seed_language_english": "Angielski", + "seed_language_french": "Francuski", + "seed_language_german": "Niemiecki", + "seed_language_italian": "Włoski", + "seed_language_japanese": "Japoński", + "seed_language_korean": "koreański", + "seed_language_next": "Następny", + "seed_language_portuguese": "Portugalski", + "seed_language_russian": "Rosyjski", + "seed_language_spanish": "Hiszpański", + "seed_phrase_length": "Długość frazy początkowej", + "seed_reminder": "Musisz zapisać tą fraze, bo bez niej możesz nie odzyskać portfela!", + "seed_share": "Udostępnij seed", + "seed_title": "Seed", "seedtype": "Sedtype", "seedtype_legacy": "Dziedzictwo (25 słów)", "seedtype_polyseed": "Poliqueed (16 słów)", - "seed_language_czech": "Czech", - "seed_language_korean": "koreański", - "seed_language_chinese_traditional": "Chiński tradycyjny)", - "ascending": "Wznoszący się", - "descending": "Schodzenie", - "dfx_option_description": "Kupuj kryptowaluty za EUR i CHF. Do 990 € bez dodatkowego KYC. Dla klientów detalicznych i korporacyjnych w Europie", - "polygonscan_history": "Historia PolygonScan", - "wallet_seed_legacy": "Dziedziczne ziarno portfela", - "default_sell_provider": "Domyślny dostawca sprzedaży", + "select_backup_file": "Wybierz plik kopii zapasowej", + "select_buy_provider_notice": "Wybierz powyższe dostawcę zakupu. Możesz pominąć ten ekran, ustawiając domyślnego dostawcę zakupu w ustawieniach aplikacji.", + "select_destination": "Wybierz miejsce docelowe dla pliku kopii zapasowej.", "select_sell_provider_notice": "Wybierz dostawcę sprzedaży powyżej. Możesz pominąć ten ekran, ustawiając domyślnego dostawcę sprzedaży w ustawieniach aplikacji.", - "custom_drag": "Niestandardowe (trzymaj i przeciągnij)", + "sell": "Sprzedać", + "sell_alert_content": "Obecnie obsługujemy tylko sprzedaż Bitcoin, Ethereum i Litecoin. Utwórz lub przełącz się na swój portfel Bitcoin, Ethereum lub Litecoin.", + "sell_monero_com_alert_content": "Sprzedaż Monero nie jest jeszcze obsługiwana", + "send": "Wyślij", + "send_address": "Adres ${cryptoCurrency}", + "send_amount": "Ilość:", + "send_creating_transaction": "Tworzenie transakcji", + "send_error_currency": "Waluta może zawierać tylko cyfry", + "send_error_minimum_value": "Minimalna wartość to 0,01", + "send_estimated_fee": "Szacowana opłata:", + "send_fee": "Opłata:", + "send_name": "Imię", + "send_new": "Nowy", + "send_payment_id": "Identyfikator płatności (opcjonalny)", + "send_priority": "Obecnie opłata ustalona jest na ${transactionPriority} priorytet.\nPriorytet transakcji można zmienić w ustawieniach", + "send_sending": "Wysyłanie...", + "send_success": "Twoje ${crypto} zostało pomyślnie wysłane", + "send_templates": "Szablony", + "send_title": "Wyślij", + "send_to_this_address": "Wyślij ${currency} ${tag}na ten adres", + "send_xmr": "Wyślij XMR", + "send_your_wallet": "Twój portfel", + "sending": "Wysyłanie", + "sent": "Wysłano", + "settings": "Ustawienia", + "settings_all": "Wszystkie", + "settings_allow_biometrical_authentication": "Zezwalaj na uwierzytelnianie biometryczne", + "settings_can_be_changed_later": "Te ustawienia można później zmienić w ustawieniach aplikacji", + "settings_change_language": "Zmień język", + "settings_change_pin": "Zmień PIN", + "settings_currency": "Waluta", + "settings_current_node": "Bieżący węzeł", + "settings_dark_mode": "Tryb ciemny", + "settings_display_balance": "Wyświetl saldo", + "settings_display_on_dashboard_list": "Wyświetl na pulpicie", + "settings_fee_priority": "Priorytet opłaty", + "settings_nodes": "Węzły", + "settings_none": "Żaden", + "settings_only_trades": "Tylko transakcje", + "settings_only_transactions": "Tylko transakcje", + "settings_personal": "Osobiste", + "settings_save_recipient_address": "Zapisz adres odbiorcy", + "settings_support": "Wsparcie", + "settings_terms_and_conditions": "Zasady i warunki", + "settings_title": "Ustawienia", + "settings_trades": "Transakcje", + "settings_transactions": "Transakcje", + "settings_wallets": "Portfele", + "setup_2fa": "Skonfiguruj ciasto 2FA", + "setup_2fa_text": "Cake 2FA działa przy użyciu TOTP jako drugiego czynnika uwierzytelniającego.\n\nTOTP Cake 2FA wymaga obsługi SHA-512 i 8 cyfr; zapewnia to większe bezpieczeństwo. Więcej informacji i obsługiwane aplikacje znajdziesz w przewodniku.", + "setup_pin": "Ustaw PIN", + "setup_successful": "Twój kod PIN został pomyślnie skonfigurowany!", + "setup_totp_recommended": "Skonfiguruj TOTP", + "setup_warning_2fa_text": "Będziesz musiał przywrócić swój portfel z nasion mnemonicznych.\n\nWsparcie Cake nie będzie w stanie Ci pomóc, jeśli utracisz dostęp do swoich nasion 2FA lub mnemoników.\nCake 2FA to drugie uwierzytelnienie niektórych działań w portfelu. Przed użyciem Cake 2FA zalecamy zapoznanie się z instrukcją.NIE jest tak bezpieczne jak przechowywanie w chłodni.\n\nJeśli utracisz dostęp do aplikacji 2FA lub kluczy TOTP, UTRAcisz dostęp do tego portfela. ", + "setup_your_debit_card": "Skonfiguruj swoją kartę debetową", + "share": "Udział", + "share_address": "Udostępnij adres", + "show_details": "Pokaż szczegóły", + "show_keys": "Pokaż seed/klucze", + "show_market_place": "Pokaż rynek", + "show_seed": "Pokaż frazy seed", + "sign_up": "Zarejestruj się", + "signTransaction": "Podpisz transakcję", + "signup_for_card_accept_terms": "Zarejestruj się, aby otrzymać kartę i zaakceptuj warunki.", + "slidable": "Przesuwne", + "sort_by": "Sortuj według", + "spend_key_private": "Klucz prywatny", + "spend_key_public": "Klucz publiczny", + "status": "Status: ", + "subaddress_title": "Lista podadresów", + "subaddresses": "Podadresy", + "submit_request": "Złóż wniosek", + "successful": "Udany", + "support_description_guides": "Dokumentacja i wsparcie dla typowych problemów", + "support_description_live_chat": "Darmowe i szybkie! Do pomocy są dostępni przeszkoleni przedstawiciele wsparcia", + "support_description_other_links": "Dołącz do naszych społeczności lub skontaktuj się z nami naszymi partnerami za pomocą innych metod", + "support_title_guides": "Przewodniki portfela ciasta", + "support_title_live_chat": "Wsparcie na żywo", + "support_title_other_links": "Inne linki wsparcia", + "sweeping_wallet": "Zamiatanie portfela", + "sweeping_wallet_alert": "To nie powinno zająć dużo czasu. NIE WYCHODŹ Z TEGO EKRANU, W PRZECIWNYM WYPADKU MOŻE ZOSTAĆ UTRACONA ŚRODKI", + "switchToETHWallet": "Przejdź na portfel Ethereum i spróbuj ponownie", "switchToEVMCompatibleWallet": "Przejdź na portfel zgodny z EVM i spróbuj ponownie (Ethereum, Polygon)", - "receivable_balance": "Saldo należności", - "confirmed_tx": "Potwierdzony", + "symbol": "Symbol", + "sync_all_wallets": "Synchronizuj wszystkie portfele", + "sync_status_attempting_sync": "PRÓBA SYNCHRONIZACJI", + "sync_status_connected": "POŁĄCZONY", + "sync_status_connecting": "ŁĄCZENIE", + "sync_status_failed_connect": "POŁĄCZENIE NIEUDANE", + "sync_status_not_connected": "NIE POŁĄCZONY", + "sync_status_starting_sync": "ROZPOCZĘCIE SYNCHRONIZACJI", + "sync_status_syncronized": "ZSYNCHRONIZOWANO", + "sync_status_syncronizing": "SYNCHRONIZACJA", + "syncing_wallet_alert_content": "Twoje saldo i lista transakcji mogą nie być kompletne, dopóki u góry nie pojawi się napis „SYNCHRONIZOWANY”. Kliknij/stuknij, aby dowiedzieć się więcej.", + "syncing_wallet_alert_title": "Twój portfel się synchronizuje", + "template": "Szablon", + "template_name": "Nazwa szablonu", + "third_intro_content": "Yats mieszkają również poza Cake Wallet. Każdy adres portfela na ziemi można zastąpić Yat!", + "third_intro_title": "Yat ładnie bawi się z innymi", + "time": "${minutes}m ${seconds}s", + "tip": "wskazówka:", + "today": "Dzisiaj", + "token_contract_address": "Adres kontraktu tokena", + "token_decimal": "Token dziesiętny", + "token_name": "Nazwa tokena, np.: Tether", + "token_symbol": "Symbol tokena np.: USDT", + "tokenID": "ID", + "tor_connection": "Połączenie Torem", + "tor_only": "Tylko sieć Tor", + "total_saving": "Całkowite oszczędności", + "totp_2fa_failure": "Błędny kod. Spróbuj użyć innego kodu lub wygeneruj nowy tajny klucz. Użyj kompatybilnej aplikacji 2FA, która obsługuje 8-cyfrowe kody i SHA512.", + "totp_2fa_success": "Powodzenie! Cake 2FA włączony dla tego portfela. Pamiętaj, aby zapisać swoje mnemoniczne ziarno na wypadek utraty dostępu do portfela.", + "totp_auth_url": "Adres URL TOTP AUTH", + "totp_code": "Kod TOTP", + "totp_secret_code": "Tajny kod TOTP", + "totp_verification_success": "Weryfikacja powiodła się!", + "trade_details_copied": "${title} skopiowane do schowka", + "trade_details_created_at": "Utworzono ", + "trade_details_fetching": "Pobieranie", + "trade_details_id": "ID", + "trade_details_pair": "Para", + "trade_details_provider": "Dostawca", + "trade_details_state": "Status", + "trade_details_title": "Szczegóły transakcji", + "trade_for_not_created": "Wymiana za ${title} nie została utworzona.", + "trade_history_title": "Historia wymian", + "trade_id": "ID transakcji:", + "trade_id_not_found": "Transakcja ${tradeId} ${title} nie znaleziona.", + "trade_is_powered_by": "Ta wymiana jest obsługiwana przez ${provider}", + "trade_not_created": "Wymiana nie została utworzona", + "trade_not_found": "Nie znaleziono transakcji.", + "trade_state_btc_sent": "Wysłanie", + "trade_state_complete": "Ukończona", + "trade_state_confirming": "Potwierdzanie", + "trade_state_created": "Stworzona", + "trade_state_finished": "Zakończona", + "trade_state_paid": "Opłacona", + "trade_state_paid_unconfirmed": "Transakcja niepotwierdzona", + "trade_state_pending": "Oczekująca", + "trade_state_timeout": "Koniec czasu", + "trade_state_to_be_created": "Została stworzona", + "trade_state_traded": "Wymienione", + "trade_state_trading": "Wymiana", + "trade_state_underpaid": "Niedopłacone", + "trade_state_unpaid": "Nie opłacona", + "trades": "Transakcje", + "transaction_details_amount": "Ilość", + "transaction_details_copied": "${title} skopiowane do schowka", + "transaction_details_date": "Data", + "transaction_details_fee": "Opłata", + "transaction_details_height": "Wysokość Bloku", + "transaction_details_recipient_address": "Adres odbiorcy", "transaction_details_source_address": "Adres źródłowy", - "pause_wallet_creation": "Możliwość utworzenia Portfela Haven jest obecnie wstrzymana.", - "contractName": "Nazwa umowy", - "contractSymbol": "Symbol kontraktu", - "description": "Opis", - "camera_consent": "Twój aparat zostanie użyty do przechwycenia obrazu w celach identyfikacyjnych przez ${provider}. Aby uzyskać szczegółowe informacje, sprawdź ich Politykę prywatności.", - "no_relays": "Żadnych przekaźników", - "choose_relay": "Wybierz przekaźnik, którego chcesz użyć", - "no_relays_message": "Znaleźliśmy rekord Nostr NIP-05 dla tego użytkownika, ale nie zawiera on żadnych przekaźników. Poinstruuj odbiorcę, aby dodał przekaźniki do swojego rekordu Nostr.", - "no_relay_on_domain": "Brak przekaźnika dla domeny użytkownika lub przekaźnik jest niedostępny. Wybierz przekaźnik, którego chcesz użyć." -} + "transaction_details_title": "Szczegóły transakcji", + "transaction_details_transaction_id": "ID Trancakcji", + "transaction_key": "Klucz transakcji", + "transaction_priority_fast": "Szybka", + "transaction_priority_fastest": "Najszybsza", + "transaction_priority_medium": "Średnia", + "transaction_priority_regular": "Regularna", + "transaction_priority_slow": "Wolna(Zalecane)", + "transaction_sent": "Transakcja wysłana!", + "transaction_sent_notice": "Jeśli ekran nie zmieni się po 1 minucie, sprawdź eksplorator bloków i swój e-mail.", + "transactions": "Transakcje", + "transactions_by_date": "Transakcje według daty", + "trusted": "Zaufany", + "unavailable_balance": "Niedostępne saldo", + "unavailable_balance_description": "Niedostępne saldo: Suma ta obejmuje środki zablokowane w transakcjach oczekujących oraz te, które aktywnie zamroziłeś w ustawieniach kontroli monet. Zablokowane salda staną się dostępne po zakończeniu odpowiednich transakcji, natomiast zamrożone salda pozostaną niedostępne dla transakcji, dopóki nie zdecydujesz się ich odblokować.", + "unconfirmed": "Niepotwierdzone saldo", + "understand": "Rozumiem", + "unmatched_currencies": "Waluta Twojego obecnego portfela nie zgadza się z waluctą zeskanowanego kodu QR", + "unspent_change": "Zmiana", + "unspent_coins_details_title": "Szczegóły niewydanych monet", + "unspent_coins_title": "Niewydane monety", + "unsupported_asset": "Nie obsługujemy tego działania w przypadku tego zasobu. Utwórz lub przełącz się na portfel obsługiwanego typu aktywów.", + "upto": "do ${value}", + "use": "Użyj ", + "use_card_info_three": "Użyj cyfrowej karty online lub za pomocą zbliżeniowych metod płatności.", + "use_card_info_two": "Środki są przeliczane na USD, gdy są przechowywane na koncie przedpłaconym, a nie w walutach cyfrowych.", + "use_ssl": "Użyj SSL", + "use_suggested": "Użyj sugerowane", + "variable_pair_not_supported": "Ta para zmiennych nie jest obsługiwana na wybranych giełdach", + "verification": "Weryfikacja", + "verify_with_2fa": "Sprawdź za pomocą Cake 2FA", + "version": "Wersja ${currentVersion}", + "view_all": "Wyświetl wszystko", + "view_in_block_explorer": "Zobacz w eksploratorze bloków", + "view_key_private": "Prywatny Klucz Wglądu", + "view_key_public": "Publiczny Klucz Wglądu", + "view_transaction_on": "Zobacz transakcje na ", + "wallet_keys": "Klucze portfela", + "wallet_list_create_new_wallet": "Utwórz nowy portfel", + "wallet_list_edit_wallet": "Edytuj portfel", + "wallet_list_failed_to_load": "Nie udało się załadować ${wallet_name} portfel. ${error}", + "wallet_list_failed_to_remove": "Nie udało się usunąć ${wallet_name} portfel. ${error}", + "wallet_list_load_wallet": "Załaduj portfel", + "wallet_list_loading_wallet": "Ładuję ${wallet_name} portfel", + "wallet_list_removing_wallet": "Usuwanie ${wallet_name} portfel", + "wallet_list_restore_wallet": "Przywróć portfel", + "wallet_list_title": "Portfel Monero", + "wallet_list_wallet_name": "Nazwa portfela", + "wallet_menu": "Menu portfela", + "wallet_name": "Nazwa portfela", + "wallet_name_exists": "Portfel o tej nazwie już istnieje", + "wallet_restoration_store_incorrect_seed_length": "Nieprawidłowa długość frazy seed", + "wallet_seed": "Seed portfela", + "wallet_seed_legacy": "Dziedziczne ziarno portfela", + "wallet_store_monero_wallet": "Portfel Monero", + "walletConnect": "PortfelPołącz", + "wallets": "Portfele", + "warning": "Ostrzeżenie", + "welcome": "Witamy w", + "welcome_to_cakepay": "Witamy w Cake Pay!", + "widgets_address": "Adres", + "widgets_or": "lub", + "widgets_restore_from_blockheight": "Przywróć z wysokości bloku", + "widgets_restore_from_date": "Przywróć od daty", + "widgets_seed": "Seed", + "wouoldLikeToConnect": "chciałbym się połączyć", + "write_down_backup_password": "Zapisz swoje hasło kopii zapasowej, które jest używane do importowania plików kopii zapasowych.", + "xlm_extra_info": "Nie zapomnij podać dodatkowego identyfikatora (memo) podczas wysyłania transakcji XLM do wymiany", + "xmr_available_balance": "Dostępne środki", + "xmr_full_balance": "Pełne saldo", + "xmr_hidden": "Ukryty", + "xmr_to_error": "Błąd XMR.TO", + "xmr_to_error_description": "Nieprawidłowa kwota. Maksymalny limit to 8 cyfr po przecinku", + "xrp_extra_info": "Nie zapomnij podać tagu docelowego podczas wysyłania transakcji XRP do wymiany", + "yat": "Yat", + "yat_address": "Adres Yat", + "yat_alert_content": "Użytkownicy Cake Wallet mogą teraz wysyłać i odbierać wszystkie swoje ulubione waluty za pomocą jedynej w swoim rodzaju nazwy użytkownika opartej na emoji.", + "yat_alert_title": "Łatwiejsze wysyłanie i odbieranie kryptowalut dzięki Yat", + "yat_error": "Błąd Yat", + "yat_error_content": "Brak adresów powiązanych z tym Yat. Wypróbuj inny Yat", + "yat_popup_content": "Możesz teraz wysyłać i odbierać krypto w Cake Wallet za pomocą swojego Yat – krótkiej nazwy użytkownika opartej na emotikonach. Zarządzaj Yats w dowolnym momencie na ekranie ustawień", + "yat_popup_title": "Twój adres portfela może być zemotkowany.", + "yesterday": "Wczoraj", + "you_now_have_debit_card": "Masz teraz kartę debetową", + "you_pay": "Płacisz", + "you_will_get": "Konwertuj na", + "you_will_send": "Konwertuj z", + "yy": "RR", + "zzzz": "Zzzz" +} \ No newline at end of file diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 7cfd261eb..1f80c62d9 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -1,778 +1,779 @@ { - "welcome": "Bem-vindo ao", - "cake_wallet": "Cake Wallet", - "first_wallet_text": "Carteira incrível para Monero, Bitcoin, Ethereum, Litecoin, e Haven", - "please_make_selection": "Escolha se quer criar uma carteira nova ou restaurar uma antiga.", - "create_new": "Criar nova carteira", - "restore_wallet": "Restaurar carteira", - "monero_com": "Monero.com by Cake Wallet", - "monero_com_wallet_text": "Awesome wallet for Monero", - "haven_app": "Haven by Cake Wallet", - "haven_app_wallet_text": "Awesome wallet for Haven", - "accounts": "Contas", - "edit": "Editar", + "about_cake_pay": "O Cake Pay permite que você compre facilmente cartões-presente com ativos virtuais, que podem ser gastos instantaneamente em mais de 150.000 comerciantes nos Estados Unidos.", "account": "Conta", + "accounts": "Contas", + "accounts_subaddresses": "Contas e sub-endereços", + "activate": "Ativar", + "active": "Ativo", + "active_cards": "Cartões ativos", + "activeConnectionsPrompt": "Conexões ativas aparecerão aqui", "add": "Adicionar", + "add_contact": "Adicionar contato", + "add_custom_node": "Adicionar novo nó personalizado", + "add_custom_redemption": "Adicionar resgate personalizado", + "add_fund_to_card": "Adicionar fundos pré-pagos aos cartões (até ${value})", + "add_new_node": "Adicionar novo nó", + "add_new_word": "Adicionar nova palavra", + "add_receiver": "Adicione outro receptor (opcional)", + "add_secret_code": "Ou adicione este código secreto a um aplicativo autenticador", + "add_tip": "Adicionar Dica", + "add_token_disclaimer_check": "Confirmei o endereço e as informações do contrato de token usando uma fonte confiável. Adicionar informações maliciosas ou incorretas pode resultar em perda de fundos.", + "add_token_warning": "Não edite ou adicione tokens de acordo com as instruções dos golpistas.\nSempre confirme os endereços de token com fontes confiáveis!", + "add_value": "Adicionar valor", + "address": "Endereço", "address_book": "Livro de endereços", - "contact": "Contato", - "please_select": "Escolha abaixo:", - "cancel": "Cancelar", - "ok": "Ok", - "contact_name": "Nome do contato", - "reset": "Limpar", - "save": "Salvar", + "address_book_menu": "Livro de endereços", + "address_detected": "Endereço detectado", + "address_from_domain": "Este endereço é de ${domain} em Unstoppable Domains", + "address_from_yat": "Este endereço é de ${emoji} em Yat", + "address_label": "Address label", "address_remove_contact": "Remover contato", "address_remove_content": "Tem certeza de que deseja remover o contato selecionado?", - "authenticated": "Autenticado", - "authentication": "Autenticação", - "failed_authentication": "Falha na autenticação. ${state_error}", - "wallet_menu": "Menu", - "Blocks_remaining": "${status} blocos restantes", - "please_try_to_connect_to_another_node": "Por favor, tente conectar-se a outro nó", - "xmr_hidden": "Esconder saldo", - "xmr_available_balance": "Saldo disponível", - "xmr_full_balance": "Saldo total", - "send": "Enviar", - "receive": "Receber", - "transactions": "Transações", - "incoming": "Recebidas", - "outgoing": "Enviadas", - "transactions_by_date": "Transações por data", - "trades": "Trocas", - "filter_by": "Filtrar por", - "today": "Hoje", - "yesterday": "Ontem", - "received": "Recebida", - "sent": "Enviada", - "pending": " (pendente)", - "rescan": "Reescanear", - "reconnect": "Reconectar", - "wallets": "Carteiras", - "show_seed": "Mostrar semente", - "show_keys": "Mostrar semente/chaves", - "address_book_menu": "Livro de endereços", - "reconnection": "Reconectar", - "reconnect_alert_text": "Você tem certeza de que deseja reconectar?", - "exchange": "Trocar", - "clear": "Limpar", - "refund_address": "Endereço de reembolso", - "change_exchange_provider": "Alterar o provedor de troca", - "you_will_send": "Converter de", - "you_will_get": "Converter para", - "amount_is_guaranteed": "O valor recebido é garantido", - "amount_is_estimate": "O valor a ser recebido informado acima é uma estimativa", - "powered_by": "Troca realizada por ${title}", - "error": "Erro", - "estimated": "Estimado", - "min_value": "Mín: ${value} ${currency}", - "max_value": "Máx: ${value} ${currency}", - "change_currency": "Alterar moeda", - "overwrite_amount": "Overwrite amount", - "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", - "copy_id": "Copiar ID", - "exchange_result_write_down_trade_id": "Copie ou anote o ID da troca para continuar.", - "trade_id": "ID da troca:", - "copied_to_clipboard": "Copiado para a área de transferência", - "saved_the_trade_id": "ID da troca salvo", - "fetching": "Buscando", - "id": "ID: ", - "amount": "Quantia: ", - "payment_id": "ID de pagamento: ", - "status": "Status: ", - "offer_expires_in": "A oferta expira em: ", - "trade_is_powered_by": "Troca realizada por ${provider}", - "copy_address": "Copiar endereço", - "exchange_result_confirm": "Ao confirmar, você enviará ${fetchingLabel} ${from} da sua carteira ${walletName} para o endereço mostrado abaixo. Ou você pode enviar de sua carteira externa para o endereço abaixo/código QR acima.\n\nPressione Confirmar para continuar ou volte para alterar os valores.", - "exchange_result_description": "Você deve enviar no mínimo ${fetchingLabel} ${from} para o endereço mostrado na próxima página. Se você enviar um valor inferior a ${fetchingLabel} ${from}, ele pode não ser convertido e pode não ser reembolsado.", - "exchange_result_write_down_ID": "*Copie ou anote seu ID mostrado acima.", - "confirm": "Confirmar", - "confirm_sending": "Confirmar o envio", - "commit_transaction_amount_fee": "Confirmar transação\nQuantia: ${amount}\nTaxa: ${fee}", - "sending": "Enviando", - "transaction_sent": "Transação enviada!", - "expired": "Expirada", - "time": "${minutes}m ${seconds}s", - "send_xmr": "Enviar XMR", - "exchange_new_template": "Novo modelo", - "faq": "FAQ", - "enter_your_pin": "Insira seu PIN", - "loading_your_wallet": "Abrindo sua carteira", - "new_wallet": "Nova carteira", - "wallet_name": "Nome da carteira", - "continue_text": "Continuar", - "choose_wallet_currency": "Escolha a moeda da carteira:", - "node_new": "Novo nó", - "node_address": "Endereço do nó", - "node_port": "Porta do nó", - "login": "Login", - "password": "Senha", - "nodes": "Nós", - "node_reset_settings_title": "Redefinir configurações", - "nodes_list_reset_to_default_message": "Você realmente deseja redefinir as configurações para o padrão?", - "change_current_node": "Você realmente deseja alterar o nó atual para ${node}?", - "change": "Mudar", - "remove_node": "Remover nó", - "remove_node_message": "Você realmente deseja remover o nó selecionado?", - "remove": "Remover", - "delete": "Excluir", - "add_new_node": "Adicionar novo nó", - "change_current_node_title": "Mudar o nó atual", - "node_test": "Teste", - "node_connection_successful": "A conexão foi bem sucedida", - "node_connection_failed": "A conexão falhou", - "new_node_testing": "Teste de novo nó", - "use": "Use PIN de ", - "digit_pin": "dígitos", - "share_address": "Compartilhar endereço", - "receive_amount": "Quantia", - "subaddresses": "Sub-endereços", "addresses": "Endereços", - "scan_qr_code_to_get_address": "Digitalize o código QR para obter o endereço", - "qr_fullscreen": "Toque para abrir o código QR em tela cheia", - "rename": "Renomear", - "choose_account": "Escolha uma conta", - "create_new_account": "Criar nova conta", - "accounts_subaddresses": "Contas e sub-endereços", - "restore_restore_wallet": "Restaurar carteira", - "restore_title_from_seed_keys": "Restaurar a partir de sementes/chaves", - "restore_description_from_seed_keys": "Restaure a sua carteira a partir de sementes/chaves que você salvou em um local seguro", - "restore_next": "Próximo", - "restore_title_from_backup": "Restaurar a partir de um arquivo de backup", - "restore_description_from_backup": "Você pode restaurar todo o aplicativo Cake Wallet de seu arquivo de backup", - "restore_seed_keys_restore": "Restauração com sementes/chaves", - "restore_title_from_seed": "Restaurar a partir de semente", - "restore_description_from_seed": "Restaure sua carteira a partir de semente com 25 palavras ou 13 palavras", - "restore_title_from_keys": "Restaurar a partir de chaves", - "restore_description_from_keys": "Restaure sua carteira a partir de suas chaves privadas", - "restore_wallet_name": "Nome da carteira", - "restore_address": "Endereço", - "restore_view_key_private": "Chave de visualização (privada)", - "restore_spend_key_private": "Chave de gastos (privada)", - "restore_recover": "Restaurar", - "restore_wallet_restore_description": "Restauração da carteira", - "restore_new_seed": "Nova semente", - "restore_active_seed": "Semente ativa", - "restore_bitcoin_description_from_seed": "Restaure sua carteira a partir de um código de combinação de 24 palavras", - "restore_bitcoin_description_from_keys": "Restaure sua carteira a partir da string WIF gerada de suas chaves privadas", - "restore_bitcoin_title_from_keys": "Restaurar de WIF", - "restore_from_date_or_blockheight": "Insira uma data alguns dias antes de criar esta carteira. Ou se você souber a altura do bloco, insira-o", - "seed_reminder": "Anote-os para o caso de perder ou limpar seu telefone", - "seed_title": "Semente", - "seed_share": "Compartilhar semente", - "copy": "Copiar", - "seed_language": "Linguagem de semente", - "seed_choose": "Escolha o idioma da semente", - "seed_language_next": "Próximo", - "seed_language_english": "Inglesa", - "seed_language_chinese": "Chinesa", - "seed_language_dutch": "Holandesa", - "seed_language_german": "Alemã", - "seed_language_japanese": "Japonês", - "seed_language_portuguese": "Português", - "seed_language_russian": "Russa", - "seed_language_spanish": "Espanhola", - "seed_language_french": "Francesa/Francês", - "seed_language_italian": "Italiana/Italiano", - "send_title": "Enviar", - "send_your_wallet": "Sua carteira", - "send_address": "Endereço ${cryptoCurrency}", - "send_payment_id": "ID de pagamento (opcional)", + "advanced_settings": "Configurações avançadas", + "aggressive": "excessivamente zeloso", + "agree": "Concordo", + "agree_and_continue": "Concordar e continuar", + "agree_to": "Ao criar conta você concorda com ", "all": "TUDO", - "send_error_minimum_value": "O valor mínimo da quantia é 0,01", - "send_error_currency": "A moeda só pode conter números", - "send_estimated_fee": "Taxa estimada:", - "send_priority": "Atualmente, a taxa está definida para a prioridade: ${transactionPriority}.\nA prioridade da transação pode ser ajustada nas configurações", - "send_creating_transaction": "Criando transação", - "send_templates": "Modelos", - "send_new": "Novo", - "send_amount": "Montante:", - "send_fee": "Taxa:", - "send_name": "Nome", - "got_it": "Entendi", - "send_sending": "Enviando...", - "send_success": "Seu ${crypto} foi enviado com sucesso", - "settings_title": "Configurações", - "settings_nodes": "Nós", - "settings_current_node": "Nó atual", - "settings_wallets": "Carteiras", - "settings_display_balance": "Exibir saldo", - "settings_currency": "Moeda", - "settings_fee_priority": "Prioridade da taxa", - "settings_save_recipient_address": "Salvar endereço do destinatário", - "settings_personal": "Pessoal", - "settings_change_pin": "Mudar PIN", - "settings_change_language": "Mudar idioma", - "settings_allow_biometrical_authentication": "Permitir autenticação biométrica", - "settings_dark_mode": "Modo noturno", - "settings_transactions": "Transações", - "settings_trades": "Trocas", - "settings_display_on_dashboard_list": "Exibir no histórico", - "settings_all": "Tudo", - "settings_only_trades": "Somente trocas", - "settings_only_transactions": "Somente transações", - "settings_none": "Nada", - "settings_support": "Suporte", - "settings_terms_and_conditions": "Termos e Condições", - "pin_is_incorrect": "PIN incorreto", - "setup_pin": "Configurar PIN", - "enter_your_pin_again": "Insira seu PIN novamente", - "setup_successful": "Seu PIN foi configurado com sucesso!", - "wallet_keys": "Semente/chaves da carteira", - "wallet_seed": "Semente de carteira", - "private_key": "Chave privada", - "public_key": "Chave pública", - "view_key_private": "Chave de visualização (privada)", - "view_key_public": "Chave de visualização (pública)", - "spend_key_private": "Chave de gastos (privada)", - "spend_key_public": "Chave de gastos (pública)", - "copied_key_to_clipboard": "${key} copiada para a área de transferência", - "new_subaddress_title": "Novo endereço", - "new_subaddress_label_name": "Nome", - "new_subaddress_create": "Criar", - "address_label": "Address label", - "subaddress_title": "Sub-endereços", - "trade_details_title": "Detalhes da troca", - "trade_details_id": "ID", - "trade_details_state": "Status", - "trade_details_fetching": "Buscando", - "trade_details_provider": "Provedor", - "trade_details_created_at": "Criada em", - "trade_details_pair": "Par", - "trade_details_copied": "${title} copiados para a área de transferência", - "trade_history_title": "Histórico de trocas", - "transaction_details_title": "Detalhes da transação", - "transaction_details_transaction_id": "ID da transação", - "transaction_details_date": "Data", - "transaction_details_height": "Altura", - "transaction_details_amount": "Quantia", - "transaction_details_fee": "Taxa", - "transaction_details_copied": "${title} copiados para a área de transferência", - "transaction_details_recipient_address": "Endereços de destinatários", - "wallet_list_title": "Carteira Monero", - "wallet_list_create_new_wallet": "Criar nova carteira", - "wallet_list_edit_wallet": "Editar carteira", - "wallet_list_wallet_name": "Nome da carteira", - "wallet_list_restore_wallet": "Restaurar carteira", - "wallet_list_load_wallet": "Abrir carteira", - "wallet_list_loading_wallet": "Abrindo a carteira ${wallet_name}", - "wallet_list_failed_to_load": "Falha ao abrir a carteira ${wallet_name}. ${error}", - "wallet_list_removing_wallet": "Removendo a carteira ${wallet_name}", - "wallet_list_failed_to_remove": "Falha ao remover a carteira ${wallet_name}. ${error}", - "widgets_address": "Endereço", - "widgets_restore_from_blockheight": "Restaurar a partir de altura do bloco", - "widgets_restore_from_date": "Restaurar a partir de data", - "widgets_or": "ou", - "widgets_seed": "Semente", - "router_no_route": "Nenhuma rota definida para ${name}", - "error_text_account_name": "O nome da conta só pode conter letras, números\ne deve ter entre 1 e 15 caracteres", - "error_text_contact_name": "O nome do contato não pode conter os símbolos ` , ' \" \ne deve ter entre 1 e 32 caracteres", - "error_text_address": "O endereço da carteira deve corresponder à\ncriptomoeda selecionada", - "error_text_node_address": "Digite um endereço iPv4", - "error_text_node_port": "A porta do nó deve conter apenas números entre 0 e 65535", - "error_text_node_proxy_address": "Insira :, por exemplo 127.0.0.1:9050", - "error_text_payment_id": "O ID de pagamento pode conter apenas de 16 a 64 caracteres em hexadecimal", - "error_text_xmr": "A quantia em XMR não pode exceder o saldo disponível.\nTO número de dígitos decimais deve ser menor ou igual a 12", - "error_text_fiat": "O valor do valor não pode exceder o saldo disponível.\nO número de dígitos decimais deve ser menor ou igual a 2", - "error_text_subaddress_name": "O nome do sub-endereço não pode conter os símbolos ` , ' \" \ne deve ter entre 1 e 20 caracteres", - "error_text_amount": "A quantia deve conter apenas números", - "error_text_wallet_name": "O nome da carteira só pode conter letras, números, _ - símbolos\ne deve ter entre 1 e 33 caracteres", - "error_text_keys": "As chaves da carteira podem conter apenas 64 caracteres em hexadecimal", - "error_text_crypto_currency": "O número de dígitos decimais\ndeve ser menor ou igual a 12", - "error_text_minimal_limit": "A troca por ${provider} não é criada. O valor é menor que o mínimo: ${min} ${currency}", - "error_text_maximum_limit": "A troca por ${provider} não é criada. O valor é superior ao máximo: ${max} ${currency}", - "error_text_limits_loading_failed": "A troca por ${provider} não é criada. Falha no carregamento dos limites", - "error_text_template": "O nome e o endereço do modelo não podem conter os símbolos ` , ' \" \ne deve ter entre 1 e 106 caracteres", + "all_trades": "Todas as negociações", + "all_transactions": "Todas as transacções", + "alphabetical": "alfabética", + "already_have_account": "Já tem uma conta?", + "always": "sempre", + "amount": "Quantia: ", + "amount_is_estimate": "O valor a ser recebido informado acima é uma estimativa", + "amount_is_guaranteed": "O valor recebido é garantido", + "and": "e", + "anonpay_description": "Gere ${type}. O destinatário pode ${method} com qualquer criptomoeda suportada e você receberá fundos nesta carteira.", + "apk_update": "Atualização de APK", + "approve": "Aprovar", + "arrive_in_this_address": "${currency} ${tag}chegará neste endereço", + "ascending": "Ascendente", + "ask_each_time": "Pergunte cada vez", "auth_store_ban_timeout": "ban_timeout", "auth_store_banned_for": "Banido por", "auth_store_banned_minutes": " minutos", "auth_store_incorrect_password": "PIN incorreto", - "wallet_store_monero_wallet": "Carteira Monero", - "wallet_restoration_store_incorrect_seed_length": "Comprimento de semente incorreto", - "full_balance": "Saldo total", - "available_balance": "Saldo disponível", - "hidden_balance": "Saldo escondido", - "sync_status_syncronizing": "SINCRONIZANDO", - "sync_status_syncronized": "SINCRONIZADO", - "sync_status_not_connected": "DESCONECTADO", - "sync_status_starting_sync": "INICIANDO SINCRONIZAÇÃO", - "sync_status_failed_connect": "DESCONECTADO", - "sync_status_connecting": "CONECTANDO", - "sync_status_connected": "CONECTADO", - "sync_status_attempting_sync": "TENTANDO SINCRONIZAR", - "transaction_priority_slow": "Lenta", - "transaction_priority_regular": "Regular", - "transaction_priority_medium": "Média", - "transaction_priority_fast": "Rápida", - "transaction_priority_fastest": "Muito rápida", - "trade_for_not_created": "A troca por ${title} não foi criada.", - "trade_not_created": "Troca não criada", - "trade_id_not_found": "A troca ${tradeId} de ${title} não foi encontrada.", - "trade_not_found": "Troca não encontrada.", - "trade_state_pending": "Pendente", - "trade_state_confirming": "Confirmando", - "trade_state_trading": "Em andamento", - "trade_state_traded": "Troca realizada", - "trade_state_complete": "Finalizada", - "trade_state_to_be_created": "A ser criada", - "trade_state_unpaid": "Não paga", - "trade_state_underpaid": "Parcialmente paga", - "trade_state_paid_unconfirmed": "Pagamento não-confirmado", - "trade_state_paid": "Paga", - "trade_state_btc_sent": "BTC enviado", - "trade_state_timeout": "Tempo esgotado", - "trade_state_created": "Criada", - "trade_state_finished": "Finalizada", - "change_language": "Mudar idioma", - "change_language_to": "Alterar idioma para ${language}?", - "paste": "Colar", - "restore_from_seed_placeholder": "Digite ou cole sua frase de código aqui", - "add_new_word": "Adicionar nova palavra", - "incorrect_seed": "O texto digitado não é válido.", - "biometric_auth_reason": "Digitalize sua impressão digital para autenticar", - "version": "Versão ${currentVersion}", - "extracted_address_content": "Você enviará fundos para\n${recipient_name}", - "card_address": "Endereço:", - "buy": "Comprar", - "sell": "Vender", - "placeholder_transactions": "Suas transações serão exibidas aqui", - "placeholder_contacts": "Seus contatos serão exibidos aqui", - "template": "Modelo", - "confirm_delete_template": "Esta ação excluirá este modelo. Você deseja continuar?", - "confirm_delete_wallet": "Esta ação excluirá esta carteira. Você deseja continuar?", - "change_wallet_alert_title": "Alterar carteira atual", - "change_wallet_alert_content": "Quer mudar a carteira atual para ${wallet_name}?", - "creating_new_wallet": "Criando nova carteira", - "creating_new_wallet_error": "Erro: ${description}", - "seed_alert_title": "Atenção", - "seed_alert_content": "A semente é a única forma de recuperar sua carteira. Você escreveu isso?", - "seed_alert_back": "Volte", - "seed_alert_yes": "Sim, eu tenho", - "exchange_sync_alert_content": "Por favor, espere até que sua carteira seja sincronizada", - "pre_seed_title": "IMPORTANTE", - "pre_seed_description": "Na próxima página, você verá uma série de ${words} palavras. Esta é a sua semente única e privada e é a ÚNICA maneira de recuperar sua carteira em caso de perda ou mau funcionamento. É SUA responsabilidade anotá-lo e armazená-lo em um local seguro fora do aplicativo Cake Wallet.", - "pre_seed_button_text": "Compreendo. Me mostre minha semente", - "xmr_to_error": "Erro XMR.TO", - "xmr_to_error_description": "Montante inválido. Limite máximo de 8 dígitos após o ponto decimal", - "provider_error": "${provider} erro", - "use_ssl": "Use SSL", - "trusted": "confiável", - "color_theme": "Tema de cor", - "light_theme": "Luz", - "bright_theme": "Brilhante", - "dark_theme": "Sombria", - "enter_your_note": "Insira sua nota ...", - "note_optional": "Nota (opcional)", - "note_tap_to_change": "Nota (toque para alterar)", - "view_in_block_explorer": "View in Block Explorer", - "view_transaction_on": "View Transaction on ", - "transaction_key": "Chave de transação", - "confirmations": "Confirmações", - "recipient_address": "Endereço do destinatário", - "extra_id": "ID extra:", - "destination_tag": "Tag de destino:", - "memo": "Memorando:", - "backup": "Cópia de segurança", - "change_password": "Mudar senha", - "backup_password": "Senha de backup", - "write_down_backup_password": "Anote sua senha de backup, que será usada para importar seus arquivos de backup.", - "export_backup": "Backup de exportação", - "save_backup_password": "Certifique-se de que salvou sua senha de backup. Você não poderá importar seus arquivos de backup sem ele.", - "backup_file": "Arquivo de backup", - "edit_backup_password": "Editar senha de backup", - "save_backup_password_alert": "Salvar senha de backup", - "change_backup_password_alert": "Seus arquivos de backup anteriores não estarão disponíveis para importação com a nova senha de backup. A nova senha de backup será usada apenas para novos arquivos de backup. Tem certeza que deseja alterar a senha de backup?", - "enter_backup_password": "Digite a senha de backup aqui", - "select_backup_file": "Selecione o arquivo de backup", - "import": "Importar", - "please_select_backup_file": "Selecione o arquivo de backup e insira a senha de backup.", - "fixed_rate": "Taxa fixa", - "fixed_rate_alert": "Você poderá inserir a quantia recebida quando o modo de taxa fixa estiver marcado. Quer mudar para o modo de taxa fixa?", - "xlm_extra_info": "Não se esqueça de especificar o Memo ID ao enviar a transação XLM para a troca", - "xrp_extra_info": "Não se esqueça de especificar a etiqueta de destino ao enviar a transação XRP para a troca", - "exchange_incorrect_current_wallet_for_xmr": "Se você deseja trocar o XMR de seu saldo da Carteira Monero Cake, troque primeiro para sua carteira Monero.", - "confirmed": "Saldo Confirmado", - "unconfirmed": "Saldo não confirmado", - "displayable": "Exibível", - "submit_request": "enviar um pedido", - "buy_alert_content": "Atualmente, oferecemos suporte apenas à compra de Bitcoin, Ethereum, Litecoin e Monero. Crie ou troque para sua carteira Bitcoin, Ethereum, Litecoin ou Monero.", - "sell_alert_content": "Atualmente, oferecemos suporte apenas à venda de Bitcoin, Ethereum e Litecoin. Crie ou troque para sua carteira Bitcoin, Ethereum ou Litecoin.", - "outdated_electrum_wallet_description": "As novas carteiras Bitcoin criadas no Cake agora têm uma semente de 24 palavras. É obrigatório que você crie uma nova carteira Bitcoin e transfira todos os seus fundos para a nova carteira de 24 palavras, e pare de usar carteiras com semente de 12 palavras. Faça isso imediatamente para garantir seus fundos.", - "understand": "Entendo", - "apk_update": "Atualização de APK", - "buy_bitcoin": "Compre Bitcoin", - "buy_with": "Compre com", - "moonpay_alert_text": "O valor do montante deve ser maior ou igual a ${minAmount} ${fiatCurrency}", - "outdated_electrum_wallet_receive_warning": "Se esta carteira tiver uma semente de 12 palavras e foi criada no Cake, NÃO deposite Bitcoin nesta carteira. Qualquer BTC transferido para esta carteira pode ser perdido. Crie uma nova carteira de 24 palavras (toque no menu no canto superior direito, selecione Carteiras, escolha Criar Nova Carteira e selecione Bitcoin) e mova IMEDIATAMENTE seu BTC para lá. As novas carteiras BTC (24 palavras) da Cake são seguras", - "do_not_show_me": "não me mostre isso novamente", - "unspent_coins_title": "Moedas não gastas", - "unspent_coins_details_title": "Detalhes de moedas não gastas", - "freeze": "Congelar", - "frozen": "Congeladas", - "coin_control": "Controle de moedas (opcional)", - "address_detected": "Endereço detectado", - "address_from_domain": "Este endereço é de ${domain} em Unstoppable Domains", - "add_receiver": "Adicione outro receptor (opcional)", - "manage_yats": "Gerenciar Yats", - "yat_alert_title": "Envie e receba criptografia mais facilmente com Yat", - "yat_alert_content": "Os usuários da Cake Wallet agora podem enviar e receber todas as suas moedas favoritas com um nome de usuário baseado em emoji único.", - "get_your_yat": "Pegue seu Yat", - "connect_an_existing_yat": "Conecte um Yat existente", - "yat_address": "Endereço Yat", - "yat": "Yat", - "connect_yats": "Connect Yats", - "address_from_yat": "Este endereço é de ${emoji} em Yat", - "yat_error": "Yat erro", - "yat_error_content": "Nenhum endereço vinculado a este Yat. Tente outro Yat", - "choose_address": "\n\nEscolha o endereço:", - "yat_popup_title": "O endereço da sua carteira pode ser emojificado.", - "yat_popup_content": "Agora você pode enviar e receber criptografia na Cake Wallet com seu Yat - um nome de usuário curto baseado em emoji. Gerenciar Yats a qualquer momento na tela de configurações", - "second_intro_title": "Um endereço de emoji para governar todos eles", - "second_intro_content": "Seu Yat é um endereço de emoji único e exclusivo que substitui todos os seus endereços hexadecimais longos para todas as suas moedas.", - "third_intro_title": "Yat joga bem com os outros", - "third_intro_content": "Yats também mora fora da Cake Wallet. Qualquer endereço de carteira na Terra pode ser substituído por um Yat!", - "learn_more": "Saber mais", - "search": "Procurar", - "search_language": "Idioma de pesquisa", - "search_currency": "Pesquisar moeda", - "new_template": "Novo modelo", - "electrum_address_disclaimer": "Geramos novos endereços cada vez que você usa um, mas os endereços anteriores continuam funcionando", - "wallet_name_exists": "A carteira com esse nome já existe", - "market_place": "Mercado", - "cake_pay_title": "Cartões de presente de CakePay", - "cake_pay_subtitle": "Compre vales-presente com desconto (somente nos EUA)", - "cake_pay_web_cards_title": "Cartões Cake Pay Web", - "cake_pay_web_cards_subtitle": "Compre cartões pré-pagos e cartões-presente em todo o mundo", - "about_cake_pay": "O Cake Pay permite que você compre facilmente cartões-presente com ativos virtuais, que podem ser gastos instantaneamente em mais de 150.000 comerciantes nos Estados Unidos.", - "cake_pay_account_note": "Inscreva-se com apenas um endereço de e-mail para ver e comprar cartões. Alguns estão até com desconto!", - "already_have_account": "Já tem uma conta?", - "create_account": "Criar conta", - "privacy_policy": "Política de privacidade", - "welcome_to_cakepay": "Bem-vindo ao Cake Pay!", - "forgot_password": "Esqueci a senha", - "reset_password": "Redefinir senha", - "gift_cards": "Cartões de presente", - "setup_your_debit_card": "Configure seu cartão de débito", - "no_id_required": "Não é necessário ID. Recarregue e gaste em qualquer lugar", - "how_to_use_card": "Como usar este cartão", - "purchase_gift_card": "Comprar vale-presente", - "verification": "Verificação", - "fill_code": "Por favor, preencha o código de verificação fornecido ao seu e-mail", - "didnt_get_code": "Não recebeu o código?", - "resend_code": "Por favor, reenvie", - "debit_card": "Cartão de débito", - "cakepay_prepaid_card": "Cartão de débito pré-pago CakePay", - "no_id_needed": "Nenhum ID necessário!", - "frequently_asked_questions": "Perguntas frequentes", - "debit_card_terms": "O armazenamento e uso do número do cartão de pagamento (e credenciais correspondentes ao número do cartão de pagamento) nesta carteira digital estão sujeitos aos Termos e Condições do contrato do titular do cartão aplicável com o emissor do cartão de pagamento, em vigor a partir de tempo ao tempo.", - "please_reference_document": "Por favor, consulte os documentos abaixo para mais informações.", - "cardholder_agreement": "Acordo do titular do cartão", - "e_sign_consent": "Consentimento de assinatura eletrônica", - "agree_and_continue": "Concordar e continuar", - "email_address": "Endereço de e-mail", - "agree_to": "Ao criar conta você concorda com ", - "and": "e", - "enter_code": "Digite o código", - "congratulations": "Parabéns!", - "you_now_have_debit_card": "Agora você tem um cartão de débito", - "min_amount": "Mínimo: ${valor}", - "max_amount": "Máx.: ${valor}", - "enter_amount": "Digite o valor", - "billing_address_info": "Se for solicitado um endereço de cobrança, forneça seu endereço de entrega", - "order_physical_card": "Pedir Cartão Físico", - "add_value": "Adicionar valor", - "activate": "Ativar", - "get_a": "Obter um ", - "digital_and_physical_card": "cartão de débito pré-pago digital e físico", - "get_card_note": " que você pode recarregar com moedas digitais. Nenhuma informação adicional é necessária!", - "signup_for_card_accept_terms": "Cadastre-se no cartão e aceite os termos.", - "add_fund_to_card": "Adicionar fundos pré-pagos aos cartões (até ${value})", - "use_card_info_two": "Os fundos são convertidos para USD quando mantidos na conta pré-paga, não em moedas digitais.", - "use_card_info_three": "Use o cartão digital online ou com métodos de pagamento sem contato.", - "opcionalmente_order_card": "Opcionalmente, peça um cartão físico.", - "hide_details": "Ocultar detalhes", - "show_details": "Mostrar detalhes", - "upto": "até ${value}", - "discount": "Economize ${value}%", - "gift_card_amount": "Valor do Cartão Presente", - "bill_amount": "Valor da conta", - "you_pay": "Você paga", - "tip": "Dica:", - "custom": "personalizado", - "by_cake_pay": "por Cake Pay", - "expires": "Expira", - "mm": "MM", - "yy": "aa", - "online": "Online", - "offline": "offline", - "gift_card_number": "Número do cartão-presente", - "pin_number": "Número PIN", - "total_saving": "Economia total", - "last_30_days": "Últimos 30 dias", - "avg_savings": "Poupança média", - "view_all": "Ver todos", - "active_cards": "Cartões ativos", - "delete_account": "Excluir conta", - "cards": "Cartões", - "active": "Ativo", - "redeemed": "Resgatado", - "gift_card_balance_note": "Os cartões-presente com saldo restante aparecerão aqui", - "gift_card_redeemed_note": "Os cartões-presente que você resgatou aparecerão aqui", - "logout": "Logout", - "add_tip": "Adicionar Dica", - "percentageOf": "de ${amount}", - "is_percentage": "é", - "search_category": "Categoria de pesquisa", - "mark_as_redemed": "Marcar como resgatado", - "more_options": "Mais opções", - "waiting_payment_confirmation": "Aguardando confirmação de pagamento", - "transaction_sent_notice": "Se a tela não prosseguir após 1 minuto, verifique um explorador de blocos e seu e-mail.", - "agree": "Concordo", - "in_store": "Na loja", - "generating_gift_card": "Gerando Cartão Presente", - "payment_was_received": "Seu pagamento foi recebido.", - "proceed_after_one_minute": "Se a tela não prosseguir após 1 minuto, verifique seu e-mail.", - "order_id": "ID do pedido", - "gift_card_is_generated": "Cartão presente é gerado", - "open_gift_card": "Abrir vale-presente", - "contact_support": "Contatar Suporte", - "gift_cards_unavailable": "Os cartões-presente estão disponíveis para compra apenas através do Monero, Bitcoin e Litecoin no momento", - "background_sync_mode": "Modo de sincronização em segundo plano", - "sync_all_wallets": "Sincronize todas as carteiras", - "introducing_cake_pay": "Apresentando o Cake Pay!", - "cake_pay_learn_more": "Compre e resgate vales-presente instantaneamente no app!\nDeslize da esquerda para a direita para saber mais.", - "automatic": "Automático", - "fixed_pair_not_supported": "Este par fixo não é compatível com as exchanges selecionadas", - "variable_pair_not_supported": "Este par de variáveis não é compatível com as trocas selecionadas", - "none_of_selected_providers_can_exchange": "Nenhum dos provedores selecionados pode fazer esta troca", - "choose_one": "Escolha um", - "choose_from_available_options": "Escolha entre as opções disponíveis:", - "custom_redeem_amount": "Valor de resgate personalizado", - "add_custom_redemption": "Adicionar resgate personalizado", - "remaining": "restante", - "delete_wallet": "Excluir carteira", - "delete_wallet_confirm_message": "Tem certeza de que deseja excluir a carteira ${wallet_name}?", - "low_fee": "Taxa baixa", - "low_fee_alert": "No momento, você está usando uma prioridade de taxa de rede baixa. Isso pode causar longas esperas, taxas diferentes ou negociações canceladas. Recomendamos definir uma taxa mais alta para uma melhor experiência.", - "ignor": "Ignorar", - "use_suggested": "Uso sugerido", - "do_not_share_warning_text": "Não os compartilhe com mais ninguém, incluindo suporte.\n\nSeus fundos podem e serão roubados!", - "help": "ajuda", - "all_transactions": "Todas as transacções", - "all_trades": "Todas as negociações", - "connection_sync": "Conexão e sincronização", - "security_and_backup": "Segurança e backup", - "create_backup": "Criar backup", - "privacy_settings": "Configurações de privacidade", - "privacy": "Privacidade", - "display_settings": "Configurações de exibição", - "other_settings": "Outras configurações", - "require_pin_after": "Exigir PIN após", - "always": "sempre", - "minutes_to_pin_code": "${minute} minutos", - "disable_exchange": "Desativar troca", - "advanced_settings": "Configurações avançadas", - "settings_can_be_changed_later": "Essas configurações podem ser alteradas posteriormente nas configurações do aplicativo", - "add_custom_node": "Adicionar novo nó personalizado", - "disable_fiat": "Desativar fiat", - "fiat_api": "API da Fiat", - "disabled": "Desabilitado", - "enabled": "Habilitado", - "tor_only": "Tor apenas", - "unmatched_currencies": "A moeda da sua carteira atual não corresponde à do QR digitalizado", - "orbot_running_alert": "Certifique-se de que o Orbot esteja em execução antes de se conectar a este nó.", - "contact_list_contacts": "Contatos", - "contact_list_wallets": "minhas carteiras", - "bitcoin_payments_require_1_confirmation": "Os pagamentos em Bitcoin exigem 1 confirmação, o que pode levar 20 minutos ou mais. Obrigado pela sua paciência! Você receberá um e-mail quando o pagamento for confirmado.", - "send_to_this_address": "Envie ${currency} ${tag}para este endereço", - "arrive_in_this_address": "${currency} ${tag}chegará neste endereço", - "do_not_send": "não envie", - "error_dialog_content": "Ops, houve algum erro.\n\nPor favor, envie o relatório de falha para nossa equipe de suporte para melhorar o aplicativo.", - "scan_qr_code": "Escanear código QR", - "cold_or_recover_wallet": "Adicione uma cold wallet ou recupere uma paper wallet", - "please_wait": "Por favor, aguarde", - "sweeping_wallet": "Carteira varrendo", - "sweeping_wallet_alert": "To nie powinno zająć dużo czasu. NIE WYCHODŹ Z TEGO EKRANU, W PRZECIWNYM WYPADKU MOŻE ZOSTAĆ UTRACONA ŚRODKI", - "decimal_places_error": "Muitas casas decimais", - "edit_node": "Editar nó", - "invoice_details": "Detalhes da fatura", - "donation_link_details": "Detalhes do link de doação", - "anonpay_description": "Gere ${type}. O destinatário pode ${method} com qualquer criptomoeda suportada e você receberá fundos nesta carteira.", - "create_invoice": "Criar recibo", - "create_donation_link": "Criar link de doação", - "optional_email_hint": "E-mail opcional de notificação do beneficiário", - "optional_description": "Descrição opcional", - "optional_name": "Nome do destinatário opcional", - "clearnet_link": "link clear net", - "onion_link": "ligação de cebola", - "settings": "Configurações", - "sell_monero_com_alert_content": "A venda de Monero ainda não é suportada", - "error_text_input_below_minimum_limit": "O valor é menor que o mínimo", - "error_text_input_above_maximum_limit": "O valor é superior ao máximo", - "show_market_place": "Mostrar mercado", - "prevent_screenshots": "Evite capturas de tela e gravação de tela", - "profile": "Perfil", - "close": "Fechar", - "modify_2fa": "Modificar o Cake 2FA", - "disable_cake_2fa": "Desabilitar o Cake 2FA", - "question_to_disable_2fa": "Tem certeza de que deseja desativar o Cake 2FA? Um código 2FA não será mais necessário para acessar a carteira e certas funções.", - "disable": "Desativar", - "setup_2fa": "Configurar o Cake 2FA", - "verify_with_2fa": "Verificar com Cake 2FA", - "totp_code": "Código TOTP", - "please_fill_totp": "Por favor, preencha o código de 8 dígitos presente em seu outro dispositivo", - "totp_2fa_success": "Sucesso! Cake 2FA ativado para esta carteira. Lembre-se de salvar sua semente mnemônica caso perca o acesso à carteira.", - "totp_verification_success": "Verificação bem-sucedida!", - "totp_2fa_failure": "Código incorreto. Tente um código diferente ou gere uma nova chave secreta. Use um aplicativo 2FA compatível com códigos de 8 dígitos e SHA512.", - "enter_totp_code": "Digite o código TOTP.", - "add_secret_code": "Ou adicione este código secreto a um aplicativo autenticador", - "totp_secret_code": "Código Secreto TOTP", - "setup_2fa_text": "Cake 2FA funciona usando TOTP como segundo fator de autenticação.\n\nO TOTP do Cake 2FA requer suporte SHA-512 e 8 dígitos; isso proporciona maior segurança. Mais informações e aplicativos suportados podem ser encontrados no guia.", - "setup_totp_recommended": "Configurar TOTP", - "disable_buy": "Desativar ação de compra", - "disable_sell": "Desativar ação de venda", + "authenticated": "Autenticado", + "authentication": "Autenticação", "auto_generate_subaddresses": "Gerar subendereços automaticamente", - "cake_2fa_preset": "Predefinição de bolo 2FA", - "narrow": "Estreito", - "normal": "Normal", - "aggressive": "excessivamente zeloso", - "require_for_assessing_wallet": "Requer para acessar a carteira", - "require_for_sends_to_non_contacts": "Exigir para envios para não-contatos", - "require_for_sends_to_contacts": "Exigir para envios para contatos", - "require_for_sends_to_internal_wallets": "Exigir envios para carteiras internas", - "require_for_exchanges_to_internal_wallets": "Requer trocas para carteiras internas", - "require_for_adding_contacts": "Requer para adicionar contatos", - "require_for_creating_new_wallets": "Requer para criar novas carteiras", - "require_for_all_security_and_backup_settings": "Exigir todas as configurações de segurança e backup", + "automatic": "Automático", + "available_balance": "Saldo disponível", "available_balance_description": "Seu saldo disponível é o saldo total menos o saldo congelado. O saldo congelado é o saldo que você não pode gastar, mas que ainda não foi confirmado na blockchain. O saldo congelado é geralmente o resultado de transações recentes.", - "syncing_wallet_alert_title": "Sua carteira está sincronizando", - "syncing_wallet_alert_content": "Seu saldo e lista de transações podem não estar completos até que diga “SYNCHRONIZED” no topo. Clique/toque para saber mais.", - "home_screen_settings": "Configurações da tela inicial", - "sort_by": "Ordenar por", - "search_add_token": "Pesquisar / Adicionar token", - "edit_token": "Editar símbolo", - "warning": "Aviso", - "add_token_warning": "Não edite ou adicione tokens de acordo com as instruções dos golpistas.\nSempre confirme os endereços de token com fontes confiáveis!", - "add_token_disclaimer_check": "Confirmei o endereço e as informações do contrato de token usando uma fonte confiável. Adicionar informações maliciosas ou incorretas pode resultar em perda de fundos.", - "token_contract_address": "Endereço do contrato de token", - "token_name": "Nome do token, por exemplo: Tether", - "token_symbol": "Símbolo de token, por exemplo: USDT", - "token_decimal": "Token decimal", - "field_required": "Este campo é obrigatório", - "pin_at_top": "fixe ${token} no topo", - "invalid_input": "Entrada inválida", - "fiat_balance": "Equilíbrio Fiat", - "gross_balance": "Saldo Bruto", - "alphabetical": "alfabética", - "generate_name": "Gerar nome", + "avg_savings": "Poupança média", + "awaitDAppProcessing": "Aguarde até que o dApp termine o processamento.", + "background_sync_mode": "Modo de sincronização em segundo plano", + "backup": "Cópia de segurança", + "backup_file": "Arquivo de backup", + "backup_password": "Senha de backup", "balance_page": "Página de saldo", - "share": "Compartilhar", - "slidable": "Deslizável", - "monero_dark_theme": "Monero Tema Escuro", + "bill_amount": "Valor da conta", + "billing_address_info": "Se for solicitado um endereço de cobrança, forneça seu endereço de entrega", + "biometric_auth_reason": "Digitalize sua impressão digital para autenticar", "bitcoin_dark_theme": "Tema escuro Bitcoin", "bitcoin_light_theme": "Tema claro de bitcoin", - "high_contrast_theme": "Tema de alto contraste", - "matrix_green_dark_theme": "Tema escuro verde matrix", - "monero_light_theme": "Monero Light Theme", - "manage_nodes": "Gerenciar nós", - "etherscan_history": "história Etherscan", - "template_name": "Nome do modelo", + "bitcoin_payments_require_1_confirmation": "Os pagamentos em Bitcoin exigem 1 confirmação, o que pode levar 20 minutos ou mais. Obrigado pela sua paciência! Você receberá um e-mail quando o pagamento for confirmado.", + "Blocks_remaining": "${status} blocos restantes", + "bright_theme": "Brilhante", + "buy": "Comprar", + "buy_alert_content": "Atualmente, oferecemos suporte apenas à compra de Bitcoin, Ethereum, Litecoin e Monero. Crie ou troque para sua carteira Bitcoin, Ethereum, Litecoin ou Monero.", + "buy_bitcoin": "Compre Bitcoin", + "buy_provider_unavailable": "Provedor atualmente indisponível.", + "buy_with": "Compre com", + "by_cake_pay": "por Cake Pay", + "cake_2fa_preset": "Predefinição de bolo 2FA", + "cake_pay_account_note": "Inscreva-se com apenas um endereço de e-mail para ver e comprar cartões. Alguns estão até com desconto!", + "cake_pay_learn_more": "Compre e resgate vales-presente instantaneamente no app!\nDeslize da esquerda para a direita para saber mais.", + "cake_pay_subtitle": "Compre vales-presente com desconto (somente nos EUA)", + "cake_pay_title": "Cartões de presente de CakePay", + "cake_pay_web_cards_subtitle": "Compre cartões pré-pagos e cartões-presente em todo o mundo", + "cake_pay_web_cards_title": "Cartões Cake Pay Web", + "cake_wallet": "Cake Wallet", + "cakepay_prepaid_card": "Cartão de débito pré-pago CakePay", + "camera_consent": "Sua câmera será usada para capturar uma imagem para fins de identificação por ${provider}. Por favor, verifique a Política de Privacidade para obter detalhes.", + "camera_permission_is_required": "É necessária permissão da câmera.\nAtive-o nas configurações do aplicativo.", + "cancel": "Cancelar", + "card_address": "Endereço:", + "cardholder_agreement": "Acordo do titular do cartão", + "cards": "Cartões", + "chains": "Correntes", + "change": "Mudar", + "change_backup_password_alert": "Seus arquivos de backup anteriores não estarão disponíveis para importação com a nova senha de backup. A nova senha de backup será usada apenas para novos arquivos de backup. Tem certeza que deseja alterar a senha de backup?", + "change_currency": "Alterar moeda", + "change_current_node": "Você realmente deseja alterar o nó atual para ${node}?", + "change_current_node_title": "Mudar o nó atual", + "change_exchange_provider": "Alterar o provedor de troca", + "change_language": "Mudar idioma", + "change_language_to": "Alterar idioma para ${language}?", + "change_password": "Mudar senha", "change_rep": "Alterar representante", "change_rep_message": "Tem certeza de que deseja alterar os representantes?", - "unsupported_asset": "Não oferecemos suporte a esta ação para este recurso. Crie ou mude para uma carteira de um tipo de ativo compatível.", - "manage_pow_nodes": "Gerenciar nós PoW", - "support_title_live_chat": "Apoio ao vivo", - "support_description_live_chat": "Livre e rápido! Representantes de suporte treinado estão disponíveis para ajudar", - "support_title_guides": "Guias da carteira de bolo", - "support_description_guides": "Documentação e suporte para problemas comuns", - "support_title_other_links": "Outros links de suporte", - "support_description_other_links": "Junte -se às nossas comunidades ou chegue a nós nossos parceiros por meio de outros métodos", + "change_rep_successful": "Mudou com sucesso o representante", + "change_wallet_alert_content": "Quer mudar a carteira atual para ${wallet_name}?", + "change_wallet_alert_title": "Alterar carteira atual", + "choose_account": "Escolha uma conta", + "choose_address": "\n\nEscolha o endereço:", "choose_derivation": "Escolha a derivação da carteira", - "new_first_wallet_text": "Mantenha sua criptomoeda facilmente segura", - "select_destination": "Selecione o destino para o arquivo de backup.", - "save_to_downloads": "Salvar em Downloads", - "select_buy_provider_notice": "Selecione um provedor de compra acima. Você pode pular esta tela definindo seu provedor de compra padrão nas configurações de aplicativos.", - "onramper_option_description": "Compre rapidamente criptografia com muitos métodos de pagamento. Disponível na maioria dos países. Os spreads e taxas variam.", + "choose_from_available_options": "Escolha entre as opções disponíveis:", + "choose_one": "Escolha um", + "choose_relay": "Escolha um relé para usar", + "choose_wallet_currency": "Escolha a moeda da carteira:", + "clear": "Limpar", + "clearnet_link": "link clear net", + "close": "Fechar", + "coin_control": "Controle de moedas (opcional)", + "cold_or_recover_wallet": "Adicione uma cold wallet ou recupere uma paper wallet", + "color_theme": "Tema de cor", + "commit_transaction_amount_fee": "Confirmar transação\nQuantia: ${amount}\nTaxa: ${fee}", + "confirm": "Confirmar", + "confirm_delete_template": "Esta ação excluirá este modelo. Você deseja continuar?", + "confirm_delete_wallet": "Esta ação excluirá esta carteira. Você deseja continuar?", + "confirm_sending": "Confirmar o envio", + "confirmations": "Confirmações", + "confirmed": "Saldo Confirmado", + "confirmed_tx": "Confirmado", + "congratulations": "Parabéns!", + "connect_an_existing_yat": "Conecte um Yat existente", + "connect_yats": "Connect Yats", + "connection_sync": "Conexão e sincronização", + "connectWalletPrompt": "Conecte sua carteira ao WalletConnect para fazer transações", + "contact": "Contato", + "contact_list_contacts": "Contatos", + "contact_list_wallets": "minhas carteiras", + "contact_name": "Nome do contato", + "contact_support": "Contatar Suporte", + "continue_text": "Continuar", + "contractName": "Nome do contrato", + "contractSymbol": "Símbolo do Contrato", + "copied_key_to_clipboard": "${key} copiada para a área de transferência", + "copied_to_clipboard": "Copiado para a área de transferência", + "copy": "Copiar", + "copy_address": "Copiar endereço", + "copy_id": "Copiar ID", + "copyWalletConnectLink": "Copie o link WalletConnect do dApp e cole aqui", + "create_account": "Criar conta", + "create_backup": "Criar backup", + "create_donation_link": "Criar link de doação", + "create_invoice": "Criar recibo", + "create_new": "Criar nova carteira", + "create_new_account": "Criar nova conta", + "creating_new_wallet": "Criando nova carteira", + "creating_new_wallet_error": "Erro: ${description}", + "creation_date": "Data de criação", + "custom": "personalizado", + "custom_drag": "Personalizado (segure e arraste)", + "custom_redeem_amount": "Valor de resgate personalizado", + "dark_theme": "Sombria", + "debit_card": "Cartão de débito", + "debit_card_terms": "O armazenamento e uso do número do cartão de pagamento (e credenciais correspondentes ao número do cartão de pagamento) nesta carteira digital estão sujeitos aos Termos e Condições do contrato do titular do cartão aplicável com o emissor do cartão de pagamento, em vigor a partir de tempo ao tempo.", + "decimal_places_error": "Muitas casas decimais", "default_buy_provider": "Provedor de compra padrão", - "ask_each_time": "Pergunte cada vez", - "buy_provider_unavailable": "Provedor atualmente indisponível.", - "signTransaction": "Assinar transação", + "default_sell_provider": "Provedor de venda padrão", + "delete": "Excluir", + "delete_account": "Excluir conta", + "delete_wallet": "Excluir carteira", + "delete_wallet_confirm_message": "Tem certeza de que deseja excluir a carteira ${wallet_name}?", + "deleteConnectionConfirmationPrompt": "Tem certeza de que deseja excluir a conexão com", + "descending": "descendente", + "description": "Descrição", + "destination_tag": "Tag de destino:", + "dfx_option_description": "Compre criptografia com EUR e CHF. Até 990€ sem KYC adicional. Para clientes de varejo e corporativos na Europa", + "didnt_get_code": "Não recebeu o código?", + "digit_pin": "dígitos", + "digital_and_physical_card": "cartão de débito pré-pago digital e físico", + "disable": "Desativar", + "disable_buy": "Desativar ação de compra", + "disable_cake_2fa": "Desabilitar o Cake 2FA", + "disable_exchange": "Desativar troca", + "disable_fiat": "Desativar fiat", + "disable_sell": "Desativar ação de venda", + "disabled": "Desabilitado", + "discount": "Economize ${value}%", + "display_settings": "Configurações de exibição", + "displayable": "Exibível", + "do_not_have_enough_gas_asset": "Você não tem ${currency} suficiente para fazer uma transação com as condições atuais da rede blockchain. Você precisa de mais ${currency} para pagar as taxas da rede blockchain, mesmo se estiver enviando um ativo diferente.", + "do_not_send": "não envie", + "do_not_share_warning_text": "Não os compartilhe com mais ninguém, incluindo suporte.\n\nSeus fundos podem e serão roubados!", + "do_not_show_me": "não me mostre isso novamente", + "domain_looks_up": "Pesquisas de domínio", + "donation_link_details": "Detalhes do link de doação", + "e_sign_consent": "Consentimento de assinatura eletrônica", + "edit": "Editar", + "edit_backup_password": "Editar senha de backup", + "edit_node": "Editar nó", + "edit_token": "Editar símbolo", + "electrum_address_disclaimer": "Geramos novos endereços cada vez que você usa um, mas os endereços anteriores continuam funcionando", + "email_address": "Endereço de e-mail", + "enabled": "Habilitado", + "enter_amount": "Digite o valor", + "enter_backup_password": "Digite a senha de backup aqui", + "enter_code": "Digite o código", + "enter_seed_phrase": "Digite sua frase de semente", + "enter_totp_code": "Digite o código TOTP.", + "enter_your_note": "Insira sua nota ...", + "enter_your_pin": "Insira seu PIN", + "enter_your_pin_again": "Insira seu PIN novamente", + "enterTokenID": "Insira o ID do token", + "enterWalletConnectURI": "Insira o URI do WalletConnect", + "error": "Erro", + "error_dialog_content": "Ops, houve algum erro.\n\nPor favor, envie o relatório de falha para nossa equipe de suporte para melhorar o aplicativo.", + "error_text_account_name": "O nome da conta só pode conter letras, números\ne deve ter entre 1 e 15 caracteres", + "error_text_address": "O endereço da carteira deve corresponder à\ncriptomoeda selecionada", + "error_text_amount": "A quantia deve conter apenas números", + "error_text_contact_name": "O nome do contato não pode conter os símbolos ` , ' \" \ne deve ter entre 1 e 32 caracteres", + "error_text_crypto_currency": "O número de dígitos decimais\ndeve ser menor ou igual a 12", + "error_text_fiat": "O valor do valor não pode exceder o saldo disponível.\nO número de dígitos decimais deve ser menor ou igual a 2", + "error_text_input_above_maximum_limit": "O valor é superior ao máximo", + "error_text_input_below_minimum_limit": "O valor é menor que o mínimo", + "error_text_keys": "As chaves da carteira podem conter apenas 64 caracteres em hexadecimal", + "error_text_limits_loading_failed": "A troca por ${provider} não é criada. Falha no carregamento dos limites", + "error_text_maximum_limit": "A troca por ${provider} não é criada. O valor é superior ao máximo: ${max} ${currency}", + "error_text_minimal_limit": "A troca por ${provider} não é criada. O valor é menor que o mínimo: ${min} ${currency}", + "error_text_node_address": "Digite um endereço iPv4", + "error_text_node_port": "A porta do nó deve conter apenas números entre 0 e 65535", + "error_text_node_proxy_address": "Insira :, por exemplo 127.0.0.1:9050", + "error_text_payment_id": "O ID de pagamento pode conter apenas de 16 a 64 caracteres em hexadecimal", + "error_text_subaddress_name": "O nome do sub-endereço não pode conter os símbolos ` , ' \" \ne deve ter entre 1 e 20 caracteres", + "error_text_template": "O nome e o endereço do modelo não podem conter os símbolos ` , ' \" \ne deve ter entre 1 e 106 caracteres", + "error_text_wallet_name": "O nome da carteira só pode conter letras, números, _ - símbolos\ne deve ter entre 1 e 33 caracteres", + "error_text_xmr": "A quantia em XMR não pode exceder o saldo disponível.\nTO número de dígitos decimais deve ser menor ou igual a 12", "errorGettingCredentials": "Falha: Erro ao obter credenciais", "errorSigningTransaction": "Ocorreu um erro ao assinar a transação", - "pairingInvalidEvent": "Emparelhamento de evento inválido", - "chains": "Correntes", - "methods": "Métodos", - "events": "Eventos", - "reject": "Rejeitar", - "approve": "Aprovar", - "expiresOn": "Expira em", - "walletConnect": "CarteiraConectada", - "nullURIError": "URI é nulo", - "connectWalletPrompt": "Conecte sua carteira ao WalletConnect para fazer transações", - "newConnection": "Nova conexão", - "activeConnectionsPrompt": "Conexões ativas aparecerão aqui", - "deleteConnectionConfirmationPrompt": "Tem certeza de que deseja excluir a conexão com", + "estimated": "Estimado", + "etherscan_history": "história Etherscan", "event": "Evento", - "successful": "Bem-sucedido", - "wouoldLikeToConnect": "gostaria de me conectar", - "message": "Mensagem", - "do_not_have_enough_gas_asset": "Você não tem ${currency} suficiente para fazer uma transação com as condições atuais da rede blockchain. Você precisa de mais ${currency} para pagar as taxas da rede blockchain, mesmo se estiver enviando um ativo diferente.", - "totp_auth_url": "URL de autenticação TOTP", - "awaitDAppProcessing": "Aguarde até que o dApp termine o processamento.", - "copyWalletConnectLink": "Copie o link WalletConnect do dApp e cole aqui", - "enterWalletConnectURI": "Insira o URI do WalletConnect", - "seed_key": "Chave de semente", - "enter_seed_phrase": "Digite sua frase de semente", - "change_rep_successful": "Mudou com sucesso o representante", - "add_contact": "Adicionar contato", + "events": "Eventos", + "exchange": "Trocar", + "exchange_incorrect_current_wallet_for_xmr": "Se você deseja trocar o XMR de seu saldo da Carteira Monero Cake, troque primeiro para sua carteira Monero.", + "exchange_new_template": "Novo modelo", "exchange_provider_unsupported": "${providerName} não é mais suportado!", - "domain_looks_up": "Pesquisas de domínio", - "require_for_exchanges_to_external_wallets": "Exigir trocas para carteiras externas", - "camera_permission_is_required": "É necessária permissão da câmera.\nAtive-o nas configurações do aplicativo.", - "switchToETHWallet": "Mude para uma carteira Ethereum e tente novamente", - "order_by": "Ordenar por", - "creation_date": "Data de criação", + "exchange_result_confirm": "Ao confirmar, você enviará ${fetchingLabel} ${from} da sua carteira ${walletName} para o endereço mostrado abaixo. Ou você pode enviar de sua carteira externa para o endereço abaixo/código QR acima.\n\nPressione Confirmar para continuar ou volte para alterar os valores.", + "exchange_result_description": "Você deve enviar no mínimo ${fetchingLabel} ${from} para o endereço mostrado na próxima página. Se você enviar um valor inferior a ${fetchingLabel} ${from}, ele pode não ser convertido e pode não ser reembolsado.", + "exchange_result_write_down_ID": "*Copie ou anote seu ID mostrado acima.", + "exchange_result_write_down_trade_id": "Copie ou anote o ID da troca para continuar.", + "exchange_sync_alert_content": "Por favor, espere até que sua carteira seja sincronizada", + "expired": "Expirada", + "expires": "Expira", + "expiresOn": "Expira em", + "export_backup": "Backup de exportação", + "extra_id": "ID extra:", + "extracted_address_content": "Você enviará fundos para\n${recipient_name}", + "failed_authentication": "Falha na autenticação. ${state_error}", + "faq": "FAQ", + "fetching": "Buscando", + "fiat_api": "API da Fiat", + "fiat_balance": "Equilíbrio Fiat", + "field_required": "Este campo é obrigatório", + "fill_code": "Por favor, preencha o código de verificação fornecido ao seu e-mail", + "filter_by": "Filtrar por", + "first_wallet_text": "Carteira incrível para Monero, Bitcoin, Ethereum, Litecoin, e Haven", + "fixed_pair_not_supported": "Este par fixo não é compatível com as exchanges selecionadas", + "fixed_rate": "Taxa fixa", + "fixed_rate_alert": "Você poderá inserir a quantia recebida quando o modo de taxa fixa estiver marcado. Quer mudar para o modo de taxa fixa?", + "forgot_password": "Esqueci a senha", + "freeze": "Congelar", + "frequently_asked_questions": "Perguntas frequentes", + "frozen": "Congeladas", + "full_balance": "Saldo total", + "generate_name": "Gerar nome", + "generating_gift_card": "Gerando Cartão Presente", + "get_a": "Obter um ", + "get_card_note": " que você pode recarregar com moedas digitais. Nenhuma informação adicional é necessária!", + "get_your_yat": "Pegue seu Yat", + "gift_card_amount": "Valor do Cartão Presente", + "gift_card_balance_note": "Os cartões-presente com saldo restante aparecerão aqui", + "gift_card_is_generated": "Cartão presente é gerado", + "gift_card_number": "Número do cartão-presente", + "gift_card_redeemed_note": "Os cartões-presente que você resgatou aparecerão aqui", + "gift_cards": "Cartões de presente", + "gift_cards_unavailable": "Os cartões-presente estão disponíveis para compra apenas através do Monero, Bitcoin e Litecoin no momento", + "got_it": "Entendi", + "gross_balance": "Saldo Bruto", "group_by_type": "Grupo por tipo", - "importNFTs": "Importar NFTs", - "noNFTYet": "Ainda não há NFT", - "address": "Endereço", - "enterTokenID": "Insira o ID do token", - "tokenID": "EU IA", - "name": "Nome", - "symbol": "Símbolo", - "seed_phrase_length": "Comprimento da frase-semente", - "unavailable_balance": "Saldo indisponível", - "unavailable_balance_description": "Saldo Indisponível: Este total inclui fundos bloqueados em transações pendentes e aqueles que você congelou ativamente nas configurações de controle de moedas. Os saldos bloqueados ficarão disponíveis assim que suas respectivas transações forem concluídas, enquanto os saldos congelados permanecerão inacessíveis para transações até que você decida descongelá-los.", - "unspent_change": "Mudar", - "tor_connection": "Conexão Tor", - "setup_warning_2fa_text": "Você precisará restaurar sua carteira a partir da semente mnemônica.\n\nO suporte do Cake não poderá ajudá-lo se você perder o acesso ao seu 2FA ou sementes mnemônicas.\nCake 2FA é uma segunda autenticação para determinadas ações na carteira. Antes de usar o Cake 2FA, recomendamos a leitura do guia.NÃO é tão seguro quanto o armazenamento refrigerado.\n\nSe você perder o acesso ao seu aplicativo 2FA ou às chaves TOTP, você perderá o acesso a esta carteira. ", - "scan_qr_on_device": "Digitalize este código QR em outro dispositivo", + "haven_app": "Haven by Cake Wallet", + "haven_app_wallet_text": "Awesome wallet for Haven", + "help": "ajuda", + "hidden_balance": "Saldo escondido", + "hide_details": "Ocultar detalhes", + "high_contrast_theme": "Tema de alto contraste", + "home_screen_settings": "Configurações da tela inicial", "how_to_use": "Como usar", + "how_to_use_card": "Como usar este cartão", + "id": "ID: ", + "ignor": "Ignorar", + "import": "Importar", + "importNFTs": "Importar NFTs", + "in_store": "Na loja", + "incoming": "Recebidas", + "incorrect_seed": "O texto digitado não é válido.", + "introducing_cake_pay": "Apresentando o Cake Pay!", + "invalid_input": "Entrada inválida", + "invoice_details": "Detalhes da fatura", + "is_percentage": "é", + "last_30_days": "Últimos 30 dias", + "learn_more": "Saber mais", + "light_theme": "Luz", + "loading_your_wallet": "Abrindo sua carteira", + "login": "Login", + "logout": "Logout", + "low_fee": "Taxa baixa", + "low_fee_alert": "No momento, você está usando uma prioridade de taxa de rede baixa. Isso pode causar longas esperas, taxas diferentes ou negociações canceladas. Recomendamos definir uma taxa mais alta para uma melhor experiência.", + "manage_nodes": "Gerenciar nós", + "manage_pow_nodes": "Gerenciar nós PoW", + "manage_yats": "Gerenciar Yats", + "mark_as_redemed": "Marcar como resgatado", + "market_place": "Mercado", + "matrix_green_dark_theme": "Tema escuro verde matrix", + "max_amount": "Máx.: ${valor}", + "max_value": "Máx: ${value} ${currency}", + "memo": "Memorando:", + "message": "Mensagem", + "methods": "Métodos", + "min_amount": "Mínimo: ${valor}", + "min_value": "Mín: ${value} ${currency}", + "minutes_to_pin_code": "${minute} minutos", + "mm": "MM", + "modify_2fa": "Modificar o Cake 2FA", + "monero_com": "Monero.com by Cake Wallet", + "monero_com_wallet_text": "Awesome wallet for Monero", + "monero_dark_theme": "Monero Tema Escuro", + "monero_light_theme": "Monero Light Theme", + "moonpay_alert_text": "O valor do montante deve ser maior ou igual a ${minAmount} ${fiatCurrency}", + "more_options": "Mais opções", + "name": "Nome", + "narrow": "Estreito", + "new_first_wallet_text": "Mantenha sua criptomoeda facilmente segura", + "new_node_testing": "Teste de novo nó", + "new_subaddress_create": "Criar", + "new_subaddress_label_name": "Nome", + "new_subaddress_title": "Novo endereço", + "new_template": "Novo modelo", + "new_wallet": "Nova carteira", + "newConnection": "Nova conexão", + "no_id_needed": "Nenhum ID necessário!", + "no_id_required": "Não é necessário ID. Recarregue e gaste em qualquer lugar", + "no_relay_on_domain": "Não há uma retransmissão para o domínio do usuário ou a retransmissão está indisponível. Escolha um relé para usar.", + "no_relays": "Sem relés", + "no_relays_message": "Encontramos um registro Nostr NIP-05 para este usuário, mas ele não contém nenhum relé. Instrua o destinatário a adicionar retransmissões ao seu registro Nostr.", + "node_address": "Endereço do nó", + "node_connection_failed": "A conexão falhou", + "node_connection_successful": "A conexão foi bem sucedida", + "node_new": "Novo nó", + "node_port": "Porta do nó", + "node_reset_settings_title": "Redefinir configurações", + "node_test": "Teste", + "nodes": "Nós", + "nodes_list_reset_to_default_message": "Você realmente deseja redefinir as configurações para o padrão?", + "none_of_selected_providers_can_exchange": "Nenhum dos provedores selecionados pode fazer esta troca", + "noNFTYet": "Ainda não há NFT", + "normal": "Normal", + "note_optional": "Nota (opcional)", + "note_tap_to_change": "Nota (toque para alterar)", + "nullURIError": "URI é nulo", + "offer_expires_in": "A oferta expira em: ", + "offline": "offline", + "ok": "Ok", + "onion_link": "ligação de cebola", + "online": "Online", + "onramper_option_description": "Compre rapidamente criptografia com muitos métodos de pagamento. Disponível na maioria dos países. Os spreads e taxas variam.", + "opcionalmente_order_card": "Opcionalmente, peça um cartão físico.", + "open_gift_card": "Abrir vale-presente", + "optional_description": "Descrição opcional", + "optional_email_hint": "E-mail opcional de notificação do beneficiário", + "optional_name": "Nome do destinatário opcional", + "orbot_running_alert": "Certifique-se de que o Orbot esteja em execução antes de se conectar a este nó.", + "order_by": "Ordenar por", + "order_id": "ID do pedido", + "order_physical_card": "Pedir Cartão Físico", + "other_settings": "Outras configurações", + "outdated_electrum_wallet_description": "As novas carteiras Bitcoin criadas no Cake agora têm uma semente de 24 palavras. É obrigatório que você crie uma nova carteira Bitcoin e transfira todos os seus fundos para a nova carteira de 24 palavras, e pare de usar carteiras com semente de 12 palavras. Faça isso imediatamente para garantir seus fundos.", + "outdated_electrum_wallet_receive_warning": "Se esta carteira tiver uma semente de 12 palavras e foi criada no Cake, NÃO deposite Bitcoin nesta carteira. Qualquer BTC transferido para esta carteira pode ser perdido. Crie uma nova carteira de 24 palavras (toque no menu no canto superior direito, selecione Carteiras, escolha Criar Nova Carteira e selecione Bitcoin) e mova IMEDIATAMENTE seu BTC para lá. As novas carteiras BTC (24 palavras) da Cake são seguras", + "outgoing": "Enviadas", + "overwrite_amount": "Overwrite amount", + "pairingInvalidEvent": "Emparelhamento de evento inválido", + "password": "Senha", + "paste": "Colar", + "pause_wallet_creation": "A capacidade de criar a Haven Wallet está atualmente pausada.", + "payment_id": "ID de pagamento: ", + "payment_was_received": "Seu pagamento foi recebido.", + "pending": " (pendente)", + "percentageOf": "de ${amount}", + "pin_at_top": "fixe ${token} no topo", + "pin_is_incorrect": "PIN incorreto", + "pin_number": "Número PIN", + "placeholder_contacts": "Seus contatos serão exibidos aqui", + "placeholder_transactions": "Suas transações serão exibidas aqui", + "please_fill_totp": "Por favor, preencha o código de 8 dígitos presente em seu outro dispositivo", + "please_make_selection": "Escolha se quer criar uma carteira nova ou restaurar uma antiga.", + "please_reference_document": "Por favor, consulte os documentos abaixo para mais informações.", + "please_select": "Escolha abaixo:", + "please_select_backup_file": "Selecione o arquivo de backup e insira a senha de backup.", + "please_try_to_connect_to_another_node": "Por favor, tente conectar-se a outro nó", + "please_wait": "Por favor, aguarde", + "polygonscan_history": "História do PolygonScan", + "powered_by": "Troca realizada por ${title}", + "pre_seed_button_text": "Compreendo. Me mostre minha semente", + "pre_seed_description": "Na próxima página, você verá uma série de ${words} palavras. Esta é a sua semente única e privada e é a ÚNICA maneira de recuperar sua carteira em caso de perda ou mau funcionamento. É SUA responsabilidade anotá-lo e armazená-lo em um local seguro fora do aplicativo Cake Wallet.", + "pre_seed_title": "IMPORTANTE", + "prevent_screenshots": "Evite capturas de tela e gravação de tela", + "privacy": "Privacidade", + "privacy_policy": "Política de privacidade", + "privacy_settings": "Configurações de privacidade", + "private_key": "Chave privada", + "proceed_after_one_minute": "Se a tela não prosseguir após 1 minuto, verifique seu e-mail.", + "profile": "Perfil", + "provider_error": "${provider} erro", + "public_key": "Chave pública", + "purchase_gift_card": "Comprar vale-presente", + "qr_fullscreen": "Toque para abrir o código QR em tela cheia", + "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", + "question_to_disable_2fa": "Tem certeza de que deseja desativar o Cake 2FA? Um código 2FA não será mais necessário para acessar a carteira e certas funções.", + "receivable_balance": "Saldo a receber", + "receive": "Receber", + "receive_amount": "Quantia", + "received": "Recebida", + "recipient_address": "Endereço do destinatário", + "reconnect": "Reconectar", + "reconnect_alert_text": "Você tem certeza de que deseja reconectar?", + "reconnection": "Reconectar", + "redeemed": "Resgatado", + "refund_address": "Endereço de reembolso", + "reject": "Rejeitar", + "remaining": "restante", + "remove": "Remover", + "remove_node": "Remover nó", + "remove_node_message": "Você realmente deseja remover o nó selecionado?", + "rename": "Renomear", + "require_for_adding_contacts": "Requer para adicionar contatos", + "require_for_all_security_and_backup_settings": "Exigir todas as configurações de segurança e backup", + "require_for_assessing_wallet": "Requer para acessar a carteira", + "require_for_creating_new_wallets": "Requer para criar novas carteiras", + "require_for_exchanges_to_external_wallets": "Exigir trocas para carteiras externas", + "require_for_exchanges_to_internal_wallets": "Requer trocas para carteiras internas", + "require_for_sends_to_contacts": "Exigir para envios para contatos", + "require_for_sends_to_internal_wallets": "Exigir envios para carteiras internas", + "require_for_sends_to_non_contacts": "Exigir para envios para não-contatos", + "require_pin_after": "Exigir PIN após", + "rescan": "Reescanear", + "resend_code": "Por favor, reenvie", + "reset": "Limpar", + "reset_password": "Redefinir senha", + "restore_active_seed": "Semente ativa", + "restore_address": "Endereço", + "restore_bitcoin_description_from_keys": "Restaure sua carteira a partir da string WIF gerada de suas chaves privadas", + "restore_bitcoin_description_from_seed": "Restaure sua carteira a partir de um código de combinação de 24 palavras", + "restore_bitcoin_title_from_keys": "Restaurar de WIF", + "restore_description_from_backup": "Você pode restaurar todo o aplicativo Cake Wallet de seu arquivo de backup", + "restore_description_from_keys": "Restaure sua carteira a partir de suas chaves privadas", + "restore_description_from_seed": "Restaure sua carteira a partir de semente com 25 palavras ou 13 palavras", + "restore_description_from_seed_keys": "Restaure a sua carteira a partir de sementes/chaves que você salvou em um local seguro", + "restore_from_date_or_blockheight": "Insira uma data alguns dias antes de criar esta carteira. Ou se você souber a altura do bloco, insira-o", + "restore_from_seed_placeholder": "Digite ou cole sua frase de código aqui", + "restore_new_seed": "Nova semente", + "restore_next": "Próximo", + "restore_recover": "Restaurar", + "restore_restore_wallet": "Restaurar carteira", + "restore_seed_keys_restore": "Restauração com sementes/chaves", + "restore_spend_key_private": "Chave de gastos (privada)", + "restore_title_from_backup": "Restaurar a partir de um arquivo de backup", + "restore_title_from_keys": "Restaurar a partir de chaves", + "restore_title_from_seed": "Restaurar a partir de semente", + "restore_title_from_seed_keys": "Restaurar a partir de sementes/chaves", + "restore_view_key_private": "Chave de visualização (privada)", + "restore_wallet": "Restaurar carteira", + "restore_wallet_name": "Nome da carteira", + "restore_wallet_restore_description": "Restauração da carteira", + "router_no_route": "Nenhuma rota definida para ${name}", + "save": "Salvar", + "save_backup_password": "Certifique-se de que salvou sua senha de backup. Você não poderá importar seus arquivos de backup sem ele.", + "save_backup_password_alert": "Salvar senha de backup", + "save_to_downloads": "Salvar em Downloads", + "saved_the_trade_id": "ID da troca salvo", + "scan_qr_code": "Escanear código QR", + "scan_qr_code_to_get_address": "Digitalize o código QR para obter o endereço", + "scan_qr_on_device": "Digitalize este código QR em outro dispositivo", + "search": "Procurar", + "search_add_token": "Pesquisar / Adicionar token", + "search_category": "Categoria de pesquisa", + "search_currency": "Pesquisar moeda", + "search_language": "Idioma de pesquisa", + "second_intro_content": "Seu Yat é um endereço de emoji único e exclusivo que substitui todos os seus endereços hexadecimais longos para todas as suas moedas.", + "second_intro_title": "Um endereço de emoji para governar todos eles", + "security_and_backup": "Segurança e backup", + "seed_alert_back": "Volte", + "seed_alert_content": "A semente é a única forma de recuperar sua carteira. Você escreveu isso?", + "seed_alert_title": "Atenção", + "seed_alert_yes": "Sim, eu tenho", + "seed_choose": "Escolha o idioma da semente", "seed_hex_form": "Semente de carteira (forma hexadecimal)", + "seed_key": "Chave de semente", + "seed_language": "Linguagem de semente", + "seed_language_chinese": "Chinesa", + "seed_language_chinese_traditional": "Chinês tradicional)", + "seed_language_czech": "Tcheco", + "seed_language_dutch": "Holandesa", + "seed_language_english": "Inglesa", + "seed_language_french": "Francesa/Francês", + "seed_language_german": "Alemã", + "seed_language_italian": "Italiana/Italiano", + "seed_language_japanese": "Japonês", + "seed_language_korean": "coreano", + "seed_language_next": "Próximo", + "seed_language_portuguese": "Português", + "seed_language_russian": "Russa", + "seed_language_spanish": "Espanhola", + "seed_phrase_length": "Comprimento da frase-semente", + "seed_reminder": "Anote-os para o caso de perder ou limpar seu telefone", + "seed_share": "Compartilhar semente", + "seed_title": "Semente", "seedtype": "SeedType", "seedtype_legacy": "Legado (25 palavras)", "seedtype_polyseed": "Polyseed (16 palavras)", - "seed_language_czech": "Tcheco", - "seed_language_korean": "coreano", - "seed_language_chinese_traditional": "Chinês tradicional)", - "ascending": "Ascendente", - "descending": "descendente", - "dfx_option_description": "Compre criptografia com EUR e CHF. Até 990€ sem KYC adicional. Para clientes de varejo e corporativos na Europa", - "polygonscan_history": "História do PolygonScan", - "wallet_seed_legacy": "Semente de carteira herdada", - "default_sell_provider": "Provedor de venda padrão", + "select_backup_file": "Selecione o arquivo de backup", + "select_buy_provider_notice": "Selecione um provedor de compra acima. Você pode pular esta tela definindo seu provedor de compra padrão nas configurações de aplicativos.", + "select_destination": "Selecione o destino para o arquivo de backup.", "select_sell_provider_notice": "Selecione um fornecedor de venda acima. Você pode pular esta tela definindo seu provedor de venda padrão nas configurações do aplicativo.", - "custom_drag": "Personalizado (segure e arraste)", + "sell": "Vender", + "sell_alert_content": "Atualmente, oferecemos suporte apenas à venda de Bitcoin, Ethereum e Litecoin. Crie ou troque para sua carteira Bitcoin, Ethereum ou Litecoin.", + "sell_monero_com_alert_content": "A venda de Monero ainda não é suportada", + "send": "Enviar", + "send_address": "Endereço ${cryptoCurrency}", + "send_amount": "Montante:", + "send_creating_transaction": "Criando transação", + "send_error_currency": "A moeda só pode conter números", + "send_error_minimum_value": "O valor mínimo da quantia é 0,01", + "send_estimated_fee": "Taxa estimada:", + "send_fee": "Taxa:", + "send_name": "Nome", + "send_new": "Novo", + "send_payment_id": "ID de pagamento (opcional)", + "send_priority": "Atualmente, a taxa está definida para a prioridade: ${transactionPriority}.\nA prioridade da transação pode ser ajustada nas configurações", + "send_sending": "Enviando...", + "send_success": "Seu ${crypto} foi enviado com sucesso", + "send_templates": "Modelos", + "send_title": "Enviar", + "send_to_this_address": "Envie ${currency} ${tag}para este endereço", + "send_xmr": "Enviar XMR", + "send_your_wallet": "Sua carteira", + "sending": "Enviando", + "sent": "Enviada", + "settings": "Configurações", + "settings_all": "Tudo", + "settings_allow_biometrical_authentication": "Permitir autenticação biométrica", + "settings_can_be_changed_later": "Essas configurações podem ser alteradas posteriormente nas configurações do aplicativo", + "settings_change_language": "Mudar idioma", + "settings_change_pin": "Mudar PIN", + "settings_currency": "Moeda", + "settings_current_node": "Nó atual", + "settings_dark_mode": "Modo noturno", + "settings_display_balance": "Exibir saldo", + "settings_display_on_dashboard_list": "Exibir no histórico", + "settings_fee_priority": "Prioridade da taxa", + "settings_nodes": "Nós", + "settings_none": "Nada", + "settings_only_trades": "Somente trocas", + "settings_only_transactions": "Somente transações", + "settings_personal": "Pessoal", + "settings_save_recipient_address": "Salvar endereço do destinatário", + "settings_support": "Suporte", + "settings_terms_and_conditions": "Termos e Condições", + "settings_title": "Configurações", + "settings_trades": "Trocas", + "settings_transactions": "Transações", + "settings_wallets": "Carteiras", + "setup_2fa": "Configurar o Cake 2FA", + "setup_2fa_text": "Cake 2FA funciona usando TOTP como segundo fator de autenticação.\n\nO TOTP do Cake 2FA requer suporte SHA-512 e 8 dígitos; isso proporciona maior segurança. Mais informações e aplicativos suportados podem ser encontrados no guia.", + "setup_pin": "Configurar PIN", + "setup_successful": "Seu PIN foi configurado com sucesso!", + "setup_totp_recommended": "Configurar TOTP", + "setup_warning_2fa_text": "Você precisará restaurar sua carteira a partir da semente mnemônica.\n\nO suporte do Cake não poderá ajudá-lo se você perder o acesso ao seu 2FA ou sementes mnemônicas.\nCake 2FA é uma segunda autenticação para determinadas ações na carteira. Antes de usar o Cake 2FA, recomendamos a leitura do guia.NÃO é tão seguro quanto o armazenamento refrigerado.\n\nSe você perder o acesso ao seu aplicativo 2FA ou às chaves TOTP, você perderá o acesso a esta carteira. ", + "setup_your_debit_card": "Configure seu cartão de débito", + "share": "Compartilhar", + "share_address": "Compartilhar endereço", + "show_details": "Mostrar detalhes", + "show_keys": "Mostrar semente/chaves", + "show_market_place": "Mostrar mercado", + "show_seed": "Mostrar semente", + "signTransaction": "Assinar transação", + "signup_for_card_accept_terms": "Cadastre-se no cartão e aceite os termos.", + "slidable": "Deslizável", + "sort_by": "Ordenar por", + "spend_key_private": "Chave de gastos (privada)", + "spend_key_public": "Chave de gastos (pública)", + "status": "Status: ", + "subaddress_title": "Sub-endereços", + "subaddresses": "Sub-endereços", + "submit_request": "enviar um pedido", + "successful": "Bem-sucedido", + "support_description_guides": "Documentação e suporte para problemas comuns", + "support_description_live_chat": "Livre e rápido! Representantes de suporte treinado estão disponíveis para ajudar", + "support_description_other_links": "Junte -se às nossas comunidades ou chegue a nós nossos parceiros por meio de outros métodos", + "support_title_guides": "Guias da carteira de bolo", + "support_title_live_chat": "Apoio ao vivo", + "support_title_other_links": "Outros links de suporte", + "sweeping_wallet": "Carteira varrendo", + "sweeping_wallet_alert": "To nie powinno zająć dużo czasu. NIE WYCHODŹ Z TEGO EKRANU, W PRZECIWNYM WYPADKU MOŻE ZOSTAĆ UTRACONA ŚRODKI", + "switchToETHWallet": "Mude para uma carteira Ethereum e tente novamente", "switchToEVMCompatibleWallet": "Mude para uma carteira compatível com EVM e tente novamente (Ethereum, Polygon)", - "receivable_balance": "Saldo a receber", - "confirmed_tx": "Confirmado", + "symbol": "Símbolo", + "sync_all_wallets": "Sincronize todas as carteiras", + "sync_status_attempting_sync": "TENTANDO SINCRONIZAR", + "sync_status_connected": "CONECTADO", + "sync_status_connecting": "CONECTANDO", + "sync_status_failed_connect": "DESCONECTADO", + "sync_status_not_connected": "DESCONECTADO", + "sync_status_starting_sync": "INICIANDO SINCRONIZAÇÃO", + "sync_status_syncronized": "SINCRONIZADO", + "sync_status_syncronizing": "SINCRONIZANDO", + "syncing_wallet_alert_content": "Seu saldo e lista de transações podem não estar completos até que diga “SYNCHRONIZED” no topo. Clique/toque para saber mais.", + "syncing_wallet_alert_title": "Sua carteira está sincronizando", + "template": "Modelo", + "template_name": "Nome do modelo", + "third_intro_content": "Yats também mora fora da Cake Wallet. Qualquer endereço de carteira na Terra pode ser substituído por um Yat!", + "third_intro_title": "Yat joga bem com os outros", + "time": "${minutes}m ${seconds}s", + "tip": "Dica:", + "today": "Hoje", + "token_contract_address": "Endereço do contrato de token", + "token_decimal": "Token decimal", + "token_name": "Nome do token, por exemplo: Tether", + "token_symbol": "Símbolo de token, por exemplo: USDT", + "tokenID": "EU IA", + "tor_connection": "Conexão Tor", + "tor_only": "Tor apenas", + "total_saving": "Economia total", + "totp_2fa_failure": "Código incorreto. Tente um código diferente ou gere uma nova chave secreta. Use um aplicativo 2FA compatível com códigos de 8 dígitos e SHA512.", + "totp_2fa_success": "Sucesso! Cake 2FA ativado para esta carteira. Lembre-se de salvar sua semente mnemônica caso perca o acesso à carteira.", + "totp_auth_url": "URL de autenticação TOTP", + "totp_code": "Código TOTP", + "totp_secret_code": "Código Secreto TOTP", + "totp_verification_success": "Verificação bem-sucedida!", + "trade_details_copied": "${title} copiados para a área de transferência", + "trade_details_created_at": "Criada em", + "trade_details_fetching": "Buscando", + "trade_details_id": "ID", + "trade_details_pair": "Par", + "trade_details_provider": "Provedor", + "trade_details_state": "Status", + "trade_details_title": "Detalhes da troca", + "trade_for_not_created": "A troca por ${title} não foi criada.", + "trade_history_title": "Histórico de trocas", + "trade_id": "ID da troca:", + "trade_id_not_found": "A troca ${tradeId} de ${title} não foi encontrada.", + "trade_is_powered_by": "Troca realizada por ${provider}", + "trade_not_created": "Troca não criada", + "trade_not_found": "Troca não encontrada.", + "trade_state_btc_sent": "BTC enviado", + "trade_state_complete": "Finalizada", + "trade_state_confirming": "Confirmando", + "trade_state_created": "Criada", + "trade_state_finished": "Finalizada", + "trade_state_paid": "Paga", + "trade_state_paid_unconfirmed": "Pagamento não-confirmado", + "trade_state_pending": "Pendente", + "trade_state_timeout": "Tempo esgotado", + "trade_state_to_be_created": "A ser criada", + "trade_state_traded": "Troca realizada", + "trade_state_trading": "Em andamento", + "trade_state_underpaid": "Parcialmente paga", + "trade_state_unpaid": "Não paga", + "trades": "Trocas", + "transaction_details_amount": "Quantia", + "transaction_details_copied": "${title} copiados para a área de transferência", + "transaction_details_date": "Data", + "transaction_details_fee": "Taxa", + "transaction_details_height": "Altura", + "transaction_details_recipient_address": "Endereços de destinatários", "transaction_details_source_address": "Endereço de Origem", - "pause_wallet_creation": "A capacidade de criar a Haven Wallet está atualmente pausada.", - "contractName": "Nome do contrato", - "contractSymbol": "Símbolo do Contrato", - "description": "Descrição", - "camera_consent": "Sua câmera será usada para capturar uma imagem para fins de identificação por ${provider}. Por favor, verifique a Política de Privacidade para obter detalhes.", - "no_relays": "Sem relés", - "choose_relay": "Escolha um relé para usar", - "no_relays_message": "Encontramos um registro Nostr NIP-05 para este usuário, mas ele não contém nenhum relé. Instrua o destinatário a adicionar retransmissões ao seu registro Nostr.", - "no_relay_on_domain": "Não há uma retransmissão para o domínio do usuário ou a retransmissão está indisponível. Escolha um relé para usar." -} + "transaction_details_title": "Detalhes da transação", + "transaction_details_transaction_id": "ID da transação", + "transaction_key": "Chave de transação", + "transaction_priority_fast": "Rápida", + "transaction_priority_fastest": "Muito rápida", + "transaction_priority_medium": "Média", + "transaction_priority_regular": "Regular", + "transaction_priority_slow": "Lenta", + "transaction_sent": "Transação enviada!", + "transaction_sent_notice": "Se a tela não prosseguir após 1 minuto, verifique um explorador de blocos e seu e-mail.", + "transactions": "Transações", + "transactions_by_date": "Transações por data", + "trusted": "confiável", + "unavailable_balance": "Saldo indisponível", + "unavailable_balance_description": "Saldo Indisponível: Este total inclui fundos bloqueados em transações pendentes e aqueles que você congelou ativamente nas configurações de controle de moedas. Os saldos bloqueados ficarão disponíveis assim que suas respectivas transações forem concluídas, enquanto os saldos congelados permanecerão inacessíveis para transações até que você decida descongelá-los.", + "unconfirmed": "Saldo não confirmado", + "understand": "Entendo", + "unmatched_currencies": "A moeda da sua carteira atual não corresponde à do QR digitalizado", + "unspent_change": "Mudar", + "unspent_coins_details_title": "Detalhes de moedas não gastas", + "unspent_coins_title": "Moedas não gastas", + "unsupported_asset": "Não oferecemos suporte a esta ação para este recurso. Crie ou mude para uma carteira de um tipo de ativo compatível.", + "upto": "até ${value}", + "use": "Use PIN de ", + "use_card_info_three": "Use o cartão digital online ou com métodos de pagamento sem contato.", + "use_card_info_two": "Os fundos são convertidos para USD quando mantidos na conta pré-paga, não em moedas digitais.", + "use_ssl": "Use SSL", + "use_suggested": "Uso sugerido", + "variable_pair_not_supported": "Este par de variáveis não é compatível com as trocas selecionadas", + "verification": "Verificação", + "verify_with_2fa": "Verificar com Cake 2FA", + "version": "Versão ${currentVersion}", + "view_all": "Ver todos", + "view_in_block_explorer": "View in Block Explorer", + "view_key_private": "Chave de visualização (privada)", + "view_key_public": "Chave de visualização (pública)", + "view_transaction_on": "View Transaction on ", + "waiting_payment_confirmation": "Aguardando confirmação de pagamento", + "wallet_keys": "Semente/chaves da carteira", + "wallet_list_create_new_wallet": "Criar nova carteira", + "wallet_list_edit_wallet": "Editar carteira", + "wallet_list_failed_to_load": "Falha ao abrir a carteira ${wallet_name}. ${error}", + "wallet_list_failed_to_remove": "Falha ao remover a carteira ${wallet_name}. ${error}", + "wallet_list_load_wallet": "Abrir carteira", + "wallet_list_loading_wallet": "Abrindo a carteira ${wallet_name}", + "wallet_list_removing_wallet": "Removendo a carteira ${wallet_name}", + "wallet_list_restore_wallet": "Restaurar carteira", + "wallet_list_title": "Carteira Monero", + "wallet_list_wallet_name": "Nome da carteira", + "wallet_menu": "Menu", + "wallet_name": "Nome da carteira", + "wallet_name_exists": "A carteira com esse nome já existe", + "wallet_restoration_store_incorrect_seed_length": "Comprimento de semente incorreto", + "wallet_seed": "Semente de carteira", + "wallet_seed_legacy": "Semente de carteira herdada", + "wallet_store_monero_wallet": "Carteira Monero", + "walletConnect": "CarteiraConectada", + "wallets": "Carteiras", + "warning": "Aviso", + "welcome": "Bem-vindo ao", + "welcome_to_cakepay": "Bem-vindo ao Cake Pay!", + "widgets_address": "Endereço", + "widgets_or": "ou", + "widgets_restore_from_blockheight": "Restaurar a partir de altura do bloco", + "widgets_restore_from_date": "Restaurar a partir de data", + "widgets_seed": "Semente", + "wouoldLikeToConnect": "gostaria de me conectar", + "write_down_backup_password": "Anote sua senha de backup, que será usada para importar seus arquivos de backup.", + "xlm_extra_info": "Não se esqueça de especificar o Memo ID ao enviar a transação XLM para a troca", + "xmr_available_balance": "Saldo disponível", + "xmr_full_balance": "Saldo total", + "xmr_hidden": "Esconder saldo", + "xmr_to_error": "Erro XMR.TO", + "xmr_to_error_description": "Montante inválido. Limite máximo de 8 dígitos após o ponto decimal", + "xrp_extra_info": "Não se esqueça de especificar a etiqueta de destino ao enviar a transação XRP para a troca", + "yat": "Yat", + "yat_address": "Endereço Yat", + "yat_alert_content": "Os usuários da Cake Wallet agora podem enviar e receber todas as suas moedas favoritas com um nome de usuário baseado em emoji único.", + "yat_alert_title": "Envie e receba criptografia mais facilmente com Yat", + "yat_error": "Yat erro", + "yat_error_content": "Nenhum endereço vinculado a este Yat. Tente outro Yat", + "yat_popup_content": "Agora você pode enviar e receber criptografia na Cake Wallet com seu Yat - um nome de usuário curto baseado em emoji. Gerenciar Yats a qualquer momento na tela de configurações", + "yat_popup_title": "O endereço da sua carteira pode ser emojificado.", + "yesterday": "Ontem", + "you_now_have_debit_card": "Agora você tem um cartão de débito", + "you_pay": "Você paga", + "you_will_get": "Converter para", + "you_will_send": "Converter de", + "yy": "aa", + "zzzz": "ZZZZ" +} \ No newline at end of file diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index a4c34f5c5..7fccaa5bd 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -1,779 +1,780 @@ { - "welcome": "Приветствуем в", - "cake_wallet": "Cake Wallet", - "first_wallet_text": "В самом удобном кошельке для Monero, Bitcoin, Ethereum, Litecoin, и Haven", - "please_make_selection": "Выберите способ создания кошелька: создать новый или восстановить ваш существующий.", - "create_new": "Создать новый кошелёк", - "restore_wallet": "Восстановить кошелёк", - "monero_com": "Monero.com by Cake Wallet", - "monero_com_wallet_text": "Awesome wallet for Monero", - "haven_app": "Haven by Cake Wallet", - "haven_app_wallet_text": "Awesome wallet for Haven", - "accounts": "Аккаунты", - "edit": "Редактировать", + "about_cake_pay": "Cake Pay позволяет вам легко покупать подарочные карты с виртуальными активами, которые можно мгновенно потратить в более чем 150 000 продавцов в Соединенных Штатах.", "account": "Аккаунт", + "accounts": "Аккаунты", + "accounts_subaddresses": "Аккаунты и субадреса", + "activate": "Активировать", + "active": "Активный", + "active_cards": "Активные карты", + "activeConnectionsPrompt": "Здесь появятся активные подключения", "add": "Добавить", + "add_contact": "Добавить контакт", + "add_custom_node": "Добавить новый пользовательский узел", + "add_custom_redemption": "Добавить пользовательское погашение", + "add_fund_to_card": "Добавить предоплаченные средства на карты (до ${value})", + "add_new_node": "Добавить новую ноду", + "add_new_word": "Добавить новое слово", + "add_receiver": "Добавить получателя (необязательно)", + "add_secret_code": "Или добавьте этот секретный код в приложение для аутентификации.", + "add_tip": "Добавить подсказку", + "add_token_disclaimer_check": "Я подтвердил адрес контракта токена и информацию, используя авторитетный источник. Добавление вредоносной или неверной информации может привести к потере средств.", + "add_token_warning": "Не редактируйте и не добавляйте токены по указанию мошенников.\nВсегда подтверждайте адреса токенов из авторитетных источников!", + "add_value": "Добавить значение", + "address": "Адрес", "address_book": "Адресная книга", - "contact": "Контакт", - "please_select": "Пожалуйста, выберите:", - "cancel": "Отменить", - "ok": "OK", - "contact_name": "Имя контакта", - "reset": "Сброс", - "save": "Сохранить", + "address_book_menu": "Адресная книга", + "address_detected": "Обнаружен адрес", + "address_from_domain": "Этот адрес от ${domain} на Unstoppable Domains", + "address_from_yat": "Этот адрес от ${emoji} на Yat", + "address_label": "Address label", "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": "Сделки", - "filter_by": "Фильтровать по", - "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": "Используя ${title}", - "error": "Ошибка", - "estimated": "Примерно", - "min_value": "Мин: ${value} ${currency}", - "max_value": "Макс: ${value} ${currency}", - "change_currency": "Изменить валюту", - "overwrite_amount": "Overwrite amount", - "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", - "copy_id": "Скопировать ID", - "exchange_result_write_down_trade_id": "Пожалуйста, скопируйте или запишите ID сделки.", - "trade_id": "ID сделки:", - "copied_to_clipboard": "Скопировано в буфер обмена", - "saved_the_trade_id": "Я сохранил ID сделки", - "fetching": "Загрузка", - "id": "ID: ", - "amount": "Сумма: ", - "payment_id": "ID платежа: ", - "status": "Статус: ", - "offer_expires_in": "Предложение истекает через: ", - "trade_is_powered_by": "Сделка выполнена через ${provider}", - "copy_address": "Cкопировать адрес", - "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": "Tранзакция отправлена!", - "expired": "Истекает", - "time": "${minutes}мин ${seconds}сек", - "send_xmr": "Отправить XMR", - "exchange_new_template": "Новый шаблон", - "faq": "FAQ", - "enter_your_pin": "Введите ваш 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_to_get_address": "Отсканируйте QR-код для получения адреса", - "qr_fullscreen": "Нажмите, чтобы открыть полноэкранный QR-код", - "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": "Восстановить из back-up файла", - "restore_description_from_backup": "Вы можете восстановить Cake Wallet из вашего back-up файла", - "restore_seed_keys_restore": "Восстановить из мнемонической фразы/ключей", - "restore_title_from_seed": "Восстановить из мнемонической фразы", - "restore_description_from_seed": "Вы можете восстановить кошелёк используя 25-ти значную мнемоническую фразу", - "restore_title_from_keys": "Восстановить с помощью ключей", - "restore_description_from_keys": "Вы можете восстановить кошелёк с помощью приватных ключей", - "restore_wallet_name": "Имя кошелька", - "restore_address": "Адрес", - "restore_view_key_private": "Приватный ключ просмотра", - "restore_spend_key_private": "Приватный ключ траты", - "restore_recover": "Восстановить", - "restore_wallet_restore_description": "Описание восстановления кошелька", - "restore_new_seed": "Новая мнемоническая фраза", - "restore_active_seed": "Активная мнемоническая фраза", - "restore_bitcoin_description_from_seed": "Вы можете восстановить кошелёк используя 24-ти значную мнемоническую фразу", - "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": "Язык семян", - "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": "Испанский", - "seed_language_french": "Французский", - "seed_language_italian": "итальянский", - "send_title": "Отправить", - "send_your_wallet": "Ваш кошелёк", - "send_address": "${cryptoCurrency} адрес", - "send_payment_id": "ID платежа (опционально)", + "advanced_settings": "Расширенные настройки", + "aggressive": "чрезмерно усердный", + "agree": "согласен", + "agree_and_continue": "Согласиться и продолжить", + "agree_to": "Создавая аккаунт, вы соглашаетесь с ", "all": "ВСЕ", - "send_error_minimum_value": "Mинимальная сумма 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": "Имя", - "got_it": "Понял", - "send_sending": "Отправка...", - "send_success": "Ваш ${crypto} был успешно отправлен", - "settings_title": "Настройки", - "settings_nodes": "Ноды", - "settings_current_node": "Текущая нода", - "settings_wallets": "Кошельки", - "settings_display_balance": "Отображать баланс", - "settings_currency": "Валюта", - "settings_fee_priority": "Приоритет транзакции", - "settings_save_recipient_address": "Сохранять адрес получателя", - "settings_personal": "Персональные", - "settings_change_pin": "Изменить 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_key_public": "Публичный ключ просмотра", - "spend_key_private": "Приватный ключ траты", - "spend_key_public": "Публичный ключ траты", - "copied_key_to_clipboard": "Скопировано ${key} в буфер обмена", - "new_subaddress_title": "Новый адрес", - "new_subaddress_label_name": "Имя", - "new_subaddress_create": "Создать", - "address_label": "Address label", - "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": "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_edit_wallet": "Изменить кошелек", - "wallet_list_wallet_name": "Имя кошелька", - "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_node_proxy_address": "Введите :<порт>, например 127.0.0.1:9050.", - "error_text_payment_id": "Идентификатор платежа может содержать от 16 до 64 символов в hex", - "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 до 33 символов в длину", - "error_text_keys": "Ключи кошелька могут содержать только 64 символа в hex", - "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 символов в длину", + "all_trades": "Все сделки", + "all_transactions": "Все транзакции", + "alphabetical": "Алфавитный", + "already_have_account": "У вас уже есть аккаунт?", + "always": "всегда", + "amount": "Сумма: ", + "amount_is_estimate": "Полученная сумма является приблизительной", + "amount_is_guaranteed": "Полученная сумма гарантирована", + "and": "и", + "anonpay_description": "Создайте ${type}. Получатель может использовать ${method} с любой поддерживаемой криптовалютой, и вы получите средства на этот кошелек.", + "apk_update": "Обновление APK", + "approve": "Утвердить", + "arrive_in_this_address": "${currency} ${tag}придет на этот адрес", + "ascending": "Восходящий", + "ask_each_time": "Спросите каждый раз", "auth_store_ban_timeout": "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": "ПОДКЛЮЧЕНО", - "sync_status_attempting_sync": "ПОПЫТКА СИНХРОНИЗАЦИИ", - "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": "BTC отправлены", - "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}", - "extracted_address_content": "Вы будете отправлять средства\n${recipient_name}", - "card_address": "Адрес:", - "buy": "Купить", - "sell": "Продавать", - "placeholder_transactions": "Ваши транзакции будут отображаться здесь", - "placeholder_contacts": "Ваши контакты будут отображаться здесь", - "template": "Шаблон", - "confirm_delete_template": "Это действие удалит шаблон. Вы хотите продолжить?", - "confirm_delete_wallet": "Это действие удалит кошелек. Вы хотите продолжить?", - "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", - "trusted": "доверенный", - "color_theme": "Цветовая тема", - "light_theme": "Светлая", - "bright_theme": "Яркая", - "dark_theme": "Темная", - "enter_your_note": "Введите примечание…", - "note_optional": "Примечание (необязательно)", - "note_tap_to_change": "Примечание (нажмите для изменения)", - "view_in_block_explorer": "View in Block Explorer", - "view_transaction_on": "View Transaction on ", - "transaction_key": "Ключ транзакции", - "confirmations": "Подтверждения", - "recipient_address": "Адрес получателя", - "extra_id": "Дополнительный ID:", - "destination_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": "Не забудьте указать Memo ID (памятка) при отправке транзакции XLM для обмена", - "xrp_extra_info": "Не забудьте указать целевой тег при отправке транзакции XRP для обмена", - "exchange_incorrect_current_wallet_for_xmr": "Если вы хотите обменять XMR со своего баланса Monero в Cake Wallet, сначала переключитесь на свой кошелек Monero.", - "confirmed": "Подтвержденный баланс", - "unconfirmed": "Неподтвержденный баланс", - "displayable": "Отображаемый", - "submit_request": "отправить запрос", - "buy_alert_content": "В настоящее время мы поддерживаем только покупку биткойнов, Ethereum, Litecoin и Monero. Пожалуйста, создайте или переключитесь на свой кошелек Bitcoin, Ethereum, Litecoin или Monero.", - "sell_alert_content": "В настоящее время мы поддерживаем только продажу биткойнов, эфириума и лайткойна. Пожалуйста, создайте или переключитесь на свой кошелек Bitcoin, Ethereum или Litecoin.", - "outdated_electrum_wallet_description": "Новые биткойн-кошельки, созданные в Cake, теперь содержат мнемоническую фразу из 24 слов. Вы обязательно должны создать новый биткойн-кошелек и перевести все свои средства в новый кошелек из 24 слов, а также прекратить использование кошельков с мнемонической фразой из 12 слов. Пожалуйста, сделайте это немедленно, чтобы обезопасить свои средства.", - "understand": "Понятно", - "apk_update": "Обновление APK", - "buy_bitcoin": "Купить Bitcoin", - "buy_with": "Купить с помощью", - "moonpay_alert_text": "Сумма должна быть больше или равна ${minAmount} ${fiatCurrency}", - "outdated_electrum_wallet_receive_warning": "Если этот кошелек имеет мнемоническую фразу из 12 слов и был создан в Cake, НЕ переводите биткойны на этот кошелек. Любые BTC, переведенные на этот кошелек, могут быть потеряны. Создайте новый кошелек с мнемоническои фразы из 24 слов (коснитесь меню в правом верхнем углу, выберите «Кошельки», выберите «Создать новый кошелек», затем выберите «Bitcoin») и НЕМЕДЛЕННО переведите туда свои BTC. Новые (24 слова) кошельки BTC от Cake безопасны", - "do_not_show_me": "Не показывай мне это больше", - "unspent_coins_title": "Неизрасходованные монеты", - "unspent_coins_details_title": "Сведения о неизрасходованных монетах", - "freeze": "Заморозить", - "frozen": "Заморожено", - "coin_control": "Контроль монет (необязательно)", - "address_detected": "Обнаружен адрес", - "address_from_domain": "Этот адрес от ${domain} на Unstoppable Domains", - "add_receiver": "Добавить получателя (необязательно)", - "manage_yats": "Управлять Yat", - "yat_alert_title": "С Yat проще отправлять и получать криптовалюту", - "yat_alert_content": "Пользователи Cake Wallet теперь могут отправлять и получать криптовалюту при помощи уникального имени пользователя на основе эмодзи.", - "get_your_yat": "Получить свой Yat", - "connect_an_existing_yat": "Подключить существующий Yat", - "yat_address": "Yat адрес", - "yat": "Yat", - "connect_yats": "Подключить Yats", - "address_from_yat": "Этот адрес от ${emoji} на Yat", - "yat_error": "Ошибка Yat", - "yat_error_content": "Нет адресов, связанных с этим Yat. Попробуйте другой Yat", - "choose_address": "\n\nПожалуйста, выберите адрес:", - "yat_popup_title": "Адрес вашего кошелька может быть связан с эмодзи", - "yat_popup_content": "Теперь вы можете отправлять и получать криптовалюту в Cake Wallet с помощью Yat - короткого имени пользователя на основе эмодзи. Управляйте Yat в любое время при помощи экрана настроек", - "second_intro_title": "Один адрес эмодзи для управления остальными адресами", - "second_intro_content": "Ваш Yat - это единственный уникальный адрес эмодзи, который заменяет длинные шестнадцатеричные адреса для всех ваших валют.", - "third_intro_title": "Yat хорошо взаимодействует с другими", - "third_intro_content": "Yat находятся за пределами Cake Wallet. Любой адрес кошелька на земле можно заменить на Yat!", - "learn_more": "Узнать больше", - "search": "Поиск", - "search_language": "Язык поиска", - "search_currency": "Валюта поиска", - "new_template": "Новый шаблон", - "electrum_address_disclaimer": "Мы генерируем новые адреса каждый раз, когда вы их используете, но предыдущие адреса продолжают работать.", - "wallet_name_exists": "Кошелек с таким именем уже существует", - "market_place": "Торговая площадка", - "cake_pay_title": "Подарочные карты Cake Pay", - "cake_pay_subtitle": "Покупайте подарочные карты со скидкой (только для США)", - "cake_pay_web_cards_title": "Веб-карты Cake Pay", - "cake_pay_web_cards_subtitle": "Покупайте карты предоплаты и подарочные карты по всему миру", - "about_cake_pay": "Cake Pay позволяет вам легко покупать подарочные карты с виртуальными активами, которые можно мгновенно потратить в более чем 150 000 продавцов в Соединенных Штатах.", - "cake_pay_account_note": "Зарегистрируйтесь, указав только адрес электронной почты, чтобы просматривать и покупать карты. Некоторые даже доступны со скидкой!", - "already_have_account": "У вас уже есть аккаунт?", - "create_account": "Создать аккаунт", - "privacy_policy": "Политика конфиденциальности", - "welcome_to_cakepay": "Добро пожаловать в Cake Pay!", - "sign_up": "Зарегистрироваться", - "forgot_password": "Забыли пароль", - "reset_password": "Сбросить пароль", - "gift_cards": "Подарочные карты", - "setup_your_debit_card": "Настройте свою дебетовую карту", - "no_id_required": "Идентификатор не требуется. Пополняйте и тратьте где угодно", - "how_to_use_card": "Как использовать эту карту", - "purchase_gift_card": "Купить подарочную карту", - "verification": "Проверка", - "fill_code": "Пожалуйста, введите код подтверждения, отправленный на вашу электронную почту", - "didnt_get_code": "Не получить код?", - "resend_code": "Пожалуйста, отправьте еще раз", - "debit_card": "Дебетовая карта", - "cakepay_prepaid_card": "Предоплаченная дебетовая карта CakePay", - "no_id_needed": "Идентификатор не нужен!", - "frequently_asked_questions": "Часто задаваемые вопросы", - "debit_card_terms": "Хранение и использование номера вашей платежной карты (и учетных данных, соответствующих номеру вашей платежной карты) в этом цифровом кошельке регулируются положениями и условиями применимого соглашения держателя карты с эмитентом платежной карты, действующим с время от времени.", - "please_reference_document": "Пожалуйста, обратитесь к документам ниже для получения дополнительной информации.", - "cardholder_agreement": "Соглашение с держателем карты", - "e_sign_consent": "Согласие электронной подписи", - "agree_and_continue": "Согласиться и продолжить", - "email_address": "Адрес электронной почты", - "agree_to": "Создавая аккаунт, вы соглашаетесь с ", - "and": "и", - "enter_code": "Введите код", - "congratulations": "Поздравляем!", - "you_now_have_debit_card": "Теперь у вас есть дебетовая карта", - "min_amount": "Минимум: ${value}", - "max_amount": "Макс.: ${value}", - "enter_amount": "Введите сумму", - "billing_address_info": "Если вас попросят указать платежный адрес, укажите адрес доставки", - "order_physical_card": "Заказать физическую карту", - "add_value": "Добавить значение", - "activate": "Активировать", - "get_a": "Получить ", - "digital_and_physical_card": "цифровая и физическая предоплаченная дебетовая карта", - "get_card_note": " которую вы можете пополнить цифровой валютой. Дополнительная информация не требуется!", - "signup_for_card_accept_terms": "Подпишитесь на карту и примите условия.", - "add_fund_to_card": "Добавить предоплаченные средства на карты (до ${value})", - "use_card_info_two": "Средства конвертируются в доллары США, когда они хранятся на предоплаченном счете, а не в цифровых валютах.", - "use_card_info_three": "Используйте цифровую карту онлайн или с помощью бесконтактных способов оплаты.", - "optionly_order_card": "При желании закажите физическую карту.", - "hide_details": "Скрыть детали", - "show_details": "Показать детали", - "upto": "до ${value}", - "discount": "Сэкономьте ${value}%", - "gift_card_amount": "Сумма подарочной карты", - "bill_amount": "Сумма счета", - "you_pay": "Вы платите", - "tip": "Совет:", - "custom": "обычай", - "by_cake_pay": "от Cake Pay", - "expires": "Истекает", - "mm": "ММ", - "yy": "ГГ", - "online": "Онлайн", - "offline": "Не в сети", - "gift_card_number": "Номер подарочной карты", - "pin_number": "ПИН-код", - "total_saving": "Общая экономия", - "last_30_days": "Последние 30 дней", - "avg_savings": "Средняя экономия", - "view_all": "Просмотреть все", - "active_cards": "Активные карты", - "delete_account": "Удалить аккаунт", - "cards": "Карты", - "active": "Активный", - "redeemed": "искуплен", - "gift_card_balance_note": "Здесь будут отображаться подарочные карты с остатком на балансе", - "gift_card_redeemed_note": "Здесь будут отображаться использованные вами подарочные карты", - "logout": "Выйти", - "add_tip": "Добавить подсказку", - "percentageOf": "из ${amount}", - "is_percentage": "есть", - "search_category": "Категория поиска", - "mark_as_redeemed": "Отметить как погашенный", - "more_options": "Дополнительные параметры", - "awaiting_payment_confirmation": "Ожидается подтверждения платежа", - "transaction_sent_notice": "Если экран не отображается через 1 минуту, проверьте обозреватель блоков и свою электронную почту.", - "agree": "согласен", - "in_store": "В магазине", - "generating_gift_card": "Создание подарочной карты", - "payment_was_received": "Ваш платеж получен.", - "proceed_after_one_minute": "Если через 1 минуту экран не отображается, проверьте свою электронную почту.", - "order_id": "Идентификатор заказа", - "gift_card_is_generated": "Подарочная карта сгенерирована", - "open_gift_card": "Открыть подарочную карту", - "contact_support": "Связаться со службой поддержки", - "gift_cards_unavailable": "В настоящее время подарочные карты можно приобрести только через Monero, Bitcoin и Litecoin.", - "background_sync_mode": "Режим фоновой синхронизации", - "sync_all_wallets": "Синхронизировать все кошельки", - "introducing_cake_pay": "Представляем Cake Pay!", - "cake_pay_learn_more": "Мгновенно покупайте и используйте подарочные карты в приложении!\nПроведите по экрану слева направо, чтобы узнать больше.", + "authenticated": "Аутентифицировано", + "authentication": "Аутентификация", + "auto_generate_subaddresses": "Авто генерируйте Subaddresses", "automatic": "автоматический", - "fixed_pair_not_supported": "Эта фиксированная пара не поддерживается выбранными биржами.", - "variable_pair_not_supported": "Эта пара переменных не поддерживается выбранными биржами.", - "none_of_selected_providers_can_exchange": "Ни один из выбранных провайдеров не может совершить этот обмен", - "choose_one": "Выбери один", - "choose_from_available_options": "Выберите из доступных вариантов:", - "custom_redeem_amount": "Пользовательская сумма погашения", - "add_custom_redemption": "Добавить пользовательское погашение", - "remaining": "осталось", - "delete_wallet": "Удалить кошелек", - "delete_wallet_confirm_message": "Вы уверены, что хотите удалить кошелек ${wallet_name}?", - "low_fee": "Низкая комиссия", - "low_fee_alert": "В настоящее время вы используете низкий приоритет платы за сеть. Это может привести к длительному ожиданию, изменению ставок или отмене сделок. Мы рекомендуем установить более высокую плату для лучшего опыта.", - "ignor": "Игнорировать", - "use_suggested": "Использовать предложенный", - "do_not_share_warning_text": "Не сообщайте их никому, включая техподдержку.\n\nВаши средства могут и будут украдены!", - "help": "помощь", - "all_transactions": "Все транзакции", - "all_trades": "Все сделки", - "connection_sync": "Подключение и синхронизация", - "security_and_backup": "Безопасность и резервное копирование", - "create_backup": "Создать резервную копию", - "privacy_settings": "Настройки конфиденциальности", - "privacy": "Конфиденциальность", - "display_settings": "Настройки отображения", - "other_settings": "Другие настройки", - "require_pin_after": "Требовать ПИН после", - "always": "всегда", - "minutes_to_pin_code": "${minute} минут", - "disable_exchange": "Отключить обмен", - "advanced_settings": "Расширенные настройки", - "settings_can_be_changed_later": "Эти настройки можно изменить позже в настройках приложения.", - "add_custom_node": "Добавить новый пользовательский узел", - "disable_fiat": "Отключить фиат", - "fiat_api": "Фиат API", - "disabled": "Отключено", - "enabled": "Включено", - "tor_only": "Только Tor", - "unmatched_currencies": "Валюта вашего текущего кошелька не соответствует валюте отсканированного QR-кода.", - "orbot_running_alert": "Перед подключением к этому узлу убедитесь, что Orbot запущен.", - "contact_list_contacts": "Контакты", - "contact_list_wallets": "Мои кошельки", - "bitcoin_payments_require_1_confirmation": "Биткойн-платежи требуют 1 подтверждения, что может занять 20 минут или дольше. Спасибо тебе за твое терпение! Вы получите электронное письмо, когда платеж будет подтвержден.", - "send_to_this_address": "Отправить ${currency} ${tag}на этот адрес", - "arrive_in_this_address": "${currency} ${tag}придет на этот адрес", - "do_not_send": "Не отправлять", - "error_dialog_content": "Ой, у нас какая-то ошибка.\n\nПожалуйста, отправьте отчет о сбое в нашу службу поддержки, чтобы сделать приложение лучше.", - "scan_qr_code": "Сканировать QR-код", - "cold_or_recover_wallet": "Добавьте холодный кошелек или восстановите бумажный кошелек", - "please_wait": "Пожалуйста, подождите", - "sweeping_wallet": "Подметание кошелька", - "sweeping_wallet_alert": "Это не должно занять много времени. НЕ ПОКИДАЙТЕ ЭТОТ ЭКРАН, ИНАЧЕ ВЫЧИСЛЕННЫЕ СРЕДСТВА МОГУТ БЫТЬ ПОТЕРЯНЫ", - "decimal_places_error": "Слишком много десятичных знаков", - "edit_node": "Редактировать узел", - "invoice_details": "Детали счета", - "donation_link_details": "Информация о ссылке для пожертвований", - "anonpay_description": "Создайте ${type}. Получатель может использовать ${method} с любой поддерживаемой криптовалютой, и вы получите средства на этот кошелек.", - "create_invoice": "Создать счет", - "create_donation_link": "Создать ссылку для пожертвований", - "optional_email_hint": "Необязательное электронное письмо с уведомлением получателя платежа", - "optional_description": "Дополнительное описание", - "optional_name": "Необязательное имя получателя", - "clearnet_link": "Клирнет ссылка", - "onion_link": "Луковая ссылка", - "settings": "Настройки", - "sell_monero_com_alert_content": "Продажа Monero пока не поддерживается", - "error_text_input_below_minimum_limit": "Сумма меньше минимальной", - "error_text_input_above_maximum_limit": "Сумма больше максимальной", - "show_market_place": "Показать торговую площадку", - "prevent_screenshots": "Предотвратить скриншоты и запись экрана", - "profile": "Профиль", - "close": "Закрывать", - "modify_2fa": "Изменить торт 2FA", - "disable_cake_2fa": "Отключить торт 2FA", - "question_to_disable_2fa": "Вы уверены, что хотите отключить Cake 2FA? Код 2FA больше не потребуется для доступа к кошельку и некоторым функциям.", - "disable": "Запрещать", - "setup_2fa": "Настройка торта 2FA", - "verify_with_2fa": "Подтвердить с помощью Cake 2FA", - "totp_code": "TOTP-код", - "please_fill_totp": "Пожалуйста, введите 8-значный код на другом устройстве", - "totp_2fa_success": "Успех! Для этого кошелька включена двухфакторная аутентификация Cake. Не забудьте сохранить мнемоническое семя на случай, если вы потеряете доступ к кошельку.", - "totp_verification_success": "Проверка прошла успешно!", - "totp_2fa_failure": "Неверный код. Пожалуйста, попробуйте другой код или создайте новый секретный ключ. Используйте совместимое приложение 2FA, которое поддерживает 8-значные коды и SHA512.", - "enter_totp_code": "Пожалуйста, введите TOTP-код.", - "add_secret_code": "Или добавьте этот секретный код в приложение для аутентификации.", - "totp_secret_code": "Секретный код ТОТП", - "setup_2fa_text": "Cake 2FA работает с использованием TOTP в качестве второго фактора аутентификации.\n\nTOTP Cake 2FA требует SHA-512 и поддержки 8 цифр; это обеспечивает повышенную безопасность. Дополнительную информацию и поддерживаемые приложения можно найти в руководстве.", - "setup_totp_recommended": "Настройка ТОТП", - "disable_buy": "Отключить действие покупки", - "disable_sell": "Отключить действие продажи", - "cake_2fa_preset": "Торт 2FA Preset", - "narrow": "Узкий", - "normal": "Нормальный", - "aggressive": "чрезмерно усердный", - "require_for_assessing_wallet": "Требовать для доступа к кошельку", - "require_for_sends_to_non_contacts": "Требовать для отправки не контактам", - "require_for_sends_to_contacts": "Требовать для отправки контактам", - "require_for_sends_to_internal_wallets": "Требовать отправки на внутренние кошельки", - "require_for_exchanges_to_internal_wallets": "Требовать для обмена на внутренние кошельки", - "require_for_adding_contacts": "Требовать добавления контактов", - "require_for_creating_new_wallets": "Требовать для создания новых кошельков", - "require_for_all_security_and_backup_settings": "Требовать все настройки безопасности и резервного копирования", + "available_balance": "Доступный баланс", "available_balance_description": "Доступный баланс - это средства, которые вы можете использовать для покупки или продажи криптовалюты.", - "syncing_wallet_alert_title": "Ваш кошелек синхронизируется", - "syncing_wallet_alert_content": "Ваш баланс и список транзакций могут быть неполными, пока вверху не будет написано «СИНХРОНИЗИРОВАНО». Щелкните/коснитесь, чтобы узнать больше.", - "home_screen_settings": "Настройки главного экрана", - "sort_by": "Сортировать по", - "search_add_token": "Поиск / Добавить токен", - "edit_token": "Изменить токен", - "warning": "Предупреждение", - "add_token_warning": "Не редактируйте и не добавляйте токены по указанию мошенников.\nВсегда подтверждайте адреса токенов из авторитетных источников!", - "add_token_disclaimer_check": "Я подтвердил адрес контракта токена и информацию, используя авторитетный источник. Добавление вредоносной или неверной информации может привести к потере средств.", - "token_contract_address": "Адрес контракта токена", - "token_name": "Имя токена, например: Tether", - "token_symbol": "Символ токена, например: USDT", - "token_decimal": "Десятичный токен", - "field_required": "Это поле обязательно к заполнению", - "pin_at_top": "закрепить ${token} вверху", - "invalid_input": "Неверный Ввод", - "fiat_balance": "Фиатный баланс", - "gross_balance": "Валовой баланс", - "alphabetical": "Алфавитный", - "generate_name": "Создать имя", + "avg_savings": "Средняя экономия", + "awaitDAppProcessing": "Пожалуйста, подождите, пока dApp завершит обработку.", + "awaiting_payment_confirmation": "Ожидается подтверждения платежа", + "background_sync_mode": "Режим фоновой синхронизации", + "backup": "Резервная копия", + "backup_file": "Файл резервной копии", + "backup_password": "Пароль резервной копии", "balance_page": "Страница баланса", - "share": "Делиться", - "slidable": "Скользящий", - "monero_dark_theme": "Темная тема Monero", + "bill_amount": "Сумма счета", + "billing_address_info": "Если вас попросят указать платежный адрес, укажите адрес доставки", + "biometric_auth_reason": "Отсканируйте свой отпечаток пальца для аутентификации", "bitcoin_dark_theme": "Биткойн Темная тема", "bitcoin_light_theme": "Легкая биткойн-тема", - "high_contrast_theme": "Высококонтрастная тема", - "matrix_green_dark_theme": "Матрица Зеленая Темная Тема", - "monero_light_theme": "Светлая тема Monero", - "manage_nodes": "Управление узлами", - "etherscan_history": "История Эфириума", - "template_name": "Имя Шаблона", + "bitcoin_payments_require_1_confirmation": "Биткойн-платежи требуют 1 подтверждения, что может занять 20 минут или дольше. Спасибо тебе за твое терпение! Вы получите электронное письмо, когда платеж будет подтвержден.", + "Blocks_remaining": "${status} Осталось блоков", + "bright_theme": "Яркая", + "buy": "Купить", + "buy_alert_content": "В настоящее время мы поддерживаем только покупку биткойнов, Ethereum, Litecoin и Monero. Пожалуйста, создайте или переключитесь на свой кошелек Bitcoin, Ethereum, Litecoin или Monero.", + "buy_bitcoin": "Купить Bitcoin", + "buy_provider_unavailable": "Поставщик в настоящее время недоступен.", + "buy_with": "Купить с помощью", + "by_cake_pay": "от Cake Pay", + "cake_2fa_preset": "Торт 2FA Preset", + "cake_pay_account_note": "Зарегистрируйтесь, указав только адрес электронной почты, чтобы просматривать и покупать карты. Некоторые даже доступны со скидкой!", + "cake_pay_learn_more": "Мгновенно покупайте и используйте подарочные карты в приложении!\nПроведите по экрану слева направо, чтобы узнать больше.", + "cake_pay_subtitle": "Покупайте подарочные карты со скидкой (только для США)", + "cake_pay_title": "Подарочные карты Cake Pay", + "cake_pay_web_cards_subtitle": "Покупайте карты предоплаты и подарочные карты по всему миру", + "cake_pay_web_cards_title": "Веб-карты Cake Pay", + "cake_wallet": "Cake Wallet", + "cakepay_prepaid_card": "Предоплаченная дебетовая карта CakePay", + "camera_consent": "Ваша камера будет использоваться для захвата изображения в целях идентификации ${provider}. Пожалуйста, ознакомьтесь с их Политикой конфиденциальности для получения подробной информации.", + "camera_permission_is_required": "Требуется разрешение камеры.\nПожалуйста, включите его в настройках приложения.", + "cancel": "Отменить", + "card_address": "Адрес:", + "cardholder_agreement": "Соглашение с держателем карты", + "cards": "Карты", + "chains": "Цепи", + "change": "Изменить", + "change_backup_password_alert": "Ваши предыдущие файлы резервных копий будут недоступны для импорта с новым паролем резервной копии. Новый пароль резервной копии будет использоваться только для новых файлов резервных копий. Вы уверены, что хотите изменить пароль резервной копии?", + "change_currency": "Изменить валюту", + "change_current_node": "Вы уверены, что хотите изменить текущую ноду на ${node}?", + "change_current_node_title": "Изменить текущую ноду", + "change_exchange_provider": "Изменить провайдера обмена", + "change_language": "Изменить язык", + "change_language_to": "Изменить язык на ${language}?", + "change_password": "Изменить пароль", "change_rep": "Изменить представителя", "change_rep_message": "Вы уверены, что хотите сменить представителя?", - "unsupported_asset": "Мы не поддерживаем это действие для этого объекта. Пожалуйста, создайте или переключитесь на кошелек поддерживаемого типа активов.", - "manage_pow_nodes": "Управление узлами PoW", - "support_title_live_chat": "Живая поддержка", - "support_description_live_chat": "Бесплатно и быстро! Обученные представители поддержки доступны для оказания помощи", - "support_title_guides": "Корт -гиды", - "support_description_guides": "Документация и поддержка общих вопросов", - "support_title_other_links": "Другие ссылки на поддержку", - "support_description_other_links": "Присоединяйтесь к нашим сообществам или охватите нас наших партнеров с помощью других методов", + "change_rep_successful": "Успешно изменил представитель", + "change_wallet_alert_content": "Вы хотите изменить текущий кошелек на ${wallet_name}?", + "change_wallet_alert_title": "Изменить текущий кошелек", + "choose_account": "Выберите аккаунт", + "choose_address": "\n\nПожалуйста, выберите адрес:", "choose_derivation": "Выберите вывод кошелька", - "new_first_wallet_text": "Легко сохранить свою криптовалюту в безопасности", - "select_destination": "Пожалуйста, выберите место для файла резервной копии.", - "auto_generate_subaddresses": "Авто генерируйте Subaddresses", - "save_to_downloads": "Сохранить в загрузках", - "select_buy_provider_notice": "Выберите поставщика покупки выше. Вы можете пропустить этот экран, установив поставщика покупки по умолчанию в настройках приложения.", - "onramper_option_description": "Быстро купите крипто со многими способами оплаты. Доступно в большинстве стран. Спреды и сборы различаются.", + "choose_from_available_options": "Выберите из доступных вариантов:", + "choose_one": "Выбери один", + "choose_relay": "Пожалуйста, выберите реле для использования", + "choose_wallet_currency": "Пожалуйста, выберите валюту кошелька:", + "clear": "Очистить", + "clearnet_link": "Клирнет ссылка", + "close": "Закрывать", + "coin_control": "Контроль монет (необязательно)", + "cold_or_recover_wallet": "Добавьте холодный кошелек или восстановите бумажный кошелек", + "color_theme": "Цветовая тема", + "commit_transaction_amount_fee": "Подтвердить транзакцию \nСумма: ${amount}\nКомиссия: ${fee}", + "confirm": "Подтвердить", + "confirm_delete_template": "Это действие удалит шаблон. Вы хотите продолжить?", + "confirm_delete_wallet": "Это действие удалит кошелек. Вы хотите продолжить?", + "confirm_sending": "Подтвердить отправку", + "confirmations": "Подтверждения", + "confirmed": "Подтвержденный баланс", + "confirmed_tx": "Подтвержденный", + "congratulations": "Поздравляем!", + "connect_an_existing_yat": "Подключить существующий Yat", + "connect_yats": "Подключить Yats", + "connection_sync": "Подключение и синхронизация", + "connectWalletPrompt": "Подключите свой кошелек к WalletConnect для совершения транзакций.", + "contact": "Контакт", + "contact_list_contacts": "Контакты", + "contact_list_wallets": "Мои кошельки", + "contact_name": "Имя контакта", + "contact_support": "Связаться со службой поддержки", + "continue_text": "Продолжить", + "contractName": "Название контракта", + "contractSymbol": "Символ контракта", + "copied_key_to_clipboard": "Скопировано ${key} в буфер обмена", + "copied_to_clipboard": "Скопировано в буфер обмена", + "copy": "Скопировать", + "copy_address": "Cкопировать адрес", + "copy_id": "Скопировать ID", + "copyWalletConnectLink": "Скопируйте ссылку WalletConnect из dApp и вставьте сюда.", + "create_account": "Создать аккаунт", + "create_backup": "Создать резервную копию", + "create_donation_link": "Создать ссылку для пожертвований", + "create_invoice": "Создать счет", + "create_new": "Создать новый кошелёк", + "create_new_account": "Создать новый аккаунт", + "creating_new_wallet": "Создание нового кошелька", + "creating_new_wallet_error": "Ошибка: ${description}", + "creation_date": "Дата создания", + "custom": "обычай", + "custom_drag": "Пользователь (удерживайте и перетаскивайте)", + "custom_redeem_amount": "Пользовательская сумма погашения", + "dark_theme": "Темная", + "debit_card": "Дебетовая карта", + "debit_card_terms": "Хранение и использование номера вашей платежной карты (и учетных данных, соответствующих номеру вашей платежной карты) в этом цифровом кошельке регулируются положениями и условиями применимого соглашения держателя карты с эмитентом платежной карты, действующим с время от времени.", + "decimal_places_error": "Слишком много десятичных знаков", "default_buy_provider": "По умолчанию поставщик покупки", - "ask_each_time": "Спросите каждый раз", - "buy_provider_unavailable": "Поставщик в настоящее время недоступен.", - "signTransaction": "Подписать транзакцию", + "default_sell_provider": "Поставщик продаж по умолчанию", + "delete": "Удалить", + "delete_account": "Удалить аккаунт", + "delete_wallet": "Удалить кошелек", + "delete_wallet_confirm_message": "Вы уверены, что хотите удалить кошелек ${wallet_name}?", + "deleteConnectionConfirmationPrompt": "Вы уверены, что хотите удалить подключение к", + "descending": "Нисходящий", + "description": "Описание", + "destination_tag": "Целевой тег:", + "dfx_option_description": "Покупайте криптовалюту за EUR и CHF. До 990€ без дополнительного KYC. Для розничных и корпоративных клиентов в Европе", + "didnt_get_code": "Не получить код?", + "digit_pin": "-значный PIN", + "digital_and_physical_card": "цифровая и физическая предоплаченная дебетовая карта", + "disable": "Запрещать", + "disable_buy": "Отключить действие покупки", + "disable_cake_2fa": "Отключить торт 2FA", + "disable_exchange": "Отключить обмен", + "disable_fiat": "Отключить фиат", + "disable_sell": "Отключить действие продажи", + "disabled": "Отключено", + "discount": "Сэкономьте ${value}%", + "display_settings": "Настройки отображения", + "displayable": "Отображаемый", + "do_not_have_enough_gas_asset": "У вас недостаточно ${currency} для совершения транзакции при текущих условиях сети блокчейн. Вам нужно больше ${currency} для оплаты комиссий за сеть блокчейна, даже если вы отправляете другой актив.", + "do_not_send": "Не отправлять", + "do_not_share_warning_text": "Не сообщайте их никому, включая техподдержку.\n\nВаши средства могут и будут украдены!", + "do_not_show_me": "Не показывай мне это больше", + "domain_looks_up": "Поиск доменов", + "donation_link_details": "Информация о ссылке для пожертвований", + "e_sign_consent": "Согласие электронной подписи", + "edit": "Редактировать", + "edit_backup_password": "Изменить пароль резервной копии", + "edit_node": "Редактировать узел", + "edit_token": "Изменить токен", + "electrum_address_disclaimer": "Мы генерируем новые адреса каждый раз, когда вы их используете, но предыдущие адреса продолжают работать.", + "email_address": "Адрес электронной почты", + "enabled": "Включено", + "enter_amount": "Введите сумму", + "enter_backup_password": "Введите пароль резервной копии", + "enter_code": "Введите код", + "enter_seed_phrase": "Введите свою семенную фразу", + "enter_totp_code": "Пожалуйста, введите TOTP-код.", + "enter_your_note": "Введите примечание…", + "enter_your_pin": "Введите ваш PIN", + "enter_your_pin_again": "Введите PIN еще раз", + "enterTokenID": "Введите идентификатор токена", + "enterWalletConnectURI": "Введите URI WalletConnect", + "error": "Ошибка", + "error_dialog_content": "Ой, у нас какая-то ошибка.\n\nПожалуйста, отправьте отчет о сбое в нашу службу поддержки, чтобы сделать приложение лучше.", + "error_text_account_name": "Имя аккаунта может содержать только буквы, цифры\nи должно быть от 1 до 15 символов в длину", + "error_text_address": "Адрес кошелька должен соответствовать типу\nкриптовалюты", + "error_text_amount": "Баланс может содержать только цифры", + "error_text_contact_name": "Имя контакта не может содержать ` , ' \" символы\n и должно быть от 1 до 32 символов в длину", + "error_text_crypto_currency": "Количество цифр после запятой\nдолжно быть меньше или равно 12", + "error_text_fiat": "Значение суммы не может превышать доступный баланс.\nКоличество цифр после запятой должно быть меньше или равно 2", + "error_text_input_above_maximum_limit": "Сумма больше максимальной", + "error_text_input_below_minimum_limit": "Сумма меньше минимальной", + "error_text_keys": "Ключи кошелька могут содержать только 64 символа в hex", + "error_text_limits_loading_failed": "Сделка для ${provider} не создана. Ошибка загрузки лимитов", + "error_text_maximum_limit": "Сделка для ${provider} не создана. Сумма больше максимальной: ${max} ${currency}", + "error_text_minimal_limit": "Сделка для ${provider} не создана. Сумма меньше минимальной: ${min} ${currency}", + "error_text_node_address": "Пожалуйста, введите iPv4 адрес", + "error_text_node_port": "Порт ноды может содержать только цифры от 0 до 65535", + "error_text_node_proxy_address": "Введите :<порт>, например 127.0.0.1:9050.", + "error_text_payment_id": "Идентификатор платежа может содержать от 16 до 64 символов в hex", + "error_text_subaddress_name": "Имя субадреса не может содержать ` , ' \" символы\nи должно быть от 1 до 20 символов в длину", + "error_text_template": "Имя и адрес шаблона не может содержать ` , ' \" символы\nи должно быть от 1 до 106 символов в длину", + "error_text_wallet_name": "Имя кошелька может содержать только буквы, цифры, _ - символы\nи должно быть от 1 до 33 символов в длину", + "error_text_xmr": "Значение XMR не может превышать доступный баланс.\nКоличество цифр после запятой должно быть меньше или равно 12", "errorGettingCredentials": "Не удалось: ошибка при получении учетных данных.", "errorSigningTransaction": "Произошла ошибка при подписании транзакции", - "pairingInvalidEvent": "Недействительное событие сопряжения", - "chains": "Цепи", - "methods": "Методы", - "events": "События", - "reject": "Отклонять", - "approve": "Утвердить", - "expiresOn": "Годен до", - "walletConnect": "КошелекПодключиться", - "nullURIError": "URI имеет значение null", - "connectWalletPrompt": "Подключите свой кошелек к WalletConnect для совершения транзакций.", - "newConnection": "Новое соединение", - "activeConnectionsPrompt": "Здесь появятся активные подключения", - "deleteConnectionConfirmationPrompt": "Вы уверены, что хотите удалить подключение к", + "estimated": "Примерно", + "etherscan_history": "История Эфириума", "event": "Событие", - "successful": "Успешный", - "wouoldLikeToConnect": "хотел бы подключиться", - "message": "Сообщение", - "do_not_have_enough_gas_asset": "У вас недостаточно ${currency} для совершения транзакции при текущих условиях сети блокчейн. Вам нужно больше ${currency} для оплаты комиссий за сеть блокчейна, даже если вы отправляете другой актив.", - "totp_auth_url": "URL-адрес TOTP-АВТОРИЗАЦИИ", - "awaitDAppProcessing": "Пожалуйста, подождите, пока dApp завершит обработку.", - "copyWalletConnectLink": "Скопируйте ссылку WalletConnect из dApp и вставьте сюда.", - "enterWalletConnectURI": "Введите URI WalletConnect", - "seed_key": "Ключ семян", - "enter_seed_phrase": "Введите свою семенную фразу", - "change_rep_successful": "Успешно изменил представитель", - "add_contact": "Добавить контакт", + "events": "События", + "exchange": "Обмен", + "exchange_incorrect_current_wallet_for_xmr": "Если вы хотите обменять XMR со своего баланса Monero в Cake Wallet, сначала переключитесь на свой кошелек Monero.", + "exchange_new_template": "Новый шаблон", "exchange_provider_unsupported": "${providerName} больше не поддерживается!", - "domain_looks_up": "Поиск доменов", - "require_for_exchanges_to_external_wallets": "Требовать обмена на внешние кошельки", - "camera_permission_is_required": "Требуется разрешение камеры.\nПожалуйста, включите его в настройках приложения.", - "switchToETHWallet": "Пожалуйста, переключитесь на кошелек Ethereum и повторите попытку.", - "order_by": "Сортировать по", - "creation_date": "Дата создания", + "exchange_result_confirm": "Нажимая подтвердить, вы отправите ${fetchingLabel} ${from} с вашего кошелька ${walletName} на адрес указанный ниже. Или вы можете отправить со своего внешнего кошелька на нижеуказанный адрес/QR-код.\n\nПожалуйста, нажмите подтвердить для продолжения, или вернитесь назад для изменения суммы.", + "exchange_result_description": "Вы должны отправить минимум ${fetchingLabel} ${from} на адрес, указанный на следующей странице. Если вы отправите сумму менее ${fetchingLabel} ${from}, то она может быть не конвертирована и не возвращена.", + "exchange_result_write_down_ID": "*Пожалуйста, скопируйте или запишите ID, указанный выше.", + "exchange_result_write_down_trade_id": "Пожалуйста, скопируйте или запишите ID сделки.", + "exchange_sync_alert_content": "Подождите, пока ваш кошелек синхронизируется", + "expired": "Истекает", + "expires": "Истекает", + "expiresOn": "Годен до", + "export_backup": "Экспорт резервной копии", + "extra_id": "Дополнительный ID:", + "extracted_address_content": "Вы будете отправлять средства\n${recipient_name}", + "failed_authentication": "Ошибка аутентификации. ${state_error}", + "faq": "FAQ", + "fetching": "Загрузка", + "fiat_api": "Фиат API", + "fiat_balance": "Фиатный баланс", + "field_required": "Это поле обязательно к заполнению", + "fill_code": "Пожалуйста, введите код подтверждения, отправленный на вашу электронную почту", + "filter_by": "Фильтровать по", + "first_wallet_text": "В самом удобном кошельке для Monero, Bitcoin, Ethereum, Litecoin, и Haven", + "fixed_pair_not_supported": "Эта фиксированная пара не поддерживается выбранными биржами.", + "fixed_rate": "Фиксированная ставка", + "fixed_rate_alert": "Вы сможете ввести сумму получения тогда, когда будет установлен режим фиксированной ставки. Вы хотите перейти в режим фиксированной ставки?", + "forgot_password": "Забыли пароль", + "freeze": "Заморозить", + "frequently_asked_questions": "Часто задаваемые вопросы", + "frozen": "Заморожено", + "full_balance": "Весь баланс", + "generate_name": "Создать имя", + "generating_gift_card": "Создание подарочной карты", + "get_a": "Получить ", + "get_card_note": " которую вы можете пополнить цифровой валютой. Дополнительная информация не требуется!", + "get_your_yat": "Получить свой Yat", + "gift_card_amount": "Сумма подарочной карты", + "gift_card_balance_note": "Здесь будут отображаться подарочные карты с остатком на балансе", + "gift_card_is_generated": "Подарочная карта сгенерирована", + "gift_card_number": "Номер подарочной карты", + "gift_card_redeemed_note": "Здесь будут отображаться использованные вами подарочные карты", + "gift_cards": "Подарочные карты", + "gift_cards_unavailable": "В настоящее время подарочные карты можно приобрести только через Monero, Bitcoin и Litecoin.", + "got_it": "Понял", + "gross_balance": "Валовой баланс", "group_by_type": "Группа по типу", - "importNFTs": "Импортировать NFT", - "noNFTYet": "NFT пока нет", - "address": "Адрес", - "enterTokenID": "Введите идентификатор токена", - "tokenID": "ИДЕНТИФИКАТОР", - "name": "Имя", - "symbol": "Символ", - "seed_phrase_length": "Длина исходной фразы", - "unavailable_balance": "Недоступный баланс", - "unavailable_balance_description": "Недоступный баланс: в эту сумму входят средства, заблокированные в ожидающих транзакциях, и средства, которые вы активно заморозили в настройках управления монетами. Заблокированные балансы станут доступны после завершения соответствующих транзакций, а замороженные балансы останутся недоступными для транзакций, пока вы не решите их разморозить.", - "unspent_change": "Изменять", - "tor_connection": "Тор соединение", - "setup_warning_2fa_text": "Cake 2FA — это вторая аутентификация для определенных действий в кошельке. Это НЕ так безопасно, как холодное хранение.\n\nЕсли вы потеряете доступ к своему приложению 2FA или ключам TOTP, вы потеряете доступ к этому кошельку. Вам нужно будет восстановить свой кошелек из мнемонического сида.\n\nСлужба поддержки Cake не сможет вам помочь, если вы потеряете доступ к своим 2FA или мнемоническим идентификаторам.\nПрежде чем использовать Cake 2FA, мы рекомендуем прочитать руководство.", - "scan_qr_on_device": "Отсканируйте этот QR-код на другом устройстве", + "haven_app": "Haven by Cake Wallet", + "haven_app_wallet_text": "Awesome wallet for Haven", + "help": "помощь", + "hidden_balance": "Скрытый баланс", + "hide_details": "Скрыть детали", + "high_contrast_theme": "Высококонтрастная тема", + "home_screen_settings": "Настройки главного экрана", "how_to_use": "Как использовать", + "how_to_use_card": "Как использовать эту карту", + "id": "ID: ", + "ignor": "Игнорировать", + "import": "Импортировать", + "importNFTs": "Импортировать NFT", + "in_store": "В магазине", + "incoming": "Входящие", + "incorrect_seed": "Введённый текст некорректный.", + "introducing_cake_pay": "Представляем Cake Pay!", + "invalid_input": "Неверный Ввод", + "invoice_details": "Детали счета", + "is_percentage": "есть", + "last_30_days": "Последние 30 дней", + "learn_more": "Узнать больше", + "light_theme": "Светлая", + "loading_your_wallet": "Загрузка кошелька", + "login": "Логин", + "logout": "Выйти", + "low_fee": "Низкая комиссия", + "low_fee_alert": "В настоящее время вы используете низкий приоритет платы за сеть. Это может привести к длительному ожиданию, изменению ставок или отмене сделок. Мы рекомендуем установить более высокую плату для лучшего опыта.", + "manage_nodes": "Управление узлами", + "manage_pow_nodes": "Управление узлами PoW", + "manage_yats": "Управлять Yat", + "mark_as_redeemed": "Отметить как погашенный", + "market_place": "Торговая площадка", + "matrix_green_dark_theme": "Матрица Зеленая Темная Тема", + "max_amount": "Макс.: ${value}", + "max_value": "Макс: ${value} ${currency}", + "memo": "Памятка:", + "message": "Сообщение", + "methods": "Методы", + "min_amount": "Минимум: ${value}", + "min_value": "Мин: ${value} ${currency}", + "minutes_to_pin_code": "${minute} минут", + "mm": "ММ", + "modify_2fa": "Изменить торт 2FA", + "monero_com": "Monero.com by Cake Wallet", + "monero_com_wallet_text": "Awesome wallet for Monero", + "monero_dark_theme": "Темная тема Monero", + "monero_light_theme": "Светлая тема Monero", + "moonpay_alert_text": "Сумма должна быть больше или равна ${minAmount} ${fiatCurrency}", + "more_options": "Дополнительные параметры", + "name": "Имя", + "narrow": "Узкий", + "new_first_wallet_text": "Легко сохранить свою криптовалюту в безопасности", + "new_node_testing": "Тестирование новой ноды", + "new_subaddress_create": "Создать", + "new_subaddress_label_name": "Имя", + "new_subaddress_title": "Новый адрес", + "new_template": "Новый шаблон", + "new_wallet": "Новый кошелёк", + "newConnection": "Новое соединение", + "no_id_needed": "Идентификатор не нужен!", + "no_id_required": "Идентификатор не требуется. Пополняйте и тратьте где угодно", + "no_relay_on_domain": "Для домена пользователя реле не существует или реле недоступно. Пожалуйста, выберите реле для использования.", + "no_relays": "Нет реле", + "no_relays_message": "Мы нашли запись Nostr NIP-05 для этого пользователя, но она не содержит никаких реле. Попросите получателя добавить реле в свою запись Nostr.", + "node_address": "Адрес ноды", + "node_connection_failed": "Подключение не удалось", + "node_connection_successful": "Подключение прошло успешно", + "node_new": "Новая нода", + "node_port": "Порт ноды", + "node_reset_settings_title": "Сбросить настройки", + "node_test": "Тест", + "nodes": "Ноды", + "nodes_list_reset_to_default_message": "Вы уверены, что хотите сбросить настройки до значений по умолчанию?", + "none_of_selected_providers_can_exchange": "Ни один из выбранных провайдеров не может совершить этот обмен", + "noNFTYet": "NFT пока нет", + "normal": "Нормальный", + "note_optional": "Примечание (необязательно)", + "note_tap_to_change": "Примечание (нажмите для изменения)", + "nullURIError": "URI имеет значение null", + "offer_expires_in": "Предложение истекает через: ", + "offline": "Не в сети", + "ok": "OK", + "onion_link": "Луковая ссылка", + "online": "Онлайн", + "onramper_option_description": "Быстро купите крипто со многими способами оплаты. Доступно в большинстве стран. Спреды и сборы различаются.", + "open_gift_card": "Открыть подарочную карту", + "optional_description": "Дополнительное описание", + "optional_email_hint": "Необязательное электронное письмо с уведомлением получателя платежа", + "optional_name": "Необязательное имя получателя", + "optionly_order_card": "При желании закажите физическую карту.", + "orbot_running_alert": "Перед подключением к этому узлу убедитесь, что Orbot запущен.", + "order_by": "Сортировать по", + "order_id": "Идентификатор заказа", + "order_physical_card": "Заказать физическую карту", + "other_settings": "Другие настройки", + "outdated_electrum_wallet_description": "Новые биткойн-кошельки, созданные в Cake, теперь содержат мнемоническую фразу из 24 слов. Вы обязательно должны создать новый биткойн-кошелек и перевести все свои средства в новый кошелек из 24 слов, а также прекратить использование кошельков с мнемонической фразой из 12 слов. Пожалуйста, сделайте это немедленно, чтобы обезопасить свои средства.", + "outdated_electrum_wallet_receive_warning": "Если этот кошелек имеет мнемоническую фразу из 12 слов и был создан в Cake, НЕ переводите биткойны на этот кошелек. Любые BTC, переведенные на этот кошелек, могут быть потеряны. Создайте новый кошелек с мнемоническои фразы из 24 слов (коснитесь меню в правом верхнем углу, выберите «Кошельки», выберите «Создать новый кошелек», затем выберите «Bitcoin») и НЕМЕДЛЕННО переведите туда свои BTC. Новые (24 слова) кошельки BTC от Cake безопасны", + "outgoing": "Исходящие", + "overwrite_amount": "Overwrite amount", + "pairingInvalidEvent": "Недействительное событие сопряжения", + "password": "Пароль", + "paste": "Вставить", + "pause_wallet_creation": "Возможность создания Haven Wallet в настоящее время приостановлена.", + "payment_id": "ID платежа: ", + "payment_was_received": "Ваш платеж получен.", + "pending": " (в ожидании)", + "percentageOf": "из ${amount}", + "pin_at_top": "закрепить ${token} вверху", + "pin_is_incorrect": "Некорректный PIN", + "pin_number": "ПИН-код", + "placeholder_contacts": "Ваши контакты будут отображаться здесь", + "placeholder_transactions": "Ваши транзакции будут отображаться здесь", + "please_fill_totp": "Пожалуйста, введите 8-значный код на другом устройстве", + "please_make_selection": "Выберите способ создания кошелька: создать новый или восстановить ваш существующий.", + "please_reference_document": "Пожалуйста, обратитесь к документам ниже для получения дополнительной информации.", + "please_select": "Пожалуйста, выберите:", + "please_select_backup_file": "Выберите файл резервной копии и введите пароль резервной копии.", + "please_try_to_connect_to_another_node": "Пожалуйста, попробуйте подключиться к другой ноде", + "please_wait": "Пожалуйста, подождите", + "polygonscan_history": "История PolygonScan", + "powered_by": "Используя ${title}", + "pre_seed_button_text": "Понятно. Покажите мнемоническую фразу", + "pre_seed_description": "На следующей странице вы увидите серию из ${words} слов. Это ваша уникальная и личная мнемоническая фраза, и это ЕДИНСТВЕННЫЙ способ восстановить свой кошелек в случае потери или неисправности. ВАМ необходимо записать ее и хранить в надежном месте вне приложения Cake Wallet.", + "pre_seed_title": "ВАЖНО", + "prevent_screenshots": "Предотвратить скриншоты и запись экрана", + "privacy": "Конфиденциальность", + "privacy_policy": "Политика конфиденциальности", + "privacy_settings": "Настройки конфиденциальности", + "private_key": "Приватный ключ", + "proceed_after_one_minute": "Если через 1 минуту экран не отображается, проверьте свою электронную почту.", + "profile": "Профиль", + "provider_error": "${provider} ошибка", + "public_key": "Публичный ключ", + "purchase_gift_card": "Купить подарочную карту", + "qr_fullscreen": "Нажмите, чтобы открыть полноэкранный QR-код", + "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", + "question_to_disable_2fa": "Вы уверены, что хотите отключить Cake 2FA? Код 2FA больше не потребуется для доступа к кошельку и некоторым функциям.", + "receivable_balance": "Баланс дебиторской задолженности", + "receive": "Получить", + "receive_amount": "Сумма", + "received": "Полученные", + "recipient_address": "Адрес получателя", + "reconnect": "Переподключиться", + "reconnect_alert_text": "Вы хотите переподключиться?", + "reconnection": "Переподключение", + "redeemed": "искуплен", + "refund_address": "Адрес возврата", + "reject": "Отклонять", + "remaining": "осталось", + "remove": "Удалить", + "remove_node": "Удалить ноду", + "remove_node_message": "Вы уверены, что хотите удалить текущую ноду?", + "rename": "Переименовать", + "require_for_adding_contacts": "Требовать добавления контактов", + "require_for_all_security_and_backup_settings": "Требовать все настройки безопасности и резервного копирования", + "require_for_assessing_wallet": "Требовать для доступа к кошельку", + "require_for_creating_new_wallets": "Требовать для создания новых кошельков", + "require_for_exchanges_to_external_wallets": "Требовать обмена на внешние кошельки", + "require_for_exchanges_to_internal_wallets": "Требовать для обмена на внутренние кошельки", + "require_for_sends_to_contacts": "Требовать для отправки контактам", + "require_for_sends_to_internal_wallets": "Требовать отправки на внутренние кошельки", + "require_for_sends_to_non_contacts": "Требовать для отправки не контактам", + "require_pin_after": "Требовать ПИН после", + "rescan": "Пересканировать", + "resend_code": "Пожалуйста, отправьте еще раз", + "reset": "Сброс", + "reset_password": "Сбросить пароль", + "restore_active_seed": "Активная мнемоническая фраза", + "restore_address": "Адрес", + "restore_bitcoin_description_from_keys": "Вы можете восстановить кошелёк с помощью WIF", + "restore_bitcoin_description_from_seed": "Вы можете восстановить кошелёк используя 24-ти значную мнемоническую фразу", + "restore_bitcoin_title_from_keys": "Восстановить с помощью WIF", + "restore_description_from_backup": "Вы можете восстановить Cake Wallet из вашего back-up файла", + "restore_description_from_keys": "Вы можете восстановить кошелёк с помощью приватных ключей", + "restore_description_from_seed": "Вы можете восстановить кошелёк используя 25-ти значную мнемоническую фразу", + "restore_description_from_seed_keys": "Вы можете восстановить кошелёк из мнемонической фразы/ключей, которые вы сохранили ранее", + "restore_from_date_or_blockheight": "Пожалуйста, введите дату за несколько дней до создания этого кошелька. Или, если вы знаете высоту блока, введите ее значение", + "restore_from_seed_placeholder": "Введите или вставьте мнемоническую фразу вашего кошелька", + "restore_new_seed": "Новая мнемоническая фраза", + "restore_next": "Продолжить", + "restore_recover": "Восстановить", + "restore_restore_wallet": "Восстановить кошелёк", + "restore_seed_keys_restore": "Восстановить из мнемонической фразы/ключей", + "restore_spend_key_private": "Приватный ключ траты", + "restore_title_from_backup": "Восстановить из back-up файла", + "restore_title_from_keys": "Восстановить с помощью ключей", + "restore_title_from_seed": "Восстановить из мнемонической фразы", + "restore_title_from_seed_keys": "Восстановить из мнемонической фразы/ключей", + "restore_view_key_private": "Приватный ключ просмотра", + "restore_wallet": "Восстановить кошелёк", + "restore_wallet_name": "Имя кошелька", + "restore_wallet_restore_description": "Описание восстановления кошелька", + "router_no_route": "Не установлен маршрут для ${name}", + "save": "Сохранить", + "save_backup_password": "Убедитесь, что вы сохранили пароль резервной копии. Без него вы не сможете импортировать файлы резервных копий.", + "save_backup_password_alert": "Сохранить пароль резервной копии", + "save_to_downloads": "Сохранить в загрузках", + "saved_the_trade_id": "Я сохранил ID сделки", + "scan_qr_code": "Сканировать QR-код", + "scan_qr_code_to_get_address": "Отсканируйте QR-код для получения адреса", + "scan_qr_on_device": "Отсканируйте этот QR-код на другом устройстве", + "search": "Поиск", + "search_add_token": "Поиск / Добавить токен", + "search_category": "Категория поиска", + "search_currency": "Валюта поиска", + "search_language": "Язык поиска", + "second_intro_content": "Ваш Yat - это единственный уникальный адрес эмодзи, который заменяет длинные шестнадцатеричные адреса для всех ваших валют.", + "second_intro_title": "Один адрес эмодзи для управления остальными адресами", + "security_and_backup": "Безопасность и резервное копирование", + "seed_alert_back": "Назад", + "seed_alert_content": "Мнемоническая фраза - единственный способ восстановить ваш кошелек. Вы записали ее?", + "seed_alert_title": "Внимание", + "seed_alert_yes": "Да", + "seed_choose": "Выберите язык мнемонической фразы", "seed_hex_form": "Семя кошелька (шестнадцатеричная форма)", + "seed_key": "Ключ семян", + "seed_language": "Язык семян", + "seed_language_chinese": "Китайский", + "seed_language_chinese_traditional": "Китайский традиционный)", + "seed_language_czech": "Чешский", + "seed_language_dutch": "Нидерландский", + "seed_language_english": "Английский", + "seed_language_french": "Французский", + "seed_language_german": "Немецкий", + "seed_language_italian": "итальянский", + "seed_language_japanese": "Японский", + "seed_language_korean": "Корейский", + "seed_language_next": "Продолжить", + "seed_language_portuguese": "Португальский", + "seed_language_russian": "Русский", + "seed_language_spanish": "Испанский", + "seed_phrase_length": "Длина исходной фразы", + "seed_reminder": "Пожалуйста, запишите мнемоническую фразу на случай потери или очистки телефона", + "seed_share": "Поделиться мнемонической фразой", + "seed_title": "Мнемоническая фраза", "seedtype": "SEEDTYPE", "seedtype_legacy": "Наследие (25 слов)", "seedtype_polyseed": "Полиса (16 слов)", - "seed_language_czech": "Чешский", - "seed_language_korean": "Корейский", - "seed_language_chinese_traditional": "Китайский традиционный)", - "ascending": "Восходящий", - "descending": "Нисходящий", - "dfx_option_description": "Покупайте криптовалюту за EUR и CHF. До 990€ без дополнительного KYC. Для розничных и корпоративных клиентов в Европе", - "polygonscan_history": "История PolygonScan", - "wallet_seed_legacy": "Наследие семя кошелька", - "default_sell_provider": "Поставщик продаж по умолчанию", + "select_backup_file": "Выберите файл резервной копии", + "select_buy_provider_notice": "Выберите поставщика покупки выше. Вы можете пропустить этот экран, установив поставщика покупки по умолчанию в настройках приложения.", + "select_destination": "Пожалуйста, выберите место для файла резервной копии.", "select_sell_provider_notice": "Выберите поставщика услуг продажи выше. Вы можете пропустить этот экран, установив поставщика услуг продаж по умолчанию в настройках приложения.", - "custom_drag": "Пользователь (удерживайте и перетаскивайте)", + "sell": "Продавать", + "sell_alert_content": "В настоящее время мы поддерживаем только продажу биткойнов, эфириума и лайткойна. Пожалуйста, создайте или переключитесь на свой кошелек Bitcoin, Ethereum или Litecoin.", + "sell_monero_com_alert_content": "Продажа Monero пока не поддерживается", + "send": "Отправить", + "send_address": "${cryptoCurrency} адрес", + "send_amount": "Сумма:", + "send_creating_transaction": "Создать транзакцию", + "send_error_currency": "Валюта может содержать только цифры", + "send_error_minimum_value": "Mинимальная сумма 0.01", + "send_estimated_fee": "Предполагаемая комиссия:", + "send_fee": "Комиссия:", + "send_name": "Имя", + "send_new": "Новый", + "send_payment_id": "ID платежа (опционально)", + "send_priority": "Комиссия установлена в зависимости от приоритета: ${transactionPriority}.\nПриоритет транзакции может быть изменён в настройках", + "send_sending": "Отправка...", + "send_success": "Ваш ${crypto} был успешно отправлен", + "send_templates": "Шаблоны", + "send_title": "Отправить", + "send_to_this_address": "Отправить ${currency} ${tag}на этот адрес", + "send_xmr": "Отправить XMR", + "send_your_wallet": "Ваш кошелёк", + "sending": "Отправка", + "sent": "Отправленные", + "settings": "Настройки", + "settings_all": "ВСЕ", + "settings_allow_biometrical_authentication": "Включить биометрическую аутентификацию", + "settings_can_be_changed_later": "Эти настройки можно изменить позже в настройках приложения.", + "settings_change_language": "Изменить язык", + "settings_change_pin": "Изменить PIN", + "settings_currency": "Валюта", + "settings_current_node": "Текущая нода", + "settings_dark_mode": "Тёмный режим", + "settings_display_balance": "Отображать баланс", + "settings_display_on_dashboard_list": "Показывать в списке транзакций", + "settings_fee_priority": "Приоритет транзакции", + "settings_nodes": "Ноды", + "settings_none": "Ничего", + "settings_only_trades": "Сделки", + "settings_only_transactions": "Транзакции", + "settings_personal": "Персональные", + "settings_save_recipient_address": "Сохранять адрес получателя", + "settings_support": "Поддержка", + "settings_terms_and_conditions": "Условия и положения", + "settings_title": "Настройки", + "settings_trades": "Сделки", + "settings_transactions": "Транзакции", + "settings_wallets": "Кошельки", + "setup_2fa": "Настройка торта 2FA", + "setup_2fa_text": "Cake 2FA работает с использованием TOTP в качестве второго фактора аутентификации.\n\nTOTP Cake 2FA требует SHA-512 и поддержки 8 цифр; это обеспечивает повышенную безопасность. Дополнительную информацию и поддерживаемые приложения можно найти в руководстве.", + "setup_pin": "Настроить PIN", + "setup_successful": "PIN был успешно установлен!", + "setup_totp_recommended": "Настройка ТОТП", + "setup_warning_2fa_text": "Cake 2FA — это вторая аутентификация для определенных действий в кошельке. Это НЕ так безопасно, как холодное хранение.\n\nЕсли вы потеряете доступ к своему приложению 2FA или ключам TOTP, вы потеряете доступ к этому кошельку. Вам нужно будет восстановить свой кошелек из мнемонического сида.\n\nСлужба поддержки Cake не сможет вам помочь, если вы потеряете доступ к своим 2FA или мнемоническим идентификаторам.\nПрежде чем использовать Cake 2FA, мы рекомендуем прочитать руководство.", + "setup_your_debit_card": "Настройте свою дебетовую карту", + "share": "Делиться", + "share_address": "Поделиться адресом", + "show_details": "Показать детали", + "show_keys": "Показать мнемоническую фразу/ключи", + "show_market_place": "Показать торговую площадку", + "show_seed": "Показать мнемоническую фразу", + "sign_up": "Зарегистрироваться", + "signTransaction": "Подписать транзакцию", + "signup_for_card_accept_terms": "Подпишитесь на карту и примите условия.", + "slidable": "Скользящий", + "sort_by": "Сортировать по", + "spend_key_private": "Приватный ключ траты", + "spend_key_public": "Публичный ключ траты", + "status": "Статус: ", + "subaddress_title": "Список субадресов", + "subaddresses": "Субадреса", + "submit_request": "отправить запрос", + "successful": "Успешный", + "support_description_guides": "Документация и поддержка общих вопросов", + "support_description_live_chat": "Бесплатно и быстро! Обученные представители поддержки доступны для оказания помощи", + "support_description_other_links": "Присоединяйтесь к нашим сообществам или охватите нас наших партнеров с помощью других методов", + "support_title_guides": "Корт -гиды", + "support_title_live_chat": "Живая поддержка", + "support_title_other_links": "Другие ссылки на поддержку", + "sweeping_wallet": "Подметание кошелька", + "sweeping_wallet_alert": "Это не должно занять много времени. НЕ ПОКИДАЙТЕ ЭТОТ ЭКРАН, ИНАЧЕ ВЫЧИСЛЕННЫЕ СРЕДСТВА МОГУТ БЫТЬ ПОТЕРЯНЫ", + "switchToETHWallet": "Пожалуйста, переключитесь на кошелек Ethereum и повторите попытку.", "switchToEVMCompatibleWallet": "Пожалуйста, переключитесь на кошелек, совместимый с EVM, и повторите попытку (Ethereum, Polygon).", - "receivable_balance": "Баланс дебиторской задолженности", - "confirmed_tx": "Подтвержденный", + "symbol": "Символ", + "sync_all_wallets": "Синхронизировать все кошельки", + "sync_status_attempting_sync": "ПОПЫТКА СИНХРОНИЗАЦИИ", + "sync_status_connected": "ПОДКЛЮЧЕНО", + "sync_status_connecting": "ПОДКЛЮЧЕНИЕ", + "sync_status_failed_connect": "ОТКЛЮЧЕНО", + "sync_status_not_connected": "НЕ ПОДКЛЮЧЁН", + "sync_status_starting_sync": "НАЧАЛО СИНХРОНИЗАЦИИ", + "sync_status_syncronized": "СИНХРОНИЗИРОВАН", + "sync_status_syncronizing": "СИНХРОНИЗАЦИЯ", + "syncing_wallet_alert_content": "Ваш баланс и список транзакций могут быть неполными, пока вверху не будет написано «СИНХРОНИЗИРОВАНО». Щелкните/коснитесь, чтобы узнать больше.", + "syncing_wallet_alert_title": "Ваш кошелек синхронизируется", + "template": "Шаблон", + "template_name": "Имя Шаблона", + "third_intro_content": "Yat находятся за пределами Cake Wallet. Любой адрес кошелька на земле можно заменить на Yat!", + "third_intro_title": "Yat хорошо взаимодействует с другими", + "time": "${minutes}мин ${seconds}сек", + "tip": "Совет:", + "today": "Сегодня", + "token_contract_address": "Адрес контракта токена", + "token_decimal": "Десятичный токен", + "token_name": "Имя токена, например: Tether", + "token_symbol": "Символ токена, например: USDT", + "tokenID": "ИДЕНТИФИКАТОР", + "tor_connection": "Тор соединение", + "tor_only": "Только Tor", + "total_saving": "Общая экономия", + "totp_2fa_failure": "Неверный код. Пожалуйста, попробуйте другой код или создайте новый секретный ключ. Используйте совместимое приложение 2FA, которое поддерживает 8-значные коды и SHA512.", + "totp_2fa_success": "Успех! Для этого кошелька включена двухфакторная аутентификация Cake. Не забудьте сохранить мнемоническое семя на случай, если вы потеряете доступ к кошельку.", + "totp_auth_url": "URL-адрес TOTP-АВТОРИЗАЦИИ", + "totp_code": "TOTP-код", + "totp_secret_code": "Секретный код ТОТП", + "totp_verification_success": "Проверка прошла успешно!", + "trade_details_copied": "${title} скопировано в буфер обмена", + "trade_details_created_at": "Создано", + "trade_details_fetching": "Получение", + "trade_details_id": "ID", + "trade_details_pair": "Пара", + "trade_details_provider": "Провайдер", + "trade_details_state": "Статус", + "trade_details_title": "Детали сделок", + "trade_for_not_created": "Сделка для ${title} не создана.", + "trade_history_title": "История сделок", + "trade_id": "ID сделки:", + "trade_id_not_found": "Сделка ${tradeId} ${title} не найдена.", + "trade_is_powered_by": "Сделка выполнена через ${provider}", + "trade_not_created": "Сделка не создана", + "trade_not_found": "Торговля не найдена.", + "trade_state_btc_sent": "BTC отправлены", + "trade_state_complete": "Выполнена", + "trade_state_confirming": "Подтверждение", + "trade_state_created": "Созданная", + "trade_state_finished": "Завершена", + "trade_state_paid": "Оплаченная", + "trade_state_paid_unconfirmed": "Оплата неподтверждена", + "trade_state_pending": "Ожидание", + "trade_state_timeout": "Таймаут", + "trade_state_to_be_created": "Будет создана", + "trade_state_traded": "Сделка завершена", + "trade_state_trading": "Совершение сделки", + "trade_state_underpaid": "Недоплаченная", + "trade_state_unpaid": "Неоплаченная", + "trades": "Сделки", + "transaction_details_amount": "Сумма", + "transaction_details_copied": "${title} скопировано в буфер обмена", + "transaction_details_date": "Дата", + "transaction_details_fee": "Комиссия", + "transaction_details_height": "Высота", + "transaction_details_recipient_address": "Адреса получателей", "transaction_details_source_address": "Адрес источника", - "pause_wallet_creation": "Возможность создания Haven Wallet в настоящее время приостановлена.", - "contractName": "Название контракта", - "contractSymbol": "Символ контракта", - "description": "Описание", - "camera_consent": "Ваша камера будет использоваться для захвата изображения в целях идентификации ${provider}. Пожалуйста, ознакомьтесь с их Политикой конфиденциальности для получения подробной информации.", - "no_relays": "Нет реле", - "choose_relay": "Пожалуйста, выберите реле для использования", - "no_relays_message": "Мы нашли запись Nostr NIP-05 для этого пользователя, но она не содержит никаких реле. Попросите получателя добавить реле в свою запись Nostr.", - "no_relay_on_domain": "Для домена пользователя реле не существует или реле недоступно. Пожалуйста, выберите реле для использования." -} + "transaction_details_title": "Детали транзакции", + "transaction_details_transaction_id": "ID транзакции", + "transaction_key": "Ключ транзакции", + "transaction_priority_fast": "Быстрый", + "transaction_priority_fastest": "Самый быстрый", + "transaction_priority_medium": "Средний", + "transaction_priority_regular": "Обычный", + "transaction_priority_slow": "Медленный", + "transaction_sent": "Tранзакция отправлена!", + "transaction_sent_notice": "Если экран не отображается через 1 минуту, проверьте обозреватель блоков и свою электронную почту.", + "transactions": "Транзакции", + "transactions_by_date": "Сортировать по дате", + "trusted": "доверенный", + "unavailable_balance": "Недоступный баланс", + "unavailable_balance_description": "Недоступный баланс: в эту сумму входят средства, заблокированные в ожидающих транзакциях, и средства, которые вы активно заморозили в настройках управления монетами. Заблокированные балансы станут доступны после завершения соответствующих транзакций, а замороженные балансы останутся недоступными для транзакций, пока вы не решите их разморозить.", + "unconfirmed": "Неподтвержденный баланс", + "understand": "Понятно", + "unmatched_currencies": "Валюта вашего текущего кошелька не соответствует валюте отсканированного QR-кода.", + "unspent_change": "Изменять", + "unspent_coins_details_title": "Сведения о неизрасходованных монетах", + "unspent_coins_title": "Неизрасходованные монеты", + "unsupported_asset": "Мы не поддерживаем это действие для этого объекта. Пожалуйста, создайте или переключитесь на кошелек поддерживаемого типа активов.", + "upto": "до ${value}", + "use": "Использовать ", + "use_card_info_three": "Используйте цифровую карту онлайн или с помощью бесконтактных способов оплаты.", + "use_card_info_two": "Средства конвертируются в доллары США, когда они хранятся на предоплаченном счете, а не в цифровых валютах.", + "use_ssl": "Использовать SSL", + "use_suggested": "Использовать предложенный", + "variable_pair_not_supported": "Эта пара переменных не поддерживается выбранными биржами.", + "verification": "Проверка", + "verify_with_2fa": "Подтвердить с помощью Cake 2FA", + "version": "Версия ${currentVersion}", + "view_all": "Просмотреть все", + "view_in_block_explorer": "View in Block Explorer", + "view_key_private": "Приватный ключ просмотра", + "view_key_public": "Публичный ключ просмотра", + "view_transaction_on": "View Transaction on ", + "wallet_keys": "Мнемоническая фраза/ключи кошелька", + "wallet_list_create_new_wallet": "Создать новый кошелёк", + "wallet_list_edit_wallet": "Изменить кошелек", + "wallet_list_failed_to_load": "Ошибка при загрузке ${wallet_name} кошелька. ${error}", + "wallet_list_failed_to_remove": "Ошибка при удалении ${wallet_name} кошелька. ${error}", + "wallet_list_load_wallet": "Загрузка кошелька", + "wallet_list_loading_wallet": "Загрузка ${wallet_name} кошелька", + "wallet_list_removing_wallet": "Удаление ${wallet_name} кошелька", + "wallet_list_restore_wallet": "Восстановить кошелёк", + "wallet_list_title": "Monero Кошелёк", + "wallet_list_wallet_name": "Имя кошелька", + "wallet_menu": "Меню кошелька", + "wallet_name": "Имя кошелька", + "wallet_name_exists": "Кошелек с таким именем уже существует", + "wallet_restoration_store_incorrect_seed_length": "Неверная длина мнемонической фразы", + "wallet_seed": "Мнемоническая фраза кошелька", + "wallet_seed_legacy": "Наследие семя кошелька", + "wallet_store_monero_wallet": "Monero Кошелёк", + "walletConnect": "КошелекПодключиться", + "wallets": "Кошельки", + "warning": "Предупреждение", + "welcome": "Приветствуем в", + "welcome_to_cakepay": "Добро пожаловать в Cake Pay!", + "widgets_address": "Адрес", + "widgets_or": "или", + "widgets_restore_from_blockheight": "Восстановить на высоте блока", + "widgets_restore_from_date": "Восстановить с даты", + "widgets_seed": "Мнемоническая фраза", + "wouoldLikeToConnect": "хотел бы подключиться", + "write_down_backup_password": "Запишите пароль резервной копии, который используется для импорта файлов резервных копий.", + "xlm_extra_info": "Не забудьте указать Memo ID (памятка) при отправке транзакции XLM для обмена", + "xmr_available_balance": "Доступный баланс", + "xmr_full_balance": "Весь баланс", + "xmr_hidden": "Скрыто", + "xmr_to_error": "Ошибка XMR.TO", + "xmr_to_error_description": "Недопустимая сумма. Максимум 8 цифр после десятичной точки", + "xrp_extra_info": "Не забудьте указать целевой тег при отправке транзакции XRP для обмена", + "yat": "Yat", + "yat_address": "Yat адрес", + "yat_alert_content": "Пользователи Cake Wallet теперь могут отправлять и получать криптовалюту при помощи уникального имени пользователя на основе эмодзи.", + "yat_alert_title": "С Yat проще отправлять и получать криптовалюту", + "yat_error": "Ошибка Yat", + "yat_error_content": "Нет адресов, связанных с этим Yat. Попробуйте другой Yat", + "yat_popup_content": "Теперь вы можете отправлять и получать криптовалюту в Cake Wallet с помощью Yat - короткого имени пользователя на основе эмодзи. Управляйте Yat в любое время при помощи экрана настроек", + "yat_popup_title": "Адрес вашего кошелька может быть связан с эмодзи", + "yesterday": "Вчера", + "you_now_have_debit_card": "Теперь у вас есть дебетовая карта", + "you_pay": "Вы платите", + "you_will_get": "Конвертировать в", + "you_will_send": "Конвертировать из", + "yy": "ГГ", + "zzzz": "zzzz" +} \ No newline at end of file diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index 603d04067..e1f187bd3 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -1,777 +1,778 @@ { - "welcome": "ยินดีต้อนรับสู่", - "cake_wallet": "Cake Wallet", - "first_wallet_text": "กระเป๋าสตางค์ที่สวยงามสำหรับ Monero, Bitcoin, Ethereum, Litecoin และ Haven", - "please_make_selection": "โปรดเลือกตามด้านล่างเพื่อสร้างหรือกู้กระเป๋าของคุณ", - "create_new": "สร้างกระเป๋าใหม่", - "restore_wallet": "กู้กระเป๋า", - "monero_com": "Monero.com ของ Cake Wallet", - "monero_com_wallet_text": "กระเป๋าสตางค์ที่สวยงามสำหรับ Monero", - "haven_app": "Haven ของ Cake Wallet", - "haven_app_wallet_text": "กระเป๋าสตางค์ที่สวยงามสำหรับ Haven", - "accounts": "บัญชี", - "edit": "แก้ไข", + "about_cake_pay": "Cake Pay ช่วยให้คุณสามารถซื้อบัตรของขวัญง่ายๆ ด้วยการใช้สินทรัพย์อนุกรม ซื้อใช้ได้ทันทีกับมากกว่า 150,000 ร้านค้าในสหรัฐอเมริกา", "account": "บัญชี", + "accounts": "บัญชี", + "accounts_subaddresses": "บัญชีและที่อยู่ย่อย", + "activate": "เปิดใช้งาน", + "active": "ทำงาน", + "active_cards": "บัตรที่ใช้งานได้", + "activeConnectionsPrompt": "การเชื่อมต่อที่ใช้งานอยู่จะปรากฏที่นี่", "add": "เพิ่ม", + "add_contact": "เพิ่มผู้ติดต่อ", + "add_custom_node": "เพิ่มจุดโหนดแบบกำหนดเอง", + "add_custom_redemption": "เพิ่มการรับคืนที่กำหนดเอง", + "add_fund_to_card": "เพิ่มเงินสำรองไว้บนบัตร (ถึง ${value})", + "add_new_node": "เพิ่มโหนดใหม่", + "add_new_word": "เพิ่มคำใหม่", + "add_receiver": "เพิ่มผู้รับอื่น ๆ (ตัวเลือก)", + "add_secret_code": "หรือเพิ่มรหัสลับนี้ลงในแอปตรวจสอบความถูกต้อง", + "add_tip": "เพิ่มคำแนะนำ", + "add_token_disclaimer_check": "ฉันได้ยืนยันที่อยู่และข้อมูลของสัญญาโทเค็นโดยใช้แหล่งข้อมูลที่เชื่อถือได้ การเพิ่มข้อมูลที่เป็นอันตรายหรือไม่ถูกต้องอาจทำให้สูญเสียเงินได้", + "add_token_warning": "ห้ามแก้ไขหรือเพิ่มโทเค็นตามคำแนะนำของนักต้มตุ๋น\nยืนยันที่อยู่โทเค็นกับแหล่งที่มาที่เชื่อถือได้เสมอ!", + "add_value": "เพิ่มมูลค่า", + "address": "ที่อยู่", "address_book": "สมุดที่อยู่", - "contact": "ผู้ติดต่อ", - "please_select": "โปรดเลือก:", - "cancel": "ยกเลิก", - "ok": "ตกลง", - "contact_name": "ชื่อผู้ติดต่อ", - "reset": "รีเซ็ต", - "save": "บันทึก", + "address_book_menu": "สมุดที่อยู่", + "address_detected": "ตรวจพบที่อยู่", + "address_from_domain": "ที่อยู่นี้มาจาก ${domain} บน Unstoppable Domains", + "address_from_yat": "ที่อยู่นี้มาจาก ${emoji} บน Yat", + "address_label": "ป้ายกำกับที่อยู่", "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": "การซื้อขาย", - "filter_by": "กรองตาม", - "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": "พัฒนาขึ้นโดย ${title}", - "error": "ข้อผิดพลาด", - "estimated": "ประมาณการ", - "min_value": "ขั้นต่ำ: ${value} ${currency}", - "max_value": "ขั้นสูง: ${value} ${currency}", - "change_currency": "เปลี่ยนสกุลเงิน", - "overwrite_amount": "เขียนทับจำนวน", - "qr_payment_amount": "QR code นี้มีจำนวนการชำระเงิน คุณต้องการเขียนทับค่าปัจจุบันหรือไม่?", - "copy_id": "คัดลอก ID", - "exchange_result_write_down_trade_id": "โปรดคัดลอกหรือบันทึก ID ของการซื้อขายเพื่อดำเนินการต่อไป", - "trade_id": "ID การซื้อขาย:", - "copied_to_clipboard": "คัดลอกไปยังหน่วยความจำของคอมพิวเตอร์", - "saved_the_trade_id": "ฉันได้บันทึก 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": "*โปรดคัดลอกหรือเขียนรหัสของคุณด้านบน", - "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": "คำถามที่พบบ่อย", - "enter_your_pin": "ใส่ 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_to_get_address": "สแกน QR code เพื่อรับที่อยู่", - "qr_fullscreen": "แตะเพื่อเปิดหน้าจอ QR code แบบเต็มจอ", - "rename": "เปลี่ยนชื่อ", - "choose_account": "เลือกบัญชี", - "create_new_account": "สร้างบัญชีใหม่", - "accounts_subaddresses": "บัญชีและที่อยู่ย่อย", - "restore_restore_wallet": "กู้กระเป๋า", - "restore_title_from_seed_keys": "กู้จาก seed/keys", - "restore_description_from_seed_keys": "เรียกกระเป๋าของคุณกลับมาจาก seed/keys ที่คุณได้บันทึกไว้ในที่ปลอดภัย", - "restore_next": "ถัดไป", - "restore_title_from_backup": "กู้จากการสำรองข้อมูล", - "restore_description_from_backup": "คุณสามารถกู้แอพ Cake Wallet ทั้งหมดจากไฟล์สำรองข้อมูลของคุณ", - "restore_seed_keys_restore": "กู้จาก Seed/Keys", - "restore_title_from_seed": "กู้จาก seed", - "restore_description_from_seed": "กู้กระเป๋าของคุณจากรหัสผสมของ 25 คำหรือ 13 คำ", - "restore_title_from_keys": "กู้จาก keys", - "restore_description_from_keys": "กู้กระเป๋าของคุณจากการกดปุ่มที่สร้างขึ้นจาก private keys ของคุณที่บันทึกไว้", - "restore_wallet_name": "ชื่อกระเป๋า", - "restore_address": "ที่อยู่", - "restore_view_key_private": "คีย์สำหรับดู (ส่วนตัว)", - "restore_spend_key_private": "คีย์สำหรับใช้ (ส่วนตัว)", - "restore_recover": "กู้", - "restore_wallet_restore_description": "คำอธิบายการกู้กระเป๋า", - "restore_new_seed": "ซีดใหม่", - "restore_active_seed": "ซีดที่ใช้งานอยู่", - "restore_bitcoin_description_from_seed": "กู้กระเป๋าของคุณจากรหัสผสมของ 24 คำ", - "restore_bitcoin_description_from_keys": "กู้กระเป๋าของคุณจากสตริง WIF ที่สร้างขึ้นจากคีย์ส่วนตัวของคุณ", - "restore_bitcoin_title_from_keys": "กู้จาก WIF", - "restore_from_date_or_blockheight": "โปรดป้อนวันที่หลายวันก่อนที่คุณสร้างกระเป๋านี้ หรือหากคุณรู้ความสูงของบล็อก (blockheight) โปรดป้อนมันแทน", - "seed_reminder": "โปรดเขียนข้อมูลนี้ลงสมุดเพื่อความปลอดภัยหากคุณสูญเสียหรือล้างโทรศัพท์ของคุณ", - "seed_title": "Seed", - "seed_share": "แบ่งปัน seed", - "copy": "คัดลอก", - "seed_language": "ภาษาเมล็ด", - "seed_choose": "เลือกภาษาของ seed", - "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": "สเปน", - "seed_language_french": "ฝรั่งเศส", - "seed_language_italian": "อิตาลี", - "send_title": "ส่ง", - "send_your_wallet": "กระเป๋าของคุณ", - "send_address": "ที่อยู่ ${cryptoCurrency}", - "send_payment_id": "ID การชำระเงิน (ไม่จำเป็น)", + "advanced_settings": "ตั้งค่าขั้นสูง", + "aggressive": "กระตือรือร้นมากเกินไป", + "agree": "ยอมรับ", + "agree_and_continue": "ยอมรับและดำเนินการต่อ", + "agree_to": "การสร้างบัญชีของคุณยอมรับเงื่อนไขของ", "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": "ชื่อ", - "got_it": "เข้าใจ", - "send_sending": "กำลังส่ง...", - "send_success": "คุณได้ส่ง ${crypto} เรียบร้อยแล้ว", - "settings_title": "การตั้งค่า", - "settings_nodes": "จุดเชื่อมต่อ", - "settings_current_node": "จุดเชื่อมต่อปัจจุบัน", - "settings_wallets": "กระเป๋าสตางค์", - "settings_display_balance": "แสดงยอดคงเหลือ", - "settings_currency": "สกุลเงิน", - "settings_fee_priority": "ความสำคัญของค่าธรรมเนียม", - "settings_save_recipient_address": "บันทึกที่อยู่ผู้รับ", - "settings_personal": "ส่วนตัว", - "settings_change_pin": "เปลี่ยน 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_key_public": "คีย์มุมมอง (สาธารณะ)", - "spend_key_private": "คีย์จ่าย (ส่วนตัว)", - "spend_key_public": "คีย์จ่าย (สาธารณะ)", - "copied_key_to_clipboard": "คัดลอก ${key} ไปยัง Clipboard แล้ว", - "new_subaddress_title": "ที่อยู่ใหม่", - "new_subaddress_label_name": "ชื่อป้ายกำกับ", - "new_subaddress_create": "สร้าง", - "address_label": "ป้ายกำกับที่อยู่", - "subaddress_title": "รายการที่อยู่ย่อย", - "trade_details_title": "รายละเอียดการแลกเปลี่ยน", - "trade_details_id": "รหัส", - "trade_details_state": "สถานะ", - "trade_details_fetching": "กำลังเรียกข้อมูล", - "trade_details_provider": "ผู้ให้บริการ", - "trade_details_created_at": "สร้างเมื่อ", - "trade_details_pair": "คู่", - "trade_details_copied": "${title} คัดลอกไปยัง Clipboard", - "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_edit_wallet": "แก้ไขกระเป๋าสตางค์", - "wallet_list_wallet_name": "ชื่อกระเป๋าสตางค์", - "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_node_proxy_address": "โปรดป้อน <ที่อยู่ IPv4>:<พอร์ต> เช่น 127.0.0.1:9050", - "error_text_payment_id": "Payment ID สามารถมีขนาดระหว่าง 16 ถึง 64 ตัวอักษรตามแบบ hex", - "error_text_xmr": "มูลค่า XMR ไม่สามารถเกินยอดคงเหลือได้\nจำนวนสตริงทศนิยมต้องน้อยกว่าหรือเท่ากับ 12", - "error_text_fiat": "มูลค่าของจำนวนเงินไม่สามารถเกินยอดคงเหลือได้\nจำนวนสตริงทศนิยมต้องน้อยกว่าหรือเท่ากับ 2", - "error_text_subaddress_name": "ชื่อสำหรับที่อยู่ย่อยจะต้องประกอบด้วยตัวอักษร ตัวเลข และสัญลักษณ์ _ - และมีความยาวระหว่าง 1 ถึง 20 ตัวอักษร", - "error_text_amount": "จำนวนจะต้องประกอบด้วยตัวเลขเท่านั้น", - "error_text_wallet_name": "ชื่อกระเป๋าสตางค์จะต้องประกอบด้วยตัวอักษร ตัวเลข และสัญลักษณ์ _ - และมีความยาวระหว่าง 1 ถึง 33 ตัวอักษร", - "error_text_keys": "คีย์ของกระเป๋าสตางค์จะต้องประกอบด้วยตัวอักษรฐาน 16 จำนวน 64 ตัว", - "error_text_crypto_currency": "จำนวนทศนิยมจะต้องน้อยกว่าหรือเท่ากับ 12", - "error_text_minimal_limit": "การซื้อขายกับ ${provider} ไม่สามารถดำเนินการได้ จำนวนน้อยกว่าขั้นต่ำ: ${min} ${currency}", - "error_text_maximum_limit": "การซื้อขายกับ ${provider} ไม่สามารถดำเนินการได้ จำนวนมากกว่าขั้นสูง: ${max} ${currency}", - "error_text_limits_loading_failed": "การซื้อขายกับ ${provider} ไม่สามารถดำเนินการได้ ไม่สามารถโหลดขอบเขตได้", - "error_text_template": "ชื่อแม่แบบและที่อยู่ไม่สามารถมีสัญลักษณ์ ` , '\" และต้องมีความยาวระหว่าง 1 ถึง 106 ตัวอักษร", + "all_trades": "การซื้อขายทั้งหมด", + "all_transactions": "การทำธุรกรรมทั้งหมด", + "alphabetical": "ตามตัวอักษร", + "already_have_account": "มีบัญชีอยู่แล้ว?", + "always": "เสมอ", + "amount": "จำนวน: ", + "amount_is_estimate": "จำนวนที่จะได้รับเป็นการประมาณการ", + "amount_is_guaranteed": "จำนวนที่จะได้รับมีการรับประกัน", + "and": "และ", + "anonpay_description": "สร้าง ${type} ผู้รับสามารถ ${method} ด้วยสกุลเงินดิจิทัลที่รองรับ และคุณจะได้รับเงินในกระเป๋าสตางค์นี้", + "apk_update": "ปรับปรุง APK", + "approve": "อนุมัติ", + "arrive_in_this_address": "${currency} ${tag}จะมาถึงที่อยู่นี้", + "ascending": "จากน้อยไปมาก", + "ask_each_time": "ถามทุกครั้ง", "auth_store_ban_timeout": "หมดเวลาห้าม", "auth_store_banned_for": "ถูกห้ามสำหรับ ", "auth_store_banned_minutes": " นาที", "auth_store_incorrect_password": "รหัสผ่านไม่ถูกต้อง", - "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": "เชื่อมต่อแล้ว", - "sync_status_attempting_sync": "พยายามซิงโครไนซ์", - "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": "ส่ง BTC แล้ว", - "trade_state_timeout": "เวลาหมด", - "trade_state_created": "ถูกสร้าง", - "trade_state_finished": "เสร็จสิ้น", - "change_language": "เปลี่ยนภาษา", - "change_language_to": "เปลี่ยนภาษาเป็น ${language}?", - "paste": "วาง", - "restore_from_seed_placeholder": "โปรดป้อนหรือวาง seed ของคุณที่นี่", - "add_new_word": "เพิ่มคำใหม่", - "incorrect_seed": "ข้อความที่ป้อนไม่ถูกต้อง", - "biometric_auth_reason": "สแกนลายนิ้วมือของคุณเพื่อยืนยันตัวตน", - "version": "เวอร์ชัน ${currentVersion}", - "extracted_address_content": "คุณกำลังจะส่งเงินไปยัง\n${recipient_name}", - "card_address": "ที่อยู่:", - "buy": "ซื้อ", - "sell": "ขาย", - "placeholder_transactions": "ธุรกรรมของคุณจะปรากฏที่นี่", - "placeholder_contacts": "รายชื่อผู้ติดต่อของคุณจะปรากฏที่นี่", - "template": "แบบฟอร์ม", - "confirm_delete_template": "การดำเนินการนี้จะลบแบบฟอร์มนี้ คุณต้องการดำเนินการต่อหรือไม่?", - "confirm_delete_wallet": "การดำเนินการนี้จะลบกระเป๋านี้ คุณต้องการดำเนินการต่อหรือไม่?", - "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 เป็นเพียงวิธีเดียวที่จะกู้กระเป๋าของคุณ คุณได้เขียนมันขึ้นลงกระดาษหรือไม่?", - "seed_alert_back": "กลับ", - "seed_alert_yes": "ใช่ ฉันได้เขียน", - "exchange_sync_alert_content": "โปรดรอจนกว่ากระเป๋าของคุณจะถูกซิงค์", - "pre_seed_title": "สำคัญ", - "pre_seed_description": "บนหน้าถัดไปคุณจะเห็นชุดของคำ ${words} คำ นี่คือ seed ของคุณที่ไม่ซ้ำใดๆ และเป็นความลับเพียงของคุณ และนี่คือเพียงวิธีเดียวที่จะกู้กระเป๋าของคุณในกรณีที่สูญหายหรือมีปัญหา มันเป็นความรับผิดชอบของคุณเพื่อเขียนมันลงบนกระดาษและจัดเก็บไว้ในที่ปลอดภัยนอกแอป Cake Wallet", - "pre_seed_button_text": "ฉันเข้าใจ แสดง seed ของฉัน", - "xmr_to_error": "ข้อผิดพลาด XMR.TO", - "xmr_to_error_description": "จำนวนไม่ถูกต้อง จำกัดขั้นสูง 8 หลักหลังจุดทศนิยม", - "provider_error": "ข้อผิดพลาด ${provider}", - "use_ssl": "ใช้ SSL", - "trusted": "มั่นคง", - "color_theme": "ธีมสี", - "light_theme": "สว่าง", - "bright_theme": "สดใส", - "dark_theme": "เข้ม", - "enter_your_note": "ใส่บันทึกของคุณ...", - "note_optional": "บันทึก (ไม่จำเป็น)", - "note_tap_to_change": "หมายเหตุ (กดเพื่อเปลี่ยน)", - "view_in_block_explorer": "ดูใน Block Explorer", - "view_transaction_on": "ดูการทำธุรกรรมบน ", - "transaction_key": "รหัสธุรกรรม", - "confirmations": "การยืนยัน", - "recipient_address": "ที่อยู่ผู้รับ", - "extra_id": "ไอดีเพิ่มเติม:", - "destination_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": "โปรดอย่าลืมระบุ Memo ID ในขณะที่ส่งธุรกรรม XLM สำหรับการแลกเปลี่ยน", - "xrp_extra_info": "โปรดอย่าลืมระบุ Destination Tag ในขณะที่ส่งธุรกรรม XRP สำหรับการแลกเปลี่ยน", - "exchange_incorrect_current_wallet_for_xmr": "หากคุณต้องการแลกเปลี่ยน XMR จากยอดคงเหลือ Monero ใน Cake Wallet ของคุณ กรุณาเปลี่ยนเป็นกระเป๋า Monero ก่อน", - "confirmed": "ยอดคงเหลือที่ยืนยันแล้ว", - "unconfirmed": "ยอดคงเหลือที่ไม่ได้รับการยืนยัน", - "displayable": "สามารถแสดงได้", - "submit_request": "ส่งคำขอ", - "buy_alert_content": "ขณะนี้เรารองรับการซื้อ Bitcoin, Ethereum, Litecoin และ Monero เท่านั้น โปรดสร้างหรือเปลี่ยนเป็นกระเป๋าเงิน Bitcoin, Ethereum, Litecoin หรือ Monero", - "sell_alert_content": "ขณะนี้เรารองรับการขาย Bitcoin, Ethereum และ Litecoin เท่านั้น โปรดสร้างหรือเปลี่ยนเป็นกระเป๋าเงิน Bitcoin, Ethereum หรือ Litecoin ของคุณ", - "outdated_electrum_wallet_description": "กระเป๋า Bitcoin ใหม่ที่สร้างใน Cake มี seed ขนาด 24 คำ ซึ่งจำเป็นต้องสร้างกระเป๋า Bitcoin ใหม่และโอนทุกเงินของคุณไปยังกระเป๋าใหม่ขนาด 24 คำ และหยุดใช้กระเป๋าที่มี seed ขนาด 12 คำ กรุณาทำด่วนเพื่อรักษาเงินของคุณ", - "understand": "ฉันเข้าใจ", - "apk_update": "ปรับปรุง APK", - "buy_bitcoin": "ซื้อ Bitcoin", - "buy_with": "ซื้อด้วย", - "moonpay_alert_text": "มูลค่าของจำนวนต้องมากกว่าหรือเท่ากับ ${minAmount} ${fiatCurrency}", - "outdated_electrum_wallet_receive_warning": "หากกระเป๋านี้มีซีดีที่มี 12 คำและถูกสร้างขึ้นใน Cake อย่าโอน Bitcoin เข้ากระเป๋านี้ ทุกจำนวน BTC ที่โอนเข้ากระเป๋านี้อาจสูญหาย สร้างกระเป๋าใหม่ที่มีซีดีที่มี 24 คำ (กดที่เมนูที่มุมขวาบนแล้วเลือก Wallets และเลือก Create New Wallet จากนั้นเลือก Bitcoin) และย้าย BTC ไปที่นั้นทันที กระเป๋า BTC ที่มีซีดีที่มี 24 คำของ Cake ปลอดภัย", - "do_not_show_me": "อย่าแสดงข้อความนี้อีก", - "unspent_coins_title": "เหรียญที่ไม่ได้ใช้", - "unspent_coins_details_title": "รายละเอียดเหรียญที่ไม่ได้ใช้", - "freeze": "ดักจับ", - "frozen": "ถูกดักจับ", - "coin_control": "การควบคุมเหรียญ (ตัวเลือก)", - "address_detected": "ตรวจพบที่อยู่", - "address_from_domain": "ที่อยู่นี้มาจาก ${domain} บน Unstoppable Domains", - "add_receiver": "เพิ่มผู้รับอื่น ๆ (ตัวเลือก)", - "manage_yats": "จัดการ Yats", - "yat_alert_title": "ส่งและรับเหรียญออนไลน์ง่ายขึ้นด้วย Yat", - "yat_alert_content": "ผู้ใช้งาน Cake Wallet สามารถส่งและรับเหรียญออนไลน์ทุกเหรียญที่ชื่นชอบของพวกเขาได้ง่ายขึ้นด้วยชื่อผู้ใช้งานที่พิเศษที่ระบุด้วยอีโมจิ", - "get_your_yat": "รับ Yat ของคุณ", - "connect_an_existing_yat": "เชื่อมต่อ Yat ที่มีอยู่", - "connect_yats": "เชื่อมต่อ Yats", - "yat_address": "ที่อยู่ Yat", - "yat": "Yat", - "address_from_yat": "ที่อยู่นี้มาจาก ${emoji} บน Yat", - "yat_error": "ข้อผิดพลาดของ Yat", - "yat_error_content": "ไม่มีที่อยู่ที่เชื่อมต่อกับ Yat นี้ ลองใช้ Yat อื่น", - "choose_address": "\n\nโปรดเลือกที่อยู่:", - "yat_popup_title": "ที่อยู่กระเป๋าของคุณสามารถถูกอัปโหลดเป็นอิโมจิ", - "yat_popup_content": "ขณะนี้คุณสามารถส่งและรับเหรียญคริปโตใน Cake Wallet ด้วย Yat ของคุณ - ชื่อผู้ใช้ที่สั้นมีอิโมจิ คุณสามารถจัดการ Yat ได้ทุกเวลาบนหน้าจอการตั้งค่า", - "second_intro_title": "อิโมจิที่อยู่เดียวที่จะควบคุมพวกเขาทั้งหมด", - "second_intro_content": "Yat ของคุณเป็นอิโมจิที่อยู่เดียวที่จะแทนที่ทุกที่อยู่และเลขฐานสิบหกของคุณสำหรับเหรียญคริปโตทุกชนิด", - "third_intro_title": "Yat ปฏิบัติตนอย่างดีกับผู้อื่น", - "third_intro_content": "Yat อาศัยอยู่นอก Cake Wallet ด้วย ที่อยู่กระเป๋าใดๆ ทั่วโลกสามารถแทนด้วย Yat ได้อีกด้วย!", - "learn_more": "ศึกษาเพิ่มเติม", - "search": "ค้นหา", - "search_language": "ค้นหาภาษา", - "search_currency": "ค้นหาสกุลเงิน", - "new_template": "แม่แบบใหม่", - "electrum_address_disclaimer": "เราสร้างที่อยู่ใหม่ทุกครั้งที่คุณใช้หนึ่งอย่าง แต่ที่อยู่เก่ายังสามารถใช้ได้ต่อไป", - "wallet_name_exists": "กระเป๋าที่มีชื่อนี้มีอยู่แล้ว โปรดเลือกชื่ออื่นหรือเปลี่ยนชื่อกระเป๋าอื่นก่อน", - "market_place": "ตลาดพื้นที่", - "cake_pay_title": "บัตรของขวัญ Cake Pay", - "cake_pay_subtitle": "ซื้อบัตรของขวัญราคาถูก (สำหรับสหรัฐอเมริกาเท่านั้น)", - "cake_pay_web_cards_title": "Cake Pay Web Cards", - "cake_pay_web_cards_subtitle": "ซื้อบัตรพร้อมเงินระดับโลกและบัตรของขวัญ", - "about_cake_pay": "Cake Pay ช่วยให้คุณสามารถซื้อบัตรของขวัญง่ายๆ ด้วยการใช้สินทรัพย์อนุกรม ซื้อใช้ได้ทันทีกับมากกว่า 150,000 ร้านค้าในสหรัฐอเมริกา", - "cake_pay_account_note": "ลงทะเบียนด้วยอีเมลเพียงอย่างเดียวเพื่อดูและซื้อบัตร บางบัตรอาจมีส่วนลด!", - "already_have_account": "มีบัญชีอยู่แล้ว?", - "create_account": "สร้างบัญชี", - "privacy_policy": "นโยบายความเป็นส่วนตัว", - "welcome_to_cakepay": "ยินดีต้อนรับสู่ Cake Pay!", - "sign_up": "สมัครสมาชิก", - "forgot_password": "ลืมรหัสผ่าน", - "reset_password": "รีเซ็ตรหัสผ่าน", - "gift_cards": "บัตรของขวัญ", - "setup_your_debit_card": "ตั้งค่าบัตรเดบิตของคุณ", - "no_id_required": "ไม่จำเป็นต้องใช้บัตรประจำตัว ฝากเงินและใช้งานได้ทุกที่", - "how_to_use_card": "วิธีใช้บัตรนี้", - "purchase_gift_card": "ซื้อบัตรของขวัญ", - "verification": "การตรวจสอบ", - "fill_code": "โปรดกรอกรหัสยืนยันที่ส่งไปยังอีเมลของคุณ", - "didnt_get_code": "ไม่ได้รับรหัส?", - "resend_code": "โปรดส่งอีกครั้ง", - "debit_card": "บัตรเดบิต", - "cakepay_prepaid_card": "บัตรเดบิตเติมเงินของ CakePay", - "no_id_needed": "ไม่จำเป็นต้องใช้บัตรประชาชน!", - "frequently_asked_questions": "คำถามที่พบบ่อย", - "debit_card_terms": "การเก็บรักษาและใช้หมายเลขบัตรจ่ายเงิน (และข้อมูลประจำตัวที่เกี่ยวข้องกับหมายเลขบัตรจ่ายเงิน) ในกระเป๋าดิจิทัลนี้ จะต้องยึดถือข้อกำหนดและเงื่อนไขของข้อตกลงผู้ใช้บัตรของผู้ถือบัตรที่เกี่ยวข้องกับบัตรผู้ถือบัตร ซึ่งจะมีผลตั้งแต่เวลานั้น", - "please_reference_document": "โปรดอ้างอิงเอกสารด้านล่างสำหรับข้อมูลเพิ่มเติม", - "cardholder_agreement": "ข้อตกลงผู้ใช้บัตร", - "e_sign_consent": "การยอมรับ E-Sign", - "agree_and_continue": "ยอมรับและดำเนินการต่อ", - "email_address": "ที่อยู่อีเมล", - "agree_to": "การสร้างบัญชีของคุณยอมรับเงื่อนไขของ", - "and": "และ", - "enter_code": "กรอกรหัส", - "congratulations": "ขอแสดงความยินดี!", - "you_now_have_debit_card": "ขณะนี้คุณมีบัตรเดบิต", - "min_amount": "จำนวนขั้นต่ำ: ${value}", - "max_amount": "จำนวนสูงสุด: ${value}", - "enter_amount": "กรอกจำนวน", - "billing_address_info": "ถ้าถูกร้องขอที่อยู่สำหรับการวางบิล ให้ใช้ที่อยู่จัดส่งของคุณ", - "order_physical_card": "สั่งซื้อบัตรดิบิต", - "add_value": "เพิ่มมูลค่า", - "activate": "เปิดใช้งาน", - "get_a": "รับ ", - "digital_and_physical_card": "บัตรเดบิตดิจิตอลและบัตรพื้นฐาน", - "get_card_note": "ที่คุณสามารถเติมเงินด้วยสกุลเงินดิจิตอล ไม่จำเป็นต้องใส่ข้อมูลเพิ่มเติม!", - "signup_for_card_accept_terms": "ลงทะเบียนสำหรับบัตรและยอมรับเงื่อนไข", - "add_fund_to_card": "เพิ่มเงินสำรองไว้บนบัตร (ถึง ${value})", - "use_card_info_two": "เงินจะถูกแปลงค่าเป็นดอลลาร์สหรัฐเมื่อถือไว้ในบัญชีสำรองเงิน ไม่ใช่สกุลเงินดิจิตอล", - "use_card_info_three": "ใช้บัตรดิจิตอลออนไลน์หรือผ่านวิธีการชำระเงินแบบไม่ต้องใช้บัตรกระดาษ", - "optionally_order_card": "เลือกเพิ่มสั่งการ์ดจริง", - "hide_details": "ซ่อนรายละเอียด", - "show_details": "แสดงรายละเอียด", - "upto": "สูงสุด ${value}", - "discount": "ประหยัด ${value}%", - "gift_card_amount": "จำนวนบัตรของขวัญ", - "bill_amount": "จำนวนบิล", - "you_pay": "คุณจ่าย", - "tip": "เพิ่มค่าตอบแทน:", - "custom": "กำหนดเอง", - "by_cake_pay": "โดย Cake Pay", - "expires": "หมดอายุ", - "mm": "เดือน", - "yy": "ปี", - "online": "ออนไลน์", - "offline": "ออฟไลน์", - "gift_card_number": "หมายเลขบัตรของขวัญ", - "pin_number": "หมายเลข PIN", - "total_saving": "ประหยัดรวม", - "last_30_days": "30 วันล่าสุด", - "avg_savings": "ประหยัดเฉลี่ย", - "view_all": "ดูทั้งหมด", - "active_cards": "บัตรที่ใช้งานได้", - "delete_account": "ลบบัญชี", - "cards": "บัตร", - "active": "ทำงาน", - "redeemed": "แลกของขวัญ", - "gift_card_balance_note": "บัตรของขวัญที่มียอดคงเหลือจะปรากฏที่นี่", - "gift_card_redeemed_note": "บัตรของขวัญที่คุณแลกไปแล้วจะปรากฏที่นี่", - "logout": "ออกจากระบบ", - "add_tip": "เพิ่มคำแนะนำ", - "percentageOf": "${amount} ของ", - "is_percentage": "เป็น", - "search_category": "ค้นหาหมวดหมู่", - "mark_as_redeemed": "ทำเครื่องหมายว่าเคยใช้แล้ว", - "more_options": "ตัวเลือกเพิ่มเติม", - "awaiting_payment_confirmation": "รอการยืนยันการชำระเงิน", - "transaction_sent_notice": "ถ้าหน้าจอไม่ขึ้นหลังจาก 1 นาทีแล้ว ให้ตรวจสอบ block explorer และอีเมลของคุณ", - "agree": "ยอมรับ", - "in_store": "ในร้าน", - "generating_gift_card": "กำลังสร้างบัตรของขวัญ", - "payment_was_received": "การชำระเงินของคุณได้รับการรับทราบแล้ว", - "proceed_after_one_minute": "หากหน้าจอไม่ดำเนินการหลังจาก 1 นาทีโปรดตรวจสอบอีเมลของคุณ", - "order_id": "เลขที่ออร์เดอร์", - "gift_card_is_generated": "บัตรของขวัญถูกสร้างขึ้น", - "open_gift_card": "เปิดบัตรของขวัญ", - "contact_support": "ติดต่อฝ่ายสนับสนุน", - "gift_cards_unavailable": "บัตรของขวัญจะมีจำหน่ายเฉพาะกับ Monero, Bitcoin, และ Litecoin เท่านั้นในขณะนี้", - "introducing_cake_pay": "ยินดีต้อนรับสู่ Cake Pay!", - "cake_pay_learn_more": "ซื้อและเบิกบัตรของขวัญในแอพพลิเคชันทันที!\nกระแทกขวาไปซ้ายเพื่อเรียนรู้เพิ่มเติม", + "authenticated": "ได้รับการยืนยันสิทธิ์", + "authentication": "การยืนยันสิทธิ์", + "auto_generate_subaddresses": "Auto สร้าง subaddresses", "automatic": "อัตโนมัติ", - "fixed_pair_not_supported": "คู่ความสัมพันธ์ที่ถูกกำหนดไว้นี้ไม่สนับสนุนกับหุ้นที่เลือก", - "variable_pair_not_supported": "คู่ความสัมพันธ์ที่เปลี่ยนแปลงได้นี้ไม่สนับสนุนกับหุ้นที่เลือก", - "none_of_selected_providers_can_exchange": "ไม่มีผู้ให้บริการที่เลือกที่สามารถแลกเปลี่ยนนี้ได้", - "choose_one": "เลือกหนึ่งรายการ", - "choose_from_available_options": "เลือกจากตัวเลือกที่มีอยู่:", - "custom_redeem_amount": "จำนวนรับคืนที่กำหนดเอง", - "add_custom_redemption": "เพิ่มการรับคืนที่กำหนดเอง", - "remaining": "เหลืออยู่", - "delete_wallet": "ลบกระเป๋า", - "delete_wallet_confirm_message": "คุณแน่ใจหรือว่าต้องการลบกระเป๋า${wallet_name}?", - "low_fee": "ค่าธรรมเนียมต่ำ", - "low_fee_alert": "ขณะนี้คุณกำลังใช้ค่าธรรมเนียมของเครือข่ายที่มีความสำคัญต่ำ ซึ่งอาจทำให้เกิดการรอนาน ราคาที่แตกต่างกัน หรือยกเลิกการซื้อขาย เราแนะนำให้กำหนดค่าธรรมเนียมที่สูงขึ้นเพื่อประสบการณ์ที่ดีขึ้น", - "ignor": "ละเว้น", - "use_suggested": "ใช้ที่แนะนำ", - "do_not_share_warning_text": "อย่าแชร์ข้อมูลนี้กับใครอื่น รวมถึงฝ่ายสนับสนุนด้วย\n\nการเงินของคุณอาจถูกขโมยโดยไม่หวังดี!", - "help": "ช่วยเหลือ", - "all_transactions": "การทำธุรกรรมทั้งหมด", - "all_trades": "การซื้อขายทั้งหมด", - "connection_sync": "การเชื่อมต่อและการซิงค์", - "security_and_backup": "ความปลอดภัยและการสำรองข้อมูล", - "create_backup": "สร้างการสำรองข้อมูล", - "privacy_settings": "การตั้งค่าความเป็นส่วนตัว", - "privacy": "ความเป็นส่วนตัว", - "display_settings": "การตั้งค่าการแสดงผล", - "other_settings": "การตั้งค่าอื่น ๆ", - "require_pin_after": "ต้องการ PIN หลังจาก", - "always": "เสมอ", - "minutes_to_pin_code": "${minute} นาที", - "disable_exchange": "ปิดใช้งานการแลกเปลี่ยน", - "advanced_settings": "ตั้งค่าขั้นสูง", - "settings_can_be_changed_later": "การตั้งค่านี้สามารถเปลี่ยนแปลงได้ภายหลังในการตั้งค่าแอพฯ", - "add_custom_node": "เพิ่มจุดโหนดแบบกำหนดเอง", - "disable_fiat": "ปิดใช้งานสกุลเงินตรา", - "fiat_api": "API สกุลเงินตรา", - "disabled": "ปิดใช้งาน", - "enabled": "เปิดใช้งาน", - "tor_only": "Tor เท่านั้น", - "unmatched_currencies": "สกุลเงินของกระเป๋าปัจจุบันของคุณไม่ตรงกับของ QR ที่สแกน", - "orbot_running_alert": "โปรดตรวจสอบว่า Orbot กำลังทำงานก่อนที่จะเชื่อมต่อกับโหนดนี้", - "contact_list_contacts": "ติดต่อ", - "contact_list_wallets": "กระเป๋าเงินของฉัน", - "bitcoin_payments_require_1_confirmation": "การชำระเงินด้วย Bitcoin ต้องการการยืนยัน 1 ครั้ง ซึ่งอาจใช้เวลา 20 นาทีหรือนานกว่านั้น ขอบคุณสำหรับความอดทนของคุณ! คุณจะได้รับอีเมลเมื่อการชำระเงินได้รับการยืนยัน", - "send_to_this_address": "ส่ง ${currency} ${tag}ไปยังที่อยู่นี้", - "arrive_in_this_address": "${currency} ${tag}จะมาถึงที่อยู่นี้", - "do_not_send": "อย่าส่ง", - "error_dialog_content": "อ๊ะ เราพบข้อผิดพลาดบางอย่าง\n\nโปรดส่งรายงานข้อขัดข้องไปยังทีมสนับสนุนของเราเพื่อปรับปรุงแอปพลิเคชันให้ดียิ่งขึ้น", - "scan_qr_code": "สแกนรหัส QR", - "cold_or_recover_wallet": "เพิ่มกระเป๋าเงินเย็นหรือกู้คืนกระเป๋าเงินกระดาษ", - "please_wait": "โปรดรอ", - "sweeping_wallet": "กวาดกระเป๋าสตางค์", - "sweeping_wallet_alert": "การดำเนินการนี้ใช้เวลาไม่นาน อย่าออกจากหน้าจอนี้ มิฉะนั้นเงินที่กวาดไปอาจสูญหาย", - "decimal_places_error": "ทศนิยมมากเกินไป", - "edit_node": "แก้ไขโหนด", - "invoice_details": "รายละเอียดใบแจ้งหนี้", - "donation_link_details": "รายละเอียดลิงค์บริจาค", - "anonpay_description": "สร้าง ${type} ผู้รับสามารถ ${method} ด้วยสกุลเงินดิจิทัลที่รองรับ และคุณจะได้รับเงินในกระเป๋าสตางค์นี้", - "create_invoice": "สร้างใบแจ้งหนี้", - "create_donation_link": "สร้างลิงค์บริจาค", - "optional_email_hint": "อีเมลแจ้งผู้รับเงินเพิ่มเติม", - "optional_description": "คำอธิบายเพิ่มเติม", - "optional_name": "ชื่อผู้รับเพิ่มเติม", - "clearnet_link": "ลิงค์เคลียร์เน็ต", - "onion_link": "ลิงค์หัวหอม", - "settings": "การตั้งค่า", - "sell_monero_com_alert_content": "ยังไม่รองรับการขาย Monero", - "error_text_input_below_minimum_limit": "จำนวนเงินน้อยกว่าขั้นต่ำ", - "error_text_input_above_maximum_limit": "จำนวนเงินสูงกว่าค่าสูงสุด", - "show_market_place": "แสดงตลาดกลาง", - "prevent_screenshots": "ป้องกันภาพหน้าจอและการบันทึกหน้าจอ", - "profile": "ประวัติโดยย่อ", - "close": "ปิด", - "modify_2fa": "แก้ไขเค้ก 2FA", - "disable_cake_2fa": "ปิดการใช้งานเค้ก 2FA", - "question_to_disable_2fa": "คุณแน่ใจหรือไม่ว่าต้องการปิดการใช้งาน Cake 2FA ไม่จำเป็นต้องใช้รหัส 2FA ในการเข้าถึงกระเป๋าเงินและฟังก์ชั่นบางอย่างอีกต่อไป", - "disable": "ปิดการใช้งาน", - "setup_2fa": "ตั้งค่าเค้ก 2FA", - "verify_with_2fa": "ตรวจสอบกับ Cake 2FA", - "totp_code": "รหัสทีโอพี", - "please_fill_totp": "กรุณากรอกรหัส 8 หลักที่อยู่ในอุปกรณ์อื่นของคุณ", - "totp_2fa_success": "ความสำเร็จ! Cake 2FA เปิดใช้งานสำหรับกระเป๋าเงินนี้ อย่าลืมบันทึกเมล็ดช่วยจำของคุณในกรณีที่คุณสูญเสียการเข้าถึงกระเป๋าเงิน", - "totp_verification_success": "การยืนยันสำเร็จ!", - "totp_2fa_failure": "รหัสไม่ถูกต้อง. โปรดลองใช้รหัสอื่นหรือสร้างรหัสลับใหม่ ใช้แอพ 2FA ที่เข้ากันได้ซึ่งรองรับรหัส 8 หลักและ SHA512", - "enter_totp_code": "กรุณาใส่รหัสทีโอที", - "add_secret_code": "หรือเพิ่มรหัสลับนี้ลงในแอปตรวจสอบความถูกต้อง", - "totp_secret_code": "รหัสลับ TOTP", - "setup_2fa_text": "Cake 2FA ทำงานโดยใช้ TOTP เป็นปัจจัยการตรวจสอบสิทธิ์ที่สอง\n\nTOTP ของ Cake 2FA ต้องการการสนับสนุน SHA-512 และ 8 หลัก สิ่งนี้ให้ความปลอดภัยเพิ่มขึ้น ข้อมูลเพิ่มเติมและแอปที่รองรับมีอยู่ในคำแนะนำ", - "setup_totp_recommended": "ตั้งค่า TOTP", - "disable_buy": "ปิดการใช้งานการซื้อ", - "disable_sell": "ปิดการใช้งานการขาย", - "cake_2fa_preset": "เค้ก 2FA ที่ตั้งไว้ล่วงหน้า", - "narrow": "แคบ", - "normal": "ปกติ", - "aggressive": "กระตือรือร้นมากเกินไป", - "require_for_assessing_wallet": "จำเป็นสำหรับการเข้าถึงกระเป๋าเงิน", - "require_for_sends_to_non_contacts": "จำเป็นต้องส่งไปยังผู้ที่ไม่ได้ติดต่อ", - "require_for_sends_to_contacts": "จำเป็นต้องส่งไปยังผู้ติดต่อ", - "require_for_sends_to_internal_wallets": "จำเป็นต้องส่งไปยังกระเป๋าเงินภายใน", - "require_for_exchanges_to_internal_wallets": "ต้องการการแลกเปลี่ยนไปยังกระเป๋าเงินภายใน", - "require_for_adding_contacts": "ต้องการสำหรับการเพิ่มผู้ติดต่อ", - "require_for_creating_new_wallets": "จำเป็นสำหรับการสร้างกระเป๋าเงินใหม่", - "require_for_all_security_and_backup_settings": "จำเป็นสำหรับการตั้งค่าความปลอดภัยและการสำรองข้อมูลทั้งหมด", + "available_balance": "ยอดคงเหลือที่ใช้งานได้", "available_balance_description": "จำนวนเงินที่คุณสามารถใช้ได้ในการซื้อหรือขาย", - "syncing_wallet_alert_title": "กระเป๋าสตางค์ของคุณกำลังซิงค์", - "syncing_wallet_alert_content": "รายการยอดเงินและธุรกรรมของคุณอาจไม่สมบูรณ์จนกว่าจะมีข้อความว่า “ซิงโครไนซ์” ที่ด้านบน คลิก/แตะเพื่อเรียนรู้เพิ่มเติม่", - "home_screen_settings": "การตั้งค่าหน้าจอหลัก", - "sort_by": "เรียงตาม", - "search_add_token": "ค้นหา / เพิ่มโทเค็น", - "edit_token": "แก้ไขโทเค็น", - "warning": "คำเตือน", - "add_token_warning": "ห้ามแก้ไขหรือเพิ่มโทเค็นตามคำแนะนำของนักต้มตุ๋น\nยืนยันที่อยู่โทเค็นกับแหล่งที่มาที่เชื่อถือได้เสมอ!", - "add_token_disclaimer_check": "ฉันได้ยืนยันที่อยู่และข้อมูลของสัญญาโทเค็นโดยใช้แหล่งข้อมูลที่เชื่อถือได้ การเพิ่มข้อมูลที่เป็นอันตรายหรือไม่ถูกต้องอาจทำให้สูญเสียเงินได้", - "token_contract_address": "ที่อยู่สัญญาโทเค็น", - "token_name": "ชื่อโทเค็น เช่น Tether", - "token_symbol": "สัญลักษณ์โทเค็น เช่น USDT", - "token_decimal": "โทเค็นทศนิยม", - "field_required": "ช่องนี้จำเป็น", - "pin_at_top": "ปักหมุด ${token} ที่ด้านบน", - "invalid_input": "อินพุตไม่ถูกต้อง", - "fiat_balance": "เฟียต บาลานซ์", - "gross_balance": "ยอดคงเหลือ", - "alphabetical": "ตามตัวอักษร", - "generate_name": "สร้างชื่อ", + "avg_savings": "ประหยัดเฉลี่ย", + "awaitDAppProcessing": "โปรดรอให้ dApp ประมวลผลเสร็จสิ้น", + "awaiting_payment_confirmation": "รอการยืนยันการชำระเงิน", + "backup": "สำรองข้อมูล", + "backup_file": "ไฟล์สำรองข้อมูล", + "backup_password": "รหัสผ่านสำรองข้อมูล", "balance_page": "หน้ายอดคงเหลือ", - "share": "แบ่งปัน", - "slidable": "เลื่อนได้", - "monero_dark_theme": "ธีมมืด Monero", + "bill_amount": "จำนวนบิล", + "billing_address_info": "ถ้าถูกร้องขอที่อยู่สำหรับการวางบิล ให้ใช้ที่อยู่จัดส่งของคุณ", + "biometric_auth_reason": "สแกนลายนิ้วมือของคุณเพื่อยืนยันตัวตน", "bitcoin_dark_theme": "ธีมมืด Bitcoin", "bitcoin_light_theme": "ธีมแสง Bitcoin", - "high_contrast_theme": "ธีมความคมชัดสูง", - "matrix_green_dark_theme": "ธีมเมทริกซ์สีเขียวเข้ม", - "monero_light_theme": "ธีมแสง Monero", - "manage_nodes": "จัดการโหนด", - "etherscan_history": "ประวัติอีเธอร์สแกน", - "template_name": "ชื่อแม่แบบ", + "bitcoin_payments_require_1_confirmation": "การชำระเงินด้วย Bitcoin ต้องการการยืนยัน 1 ครั้ง ซึ่งอาจใช้เวลา 20 นาทีหรือนานกว่านั้น ขอบคุณสำหรับความอดทนของคุณ! คุณจะได้รับอีเมลเมื่อการชำระเงินได้รับการยืนยัน", + "Blocks_remaining": "${status} บล็อกที่เหลืออยู่", + "bright_theme": "สดใส", + "buy": "ซื้อ", + "buy_alert_content": "ขณะนี้เรารองรับการซื้อ Bitcoin, Ethereum, Litecoin และ Monero เท่านั้น โปรดสร้างหรือเปลี่ยนเป็นกระเป๋าเงิน Bitcoin, Ethereum, Litecoin หรือ Monero", + "buy_bitcoin": "ซื้อ Bitcoin", + "buy_provider_unavailable": "ผู้ให้บริการไม่สามารถใช้งานได้ในปัจจุบัน", + "buy_with": "ซื้อด้วย", + "by_cake_pay": "โดย Cake Pay", + "cake_2fa_preset": "เค้ก 2FA ที่ตั้งไว้ล่วงหน้า", + "cake_pay_account_note": "ลงทะเบียนด้วยอีเมลเพียงอย่างเดียวเพื่อดูและซื้อบัตร บางบัตรอาจมีส่วนลด!", + "cake_pay_learn_more": "ซื้อและเบิกบัตรของขวัญในแอพพลิเคชันทันที!\nกระแทกขวาไปซ้ายเพื่อเรียนรู้เพิ่มเติม", + "cake_pay_subtitle": "ซื้อบัตรของขวัญราคาถูก (สำหรับสหรัฐอเมริกาเท่านั้น)", + "cake_pay_title": "บัตรของขวัญ Cake Pay", + "cake_pay_web_cards_subtitle": "ซื้อบัตรพร้อมเงินระดับโลกและบัตรของขวัญ", + "cake_pay_web_cards_title": "Cake Pay Web Cards", + "cake_wallet": "Cake Wallet", + "cakepay_prepaid_card": "บัตรเดบิตเติมเงินของ CakePay", + "camera_consent": "กล้องของคุณจะถูกนำมาใช้เพื่อจับภาพเพื่อวัตถุประสงค์ในการระบุตัวตนภายใน ${provider} โปรดตรวจสอบนโยบายความเป็นส่วนตัวเพื่อดูรายละเอียด", + "camera_permission_is_required": "ต้องได้รับอนุญาตจากกล้อง\nโปรดเปิดใช้งานจากการตั้งค่าแอป", + "cancel": "ยกเลิก", + "card_address": "ที่อยู่:", + "cardholder_agreement": "ข้อตกลงผู้ใช้บัตร", + "cards": "บัตร", + "chains": "ห่วงโซ่", + "change": "เปลี่ยน", + "change_backup_password_alert": "ไฟล์สำรองที่ผ่านมาจะไม่สามารถนำเข้าด้วยรหัสผ่านสำรองใหม่ได้ รหัสผ่านสำรองใหม่จะถูกใช้เฉพาะสำหรับไฟล์สำรองใหม่ คุณแน่ใจหรือว่าต้องการเปลี่ยนรหัสผ่านสำรอง?", + "change_currency": "เปลี่ยนสกุลเงิน", + "change_current_node": "คุณแน่ใจหรือว่าต้องการเปลี่ยนโหนดปัจจุบันเป็น ${node}?", + "change_current_node_title": "เปลี่ยนโหนดปัจจุบัน", + "change_exchange_provider": "เปลี่ยนผู้ให้บริการแลกเปลี่ยน", + "change_language": "เปลี่ยนภาษา", + "change_language_to": "เปลี่ยนภาษาเป็น ${language}?", + "change_password": "เปลี่ยนรหัสผ่าน", "change_rep": "เปลี่ยนผู้แทน", "change_rep_message": "คุณแน่ใจหรือไม่ว่าต้องการเปลี่ยนตัวแทน", - "unsupported_asset": "เราไม่สนับสนุนการกระทำนี้สำหรับเนื้อหานี้ โปรดสร้างหรือเปลี่ยนเป็นกระเป๋าเงินประเภทสินทรัพย์ที่รองรับ", - "manage_pow_nodes": "จัดการโหนด PoW", - "support_title_live_chat": "การสนับสนุนสด", - "support_description_live_chat": "ฟรีและรวดเร็ว! ตัวแทนฝ่ายสนับสนุนที่ผ่านการฝึกอบรมพร้อมให้ความช่วยเหลือ", - "support_title_guides": "คู่มือกระเป๋าเงินเค้ก", - "support_description_guides": "เอกสารและการสนับสนุนสำหรับปัญหาทั่วไป", - "support_title_other_links": "ลิงค์สนับสนุนอื่น ๆ", - "support_description_other_links": "เข้าร่วมชุมชนของเราหรือเข้าถึงเราพันธมิตรของเราผ่านวิธีการอื่น ๆ", + "change_rep_successful": "เปลี่ยนตัวแทนสำเร็จ", + "change_wallet_alert_content": "คุณต้องการเปลี่ยนกระเป๋าปัจจุบันเป็น ${wallet_name} หรือไม่?", + "change_wallet_alert_title": "เปลี่ยนกระเป๋าปัจจุบัน", + "choose_account": "เลือกบัญชี", + "choose_address": "\n\nโปรดเลือกที่อยู่:", "choose_derivation": "เลือก Wallet Derivation", - "new_first_wallet_text": "ทำให้สกุลเงินดิจิตอลของคุณปลอดภัยได้อย่างง่ายดาย", - "select_destination": "โปรดเลือกปลายทางสำหรับไฟล์สำรอง", - "auto_generate_subaddresses": "Auto สร้าง subaddresses", - "save_to_downloads": "บันทึกลงดาวน์โหลด", - "select_buy_provider_notice": "เลือกผู้ให้บริการซื้อด้านบน คุณสามารถข้ามหน้าจอนี้ได้โดยการตั้งค่าผู้ให้บริการซื้อเริ่มต้นในการตั้งค่าแอป", - "onramper_option_description": "ซื้อ crypto อย่างรวดเร็วด้วยวิธีการชำระเงินจำนวนมาก มีให้บริการในประเทศส่วนใหญ่ สเปรดและค่าธรรมเนียมแตกต่างกันไป", + "choose_from_available_options": "เลือกจากตัวเลือกที่มีอยู่:", + "choose_one": "เลือกหนึ่งรายการ", + "choose_relay": "กรุณาเลือกรีเลย์ที่จะใช้", + "choose_wallet_currency": "โปรดเลือกสกุลเงินของกระเป๋า:", + "clear": "ล้าง", + "clearnet_link": "ลิงค์เคลียร์เน็ต", + "close": "ปิด", + "coin_control": "การควบคุมเหรียญ (ตัวเลือก)", + "cold_or_recover_wallet": "เพิ่มกระเป๋าเงินเย็นหรือกู้คืนกระเป๋าเงินกระดาษ", + "color_theme": "ธีมสี", + "commit_transaction_amount_fee": "ยืนยันธุรกรรม\nจำนวน: ${amount}\nค่าธรรมเนียม: ${fee}", + "confirm": "ยืนยัน", + "confirm_delete_template": "การดำเนินการนี้จะลบแบบฟอร์มนี้ คุณต้องการดำเนินการต่อหรือไม่?", + "confirm_delete_wallet": "การดำเนินการนี้จะลบกระเป๋านี้ คุณต้องการดำเนินการต่อหรือไม่?", + "confirm_sending": "ยืนยันการส่ง", + "confirmations": "การยืนยัน", + "confirmed": "ยอดคงเหลือที่ยืนยันแล้ว", + "confirmed_tx": "ซึ่งยืนยันแล้ว", + "congratulations": "ขอแสดงความยินดี!", + "connect_an_existing_yat": "เชื่อมต่อ Yat ที่มีอยู่", + "connect_yats": "เชื่อมต่อ Yats", + "connection_sync": "การเชื่อมต่อและการซิงค์", + "connectWalletPrompt": "เชื่อมต่อกระเป๋าเงินของคุณด้วย WalletConnect เพื่อทำธุรกรรม", + "contact": "ผู้ติดต่อ", + "contact_list_contacts": "ติดต่อ", + "contact_list_wallets": "กระเป๋าเงินของฉัน", + "contact_name": "ชื่อผู้ติดต่อ", + "contact_support": "ติดต่อฝ่ายสนับสนุน", + "continue_text": "ดำเนินการต่อ", + "contractName": "ชื่อสัญญา", + "contractSymbol": "สัญลักษณ์สัญญา", + "copied_key_to_clipboard": "คัดลอก ${key} ไปยัง Clipboard แล้ว", + "copied_to_clipboard": "คัดลอกไปยังหน่วยความจำของคอมพิวเตอร์", + "copy": "คัดลอก", + "copy_address": "คัดลอกที่อยู่", + "copy_id": "คัดลอก ID", + "copyWalletConnectLink": "คัดลอกลิงก์ WalletConnect จาก dApp แล้ววางที่นี่", + "create_account": "สร้างบัญชี", + "create_backup": "สร้างการสำรองข้อมูล", + "create_donation_link": "สร้างลิงค์บริจาค", + "create_invoice": "สร้างใบแจ้งหนี้", + "create_new": "สร้างกระเป๋าใหม่", + "create_new_account": "สร้างบัญชีใหม่", + "creating_new_wallet": "กำลังสร้างกระเป๋าใหม่", + "creating_new_wallet_error": "ข้อผิดพลาด: ${description}", + "creation_date": "วันที่สร้าง", + "custom": "กำหนดเอง", + "custom_drag": "กำหนดเอง (ค้างและลาก)", + "custom_redeem_amount": "จำนวนรับคืนที่กำหนดเอง", + "dark_theme": "เข้ม", + "debit_card": "บัตรเดบิต", + "debit_card_terms": "การเก็บรักษาและใช้หมายเลขบัตรจ่ายเงิน (และข้อมูลประจำตัวที่เกี่ยวข้องกับหมายเลขบัตรจ่ายเงิน) ในกระเป๋าดิจิทัลนี้ จะต้องยึดถือข้อกำหนดและเงื่อนไขของข้อตกลงผู้ใช้บัตรของผู้ถือบัตรที่เกี่ยวข้องกับบัตรผู้ถือบัตร ซึ่งจะมีผลตั้งแต่เวลานั้น", + "decimal_places_error": "ทศนิยมมากเกินไป", "default_buy_provider": "ผู้ให้บริการซื้อเริ่มต้น", - "ask_each_time": "ถามทุกครั้ง", - "buy_provider_unavailable": "ผู้ให้บริการไม่สามารถใช้งานได้ในปัจจุบัน", - "signTransaction": "ลงนามในการทำธุรกรรม", + "default_sell_provider": "ผู้ให้บริการการขายเริ่มต้น", + "delete": "ลบ", + "delete_account": "ลบบัญชี", + "delete_wallet": "ลบกระเป๋า", + "delete_wallet_confirm_message": "คุณแน่ใจหรือว่าต้องการลบกระเป๋า${wallet_name}?", + "deleteConnectionConfirmationPrompt": "คุณแน่ใจหรือไม่ว่าต้องการลบการเชื่อมต่อไปยัง", + "descending": "ลงมา", + "description": "คำอธิบาย", + "destination_tag": "แท็กปลายทาง:", + "dfx_option_description": "ซื้อ crypto ด้วย EUR และ CHF สูงถึง 990€ โดยไม่มี KYC เพิ่มเติม สำหรับลูกค้ารายย่อยและลูกค้าองค์กรในยุโรป", + "didnt_get_code": "ไม่ได้รับรหัส?", + "digit_pin": "-หลัก PIN", + "digital_and_physical_card": "บัตรเดบิตดิจิตอลและบัตรพื้นฐาน", + "disable": "ปิดการใช้งาน", + "disable_buy": "ปิดการใช้งานการซื้อ", + "disable_cake_2fa": "ปิดการใช้งานเค้ก 2FA", + "disable_exchange": "ปิดใช้งานการแลกเปลี่ยน", + "disable_fiat": "ปิดใช้งานสกุลเงินตรา", + "disable_sell": "ปิดการใช้งานการขาย", + "disabled": "ปิดใช้งาน", + "discount": "ประหยัด ${value}%", + "display_settings": "การตั้งค่าการแสดงผล", + "displayable": "สามารถแสดงได้", + "do_not_have_enough_gas_asset": "คุณมี ${currency} ไม่เพียงพอที่จะทำธุรกรรมกับเงื่อนไขเครือข่ายบล็อคเชนในปัจจุบัน คุณต้องมี ${currency} เพิ่มขึ้นเพื่อชำระค่าธรรมเนียมเครือข่ายบล็อคเชน แม้ว่าคุณจะส่งสินทรัพย์อื่นก็ตาม", + "do_not_send": "อย่าส่ง", + "do_not_share_warning_text": "อย่าแชร์ข้อมูลนี้กับใครอื่น รวมถึงฝ่ายสนับสนุนด้วย\n\nการเงินของคุณอาจถูกขโมยโดยไม่หวังดี!", + "do_not_show_me": "อย่าแสดงข้อความนี้อีก", + "domain_looks_up": "การค้นหาโดเมน", + "donation_link_details": "รายละเอียดลิงค์บริจาค", + "e_sign_consent": "การยอมรับ E-Sign", + "edit": "แก้ไข", + "edit_backup_password": "แก้ไขรหัสผ่านสำรอง", + "edit_node": "แก้ไขโหนด", + "edit_token": "แก้ไขโทเค็น", + "electrum_address_disclaimer": "เราสร้างที่อยู่ใหม่ทุกครั้งที่คุณใช้หนึ่งอย่าง แต่ที่อยู่เก่ายังสามารถใช้ได้ต่อไป", + "email_address": "ที่อยู่อีเมล", + "enabled": "เปิดใช้งาน", + "enter_amount": "กรอกจำนวน", + "enter_backup_password": "ป้อนรหัสผ่านสำรองที่นี่", + "enter_code": "กรอกรหัส", + "enter_seed_phrase": "ป้อนวลีเมล็ดพันธุ์ของคุณ", + "enter_totp_code": "กรุณาใส่รหัสทีโอที", + "enter_your_note": "ใส่บันทึกของคุณ...", + "enter_your_pin": "ใส่ PIN ของคุณ", + "enter_your_pin_again": "ใส่ PIN ของคุณอีกครั้ง", + "enterTokenID": "ป้อนรหัสโทเค็น", + "enterWalletConnectURI": "เข้าสู่ WalletConnect URI", + "error": "ข้อผิดพลาด", + "error_dialog_content": "อ๊ะ เราพบข้อผิดพลาดบางอย่าง\n\nโปรดส่งรายงานข้อขัดข้องไปยังทีมสนับสนุนของเราเพื่อปรับปรุงแอปพลิเคชันให้ดียิ่งขึ้น", + "error_text_account_name": "ชื่อบัญชีสามารถเป็นเพียงตัวอักษรหรือตัวเลขเท่านั้น\nและต้องมีความยาวระหว่าง 1 ถึง 15 ตัวอักษร", + "error_text_address": "ที่อยู่กระเป๋าจะต้องสอดคล้องกับประเภท\nของเหรียญคริปโตเนียม", + "error_text_amount": "จำนวนจะต้องประกอบด้วยตัวเลขเท่านั้น", + "error_text_contact_name": "ชื่อผู้ติดต่อไม่สามารถมีสัญลักษณ์ ` , '\" ได้\nและต้องมีความยาวระหว่าง 1 ถึง 32 ตัวอักษร", + "error_text_crypto_currency": "จำนวนทศนิยมจะต้องน้อยกว่าหรือเท่ากับ 12", + "error_text_fiat": "มูลค่าของจำนวนเงินไม่สามารถเกินยอดคงเหลือได้\nจำนวนสตริงทศนิยมต้องน้อยกว่าหรือเท่ากับ 2", + "error_text_input_above_maximum_limit": "จำนวนเงินสูงกว่าค่าสูงสุด", + "error_text_input_below_minimum_limit": "จำนวนเงินน้อยกว่าขั้นต่ำ", + "error_text_keys": "คีย์ของกระเป๋าสตางค์จะต้องประกอบด้วยตัวอักษรฐาน 16 จำนวน 64 ตัว", + "error_text_limits_loading_failed": "การซื้อขายกับ ${provider} ไม่สามารถดำเนินการได้ ไม่สามารถโหลดขอบเขตได้", + "error_text_maximum_limit": "การซื้อขายกับ ${provider} ไม่สามารถดำเนินการได้ จำนวนมากกว่าขั้นสูง: ${max} ${currency}", + "error_text_minimal_limit": "การซื้อขายกับ ${provider} ไม่สามารถดำเนินการได้ จำนวนน้อยกว่าขั้นต่ำ: ${min} ${currency}", + "error_text_node_address": "โปรดป้อนที่อยู่ iPv4", + "error_text_node_port": "พอร์ตโหนดสามารถมีตัวเลขเท่านั้นระหว่าง 0 ถึง 65535", + "error_text_node_proxy_address": "โปรดป้อน <ที่อยู่ IPv4>:<พอร์ต> เช่น 127.0.0.1:9050", + "error_text_payment_id": "Payment ID สามารถมีขนาดระหว่าง 16 ถึง 64 ตัวอักษรตามแบบ hex", + "error_text_subaddress_name": "ชื่อสำหรับที่อยู่ย่อยจะต้องประกอบด้วยตัวอักษร ตัวเลข และสัญลักษณ์ _ - และมีความยาวระหว่าง 1 ถึง 20 ตัวอักษร", + "error_text_template": "ชื่อแม่แบบและที่อยู่ไม่สามารถมีสัญลักษณ์ ` , '\" และต้องมีความยาวระหว่าง 1 ถึง 106 ตัวอักษร", + "error_text_wallet_name": "ชื่อกระเป๋าสตางค์จะต้องประกอบด้วยตัวอักษร ตัวเลข และสัญลักษณ์ _ - และมีความยาวระหว่าง 1 ถึง 33 ตัวอักษร", + "error_text_xmr": "มูลค่า XMR ไม่สามารถเกินยอดคงเหลือได้\nจำนวนสตริงทศนิยมต้องน้อยกว่าหรือเท่ากับ 12", "errorGettingCredentials": "ล้มเหลว: เกิดข้อผิดพลาดขณะรับข้อมูลรับรอง", "errorSigningTransaction": "เกิดข้อผิดพลาดขณะลงนามธุรกรรม", - "pairingInvalidEvent": "การจับคู่เหตุการณ์ที่ไม่ถูกต้อง", - "chains": "ห่วงโซ่", - "methods": "วิธีการ", - "events": "กิจกรรม", - "reject": "ปฏิเสธ", - "approve": "อนุมัติ", - "expiresOn": "หมดอายุวันที่", - "walletConnect": "WalletConnect", - "nullURIError": "URI เป็นโมฆะ", - "connectWalletPrompt": "เชื่อมต่อกระเป๋าเงินของคุณด้วย WalletConnect เพื่อทำธุรกรรม", - "newConnection": "การเชื่อมต่อใหม่", - "activeConnectionsPrompt": "การเชื่อมต่อที่ใช้งานอยู่จะปรากฏที่นี่", - "deleteConnectionConfirmationPrompt": "คุณแน่ใจหรือไม่ว่าต้องการลบการเชื่อมต่อไปยัง", + "estimated": "ประมาณการ", + "etherscan_history": "ประวัติอีเธอร์สแกน", "event": "เหตุการณ์", - "successful": "ประสบความสำเร็จ", - "wouoldLikeToConnect": "ต้องการเชื่อมต่อ", - "message": "ข้อความ", - "do_not_have_enough_gas_asset": "คุณมี ${currency} ไม่เพียงพอที่จะทำธุรกรรมกับเงื่อนไขเครือข่ายบล็อคเชนในปัจจุบัน คุณต้องมี ${currency} เพิ่มขึ้นเพื่อชำระค่าธรรมเนียมเครือข่ายบล็อคเชน แม้ว่าคุณจะส่งสินทรัพย์อื่นก็ตาม", - "totp_auth_url": "URL การตรวจสอบสิทธิ์ TOTP", - "awaitDAppProcessing": "โปรดรอให้ dApp ประมวลผลเสร็จสิ้น", - "copyWalletConnectLink": "คัดลอกลิงก์ WalletConnect จาก dApp แล้ววางที่นี่", - "enterWalletConnectURI": "เข้าสู่ WalletConnect URI", - "seed_key": "คีย์เมล็ดพันธุ์", - "enter_seed_phrase": "ป้อนวลีเมล็ดพันธุ์ของคุณ", - "change_rep_successful": "เปลี่ยนตัวแทนสำเร็จ", - "add_contact": "เพิ่มผู้ติดต่อ", + "events": "กิจกรรม", + "exchange": "แลกเปลี่ยน", + "exchange_incorrect_current_wallet_for_xmr": "หากคุณต้องการแลกเปลี่ยน XMR จากยอดคงเหลือ Monero ใน Cake Wallet ของคุณ กรุณาเปลี่ยนเป็นกระเป๋า Monero ก่อน", + "exchange_new_template": "เทมเพลทใหม่", "exchange_provider_unsupported": "${providerName} ไม่ได้รับการสนับสนุนอีกต่อไป!", - "domain_looks_up": "การค้นหาโดเมน", - "require_for_exchanges_to_external_wallets": "จำเป็นต้องแลกเปลี่ยนกับกระเป๋าเงินภายนอก", - "camera_permission_is_required": "ต้องได้รับอนุญาตจากกล้อง\nโปรดเปิดใช้งานจากการตั้งค่าแอป", - "switchToETHWallet": "โปรดเปลี่ยนไปใช้กระเป๋าเงิน Ethereum แล้วลองอีกครั้ง", - "order_by": "สั่งโดย", - "creation_date": "วันที่สร้าง", + "exchange_result_confirm": "โดยกดปุ่มยืนยัน, คุณจะส่ง ${fetchingLabel} ${from} จากกระเป๋าของคุณที่เรียกว่า ${walletName} ไปยังที่อยู่ที่แสดงข้างล่าง หรือคุณสามารถส่งจากกระเป๋าภายนอกไปยังที่อยู่/รหัส QR ด้านล่าง\n\nโปรดกดปุ่มยืนยันเพื่อดำเนินการต่อหรือกลับไปเปลี่ยนจำนวน", + "exchange_result_description": "คุณต้องส่งอย่างน้อย ${fetchingLabel} ${from} ไปยังที่อยู่ที่แสดงบนหน้าถัดไป หากคุณส่งจำนวนน้อยกว่า ${fetchingLabel} ${from} อาจจะไม่ถูกแปลงและอาจไม่ถูกเรียกคืน", + "exchange_result_write_down_ID": "*โปรดคัดลอกหรือเขียนรหัสของคุณด้านบน", + "exchange_result_write_down_trade_id": "โปรดคัดลอกหรือบันทึก ID ของการซื้อขายเพื่อดำเนินการต่อไป", + "exchange_sync_alert_content": "โปรดรอจนกว่ากระเป๋าของคุณจะถูกซิงค์", + "expired": "หมดอายุ", + "expires": "หมดอายุ", + "expiresOn": "หมดอายุวันที่", + "export_backup": "ส่งออกข้อมูลสำรอง", + "extra_id": "ไอดีเพิ่มเติม:", + "extracted_address_content": "คุณกำลังจะส่งเงินไปยัง\n${recipient_name}", + "failed_authentication": "การยืนยันสิทธิ์ล้มเหลว ${state_error}", + "faq": "คำถามที่พบบ่อย", + "fetching": "กำลังโหลด", + "fiat_api": "API สกุลเงินตรา", + "fiat_balance": "เฟียต บาลานซ์", + "field_required": "ช่องนี้จำเป็น", + "fill_code": "โปรดกรอกรหัสยืนยันที่ส่งไปยังอีเมลของคุณ", + "filter_by": "กรองตาม", + "first_wallet_text": "กระเป๋าสตางค์ที่สวยงามสำหรับ Monero, Bitcoin, Ethereum, Litecoin และ Haven", + "fixed_pair_not_supported": "คู่ความสัมพันธ์ที่ถูกกำหนดไว้นี้ไม่สนับสนุนกับหุ้นที่เลือก", + "fixed_rate": "อัตราคงที่", + "fixed_rate_alert": "คุณจะสามารถป้อนจำนวนที่ได้รับเมื่อเลือกโหมดอัตราคงที่ คุณต้องการสลับไปที่โหมดอัตราคงที่?", + "forgot_password": "ลืมรหัสผ่าน", + "freeze": "ดักจับ", + "frequently_asked_questions": "คำถามที่พบบ่อย", + "frozen": "ถูกดักจับ", + "full_balance": "ยอดคงเหลือทั้งหมด", + "generate_name": "สร้างชื่อ", + "generating_gift_card": "กำลังสร้างบัตรของขวัญ", + "get_a": "รับ ", + "get_card_note": "ที่คุณสามารถเติมเงินด้วยสกุลเงินดิจิตอล ไม่จำเป็นต้องใส่ข้อมูลเพิ่มเติม!", + "get_your_yat": "รับ Yat ของคุณ", + "gift_card_amount": "จำนวนบัตรของขวัญ", + "gift_card_balance_note": "บัตรของขวัญที่มียอดคงเหลือจะปรากฏที่นี่", + "gift_card_is_generated": "บัตรของขวัญถูกสร้างขึ้น", + "gift_card_number": "หมายเลขบัตรของขวัญ", + "gift_card_redeemed_note": "บัตรของขวัญที่คุณแลกไปแล้วจะปรากฏที่นี่", + "gift_cards": "บัตรของขวัญ", + "gift_cards_unavailable": "บัตรของขวัญจะมีจำหน่ายเฉพาะกับ Monero, Bitcoin, และ Litecoin เท่านั้นในขณะนี้", + "got_it": "เข้าใจ", + "gross_balance": "ยอดคงเหลือ", "group_by_type": "กลุ่มตามประเภท", - "importNFTs": "นำเข้า NFT", - "noNFTYet": "ยังไม่มี NFT", - "address": "ที่อยู่", - "enterTokenID": "ป้อนรหัสโทเค็น", - "tokenID": "บัตรประจำตัวประชาชน", - "name": "ชื่อ", - "symbol": "เครื่องหมาย", - "seed_phrase_length": "ความยาววลีของเมล็ด", - "unavailable_balance": "ยอดคงเหลือไม่พร้อมใช้งาน", - "unavailable_balance_description": "ยอดคงเหลือที่ไม่พร้อมใช้งาน: ยอดรวมนี้รวมถึงเงินทุนที่ถูกล็อคในการทำธุรกรรมที่รอดำเนินการและที่คุณได้แช่แข็งไว้ในการตั้งค่าการควบคุมเหรียญของคุณ ยอดคงเหลือที่ถูกล็อคจะพร้อมใช้งานเมื่อธุรกรรมที่เกี่ยวข้องเสร็จสมบูรณ์ ในขณะที่ยอดคงเหลือที่แช่แข็งจะไม่สามารถเข้าถึงได้สำหรับธุรกรรมจนกว่าคุณจะตัดสินใจยกเลิกการแช่แข็ง", - "unspent_change": "เปลี่ยน", - "tor_connection": "การเชื่อมต่อทอร์", - "setup_warning_2fa_text": "Cake 2FA เป็นการรับรองความถูกต้องครั้งที่สองสำหรับการกระทำบางอย่างในกระเป๋าเงิน มันไม่ปลอดภัยเท่ากับห้องเย็น\n\nหากคุณสูญเสียการเข้าถึงแอป 2FA หรือคีย์ TOTP คุณจะสูญเสียการเข้าถึงกระเป๋าเงินนี้ คุณจะต้องกู้คืนกระเป๋าเงินของคุณจากเมล็ดช่วยในการจำ\n\nการสนับสนุนเค้กจะไม่สามารถช่วยเหลือคุณได้หากคุณสูญเสียการเข้าถึง 2FA หรือเมล็ดช่วยในการจำ\nก่อนใช้ Cake 2FA เราขอแนะนำให้อ่านคำแนะนำโดยละเอียด", - "scan_qr_on_device": "สแกนโค้ด QR นี้บนอุปกรณ์อื่น", + "haven_app": "Haven ของ Cake Wallet", + "haven_app_wallet_text": "กระเป๋าสตางค์ที่สวยงามสำหรับ Haven", + "help": "ช่วยเหลือ", + "hidden_balance": "ยอดคงเหลือซ่อนอยู่", + "hide_details": "ซ่อนรายละเอียด", + "high_contrast_theme": "ธีมความคมชัดสูง", + "home_screen_settings": "การตั้งค่าหน้าจอหลัก", "how_to_use": "วิธีใช้", + "how_to_use_card": "วิธีใช้บัตรนี้", + "id": "ID: ", + "ignor": "ละเว้น", + "import": "นำเข้า", + "importNFTs": "นำเข้า NFT", + "in_store": "ในร้าน", + "incoming": "ขาเข้า", + "incorrect_seed": "ข้อความที่ป้อนไม่ถูกต้อง", + "introducing_cake_pay": "ยินดีต้อนรับสู่ Cake Pay!", + "invalid_input": "อินพุตไม่ถูกต้อง", + "invoice_details": "รายละเอียดใบแจ้งหนี้", + "is_percentage": "เป็น", + "last_30_days": "30 วันล่าสุด", + "learn_more": "ศึกษาเพิ่มเติม", + "light_theme": "สว่าง", + "loading_your_wallet": "กำลังโหลดกระเป๋าของคุณ", + "login": "เข้าสู่ระบบ", + "logout": "ออกจากระบบ", + "low_fee": "ค่าธรรมเนียมต่ำ", + "low_fee_alert": "ขณะนี้คุณกำลังใช้ค่าธรรมเนียมของเครือข่ายที่มีความสำคัญต่ำ ซึ่งอาจทำให้เกิดการรอนาน ราคาที่แตกต่างกัน หรือยกเลิกการซื้อขาย เราแนะนำให้กำหนดค่าธรรมเนียมที่สูงขึ้นเพื่อประสบการณ์ที่ดีขึ้น", + "manage_nodes": "จัดการโหนด", + "manage_pow_nodes": "จัดการโหนด PoW", + "manage_yats": "จัดการ Yats", + "mark_as_redeemed": "ทำเครื่องหมายว่าเคยใช้แล้ว", + "market_place": "ตลาดพื้นที่", + "matrix_green_dark_theme": "ธีมเมทริกซ์สีเขียวเข้ม", + "max_amount": "จำนวนสูงสุด: ${value}", + "max_value": "ขั้นสูง: ${value} ${currency}", + "memo": "หมายเหตุ:", + "message": "ข้อความ", + "methods": "วิธีการ", + "min_amount": "จำนวนขั้นต่ำ: ${value}", + "min_value": "ขั้นต่ำ: ${value} ${currency}", + "minutes_to_pin_code": "${minute} นาที", + "mm": "เดือน", + "modify_2fa": "แก้ไขเค้ก 2FA", + "monero_com": "Monero.com ของ Cake Wallet", + "monero_com_wallet_text": "กระเป๋าสตางค์ที่สวยงามสำหรับ Monero", + "monero_dark_theme": "ธีมมืด Monero", + "monero_light_theme": "ธีมแสง Monero", + "moonpay_alert_text": "มูลค่าของจำนวนต้องมากกว่าหรือเท่ากับ ${minAmount} ${fiatCurrency}", + "more_options": "ตัวเลือกเพิ่มเติม", + "name": "ชื่อ", + "narrow": "แคบ", + "new_first_wallet_text": "ทำให้สกุลเงินดิจิตอลของคุณปลอดภัยได้อย่างง่ายดาย", + "new_node_testing": "การทดสอบโหนดใหม่", + "new_subaddress_create": "สร้าง", + "new_subaddress_label_name": "ชื่อป้ายกำกับ", + "new_subaddress_title": "ที่อยู่ใหม่", + "new_template": "แม่แบบใหม่", + "new_wallet": "กระเป๋าใหม่", + "newConnection": "การเชื่อมต่อใหม่", + "no_id_needed": "ไม่จำเป็นต้องใช้บัตรประชาชน!", + "no_id_required": "ไม่จำเป็นต้องใช้บัตรประจำตัว ฝากเงินและใช้งานได้ทุกที่", + "no_relay_on_domain": "ไม่มีการส่งต่อสำหรับโดเมนของผู้ใช้ หรือการส่งต่อไม่พร้อมใช้งาน กรุณาเลือกรีเลย์ที่จะใช้", + "no_relays": "ไม่มีรีเลย์", + "no_relays_message": "เราพบบันทึก Nostr NIP-05 สำหรับผู้ใช้รายนี้ แต่ไม่มีรีเลย์ใดๆ โปรดแนะนำให้ผู้รับเพิ่มรีเลย์ลงในบันทึก Nostr ของตน", + "node_address": "ที่อยู่โหนด", + "node_connection_failed": "เชื่อมต่อล้มเหลว", + "node_connection_successful": "เชื่อมต่อสำเร็จ", + "node_new": "โหนดใหม่", + "node_port": "พอร์ตโหนด", + "node_reset_settings_title": "รีเซ็ตการตั้งค่า", + "node_test": "ทดสอบ", + "nodes": "โหนด", + "nodes_list_reset_to_default_message": "คุณแน่ใจหรือว่าต้องการรีเซ็ตการตั้งค่าเป็นค่าเริ่มต้น?", + "none_of_selected_providers_can_exchange": "ไม่มีผู้ให้บริการที่เลือกที่สามารถแลกเปลี่ยนนี้ได้", + "noNFTYet": "ยังไม่มี NFT", + "normal": "ปกติ", + "note_optional": "บันทึก (ไม่จำเป็น)", + "note_tap_to_change": "หมายเหตุ (กดเพื่อเปลี่ยน)", + "nullURIError": "URI เป็นโมฆะ", + "offer_expires_in": "ข้อเสนอจะหมดอายุใน: ", + "offline": "ออฟไลน์", + "ok": "ตกลง", + "onion_link": "ลิงค์หัวหอม", + "online": "ออนไลน์", + "onramper_option_description": "ซื้อ crypto อย่างรวดเร็วด้วยวิธีการชำระเงินจำนวนมาก มีให้บริการในประเทศส่วนใหญ่ สเปรดและค่าธรรมเนียมแตกต่างกันไป", + "open_gift_card": "เปิดบัตรของขวัญ", + "optional_description": "คำอธิบายเพิ่มเติม", + "optional_email_hint": "อีเมลแจ้งผู้รับเงินเพิ่มเติม", + "optional_name": "ชื่อผู้รับเพิ่มเติม", + "optionally_order_card": "เลือกเพิ่มสั่งการ์ดจริง", + "orbot_running_alert": "โปรดตรวจสอบว่า Orbot กำลังทำงานก่อนที่จะเชื่อมต่อกับโหนดนี้", + "order_by": "สั่งโดย", + "order_id": "เลขที่ออร์เดอร์", + "order_physical_card": "สั่งซื้อบัตรดิบิต", + "other_settings": "การตั้งค่าอื่น ๆ", + "outdated_electrum_wallet_description": "กระเป๋า Bitcoin ใหม่ที่สร้างใน Cake มี seed ขนาด 24 คำ ซึ่งจำเป็นต้องสร้างกระเป๋า Bitcoin ใหม่และโอนทุกเงินของคุณไปยังกระเป๋าใหม่ขนาด 24 คำ และหยุดใช้กระเป๋าที่มี seed ขนาด 12 คำ กรุณาทำด่วนเพื่อรักษาเงินของคุณ", + "outdated_electrum_wallet_receive_warning": "หากกระเป๋านี้มีซีดีที่มี 12 คำและถูกสร้างขึ้นใน Cake อย่าโอน Bitcoin เข้ากระเป๋านี้ ทุกจำนวน BTC ที่โอนเข้ากระเป๋านี้อาจสูญหาย สร้างกระเป๋าใหม่ที่มีซีดีที่มี 24 คำ (กดที่เมนูที่มุมขวาบนแล้วเลือก Wallets และเลือก Create New Wallet จากนั้นเลือก Bitcoin) และย้าย BTC ไปที่นั้นทันที กระเป๋า BTC ที่มีซีดีที่มี 24 คำของ Cake ปลอดภัย", + "outgoing": "ขาออก", + "overwrite_amount": "เขียนทับจำนวน", + "pairingInvalidEvent": "การจับคู่เหตุการณ์ที่ไม่ถูกต้อง", + "password": "รหัสผ่าน", + "paste": "วาง", + "pause_wallet_creation": "ขณะนี้ความสามารถในการสร้าง Haven Wallet ถูกหยุดชั่วคราว", + "payment_id": "ID การชำระเงิน: ", + "payment_was_received": "การชำระเงินของคุณได้รับการรับทราบแล้ว", + "pending": " (อยู่ระหว่างดำเนินการ)", + "percentageOf": "${amount} ของ", + "pin_at_top": "ปักหมุด ${token} ที่ด้านบน", + "pin_is_incorrect": "PIN ไม่ถูกต้อง", + "pin_number": "หมายเลข PIN", + "placeholder_contacts": "รายชื่อผู้ติดต่อของคุณจะปรากฏที่นี่", + "placeholder_transactions": "ธุรกรรมของคุณจะปรากฏที่นี่", + "please_fill_totp": "กรุณากรอกรหัส 8 หลักที่อยู่ในอุปกรณ์อื่นของคุณ", + "please_make_selection": "โปรดเลือกตามด้านล่างเพื่อสร้างหรือกู้กระเป๋าของคุณ", + "please_reference_document": "โปรดอ้างอิงเอกสารด้านล่างสำหรับข้อมูลเพิ่มเติม", + "please_select": "โปรดเลือก:", + "please_select_backup_file": "โปรดเลือกไฟล์สำรองและป้อนรหัสผ่านสำรอง", + "please_try_to_connect_to_another_node": "โปรดลองเชื่อมต่อกับโหนดอื่น", + "please_wait": "โปรดรอ", + "polygonscan_history": "ประวัติ PolygonScan", + "powered_by": "พัฒนาขึ้นโดย ${title}", + "pre_seed_button_text": "ฉันเข้าใจ แสดง seed ของฉัน", + "pre_seed_description": "บนหน้าถัดไปคุณจะเห็นชุดของคำ ${words} คำ นี่คือ seed ของคุณที่ไม่ซ้ำใดๆ และเป็นความลับเพียงของคุณ และนี่คือเพียงวิธีเดียวที่จะกู้กระเป๋าของคุณในกรณีที่สูญหายหรือมีปัญหา มันเป็นความรับผิดชอบของคุณเพื่อเขียนมันลงบนกระดาษและจัดเก็บไว้ในที่ปลอดภัยนอกแอป Cake Wallet", + "pre_seed_title": "สำคัญ", + "prevent_screenshots": "ป้องกันภาพหน้าจอและการบันทึกหน้าจอ", + "privacy": "ความเป็นส่วนตัว", + "privacy_policy": "นโยบายความเป็นส่วนตัว", + "privacy_settings": "การตั้งค่าความเป็นส่วนตัว", + "private_key": "คีย์ส่วนตัว", + "proceed_after_one_minute": "หากหน้าจอไม่ดำเนินการหลังจาก 1 นาทีโปรดตรวจสอบอีเมลของคุณ", + "profile": "ประวัติโดยย่อ", + "provider_error": "ข้อผิดพลาด ${provider}", + "public_key": "คีย์สาธารณะ", + "purchase_gift_card": "ซื้อบัตรของขวัญ", + "qr_fullscreen": "แตะเพื่อเปิดหน้าจอ QR code แบบเต็มจอ", + "qr_payment_amount": "QR code นี้มีจำนวนการชำระเงิน คุณต้องการเขียนทับค่าปัจจุบันหรือไม่?", + "question_to_disable_2fa": "คุณแน่ใจหรือไม่ว่าต้องการปิดการใช้งาน Cake 2FA ไม่จำเป็นต้องใช้รหัส 2FA ในการเข้าถึงกระเป๋าเงินและฟังก์ชั่นบางอย่างอีกต่อไป", + "receivable_balance": "ยอดลูกหนี้", + "receive": "รับ", + "receive_amount": "จำนวน", + "received": "รับ", + "recipient_address": "ที่อยู่ผู้รับ", + "reconnect": "เชื่อมต่อใหม่", + "reconnect_alert_text": "คุณแน่ใจหรือไม่ว่าต้องการเชื่อมต่อใหม่?", + "reconnection": "เชื่อมต่อใหม่", + "redeemed": "แลกของขวัญ", + "refund_address": "ที่อยู่สำหรับส่งคืน", + "reject": "ปฏิเสธ", + "remaining": "เหลืออยู่", + "remove": "ลบ", + "remove_node": "ลบโหนด", + "remove_node_message": "คุณแน่ใจหรือว่าต้องการลบโหนดที่เลือก?", + "rename": "เปลี่ยนชื่อ", + "require_for_adding_contacts": "ต้องการสำหรับการเพิ่มผู้ติดต่อ", + "require_for_all_security_and_backup_settings": "จำเป็นสำหรับการตั้งค่าความปลอดภัยและการสำรองข้อมูลทั้งหมด", + "require_for_assessing_wallet": "จำเป็นสำหรับการเข้าถึงกระเป๋าเงิน", + "require_for_creating_new_wallets": "จำเป็นสำหรับการสร้างกระเป๋าเงินใหม่", + "require_for_exchanges_to_external_wallets": "จำเป็นต้องแลกเปลี่ยนกับกระเป๋าเงินภายนอก", + "require_for_exchanges_to_internal_wallets": "ต้องการการแลกเปลี่ยนไปยังกระเป๋าเงินภายใน", + "require_for_sends_to_contacts": "จำเป็นต้องส่งไปยังผู้ติดต่อ", + "require_for_sends_to_internal_wallets": "จำเป็นต้องส่งไปยังกระเป๋าเงินภายใน", + "require_for_sends_to_non_contacts": "จำเป็นต้องส่งไปยังผู้ที่ไม่ได้ติดต่อ", + "require_pin_after": "ต้องการ PIN หลังจาก", + "rescan": "สแกนใหม่", + "resend_code": "โปรดส่งอีกครั้ง", + "reset": "รีเซ็ต", + "reset_password": "รีเซ็ตรหัสผ่าน", + "restore_active_seed": "ซีดที่ใช้งานอยู่", + "restore_address": "ที่อยู่", + "restore_bitcoin_description_from_keys": "กู้กระเป๋าของคุณจากสตริง WIF ที่สร้างขึ้นจากคีย์ส่วนตัวของคุณ", + "restore_bitcoin_description_from_seed": "กู้กระเป๋าของคุณจากรหัสผสมของ 24 คำ", + "restore_bitcoin_title_from_keys": "กู้จาก WIF", + "restore_description_from_backup": "คุณสามารถกู้แอพ Cake Wallet ทั้งหมดจากไฟล์สำรองข้อมูลของคุณ", + "restore_description_from_keys": "กู้กระเป๋าของคุณจากการกดปุ่มที่สร้างขึ้นจาก private keys ของคุณที่บันทึกไว้", + "restore_description_from_seed": "กู้กระเป๋าของคุณจากรหัสผสมของ 25 คำหรือ 13 คำ", + "restore_description_from_seed_keys": "เรียกกระเป๋าของคุณกลับมาจาก seed/keys ที่คุณได้บันทึกไว้ในที่ปลอดภัย", + "restore_from_date_or_blockheight": "โปรดป้อนวันที่หลายวันก่อนที่คุณสร้างกระเป๋านี้ หรือหากคุณรู้ความสูงของบล็อก (blockheight) โปรดป้อนมันแทน", + "restore_from_seed_placeholder": "โปรดป้อนหรือวาง seed ของคุณที่นี่", + "restore_new_seed": "ซีดใหม่", + "restore_next": "ถัดไป", + "restore_recover": "กู้", + "restore_restore_wallet": "กู้กระเป๋า", + "restore_seed_keys_restore": "กู้จาก Seed/Keys", + "restore_spend_key_private": "คีย์สำหรับใช้ (ส่วนตัว)", + "restore_title_from_backup": "กู้จากการสำรองข้อมูล", + "restore_title_from_keys": "กู้จาก keys", + "restore_title_from_seed": "กู้จาก seed", + "restore_title_from_seed_keys": "กู้จาก seed/keys", + "restore_view_key_private": "คีย์สำหรับดู (ส่วนตัว)", + "restore_wallet": "กู้กระเป๋า", + "restore_wallet_name": "ชื่อกระเป๋า", + "restore_wallet_restore_description": "คำอธิบายการกู้กระเป๋า", + "router_no_route": "ไม่มีเส้นทางที่กำหนดไว้สำหรับ ${name}", + "save": "บันทึก", + "save_backup_password": "โปรดตรวจสอบให้แน่ใจว่าคุณได้บันทึกรหัสผ่านสำรองข้อมูลแล้ว คุณจะไม่สามารถนำเข้าไฟล์สำรองข้อมูลของคุณโดยไม่ใช้รหัสผ่านนั้น", + "save_backup_password_alert": "บันทึกรหัสผ่านสำรอง", + "save_to_downloads": "บันทึกลงดาวน์โหลด", + "saved_the_trade_id": "ฉันได้บันทึก ID ของการซื้อขายแล้ว", + "scan_qr_code": "สแกนรหัส QR", + "scan_qr_code_to_get_address": "สแกน QR code เพื่อรับที่อยู่", + "scan_qr_on_device": "สแกนโค้ด QR นี้บนอุปกรณ์อื่น", + "search": "ค้นหา", + "search_add_token": "ค้นหา / เพิ่มโทเค็น", + "search_category": "ค้นหาหมวดหมู่", + "search_currency": "ค้นหาสกุลเงิน", + "search_language": "ค้นหาภาษา", + "second_intro_content": "Yat ของคุณเป็นอิโมจิที่อยู่เดียวที่จะแทนที่ทุกที่อยู่และเลขฐานสิบหกของคุณสำหรับเหรียญคริปโตทุกชนิด", + "second_intro_title": "อิโมจิที่อยู่เดียวที่จะควบคุมพวกเขาทั้งหมด", + "security_and_backup": "ความปลอดภัยและการสำรองข้อมูล", + "seed_alert_back": "กลับ", + "seed_alert_content": "Seed เป็นเพียงวิธีเดียวที่จะกู้กระเป๋าของคุณ คุณได้เขียนมันขึ้นลงกระดาษหรือไม่?", + "seed_alert_title": "ความสนใจ", + "seed_alert_yes": "ใช่ ฉันได้เขียน", + "seed_choose": "เลือกภาษาของ seed", "seed_hex_form": "เมล็ดกระเป๋าเงิน (รูปแบบฐานสิบหก)", + "seed_key": "คีย์เมล็ดพันธุ์", + "seed_language": "ภาษาเมล็ด", + "seed_language_chinese": "จีน", + "seed_language_chinese_traditional": "จีน (ดั้งเดิม)", + "seed_language_czech": "ภาษาเช็ก", + "seed_language_dutch": "ดัตช์", + "seed_language_english": "อังกฤษ", + "seed_language_french": "ฝรั่งเศส", + "seed_language_german": "เยอรมัน", + "seed_language_italian": "อิตาลี", + "seed_language_japanese": "ญี่ปุ่น", + "seed_language_korean": "เกาหลี", + "seed_language_next": "ถัดไป", + "seed_language_portuguese": "โปรตุเกส", + "seed_language_russian": "รัสเซีย", + "seed_language_spanish": "สเปน", + "seed_phrase_length": "ความยาววลีของเมล็ด", + "seed_reminder": "โปรดเขียนข้อมูลนี้ลงสมุดเพื่อความปลอดภัยหากคุณสูญเสียหรือล้างโทรศัพท์ของคุณ", + "seed_share": "แบ่งปัน seed", + "seed_title": "Seed", "seedtype": "เมล็ดพันธุ์", "seedtype_legacy": "มรดก (25 คำ)", "seedtype_polyseed": "โพลีส (16 คำ)", - "seed_language_czech": "ภาษาเช็ก", - "seed_language_korean": "เกาหลี", - "seed_language_chinese_traditional": "จีน (ดั้งเดิม)", - "ascending": "จากน้อยไปมาก", - "descending": "ลงมา", - "dfx_option_description": "ซื้อ crypto ด้วย EUR และ CHF สูงถึง 990€ โดยไม่มี KYC เพิ่มเติม สำหรับลูกค้ารายย่อยและลูกค้าองค์กรในยุโรป", - "polygonscan_history": "ประวัติ PolygonScan", - "wallet_seed_legacy": "เมล็ดกระเป๋าเงินมรดก", - "default_sell_provider": "ผู้ให้บริการการขายเริ่มต้น", + "select_backup_file": "เลือกไฟล์สำรอง", + "select_buy_provider_notice": "เลือกผู้ให้บริการซื้อด้านบน คุณสามารถข้ามหน้าจอนี้ได้โดยการตั้งค่าผู้ให้บริการซื้อเริ่มต้นในการตั้งค่าแอป", + "select_destination": "โปรดเลือกปลายทางสำหรับไฟล์สำรอง", "select_sell_provider_notice": "เลือกผู้ให้บริการการขายด้านบน คุณสามารถข้ามหน้าจอนี้ได้โดยการตั้งค่าผู้ให้บริการการขายเริ่มต้นในการตั้งค่าแอป", - "custom_drag": "กำหนดเอง (ค้างและลาก)", + "sell": "ขาย", + "sell_alert_content": "ขณะนี้เรารองรับการขาย Bitcoin, Ethereum และ Litecoin เท่านั้น โปรดสร้างหรือเปลี่ยนเป็นกระเป๋าเงิน Bitcoin, Ethereum หรือ Litecoin ของคุณ", + "sell_monero_com_alert_content": "ยังไม่รองรับการขาย Monero", + "send": "ส่ง", + "send_address": "ที่อยู่ ${cryptoCurrency}", + "send_amount": "จำนวน:", + "send_creating_transaction": "กำลังสร้างธุรกรรม", + "send_error_currency": "สกุลเงินสามารถเป็นเลขเท่านั้น", + "send_error_minimum_value": "จำนวนขั้นต่ำของจำนวนเงินคือ 0.01", + "send_estimated_fee": "ค่าธรรมเนียมที่คาดการณ์:", + "send_fee": "ค่าธรรมเนียม:", + "send_name": "ชื่อ", + "send_new": "ใหม่", + "send_payment_id": "ID การชำระเงิน (ไม่จำเป็น)", + "send_priority": "ในขณะนี้ค่าธรรมเนียมถูกตั้งค่าเป็นความสำคัญ ${transactionPriority} \nความสำคัญของธุรกรรมสามารถปรับได้ในการตั้งค่า", + "send_sending": "กำลังส่ง...", + "send_success": "คุณได้ส่ง ${crypto} เรียบร้อยแล้ว", + "send_templates": "แม่แบบ", + "send_title": "ส่ง", + "send_to_this_address": "ส่ง ${currency} ${tag}ไปยังที่อยู่นี้", + "send_xmr": "ส่ง XMR", + "send_your_wallet": "กระเป๋าของคุณ", + "sending": "กำลังส่ง", + "sent": "ส่ง", + "settings": "การตั้งค่า", + "settings_all": "ทั้งหมด", + "settings_allow_biometrical_authentication": "อนุญาตให้ใช้การยืนยันตัวตนทางระบบชีวภาพ", + "settings_can_be_changed_later": "การตั้งค่านี้สามารถเปลี่ยนแปลงได้ภายหลังในการตั้งค่าแอพฯ", + "settings_change_language": "เปลี่ยนภาษา", + "settings_change_pin": "เปลี่ยน PIN", + "settings_currency": "สกุลเงิน", + "settings_current_node": "จุดเชื่อมต่อปัจจุบัน", + "settings_dark_mode": "โหมดดำ", + "settings_display_balance": "แสดงยอดคงเหลือ", + "settings_display_on_dashboard_list": "แสดงบนรายการแดชบอร์ด", + "settings_fee_priority": "ความสำคัญของค่าธรรมเนียม", + "settings_nodes": "จุดเชื่อมต่อ", + "settings_none": "ไม่มี", + "settings_only_trades": "เฉพาะการซื้อขาย", + "settings_only_transactions": "เฉพาะธุรกรรม", + "settings_personal": "ส่วนตัว", + "settings_save_recipient_address": "บันทึกที่อยู่ผู้รับ", + "settings_support": "สนับสนุน", + "settings_terms_and_conditions": "ข้อกำหนดและเงื่อนไข", + "settings_title": "การตั้งค่า", + "settings_trades": "การซื้อขาย", + "settings_transactions": "ธุรกรรม", + "settings_wallets": "กระเป๋าสตางค์", + "setup_2fa": "ตั้งค่าเค้ก 2FA", + "setup_2fa_text": "Cake 2FA ทำงานโดยใช้ TOTP เป็นปัจจัยการตรวจสอบสิทธิ์ที่สอง\n\nTOTP ของ Cake 2FA ต้องการการสนับสนุน SHA-512 และ 8 หลัก สิ่งนี้ให้ความปลอดภัยเพิ่มขึ้น ข้อมูลเพิ่มเติมและแอปที่รองรับมีอยู่ในคำแนะนำ", + "setup_pin": "ตั้งค่า PIN", + "setup_successful": "การตั้งค่า PIN ของคุณสำเร็จแล้ว!", + "setup_totp_recommended": "ตั้งค่า TOTP", + "setup_warning_2fa_text": "Cake 2FA เป็นการรับรองความถูกต้องครั้งที่สองสำหรับการกระทำบางอย่างในกระเป๋าเงิน มันไม่ปลอดภัยเท่ากับห้องเย็น\n\nหากคุณสูญเสียการเข้าถึงแอป 2FA หรือคีย์ TOTP คุณจะสูญเสียการเข้าถึงกระเป๋าเงินนี้ คุณจะต้องกู้คืนกระเป๋าเงินของคุณจากเมล็ดช่วยในการจำ\n\nการสนับสนุนเค้กจะไม่สามารถช่วยเหลือคุณได้หากคุณสูญเสียการเข้าถึง 2FA หรือเมล็ดช่วยในการจำ\nก่อนใช้ Cake 2FA เราขอแนะนำให้อ่านคำแนะนำโดยละเอียด", + "setup_your_debit_card": "ตั้งค่าบัตรเดบิตของคุณ", + "share": "แบ่งปัน", + "share_address": "แชร์ที่อยู่", + "show_details": "แสดงรายละเอียด", + "show_keys": "แสดงซีด/คีย์", + "show_market_place": "แสดงตลาดกลาง", + "show_seed": "แสดงซีด", + "sign_up": "สมัครสมาชิก", + "signTransaction": "ลงนามในการทำธุรกรรม", + "signup_for_card_accept_terms": "ลงทะเบียนสำหรับบัตรและยอมรับเงื่อนไข", + "slidable": "เลื่อนได้", + "sort_by": "เรียงตาม", + "spend_key_private": "คีย์จ่าย (ส่วนตัว)", + "spend_key_public": "คีย์จ่าย (สาธารณะ)", + "status": "สถานะ: ", + "subaddress_title": "รายการที่อยู่ย่อย", + "subaddresses": "ที่อยู่ย่อย", + "submit_request": "ส่งคำขอ", + "successful": "ประสบความสำเร็จ", + "support_description_guides": "เอกสารและการสนับสนุนสำหรับปัญหาทั่วไป", + "support_description_live_chat": "ฟรีและรวดเร็ว! ตัวแทนฝ่ายสนับสนุนที่ผ่านการฝึกอบรมพร้อมให้ความช่วยเหลือ", + "support_description_other_links": "เข้าร่วมชุมชนของเราหรือเข้าถึงเราพันธมิตรของเราผ่านวิธีการอื่น ๆ", + "support_title_guides": "คู่มือกระเป๋าเงินเค้ก", + "support_title_live_chat": "การสนับสนุนสด", + "support_title_other_links": "ลิงค์สนับสนุนอื่น ๆ", + "sweeping_wallet": "กวาดกระเป๋าสตางค์", + "sweeping_wallet_alert": "การดำเนินการนี้ใช้เวลาไม่นาน อย่าออกจากหน้าจอนี้ มิฉะนั้นเงินที่กวาดไปอาจสูญหาย", + "switchToETHWallet": "โปรดเปลี่ยนไปใช้กระเป๋าเงิน Ethereum แล้วลองอีกครั้ง", "switchToEVMCompatibleWallet": "โปรดเปลี่ยนไปใช้กระเป๋าเงินที่รองรับ EVM แล้วลองอีกครั้ง (Ethereum, Polygon)", - "receivable_balance": "ยอดลูกหนี้", - "confirmed_tx": "ซึ่งยืนยันแล้ว", + "symbol": "เครื่องหมาย", + "sync_status_attempting_sync": "พยายามซิงโครไนซ์", + "sync_status_connected": "เชื่อมต่อแล้ว", + "sync_status_connecting": "กำลังเชื่อมต่อ", + "sync_status_failed_connect": "การเชื่อมต่อล้มเหลว", + "sync_status_not_connected": "ไม่ได้เชื่อมต่อ", + "sync_status_starting_sync": "กำลังเริ่มซิงโครไนซ์", + "sync_status_syncronized": "ซิงโครไนซ์แล้ว", + "sync_status_syncronizing": "กำลังซิงโครไนซ์", + "syncing_wallet_alert_content": "รายการยอดเงินและธุรกรรมของคุณอาจไม่สมบูรณ์จนกว่าจะมีข้อความว่า “ซิงโครไนซ์” ที่ด้านบน คลิก/แตะเพื่อเรียนรู้เพิ่มเติม่", + "syncing_wallet_alert_title": "กระเป๋าสตางค์ของคุณกำลังซิงค์", + "template": "แบบฟอร์ม", + "template_name": "ชื่อแม่แบบ", + "third_intro_content": "Yat อาศัยอยู่นอก Cake Wallet ด้วย ที่อยู่กระเป๋าใดๆ ทั่วโลกสามารถแทนด้วย Yat ได้อีกด้วย!", + "third_intro_title": "Yat ปฏิบัติตนอย่างดีกับผู้อื่น", + "time": "${minutes}m ${seconds}s", + "tip": "เพิ่มค่าตอบแทน:", + "today": "วันนี้", + "token_contract_address": "ที่อยู่สัญญาโทเค็น", + "token_decimal": "โทเค็นทศนิยม", + "token_name": "ชื่อโทเค็น เช่น Tether", + "token_symbol": "สัญลักษณ์โทเค็น เช่น USDT", + "tokenID": "บัตรประจำตัวประชาชน", + "tor_connection": "การเชื่อมต่อทอร์", + "tor_only": "Tor เท่านั้น", + "total_saving": "ประหยัดรวม", + "totp_2fa_failure": "รหัสไม่ถูกต้อง. โปรดลองใช้รหัสอื่นหรือสร้างรหัสลับใหม่ ใช้แอพ 2FA ที่เข้ากันได้ซึ่งรองรับรหัส 8 หลักและ SHA512", + "totp_2fa_success": "ความสำเร็จ! Cake 2FA เปิดใช้งานสำหรับกระเป๋าเงินนี้ อย่าลืมบันทึกเมล็ดช่วยจำของคุณในกรณีที่คุณสูญเสียการเข้าถึงกระเป๋าเงิน", + "totp_auth_url": "URL การตรวจสอบสิทธิ์ TOTP", + "totp_code": "รหัสทีโอพี", + "totp_secret_code": "รหัสลับ TOTP", + "totp_verification_success": "การยืนยันสำเร็จ!", + "trade_details_copied": "${title} คัดลอกไปยัง Clipboard", + "trade_details_created_at": "สร้างเมื่อ", + "trade_details_fetching": "กำลังเรียกข้อมูล", + "trade_details_id": "รหัส", + "trade_details_pair": "คู่", + "trade_details_provider": "ผู้ให้บริการ", + "trade_details_state": "สถานะ", + "trade_details_title": "รายละเอียดการแลกเปลี่ยน", + "trade_for_not_created": "การแลกเปลี่ยนสำหรับ ${title} ยังไม่ได้ถูกสร้างขึ้น", + "trade_history_title": "ประวัติการซื้อขาย", + "trade_id": "ID การซื้อขาย:", + "trade_id_not_found": "ไม่พบการแลกเปลี่ยน ${tradeId} ของ ${title}", + "trade_is_powered_by": "การซื้อขายนี้จัดสร้างโดย ${provider}", + "trade_not_created": "การแลกเปลี่ยนยังไม่ได้ถูกสร้าง", + "trade_not_found": "ไม่พบการแลกเปลี่ยน", + "trade_state_btc_sent": "ส่ง BTC แล้ว", + "trade_state_complete": "เสร็จสมบูรณ์", + "trade_state_confirming": "กำลังยืนยัน", + "trade_state_created": "ถูกสร้าง", + "trade_state_finished": "เสร็จสิ้น", + "trade_state_paid": "จ่ายแล้ว", + "trade_state_paid_unconfirmed": "จ่ายแล้วแต่ยังไม่ได้ยืนยัน", + "trade_state_pending": "รอดำเนินการ", + "trade_state_timeout": "เวลาหมด", + "trade_state_to_be_created": "จะถูกสร้าง", + "trade_state_traded": "ถูกแลกเปลี่ยน", + "trade_state_trading": "กำลังแลกเปลี่ยน", + "trade_state_underpaid": "จ่ายไม่ครบ", + "trade_state_unpaid": "ยังไม่ได้จ่าย", + "trades": "การซื้อขาย", + "transaction_details_amount": "จำนวน", + "transaction_details_copied": "${title} ถูกคัดลอกไปยังคลิปบอร์ด", + "transaction_details_date": "วันที่", + "transaction_details_fee": "ค่าธรรมเนียม", + "transaction_details_height": "ความสูง", + "transaction_details_recipient_address": "ที่อยู่ผู้รับ", "transaction_details_source_address": "ที่อยู่แหล่งกำเนิด", - "pause_wallet_creation": "ขณะนี้ความสามารถในการสร้าง Haven Wallet ถูกหยุดชั่วคราว", - "contractName": "ชื่อสัญญา", - "contractSymbol": "สัญลักษณ์สัญญา", - "description": "คำอธิบาย", - "camera_consent": "กล้องของคุณจะถูกนำมาใช้เพื่อจับภาพเพื่อวัตถุประสงค์ในการระบุตัวตนภายใน ${provider} โปรดตรวจสอบนโยบายความเป็นส่วนตัวเพื่อดูรายละเอียด", - "no_relays": "ไม่มีรีเลย์", - "choose_relay": "กรุณาเลือกรีเลย์ที่จะใช้", - "no_relays_message": "เราพบบันทึก Nostr NIP-05 สำหรับผู้ใช้รายนี้ แต่ไม่มีรีเลย์ใดๆ โปรดแนะนำให้ผู้รับเพิ่มรีเลย์ลงในบันทึก Nostr ของตน", - "no_relay_on_domain": "ไม่มีการส่งต่อสำหรับโดเมนของผู้ใช้ หรือการส่งต่อไม่พร้อมใช้งาน กรุณาเลือกรีเลย์ที่จะใช้" -} + "transaction_details_title": "รายละเอียดการทำรายการ", + "transaction_details_transaction_id": "ไอดีการทำรายการ", + "transaction_key": "รหัสธุรกรรม", + "transaction_priority_fast": "เร็ว", + "transaction_priority_fastest": "เร็วที่สุด", + "transaction_priority_medium": "ปานกลาง", + "transaction_priority_regular": "ปกติ", + "transaction_priority_slow": "ช้า", + "transaction_sent": "ธุรกรรมถูกส่ง!", + "transaction_sent_notice": "ถ้าหน้าจอไม่ขึ้นหลังจาก 1 นาทีแล้ว ให้ตรวจสอบ block explorer และอีเมลของคุณ", + "transactions": "ธุรกรรม", + "transactions_by_date": "ธุรกรรมตามวันที่", + "trusted": "มั่นคง", + "unavailable_balance": "ยอดคงเหลือไม่พร้อมใช้งาน", + "unavailable_balance_description": "ยอดคงเหลือที่ไม่พร้อมใช้งาน: ยอดรวมนี้รวมถึงเงินทุนที่ถูกล็อคในการทำธุรกรรมที่รอดำเนินการและที่คุณได้แช่แข็งไว้ในการตั้งค่าการควบคุมเหรียญของคุณ ยอดคงเหลือที่ถูกล็อคจะพร้อมใช้งานเมื่อธุรกรรมที่เกี่ยวข้องเสร็จสมบูรณ์ ในขณะที่ยอดคงเหลือที่แช่แข็งจะไม่สามารถเข้าถึงได้สำหรับธุรกรรมจนกว่าคุณจะตัดสินใจยกเลิกการแช่แข็ง", + "unconfirmed": "ยอดคงเหลือที่ไม่ได้รับการยืนยัน", + "understand": "ฉันเข้าใจ", + "unmatched_currencies": "สกุลเงินของกระเป๋าปัจจุบันของคุณไม่ตรงกับของ QR ที่สแกน", + "unspent_change": "เปลี่ยน", + "unspent_coins_details_title": "รายละเอียดเหรียญที่ไม่ได้ใช้", + "unspent_coins_title": "เหรียญที่ไม่ได้ใช้", + "unsupported_asset": "เราไม่สนับสนุนการกระทำนี้สำหรับเนื้อหานี้ โปรดสร้างหรือเปลี่ยนเป็นกระเป๋าเงินประเภทสินทรัพย์ที่รองรับ", + "upto": "สูงสุด ${value}", + "use": "สลับไปที่ ", + "use_card_info_three": "ใช้บัตรดิจิตอลออนไลน์หรือผ่านวิธีการชำระเงินแบบไม่ต้องใช้บัตรกระดาษ", + "use_card_info_two": "เงินจะถูกแปลงค่าเป็นดอลลาร์สหรัฐเมื่อถือไว้ในบัญชีสำรองเงิน ไม่ใช่สกุลเงินดิจิตอล", + "use_ssl": "ใช้ SSL", + "use_suggested": "ใช้ที่แนะนำ", + "variable_pair_not_supported": "คู่ความสัมพันธ์ที่เปลี่ยนแปลงได้นี้ไม่สนับสนุนกับหุ้นที่เลือก", + "verification": "การตรวจสอบ", + "verify_with_2fa": "ตรวจสอบกับ Cake 2FA", + "version": "เวอร์ชัน ${currentVersion}", + "view_all": "ดูทั้งหมด", + "view_in_block_explorer": "ดูใน Block Explorer", + "view_key_private": "คีย์มุมมอง (ส่วนตัว)", + "view_key_public": "คีย์มุมมอง (สาธารณะ)", + "view_transaction_on": "ดูการทำธุรกรรมบน ", + "wallet_keys": "ซีดของกระเป๋า/คีย์", + "wallet_list_create_new_wallet": "สร้างกระเป๋าใหม่", + "wallet_list_edit_wallet": "แก้ไขกระเป๋าสตางค์", + "wallet_list_failed_to_load": "ไม่สามารถโหลดกระเป๋า ${wallet_name} ได้ ${error}", + "wallet_list_failed_to_remove": "ไม่สามารถลบกระเป๋า ${wallet_name} ได้ ${error}", + "wallet_list_load_wallet": "โหลดกระเป๋า", + "wallet_list_loading_wallet": "กำลังโหลดกระเป๋า ${wallet_name}", + "wallet_list_removing_wallet": "กำลังลบกระเป๋า ${wallet_name}", + "wallet_list_restore_wallet": "กู้กระเป๋า", + "wallet_list_title": "กระเป๋า Monero", + "wallet_list_wallet_name": "ชื่อกระเป๋าสตางค์", + "wallet_menu": "เมนู", + "wallet_name": "ชื่อกระเป๋า", + "wallet_name_exists": "กระเป๋าที่มีชื่อนี้มีอยู่แล้ว โปรดเลือกชื่ออื่นหรือเปลี่ยนชื่อกระเป๋าอื่นก่อน", + "wallet_restoration_store_incorrect_seed_length": "ความยาวของซีดไม่ถูกต้อง", + "wallet_seed": "ซีดของกระเป๋า", + "wallet_seed_legacy": "เมล็ดกระเป๋าเงินมรดก", + "wallet_store_monero_wallet": "กระเป๋า Monero", + "walletConnect": "WalletConnect", + "wallets": "กระเป๋า", + "warning": "คำเตือน", + "welcome": "ยินดีต้อนรับสู่", + "welcome_to_cakepay": "ยินดีต้อนรับสู่ Cake Pay!", + "widgets_address": "ที่อยู่", + "widgets_or": "หรือ", + "widgets_restore_from_blockheight": "กู้คืนจากระดับบล็อก", + "widgets_restore_from_date": "กู้คืนจากวันที่", + "widgets_seed": "ซีด", + "wouoldLikeToConnect": "ต้องการเชื่อมต่อ", + "write_down_backup_password": "โปรดจดรหัสผ่านสำรองข้อมูลของคุณลงบนกระดาษ ซึ่งจะใช้ในการนำเข้าไฟล์สำรองข้อมูลของคุณ", + "xlm_extra_info": "โปรดอย่าลืมระบุ Memo ID ในขณะที่ส่งธุรกรรม XLM สำหรับการแลกเปลี่ยน", + "xmr_available_balance": "ยอดคงเหลือที่สามารถใช้งานได้", + "xmr_full_balance": "ยอดคงเหลือแบบเต็ม", + "xmr_hidden": "ซ่อน", + "xmr_to_error": "ข้อผิดพลาด XMR.TO", + "xmr_to_error_description": "จำนวนไม่ถูกต้อง จำกัดขั้นสูง 8 หลักหลังจุดทศนิยม", + "xrp_extra_info": "โปรดอย่าลืมระบุ Destination Tag ในขณะที่ส่งธุรกรรม XRP สำหรับการแลกเปลี่ยน", + "yat": "Yat", + "yat_address": "ที่อยู่ Yat", + "yat_alert_content": "ผู้ใช้งาน Cake Wallet สามารถส่งและรับเหรียญออนไลน์ทุกเหรียญที่ชื่นชอบของพวกเขาได้ง่ายขึ้นด้วยชื่อผู้ใช้งานที่พิเศษที่ระบุด้วยอีโมจิ", + "yat_alert_title": "ส่งและรับเหรียญออนไลน์ง่ายขึ้นด้วย Yat", + "yat_error": "ข้อผิดพลาดของ Yat", + "yat_error_content": "ไม่มีที่อยู่ที่เชื่อมต่อกับ Yat นี้ ลองใช้ Yat อื่น", + "yat_popup_content": "ขณะนี้คุณสามารถส่งและรับเหรียญคริปโตใน Cake Wallet ด้วย Yat ของคุณ - ชื่อผู้ใช้ที่สั้นมีอิโมจิ คุณสามารถจัดการ Yat ได้ทุกเวลาบนหน้าจอการตั้งค่า", + "yat_popup_title": "ที่อยู่กระเป๋าของคุณสามารถถูกอัปโหลดเป็นอิโมจิ", + "yesterday": "เมื่อวาน", + "you_now_have_debit_card": "ขณะนี้คุณมีบัตรเดบิต", + "you_pay": "คุณจ่าย", + "you_will_get": "แปลงเป็น", + "you_will_send": "แปลงจาก", + "yy": "ปี", + "zzzz": "zzzz" +} \ No newline at end of file diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index a8ec4df3e..ce3f0123c 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -1,773 +1,774 @@ { - "welcome": "Maligayang pagdating sa", - "cake_wallet": "Cake wallet", - "first_wallet_text": "Kahanga -hangang pitaka para sa Monero, Bitcoin, Ethereum, Litecoin, at Haven", - "please_make_selection": "Mangyaring gumawa ng isang pagpipilian sa ibaba upang lumikha o mabawi ang iyong pitaka.", - "create_new": "Lumikha ng bagong pitaka", - "restore_wallet": "Ibalik ang pitaka", - "monero_com": "Monero.com sa pamamagitan ng cake wallet", - "monero_com_wallet_text": "Galing ng pitaka para sa Monero", - "haven_app": "Haven sa pamamagitan ng cake wallet", - "haven_app_wallet_text": "Galing ng pitaka para sa Haven", - "accounts": "Mga Account", - "edit": "I -edit", + "about_cake_pay": "Pinapayagan ka ng cake Pay na madaling bumili ng mga kard ng regalo na may mga virtual na pag -aari, gastusin agad sa higit sa 150,000 mga mangangalakal sa Estados Unidos.", "account": "Account", + "accounts": "Mga Account", + "accounts_subaddresses": "Mga Account at Subaddresses", + "activate": "Buhayin", + "active": "Aktibo", + "active_cards": "Mga aktibong kard", + "activeConnectionsPrompt": "Lalabas dito ang mga aktibong koneksyon", "add": "Idagdag", + "add_contact": "Magdagdag ng contact", + "add_custom_node": "Magdagdag ng bagong pasadyang node", + "add_custom_redemption": "Magdagdag ng pasadyang pagtubos", + "add_fund_to_card": "Magdagdag ng prepaid na pondo sa mga kard (hanggang sa ${value})", + "add_new_node": "Magdagdag ng bagong node", + "add_new_word": "Magdagdag ng bagong salita", + "add_receiver": "Magdagdag ng isa pang tatanggap (opsyonal)", + "add_secret_code": "O, idagdag ang sikretong code na ito sa isang authenticator app", + "add_tip": "Magdagdag ng tip", + "add_token_disclaimer_check": "Kinumpirma ko ang address ng kontrata ng token at impormasyon gamit ang isang kagalang -galang na mapagkukunan. Ang pagdaragdag ng nakakahamak o hindi tamang impormasyon ay maaaring magresulta sa pagkawala ng mga pondo.", + "add_token_warning": "Huwag i -edit o magdagdag ng mga token tulad ng itinuro ng mga scammers.\nLaging kumpirmahin ang mga token address na may mga kagalang -galang na mapagkukunan!", + "add_value": "Magdagdag ng halaga", + "address": "Address", "address_book": "Address Book", - "contact": "Makipag -ugnay", - "please_select": "Pakipili:", - "cancel": "Kanselahin", - "ok": "Ok", - "contact_name": "pangalan ng contact", - "reset": "I -reset", - "save": "I -save", + "address_book_menu": "Address Book", + "address_detected": "Nakita ang address", + "address_from_domain": "Ang address na ito ay mula sa ${domain} sa mga hindi mapigilan na mga domain", + "address_from_yat": "Ang address na ito ay mula sa ${emoji} sa yat", + "address_label": "Address Label", "address_remove_contact": "Alisin ang contact", "address_remove_content": "Sigurado ka bang nais mong alisin ang napiling contact?", - "authenticated": "Napatunayan", - "authentication": "Pagpapatunay", - "failed_authentication": "Nabigong pagpapatunay. ${state_error}", - "wallet_menu": "Menu", - "Blocks_remaining": "Ang natitirang ${status} ay natitira", - "please_try_to_connect_to_another_node": "Mangyaring subukang kumonekta sa isa pang node", - "xmr_hidden": "Nakatago", - "xmr_available_balance": "Magagamit na balanse", - "xmr_full_balance": "Buong balanse", - "send": "Ipadala", - "receive": "Tumanggap", - "transactions": "Mga Transaksyon", - "incoming": "Papasok", - "outgoing": "Palabas", - "transactions_by_date": "Mga Transaksyon ayon sa Petsa", - "trades": "Trading", - "filter_by": "Filter ni", - "today": "Ngayon", - "yesterday": "Kahapon", - "received": "Natanggap", - "sent": "Ipinadala", - "pending": "(Pending)", - "rescan": "Rescan", - "reconnect": "Kumonekta muli", - "wallets": "Wallets", - "show_seed": "Magpakita ng binhi", - "show_keys": "Ipakita ang mga binhi/susi", - "address_book_menu": "Address Book", - "reconnection": "Pag -ugnay muli", - "reconnect_alert_text": "Sigurado ka bang nais mong muling kumonekta?", - "exchange": "Palitan", - "clear": "Malinaw", - "refund_address": "Refund address", - "change_exchange_provider": "Baguhin ang tagapagbigay ng palitan", - "you_will_send": "I -convert mula sa", - "you_will_get": "Mag -convert sa", - "amount_is_guaranteed": "Ang natanggap na halaga ay garantisado", - "amount_is_estimate": "Ang natanggap na halaga ay isang pagtatantya", - "powered_by": "Pinapagana ng ${title}", - "error": "Error", - "estimated": "Tinatayang", - "min_value": "Min: ${value} ${currency}", - "max_value": "Max: ${value} ${currency}", - "change_currency": "Baguhin ang pera", - "overwrite_amount": "Overwrite na halaga", - "qr_payment_amount": "Ang QR code na ito ay naglalaman ng isang halaga ng pagbabayad. Nais mo bang i -overwrite ang kasalukuyang halaga?", - "copy_id": "Kopyahin ang id", - "exchange_result_write_down_trade_id": "Mangyaring kopyahin o isulat ang trade ID upang magpatuloy.", - "trade_id": "Trade ID:", - "copied_to_clipboard": "Kinopya sa clipboard", - "saved_the_trade_id": "Nai -save ko ang trade ID", - "fetching": "Pagkuha", - "id": "ID:", - "amount": "Halaga:", - "payment_id": "Payment ID:", - "status": "Katayuan:", - "offer_expires_in": "Mag -expire ang alok sa:", - "trade_is_powered_by": "Ang kalakalan na ito ay pinalakas ng ${provider}", - "copy_address": "Kopyahin ang address", - "exchange_result_confirm": "Sa pamamagitan ng pagpindot ng kumpirmahin, magpapadala ka ng ${fetchingLabel} ${from} mula sa iyong pitaka na tinatawag na ${walletName} sa address na ipinakita sa ibaba. O maaari kang magpadala mula sa iyong panlabas na pitaka sa ibaba address/qr code.\n\nMangyaring pindutin ang kumpirmahin na magpatuloy o bumalik upang baguhin ang mga halaga.", - "exchange_result_description": "Dapat kang magpadala ng isang minimum na ${fetchingLabel} ${from} hanggang sa address na ipinakita sa susunod na pahina. Kung nagpapadala ka ng isang halaga na mas mababa kaysa sa ${fetchingLabel} ${from} maaaring hindi ito ma -convert at maaaring hindi ito ibabalik.", - "exchange_result_write_down_ID": "*Mangyaring kopyahin o isulat ang iyong ID na ipinakita sa itaas.", - "confirm": "Kumpirmahin", - "confirm_sending": "Kumpirmahin ang pagpapadala", - "commit_transaction_amount_fee": "Gumawa ng transaksyon\nHalaga: ${amount}\nBayad: ${fee}", - "sending": "Pagpapadala", - "transaction_sent": "Ipinadala ang transaksyon!", - "expired": "Nag -expire", - "time": "${minutes} m ${seconds} s", - "send_xmr": "Magpadala ng XMR", - "exchange_new_template": "Bagong template", - "faq": "FAQ", - "enter_your_pin": "Ipasok ang iyong pin", - "loading_your_wallet": "Naglo -load ng iyong pitaka", - "new_wallet": "Bagong pitaka", - "wallet_name": "Pangalan ng Wallet", - "continue_text": "Magpatuloy", - "choose_wallet_currency": "Mangyaring piliin ang Pera ng Wallet:", - "node_new": "Bagong node", - "node_address": "Node address", - "node_port": "Node port", - "login": "Mag log in", - "password": "Password", - "nodes": "Node", - "node_reset_settings_title": "I -reset ang Mga Setting", - "nodes_list_reset_to_default_message": "Sigurado ka bang nais mong i -reset ang mga setting upang default?", - "change_current_node": "Sigurado ka bang baguhin ang kasalukuyang node sa ${node}?", - "change": "Palitan", - "remove_node": "Alisin ang node", - "remove_node_message": "Sigurado ka bang nais mong alisin ang napiling node?", - "remove": "Alisin", - "delete": "Tanggalin", - "add_new_node": "Magdagdag ng bagong node", - "change_current_node_title": "Baguhin ang kasalukuyang node", - "node_test": "Pagsusulit", - "node_connection_successful": "Ang koneksyon ay matagumpay", - "node_connection_failed": "Nabigo ang koneksyon", - "new_node_testing": "Bagong pagsubok sa node", - "use": "Lumipat sa", - "digit_pin": "-digit pin", - "share_address": "Ibahagi ang address", - "receive_amount": "Halaga", - "subaddresses": "Mga Subaddresses", "addresses": "Mga address", - "scan_qr_code_to_get_address": "I -scan ang QR code upang makuha ang address", - "qr_fullscreen": "Tapikin upang buksan ang buong screen QR code", - "rename": "Palitan ang pangalan", - "choose_account": "Pumili ng account", - "create_new_account": "Lumikha ng Bagong Account", - "accounts_subaddresses": "Mga Account at Subaddresses", - "restore_restore_wallet": "Ibalik ang pitaka", - "restore_title_from_seed_keys": "Ibalik mula sa mga binhi/susi", - "restore_description_from_seed_keys": "Ibalik ang iyong pitaka mula sa mga binhi/susi na na -save mo upang ma -secure ang lugar", - "restore_next": "Susunod", - "restore_title_from_backup": "Ibalik mula sa backup", - "restore_description_from_backup": "Maaari mong ibalik ang buong cake wallet app mula sa iyong back-up file", - "restore_seed_keys_restore": "Ibinalik ang mga binhi/susi", - "restore_title_from_seed": "Ibalik mula sa binhi", - "restore_description_from_seed": "Ibalik ang iyong pitaka mula sa alinman sa 25 salita o 13 na code ng kombinasyon ng salita", - "restore_title_from_keys": "Ibalik mula sa mga susi", - "restore_description_from_keys": "Ibalik ang iyong pitaka mula sa nabuong mga keystroke na na -save mula sa iyong mga pribadong susi", - "restore_wallet_name": "Pangalan ng Wallet", - "restore_address": "Address", - "restore_view_key_private": "Tingnan ang Key (Pribado)", - "restore_spend_key_private": "Gumastos ng susi (pribado)", - "restore_recover": "Ibalik", - "restore_wallet_restore_description": "Paglalarawan ng Wallet", - "restore_new_seed": "Bagong binhi", - "restore_active_seed": "Aktibong binhi", - "restore_bitcoin_description_from_seed": "Ibalik ang iyong pitaka mula sa 24 na code ng kombinasyon ng salita", - "restore_bitcoin_description_from_keys": "Ibalik ang iyong pitaka mula sa nabuong wif string mula sa iyong mga pribadong susi", - "restore_bitcoin_title_from_keys": "Ibalik mula sa WIF", - "restore_from_date_or_blockheight": "Mangyaring magpasok ng isang petsa ng ilang araw bago mo nilikha ang pitaka na ito. O kung alam mo ang blockheight, mangyaring ipasok ito sa halip", - "seed_reminder": "Mangyaring isulat ang mga ito kung sakaling mawala ka o punasan ang iyong telepono", - "seed_title": "Binhi", - "seed_share": "Magbahagi ng binhi", - "copy": "Kopya", - "seed_language": "Wika ng binhi", - "seed_choose": "Pumili ng wika ng binhi", - "seed_language_next": "Susunod", - "seed_language_english": "Ingles", - "seed_language_chinese": "Tsino", - "seed_language_dutch": "Dutch", - "seed_language_german": "Aleman", - "seed_language_japanese": "Hapon", - "seed_language_portuguese": "Portuges", - "seed_language_russian": "Russian", - "seed_language_spanish": "Espanyol", - "seed_language_french": "Pranses", - "seed_language_italian": "Italyano", - "send_title": "Ipadala", - "send_your_wallet": "Iyong pitaka", - "send_address": "${cryptoCurrency} address", - "send_payment_id": "Payment ID (Opsyonal)", + "advanced_settings": "Mga Advanced na Setting", + "aggressive": "Agresibo", + "agree": "Sumang -ayon", + "agree_and_continue": "Sumang -ayon at magpatuloy", + "agree_to": "Sa pamamagitan ng paglikha ng account sumasang -ayon ka sa", "all": "Lahat", - "send_error_minimum_value": "Ang pinakamababang halaga ng halaga ay 0.01", - "send_error_currency": "Ang pera ay maaari lamang maglaman ng mga numero", - "send_estimated_fee": "Tinatayang bayad:", - "send_priority": "Sa kasalukuyan ang bayad ay nakatakda sa ${transactionPriority} priority.\nAng priority ng transaksyon ay maaaring maiakma sa mga setting", - "send_creating_transaction": "Paglikha ng transaksyon", - "send_templates": "Mga template", - "send_new": "Bago", - "send_amount": "Halaga:", - "send_fee": "Bayad:", - "send_name": "Pangalan", - "got_it": "Nakuha ko", - "send_sending": "Pagpapadala ...", - "send_success": "Ang iyong ${crypto} ay matagumpay na naipadala", - "settings_title": "Mga setting", - "settings_nodes": "Node", - "settings_current_node": "Kasalukuyang node", - "settings_wallets": "Wallets", - "settings_display_balance": "Ipakita ang balanse", - "settings_currency": "Pera", - "settings_fee_priority": "Priority priority", - "settings_save_recipient_address": "I -save ang address ng tatanggap", - "settings_personal": "Personal", - "settings_change_pin": "Baguhin ang pin", - "settings_change_language": "Baguhin ang wika", - "settings_allow_biometrical_authentication": "Payagan ang pagpapatunay ng biometrical", - "settings_dark_mode": "Madilim na mode", - "settings_transactions": "Mga Transaksyon", - "settings_trades": "Trading", - "settings_display_on_dashboard_list": "Ipakita sa listahan ng dashboard", - "settings_all": "Lahat", - "settings_only_trades": "TRADES LAMANG", - "settings_only_transactions": "Mga transaksyon lamang", - "settings_none": "Wala", - "settings_support": "Suporta", - "settings_terms_and_conditions": "Mga Tuntunin at Kundisyon", - "pin_is_incorrect": "Mali ang pin", - "setup_pin": "Setup pin", - "enter_your_pin_again": "Ipasok muli ang iyong pin", - "setup_successful": "Matagumpay na na -set up ang iyong pin!", - "wallet_keys": "Mga buto/susi ng pitaka", - "wallet_seed": "SEED ng Wallet", - "private_key": "Pribadong susi", - "public_key": "Pampublikong susi", - "view_key_private": "Tingnan ang Key (Pribado)", - "view_key_public": "Tingnan ang Key (Publiko)", - "spend_key_private": "Gumastos ng susi (pribado)", - "spend_key_public": "Gumastos ng susi (publiko)", - "copied_key_to_clipboard": "Kinopya ang ${key} sa clipboard", - "new_subaddress_title": "Bagong tirahan", - "new_subaddress_label_name": "Pangalan ng label", - "new_subaddress_create": "Lumikha", - "address_label": "Address Label", - "subaddress_title": "Listahan ng Subaddress", - "trade_details_title": "Mga detalye sa kalakalan", - "trade_details_id": "ID", - "trade_details_state": "Katayuan", - "trade_details_fetching": "Pagkuha", - "trade_details_provider": "Tagabigay", - "trade_details_created_at": "Nilikha sa", - "trade_details_pair": "Pares", - "trade_details_copied": "${title} kinopya sa clipboard", - "trade_history_title": "Kasaysayan ng Kalakal", - "transaction_details_title": "Mga detalye ng transaksyon", - "transaction_details_transaction_id": "Transaction ID", - "transaction_details_date": "Petsa", - "transaction_details_height": "Taas", - "transaction_details_amount": "Halaga", - "transaction_details_fee": "Bayad", - "transaction_details_copied": "${title} kinopya sa clipboard", - "transaction_details_recipient_address": "Mga address ng tatanggap", - "wallet_list_title": "Monero Wallet", - "wallet_list_create_new_wallet": "Lumikha ng bagong pitaka", - "wallet_list_edit_wallet": "I -edit ang Wallet", - "wallet_list_wallet_name": "Pangalan ng Wallet", - "wallet_list_restore_wallet": "Ibalik ang pitaka", - "wallet_list_load_wallet": "Mag -load ng pitaka", - "wallet_list_loading_wallet": "Naglo -load ng ${wallet_name} Wallet", - "wallet_list_failed_to_load": "Nabigong mag -load ng ${wallet_name} pitaka. ${error}", - "wallet_list_removing_wallet": "Pag -alis ng ${wallet_name} Wallet", - "wallet_list_failed_to_remove": "Nabigong alisin ang ${wallet_name} wallet. ${error}", - "widgets_address": "Address", - "widgets_restore_from_blockheight": "Ibalik mula sa blockheight", - "widgets_restore_from_date": "Ibalik mula sa petsa", - "widgets_or": "o", - "widgets_seed": "Binhi", - "router_no_route": "Walang ruta na tinukoy para sa ${name}", - "error_text_account_name": "Ang pangalan ng account ay maaari lamang maglaman ng mga titik, numero\nat dapat sa pagitan ng 1 at 15 character ang haba", - "error_text_contact_name": "Ang pangalan ng contact ay hindi maaaring maglaman ng mga simbolo ng ',' \"\nat dapat sa pagitan ng 1 at 32 character ang haba", - "error_text_address": "Ang wallet address ay dapat na tumutugma sa uri\nng cryptocurrency", - "error_text_node_address": "Mangyaring magpasok ng isang address ng IPv4", - "error_text_node_port": "Ang Node Port ay maaari lamang maglaman ng mga numero sa pagitan ng 0 at 65535", - "error_text_node_proxy_address": "Mangyaring ipasok ang : , halimbawa 127.0.0.1:9050", - "error_text_payment_id": "Ang Payment ID ay maaari lamang maglaman mula 16 hanggang 64 chars sa hex", - "error_text_xmr": "Ang halaga ng XMR ay hindi maaaring lumampas sa magagamit na balanse.\nAng bilang ng mga numero ng fraction ay dapat na mas mababa o katumbas ng 12", - "error_text_fiat": "Ang halaga ng halaga ay hindi maaaring lumampas sa magagamit na balanse.\nAng bilang ng mga numero ng fraction ay dapat na mas mababa o katumbas ng 2", - "error_text_subaddress_name": "Ang pangalan ng subaddress ay hindi maaaring maglaman ng mga simbolo na `, '\"\nat dapat sa pagitan ng 1 at 20 character ang haba", - "error_text_amount": "Ang halaga ay maaari lamang maglaman ng mga numero", - "error_text_wallet_name": "Ang pangalan ng pitaka ay maaari lamang maglaman ng mga titik, numero, _ - mga simbolo\nat dapat sa pagitan ng 1 at 33 character ang haba", - "error_text_keys": "Ang mga susi ng wallet ay maaari lamang maglaman ng 64 chars sa hex", - "error_text_crypto_currency": "Ang bilang ng mga numero ng fraction\ndapat mas mababa o katumbas ng 12", - "error_text_minimal_limit": "Ang kalakalan para sa ${provider} ay hindi nilikha. Ang halaga ay mas mababa pagkatapos ng minimal: ${min} ${currency}", - "error_text_maximum_limit": "Ang kalakalan para sa ${provider} ay hindi nilikha. Ang halaga ay higit na maximum: ${max} ${currency}", - "error_text_limits_loading_failed": "Ang kalakalan para sa ${provider} ay hindi nilikha. Nabigo ang mga limitasyon sa paglo -load", - "error_text_template": "Ang pangalan ng template at address ay hindi maaaring maglaman ng mga simbolo ng ',' \"\nat dapat sa pagitan ng 1 at 106 na character ang haba", + "all_trades": "Lahat ng mga kalakal", + "all_transactions": "Lahat ng mga transaksyon", + "alphabetical": "Alpabeto", + "already_have_account": "Mayroon nang account?", + "always": "Palagi", + "amount": "Halaga:", + "amount_is_estimate": "Ang natanggap na halaga ay isang pagtatantya", + "amount_is_guaranteed": "Ang natanggap na halaga ay garantisado", + "and": "at", + "anonpay_description": "Bumuo ng ${type}. Ang tatanggap ay maaaring ${method} na may anumang suportadong cryptocurrency, at makakatanggap ka ng mga pondo sa pitaka na ito.", + "apk_update": "APK Update", + "approve": "Aprubahan", + "arrive_in_this_address": "Ang ${currency} ${tag} ay darating sa address na ito", + "ascending": "Umakyat", + "ask_each_time": "Magtanong sa bawat oras", "auth_store_ban_timeout": "ban_timeout", "auth_store_banned_for": "Pinagbawalan para sa", "auth_store_banned_minutes": "minuto", "auth_store_incorrect_password": "Maling pin", - "wallet_store_monero_wallet": "Monero Wallet", - "wallet_restoration_store_incorrect_seed_length": "Maling haba ng binhi", - "full_balance": "Buong balanse", - "available_balance": "Magagamit na balanse", - "hidden_balance": "Nakatagong balanse", - "sync_status_syncronizing": "Pag -synchronize", - "sync_status_syncronized": "Naka -synchronize", - "sync_status_not_connected": "HINDI KONEKTADO", - "sync_status_starting_sync": "Simula sa pag -sync", - "sync_status_failed_connect": "Naka -disconnect", - "sync_status_connecting": "Pagkonekta", - "sync_status_connected": "Konektado", - "sync_status_attempting_sync": "Pagtatangka ng pag -sync", - "transaction_priority_slow": "Mabagal", - "transaction_priority_regular": "Regular", - "transaction_priority_medium": "Katamtaman", - "transaction_priority_fast": "Mabilis", - "transaction_priority_fastest": "Pinakamabilis", - "trade_for_not_created": "Ang kalakalan para sa ${title} ay hindi nilikha.", - "trade_not_created": "Hindi nilikha ang kalakalan", - "trade_id_not_found": "Trade ${tradeId} ng ${title} Hindi natagpuan.", - "trade_not_found": "Hindi natagpuan ang kalakalan.", - "trade_state_pending": "Nakabinbin", - "trade_state_confirming": "Pagkumpirma", - "trade_state_trading": "Pangangalakal", - "trade_state_traded": "Ipinagpalit", - "trade_state_complete": "Kumpleto", - "trade_state_to_be_created": "Upang malikha", - "trade_state_unpaid": "Walang bayad", - "trade_state_underpaid": "Underpaid", - "trade_state_paid_unconfirmed": "Bayad na hindi nakumpirma", - "trade_state_paid": "Bayad", - "trade_state_btc_sent": "Ipinadala ang BTC", - "trade_state_timeout": "Oras ng oras", - "trade_state_created": "Nilikha", - "trade_state_finished": "Tapos na", - "change_language": "Baguhin ang wika", - "change_language_to": "Baguhin ang wika sa ${language}?", - "paste": "I -paste", - "restore_from_seed_placeholder": "Mangyaring ipasok o i -paste ang iyong binhi dito", - "add_new_word": "Magdagdag ng bagong salita", - "incorrect_seed": "Ang teksto na ipinasok ay hindi wasto.", - "biometric_auth_reason": "I -scan ang iyong fingerprint upang mapatunayan", - "version": "Bersyon ${currentVersion}", - "extracted_address_content": "Magpapadala ka ng pondo sa\n${recipient_name}", - "card_address": "Address:", - "buy": "Bilhin", - "sell": "Ibenta", - "placeholder_transactions": "Ang iyong mga transaksyon ay ipapakita dito", - "placeholder_contacts": "Ang iyong mga contact ay ipapakita dito", - "template": "Template", - "confirm_delete_template": "Ang pagkilos na ito ay tatanggalin ang template na ito. Nais mo bang magpatuloy?", - "confirm_delete_wallet": "Ang pagkilos na ito ay tatanggalin ang pitaka na ito. Nais mo bang magpatuloy?", - "change_wallet_alert_title": "Baguhin ang kasalukuyang pitaka", - "change_wallet_alert_content": "Nais mo bang baguhin ang kasalukuyang pitaka sa ${wallet_name}?", - "creating_new_wallet": "Lumilikha ng bagong pitaka", - "creating_new_wallet_error": "Error: ${description}", - "seed_alert_title": "Pansin", - "seed_alert_content": "Ang binhi ay ang tanging paraan upang mabawi ang iyong pitaka. Nasulat mo na ba ito?", - "seed_alert_back": "Bumalik ka", - "seed_alert_yes": "Oo meron ako", - "exchange_sync_alert_content": "Mangyaring maghintay hanggang ang iyong pitaka ay naka -synchronize", - "pre_seed_title": "Mahalaga", - "pre_seed_description": "Sa susunod na pahina makikita mo ang isang serye ng mga ${words} na mga salita. Ito ang iyong natatangi at pribadong binhi at ito ang tanging paraan upang mabawi ang iyong pitaka kung sakaling mawala o madepektong paggawa. Responsibilidad mong isulat ito at itago ito sa isang ligtas na lugar sa labas ng cake wallet app.", - "pre_seed_button_text": "Naiintindihan ko. Ipakita sa akin ang aking binhi", - "xmr_to_error": "Xmr.to error", - "xmr_to_error_description": "Di -wastong halaga. Pinakamataas na limitasyon ng 8 numero pagkatapos ng punto ng desimal", - "provider_error": "${provider} error", - "use_ssl": "Gumamit ng SSL", - "trusted": "Pinagkakatiwalaan", - "color_theme": "Tema ng kulay", - "light_theme": "Ilaw", - "bright_theme": "Maliwanag", - "dark_theme": "Madilim", - "enter_your_note": "Ipasok ang iyong tala ...", - "note_optional": "Tandaan (Opsyonal)", - "note_tap_to_change": "Tandaan (Tapikin upang baguhin)", - "view_in_block_explorer": "Tingnan sa Block Explorer", - "view_transaction_on": "Tingnan ang transaksyon sa", - "transaction_key": "Susi ng transaksyon", - "confirmations": "Mga kumpirmasyon", - "recipient_address": "Address ng tatanggap", - "extra_id": "Dagdag na ID:", - "destination_tag": "Tag ng patutunguhan:", - "memo": "Memo:", - "backup": "Backup", - "change_password": "Palitan ANG password", - "backup_password": "Backup password", - "write_down_backup_password": "Mangyaring isulat ang iyong backup password, na ginagamit para sa pag -import ng iyong mga backup file.", - "export_backup": "I -export ang backup", - "save_backup_password": "Mangyaring tiyaking nai -save mo ang iyong backup password. Hindi mo mai -import ang iyong mga backup na file nang wala ito.", - "backup_file": "Backup file", - "edit_backup_password": "I -edit ang backup password", - "save_backup_password_alert": "I -save ang backup password", - "change_backup_password_alert": "Ang iyong mga nakaraang backup file ay hindi magagamit upang mai -import gamit ang bagong backup password. Ang bagong backup na password ay gagamitin lamang para sa mga bagong backup file. Sigurado ka bang nais mong baguhin ang backup password?", - "enter_backup_password": "Ipasok ang backup password dito", - "select_backup_file": "Piliin ang backup file", - "import": "Angkat", - "please_select_backup_file": "Mangyaring piliin ang backup file at ipasok ang backup password.", - "fixed_rate": "Naayos na rate", - "fixed_rate_alert": "Magagawa mong ipasok ang makatanggap na halaga kapag naka -check ang naayos na mode ng rate. Nais mo bang lumipat sa nakapirming mode ng rate?", - "xlm_extra_info": "Mangyaring huwag kalimutan na tukuyin ang memo ID habang ipinapadala ang transaksyon ng XLM para sa palitan", - "xrp_extra_info": "Mangyaring huwag kalimutan na tukuyin ang patutunguhan na tag habang ipinapadala ang transaksyon ng XRP para sa palitan", - "exchange_incorrect_current_wallet_for_xmr": "Kung nais mong makipagpalitan ng XMR mula sa iyong balanse ng cake wallet Monero, mangyaring lumipat sa iyong Monero Wallet muna.", - "confirmed": "Nakumpirma na balanse", - "unconfirmed": "Hindi nakumpirma na balanse", - "displayable": "Maipapakita", - "submit_request": "magsumite ng isang kahilingan", - "buy_alert_content": "Sa kasalukuyan ay sinusuportahan lamang namin ang pagbili ng Bitcoin, Ethereum, Litecoin, at Monero. Mangyaring lumikha o lumipat sa iyong Bitcoin, Ethereum, Litecoin, o Monero Wallet.", - "sell_alert_content": "Kasalukuyan lamang naming sinusuportahan ang pagbebenta ng Bitcoin, Ethereum at Litecoin. Mangyaring lumikha o lumipat sa iyong Bitcoin, Ethereum o Litecoin Wallet.", - "outdated_electrum_wallet_description": "Ang mga bagong wallets ng Bitcoin na nilikha sa cake ay mayroon na ngayong 24-salitang binhi. Ipinag-uutos na lumikha ka ng isang bagong pitaka ng Bitcoin at ilipat ang lahat ng iyong mga pondo sa bagong 24-salitang pitaka, at itigil ang paggamit ng mga pitaka na may 12-salitang binhi. Mangyaring gawin ito kaagad upang ma -secure ang iyong mga pondo.", - "understand": "naiintindihan ko", - "apk_update": "APK Update", - "buy_bitcoin": "Bumili ng bitcoin", - "buy_with": "Bumili ka", - "moonpay_alert_text": "Ang halaga ng halaga ay dapat na higit pa o katumbas ng ${minAmount} ${fiatCurrency}", - "outdated_electrum_wallet_receive_warning": "Kung ang pitaka na ito ay may 12-salitang binhi at nilikha sa cake, huwag magdeposito sa Bitcoin sa pitaka na ito. Ang anumang BTC na inilipat sa pitaka na ito ay maaaring mawala. Lumikha ng isang bagong 24-word wallet (tapikin ang menu sa kanang tuktok, piliin ang mga pitaka, piliin ang Lumikha ng Bagong Wallet, pagkatapos ay piliin ang Bitcoin) at agad na ilipat ang iyong BTC doon. Ang mga bagong (24-salita) BTC Wallets mula sa cake ay ligtas", - "do_not_show_me": "Huwag mo itong ipakita muli", - "unspent_coins_title": "Unspent barya", - "unspent_coins_details_title": "Mga Detalye ng Unspent Coins", - "freeze": "I -freeze", - "frozen": "Frozen", - "coin_control": "Control ng barya (opsyonal)", - "address_detected": "Nakita ang address", - "address_from_domain": "Ang address na ito ay mula sa ${domain} sa mga hindi mapigilan na mga domain", - "add_receiver": "Magdagdag ng isa pang tatanggap (opsyonal)", - "manage_yats": "Pamahalaan ang mga yats", - "yat_alert_title": "Magpadala at tumanggap ng crypto nang mas madali sa yat", - "yat_alert_content": "Ang mga gumagamit ng cake wallet ay maaari na ngayong magpadala at makatanggap ng lahat ng kanilang mga paboritong pera na may isang one-of-a-kind emoji-based username.", - "get_your_yat": "Kunin ang iyong yat", - "connect_an_existing_yat": "Ikonekta ang isang umiiral na yat", - "connect_yats": "Ikonekta ang mga yats", - "yat_address": "Yat address", - "yat": "Yat", - "address_from_yat": "Ang address na ito ay mula sa ${emoji} sa yat", - "yat_error": "Error sa yat", - "yat_error_content": "Walang mga address na naka -link sa yat na ito. Subukan ang isa pang yat", - "choose_address": "Mangyaring piliin ang address:", - "yat_popup_title": "Ang iyong wallet address ay maaaring ma -emojified.", - "yat_popup_content": "Maaari ka na ngayong magpadala at makatanggap ng crypto sa cake wallet kasama ang iyong yat - isang maikli, emoji na batay sa username. Pamahalaan ang mga yats anumang oras sa screen ng Mga Setting", - "second_intro_title": "Isang address ng emoji upang mamuno sa kanilang lahat", - "second_intro_content": "Ang iyong yat ay isang solong natatanging address ng emoji na pumapalit sa lahat ng iyong mahabang hexadecimal address para sa lahat ng iyong mga pera.", - "third_intro_title": "Si Yat ay mahusay na gumaganap sa iba", - "third_intro_content": "Ang mga yats ay nakatira sa labas ng cake wallet, din. Ang anumang address ng pitaka sa mundo ay maaaring mapalitan ng isang yat!", - "learn_more": "Matuto nang higit pa", - "search": "Maghanap", - "search_language": "Maghanap ng wika", - "search_currency": "Maghanap ng pera", - "new_template": "Bagong template", - "electrum_address_disclaimer": "Bumubuo kami ng mga bagong address sa tuwing gumagamit ka ng isa, ngunit ang mga nakaraang address ay patuloy na gumagana", - "wallet_name_exists": "Ang isang pitaka na may pangalang iyon ay mayroon na. Mangyaring pumili ng ibang pangalan o palitan muna ang iba pang pitaka.", - "market_place": "Marketplace", - "cake_pay_title": "Cake pay card card", - "cake_pay_subtitle": "Bumili ng mga diskwento na gift card (USA lamang)", - "cake_pay_web_cards_title": "Cake pay web card", - "cake_pay_web_cards_subtitle": "Bumili ng mga pandaigdigang prepaid card at gift card", - "about_cake_pay": "Pinapayagan ka ng cake Pay na madaling bumili ng mga kard ng regalo na may mga virtual na pag -aari, gastusin agad sa higit sa 150,000 mga mangangalakal sa Estados Unidos.", - "cake_pay_account_note": "Mag -sign up na may isang email address lamang upang makita at bumili ng mga kard. Ang ilan ay magagamit kahit sa isang diskwento!", - "already_have_account": "Mayroon nang account?", - "create_account": "Lumikha ng account", - "privacy_policy": "Patakaran sa Pagkapribado", - "welcome_to_cakepay": "Maligayang pagdating sa cake pay!", - "sign_up": "Mag -sign up", - "forgot_password": "Nakalimutan ang password", - "reset_password": "I -reset ang password", - "gift_cards": "Mga kard ng regalo", - "setup_your_debit_card": "I -set up ang iyong debit card", - "no_id_required": "Walang kinakailangang ID. I -top up at gumastos kahit saan", - "how_to_use_card": "Paano gamitin ang kard na ito", - "purchase_gift_card": "Bumili ng Gift Card", - "verification": "Pag -verify", - "fill_code": "Mangyaring punan ang verification code na ibinigay sa iyong email", - "didnt_get_code": "Hindi nakuha ang code?", - "resend_code": "Mangyaring ipagpatuloy ito", - "debit_card": "Debit card", - "cakepay_prepaid_card": "Cakepay prepaid debit card", - "no_id_needed": "Hindi kailangan ng ID!", - "frequently_asked_questions": "Madalas na nagtanong", - "debit_card_terms": "Ang pag -iimbak at paggamit ng numero ng iyong card ng pagbabayad (at mga kredensyal na naaayon sa iyong numero ng card ng pagbabayad) sa digital na pitaka na ito ay napapailalim sa mga termino at kundisyon ng naaangkop na kasunduan sa cardholder kasama ang nagbigay ng card ng pagbabayad, tulad ng sa oras -oras.", - "please_reference_document": "Mangyaring sanggunian ang mga dokumento sa ibaba para sa karagdagang impormasyon.", - "cardholder_agreement": "Kasunduan sa Cardholder", - "e_sign_consent": "E-sign na pahintulot", - "agree_and_continue": "Sumang -ayon at magpatuloy", - "email_address": "Email address", - "agree_to": "Sa pamamagitan ng paglikha ng account sumasang -ayon ka sa", - "and": "at", - "enter_code": "Ipasok ang code", - "congratulations": "Binabati kita!", - "you_now_have_debit_card": "Mayroon ka na ngayong debit card", - "min_amount": "Min: ${value}", - "max_amount": "Max: ${value}", - "enter_amount": "Ipasok ang halaga", - "billing_address_info": "Kung tatanungin ang isang address ng pagsingil, ibigay ang iyong address sa pagpapadala", - "order_physical_card": "Mag -order ng pisikal na kard", - "add_value": "Magdagdag ng halaga", - "activate": "Buhayin", - "get_a": "Kumuha ng", - "digital_and_physical_card": "Digital at Physical Prepaid Debit Card", - "get_card_note": "na maaari mong i -reload sa mga digital na pera. Walang karagdagang impormasyon na kailangan!", - "signup_for_card_accept_terms": "Mag -sign up para sa card at tanggapin ang mga termino.", - "add_fund_to_card": "Magdagdag ng prepaid na pondo sa mga kard (hanggang sa ${value})", - "use_card_info_two": "Ang mga pondo ay na -convert sa USD kapag gaganapin sila sa prepaid account, hindi sa mga digital na pera.", - "use_card_info_three": "Gamitin ang digital card online o sa mga pamamaraan ng pagbabayad na walang contact.", - "optionally_order_card": "Opsyonal na mag -order ng isang pisikal na kard.", - "hide_details": "Itago ang mga detalye", - "show_details": "Ipakita ang mga detalye", - "upto": "Hanggang sa ${value}", - "discount": "Makatipid ng ${value}%", - "gift_card_amount": "Halaga ng Gift Card", - "bill_amount": "Halaga ng Bill", - "you_pay": "Magbabayad ka", - "tip": "Tip:", - "custom": "pasadya", - "by_cake_pay": "sa pamamagitan ng cake pay", - "expires": "Mag -expire", - "mm": "Mm", - "yy": "YY", - "online": "Online", - "offline": "Offline", - "gift_card_number": "Numero ng regalo card", - "pin_number": "Numero ng pin", - "total_saving": "Kabuuang pagtitipid", - "last_30_days": "Huling 30 araw", - "avg_savings": "Avg. Matitipid", - "view_all": "Tingnan lahat", - "active_cards": "Mga aktibong kard", - "delete_account": "Tanggalin ang account", - "cards": "Mga Card", - "active": "Aktibo", - "redeemed": "Tinubos", - "gift_card_balance_note": "Ang mga kard ng regalo na may natitirang balanse ay lilitaw dito", - "gift_card_redeemed_note": "Ang mga kard ng regalo na iyong tinubos ay lilitaw dito", - "logout": "Mag -logout", - "add_tip": "Magdagdag ng tip", - "percentageOf": "ng ${amount}", - "is_percentage": "ay", - "search_category": "Kategorya ng paghahanap", - "mark_as_redeemed": "Markahan bilang tinubos", - "more_options": "Higit pang mga pagpipilian", - "awaiting_payment_confirmation": "Naghihintay ng kumpirmasyon sa pagbabayad", - "transaction_sent_notice": "Kung ang screen ay hindi magpatuloy pagkatapos ng 1 minuto, suriin ang isang block explorer at ang iyong email.", - "agree": "Sumang -ayon", - "in_store": "Nakatago", - "generating_gift_card": "Bumubuo ng Gift Card", - "payment_was_received": "Natanggap ang iyong pagbabayad.", - "proceed_after_one_minute": "Kung ang screen ay hindi magpatuloy pagkatapos ng 1 minuto, suriin ang iyong email.", - "order_id": "Order id", - "gift_card_is_generated": "Ang card ng regalo ay nabuo", - "open_gift_card": "Buksan ang Gift Card", - "contact_support": "Makipag -ugnay sa suporta", - "gift_cards_unavailable": "Magagamit ang mga gift card para sa pagbili lamang kasama ang Monero, Bitcoin, at Litecoin sa oras na ito", - "background_sync_mode": "Mode ng pag -sync ng background", - "sync_all_wallets": "I -sync ang lahat ng mga pitaka", - "introducing_cake_pay": "Ipinakikilala ang cake pay!", - "cake_pay_learn_more": "Agad na bumili at tubusin ang mga kard ng regalo sa app!\nMag -swipe pakaliwa sa kanan upang matuto nang higit pa.", - "automatic": "Awtomatiko", - "fixed_pair_not_supported": "Ang nakapirming pares na ito ay hindi suportado sa mga napiling palitan", - "variable_pair_not_supported": "Ang variable na pares na ito ay hindi suportado sa mga napiling palitan", - "none_of_selected_providers_can_exchange": "Wala sa mga napiling tagapagkaloob na maaaring gumawa ng palitan na ito", - "choose_one": "Pumili ng isa", - "choose_from_available_options": "Pumili mula sa magagamit na mga pagpipilian:", - "custom_redeem_amount": "Pasadyang tinubos ang halaga", - "add_custom_redemption": "Magdagdag ng pasadyang pagtubos", - "remaining": "natitira", - "delete_wallet": "Tanggalin ang pitaka", - "delete_wallet_confirm_message": "Sigurado ka bang nais mong tanggalin ang ${wallet_name} wallet?", - "low_fee": "Mababang bayad", - "low_fee_alert": "Kasalukuyan kang gumagamit ng isang mababang priyoridad sa bayad sa network. Maaari itong maging sanhi ng mahabang paghihintay, iba't ibang mga rate, o kanselahin ang mga trading. Inirerekumenda namin ang pagtatakda ng isang mas mataas na bayad para sa isang mas mahusay na karanasan.", - "ignor": "Huwag pansinin", - "use_suggested": "Gumamit ng iminungkahing", - "do_not_share_warning_text": "Huwag ibahagi ang mga ito sa sinumang iba pa, kabilang ang suporta.\n\nAng iyong mga pondo ay maaari at ninakaw!", - "help": "Tulong", - "all_transactions": "Lahat ng mga transaksyon", - "all_trades": "Lahat ng mga kalakal", - "connection_sync": "Koneksyon at pag -sync", - "security_and_backup": "Seguridad at backup", - "create_backup": "Gumawa ng backup", - "privacy_settings": "Settings para sa pagsasa-pribado", - "privacy": "Privacy", - "display_settings": "Mga setting ng pagpapakita", - "other_settings": "Iba pang mga setting", + "authenticated": "Napatunayan", + "authentication": "Pagpapatunay", "auto_generate_subaddresses": "Ang Auto ay bumubuo ng mga subaddresses", - "require_pin_after": "Nangangailangan ng pin pagkatapos", - "always": "Palagi", - "minutes_to_pin_code": "${minute} minuto", - "disable_exchange": "Huwag paganahin ang palitan", - "advanced_settings": "Mga Advanced na Setting", - "settings_can_be_changed_later": "Ang mga setting na ito ay maaaring mabago mamaya sa mga setting ng app", - "add_custom_node": "Magdagdag ng bagong pasadyang node", - "disable_fiat": "Huwag paganahin ang Fiat", - "fiat_api": "Fiat API", - "disabled": "Hindi pinagana", - "enabled": "Pinagana", - "tor_only": "Tor lang", - "unmatched_currencies": "Ang pera ng iyong kasalukuyang pitaka ay hindi tumutugma sa na -scan na QR", - "orbot_running_alert": "Mangyaring tiyakin na ang Orbot ay tumatakbo bago kumonekta sa node na ito.", - "contact_list_contacts": "Mga contact", - "contact_list_wallets": "Ang mga wallets ko", - "bitcoin_payments_require_1_confirmation": "Ang mga pagbabayad sa Bitcoin ay nangangailangan ng 1 kumpirmasyon, na maaaring tumagal ng 20 minuto o mas mahaba. Salamat sa iyong pasensya! Mag -email ka kapag nakumpirma ang pagbabayad.", - "send_to_this_address": "Magpadala ng ${currency} ${tag} sa address na ito", - "arrive_in_this_address": "Ang ${currency} ${tag} ay darating sa address na ito", - "do_not_send": "Huwag magpadala", - "error_dialog_content": "Oops, nakakuha kami ng ilang error.\n\nMangyaring ipadala ang ulat ng pag -crash sa aming koponan ng suporta upang maging mas mahusay ang application.", - "scan_qr_code": "I -scan ang QR Code", - "cold_or_recover_wallet": "Magdagdag ng isang malamig na pitaka o mabawi ang isang wallet ng papel", - "please_wait": "Mangyaring maghintay", - "sweeping_wallet": "Pagwawalis ng pitaka", - "sweeping_wallet_alert": "Hindi ito dapat magtagal. Huwag iwanan ang screen na ito o maaaring mawala ang mga pondo ng swept.", - "invoice_details": "Mga detalye ng invoice", - "donation_link_details": "Mga Detalye ng Link ng Donasyon", - "anonpay_description": "Bumuo ng ${type}. Ang tatanggap ay maaaring ${method} na may anumang suportadong cryptocurrency, at makakatanggap ka ng mga pondo sa pitaka na ito.", - "create_invoice": "Lumikha ng invoice", - "create_donation_link": "Lumikha ng link ng donasyon", - "optional_email_hint": "Opsyonal na Payee Notification Email", - "optional_description": "Opsyonal na paglalarawan", - "optional_name": "Opsyonal na pangalan ng tatanggap", - "clearnet_link": "Link ng Clearnet", - "onion_link": "Link ng Onion", - "decimal_places_error": "Masyadong maraming mga lugar na desimal", - "edit_node": "I -edit ang node", - "settings": "Mga setting", - "sell_monero_com_alert_content": "Ang pagbebenta ng Monero ay hindi pa suportado", - "error_text_input_below_minimum_limit": "Ang halaga ay mas mababa sa minimum", - "error_text_input_above_maximum_limit": "Ang halaga ay higit pa sa maximum", - "show_market_place": "Ipakita ang Marketplace", - "prevent_screenshots": "Maiwasan ang mga screenshot at pag -record ng screen", - "profile": "Profile", - "close": "Malapit", - "modify_2fa": "Baguhin ang cake 2FA", - "disable_cake_2fa": "Huwag paganahin ang cake 2FA", - "question_to_disable_2fa": "Sigurado ka bang nais mong huwag paganahin ang cake 2fa? Ang isang 2FA code ay hindi na kinakailangan upang ma -access ang pitaka at ilang mga pag -andar.", - "disable": "Huwag paganahin", - "setup_2fa": "Setup cake 2fa", - "verify_with_2fa": "Mag -verify sa cake 2FA", - "totp_code": "TOTP code", - "please_fill_totp": "Mangyaring punan ang 8-digit na code na naroroon sa iyong iba pang aparato", - "totp_2fa_success": "Tagumpay! Pinagana ang cake 2FA para sa pitaka na ito. Tandaan na i -save ang iyong mnemonic seed kung sakaling mawalan ka ng pag -access sa pitaka.", - "totp_verification_success": "Matagumpay ang pagpapatunay!", - "totp_2fa_failure": "Maling code. Mangyaring subukan ang ibang code o makabuo ng isang bagong lihim na susi. Gumamit ng isang katugmang 2FA app na sumusuporta sa 8-digit na mga code at SHA512.", - "enter_totp_code": "Mangyaring ipasok ang TOTP code.", - "add_secret_code": "O, idagdag ang sikretong code na ito sa isang authenticator app", - "totp_secret_code": "TOTP Secret Code", - "setup_2fa_text": "Gumagana ang Cake 2FA gamit ang TOTP bilang pangalawang kadahilanan sa pagpapatunay.\n\nAng TOTP ng Cake 2FA ay nangangailangan ng SHA-512 at 8 digit na suporta; nagbibigay ito ng mas mataas na seguridad. Higit pang impormasyon at suportadong app ang makikita sa gabay.", - "setup_totp_recommended": "I-setup ang TOTP", - "disable_buy": "Huwag paganahin ang pagkilos ng pagbili", - "disable_sell": "Huwag paganahin ang pagkilos ng pagbebenta", - "monero_dark_theme": "Monero Madilim na Tema", + "automatic": "Awtomatiko", + "available_balance": "Magagamit na balanse", + "available_balance_description": "Ang \"magagamit na balanse\" o \"nakumpirma na balanse\" ay mga pondo na maaaring gastusin kaagad. Kung lumilitaw ang mga pondo sa mas mababang balanse ngunit hindi ang nangungunang balanse, dapat kang maghintay ng ilang minuto para sa mga papasok na pondo upang makakuha ng mas maraming mga kumpirmasyon sa network. Matapos silang makakuha ng higit pang mga kumpirmasyon, gugugol sila.", + "avg_savings": "Avg. Matitipid", + "awaitDAppProcessing": "Pakihintay na matapos ang pagproseso ng dApp.", + "awaiting_payment_confirmation": "Naghihintay ng kumpirmasyon sa pagbabayad", + "background_sync_mode": "Mode ng pag -sync ng background", + "backup": "Backup", + "backup_file": "Backup file", + "backup_password": "Backup password", + "balance_page": "Pahina ng Balanse", + "bill_amount": "Halaga ng Bill", + "billing_address_info": "Kung tatanungin ang isang address ng pagsingil, ibigay ang iyong address sa pagpapadala", + "biometric_auth_reason": "I -scan ang iyong fingerprint upang mapatunayan", "bitcoin_dark_theme": "Bitcoin Madilim na Tema", "bitcoin_light_theme": "Tema ng ilaw ng bitcoin", - "high_contrast_theme": "Mataas na tema ng kaibahan", - "matrix_green_dark_theme": "Matrix Green Madilim na Tema", - "monero_light_theme": "Tema ng Monero Light", - "cake_2fa_preset": "Cake 2fa preset", - "narrow": "Makitid", - "normal": "Normal", - "aggressive": "Agresibo", - "require_for_assessing_wallet": "Nangangailangan para sa pag -access ng pitaka", - "require_for_sends_to_non_contacts": "Nangangailangan para sa pagpapadala sa mga hindi contact", - "require_for_sends_to_contacts": "Nangangailangan para sa pagpapadala sa mga contact", - "require_for_sends_to_internal_wallets": "Nangangailangan para sa pagpapadala sa mga panloob na mga pitaka", - "require_for_exchanges_to_internal_wallets": "Nangangailangan para sa mga palitan sa mga panloob na mga pitaka", - "require_for_adding_contacts": "Nangangailangan para sa pagdaragdag ng mga contact", - "require_for_creating_new_wallets": "Nangangailangan para sa paglikha ng mga bagong pitaka", - "require_for_all_security_and_backup_settings": "Nangangailangan para sa lahat ng mga setting ng seguridad at backup", - "available_balance_description": "Ang \"magagamit na balanse\" o \"nakumpirma na balanse\" ay mga pondo na maaaring gastusin kaagad. Kung lumilitaw ang mga pondo sa mas mababang balanse ngunit hindi ang nangungunang balanse, dapat kang maghintay ng ilang minuto para sa mga papasok na pondo upang makakuha ng mas maraming mga kumpirmasyon sa network. Matapos silang makakuha ng higit pang mga kumpirmasyon, gugugol sila.", - "syncing_wallet_alert_title": "Ang iyong pitaka ay nag -sync", - "syncing_wallet_alert_content": "Ang iyong balanse at listahan ng transaksyon ay maaaring hindi kumpleto hanggang sa sabihin nito na \"naka -synchronize\" sa tuktok. Mag -click/tap upang malaman ang higit pa.", - "home_screen_settings": "Mga setting ng home screen", - "sort_by": "Pag -uri -uriin sa pamamagitan ng", - "search_add_token": "Maghanap / Magdagdag ng Token", - "edit_token": "I -edit ang token", - "warning": "Babala", - "add_token_warning": "Huwag i -edit o magdagdag ng mga token tulad ng itinuro ng mga scammers.\nLaging kumpirmahin ang mga token address na may mga kagalang -galang na mapagkukunan!", - "add_token_disclaimer_check": "Kinumpirma ko ang address ng kontrata ng token at impormasyon gamit ang isang kagalang -galang na mapagkukunan. Ang pagdaragdag ng nakakahamak o hindi tamang impormasyon ay maaaring magresulta sa pagkawala ng mga pondo.", - "token_contract_address": "Token Address ng Kontrata", - "token_name": "Pangalan ng Token hal: Tether", - "token_symbol": "Simbolo ng token hal: USDT", - "token_decimal": "Token Decimal", - "field_required": "Kinakailangan ang patlang na ito", - "pin_at_top": "Pin ${token} sa tuktok", - "invalid_input": "Di -wastong input", - "fiat_balance": "Balanse ng fiat", - "gross_balance": "Balanse ng gross", - "alphabetical": "Alpabeto", - "generate_name": "Bumuo ng pangalan", - "balance_page": "Pahina ng Balanse", - "share": "Ibahagi", - "slidable": "Slidable", - "manage_nodes": "Pamahalaan ang mga node", - "etherscan_history": "Kasaysayan ng Etherscan", - "template_name": "Pangalan ng Template", - "support_title_live_chat": "Live na suporta", - "support_description_live_chat": "Libre at mabilis! Ang mga bihasang kinatawan ng suporta ay magagamit upang tulungan", - "support_title_guides": "Mga Gabay sa Wallet ng cake", - "support_description_guides": "Dokumentasyon at suporta para sa mga karaniwang isyu", - "support_title_other_links": "Iba pang mga link sa suporta", - "support_description_other_links": "Sumali sa aming mga komunidad o maabot sa amin ang aming mga kasosyo sa pamamagitan ng iba pang mga pamamaraan", - "select_destination": "Mangyaring piliin ang patutunguhan para sa backup file.", - "save_to_downloads": "I -save sa mga pag -download", - "select_buy_provider_notice": "Pumili ng provider ng pagbili sa itaas. Maaari mong laktawan ang screen na ito sa pamamagitan ng pagtatakda ng iyong default na provider ng pagbili sa mga setting ng app.", - "onramper_option_description": "Mabilis na bumili ng crypto na may maraming paraan ng pagbabayad. Available sa karamihan ng mga bansa. Iba-iba ang mga spread at bayarin.", - "default_buy_provider": "Default na Provider ng Pagbili", - "ask_each_time": "Magtanong sa bawat oras", - "robinhood_option_description": "Bumili at ilipat kaagad gamit ang iyong debit card, bank account, o balanse ng Robinhood. USA lang.", + "bitcoin_payments_require_1_confirmation": "Ang mga pagbabayad sa Bitcoin ay nangangailangan ng 1 kumpirmasyon, na maaaring tumagal ng 20 minuto o mas mahaba. Salamat sa iyong pasensya! Mag -email ka kapag nakumpirma ang pagbabayad.", + "Blocks_remaining": "Ang natitirang ${status} ay natitira", + "bright_theme": "Maliwanag", + "buy": "Bilhin", + "buy_alert_content": "Sa kasalukuyan ay sinusuportahan lamang namin ang pagbili ng Bitcoin, Ethereum, Litecoin, at Monero. Mangyaring lumikha o lumipat sa iyong Bitcoin, Ethereum, Litecoin, o Monero Wallet.", + "buy_bitcoin": "Bumili ng bitcoin", "buy_provider_unavailable": "Kasalukuyang hindi available ang provider.", - "signTransaction": "Mag-sign Transaksyon", - "errorGettingCredentials": "Nabigo: Error habang kumukuha ng mga kredensyal", - "errorSigningTransaction": "May naganap na error habang pinipirmahan ang transaksyon", - "pairingInvalidEvent": "Pagpares ng Di-wastong Kaganapan", - "chains": "Mga tanikala", - "methods": "Paraan", - "events": "Mga kaganapan", - "reject": "Tanggihan", - "approve": "Aprubahan", - "expiresOn": "Mag-e-expire sa", - "walletConnect": "WalletConnect", - "nullURIError": "Ang URI ay null", - "connectWalletPrompt": "Ikonekta ang iyong wallet sa WalletConnect upang gumawa ng mga transaksyon", - "newConnection": "Bagong Koneksyon", - "activeConnectionsPrompt": "Lalabas dito ang mga aktibong koneksyon", - "deleteConnectionConfirmationPrompt": "Sigurado ka bang gusto mong tanggalin ang koneksyon sa", - "event": "Kaganapan", - "successful": "Matagumpay", - "wouoldLikeToConnect": "gustong kumonekta", - "message": "Mensahe", - "do_not_have_enough_gas_asset": "Wala kang sapat na ${currency} para gumawa ng transaksyon sa kasalukuyang kundisyon ng network ng blockchain. Kailangan mo ng higit pang ${currency} upang magbayad ng mga bayarin sa network ng blockchain, kahit na nagpapadala ka ng ibang asset.", - "totp_auth_url": "TOTP AUTH URL", - "awaitDAppProcessing": "Pakihintay na matapos ang pagproseso ng dApp.", - "copyWalletConnectLink": "Kopyahin ang link ng WalletConnect mula sa dApp at i-paste dito", - "enterWalletConnectURI": "Ilagay ang WalletConnect URI", - "seed_key": "Seed Key", - "enter_seed_phrase": "Ipasok ang iyong pariralang binhi", - "change_rep_successful": "Matagumpay na nagbago ng kinatawan", - "add_contact": "Magdagdag ng contact", - "exchange_provider_unsupported": "Ang ${providerName} ay hindi na suportado!", - "domain_looks_up": "Mga paghahanap ng domain", - "require_for_exchanges_to_external_wallets": "Kinakailangan para sa mga palitan sa mga panlabas na wallet", + "buy_with": "Bumili ka", + "by_cake_pay": "sa pamamagitan ng cake pay", + "cake_2fa_preset": "Cake 2fa preset", + "cake_pay_account_note": "Mag -sign up na may isang email address lamang upang makita at bumili ng mga kard. Ang ilan ay magagamit kahit sa isang diskwento!", + "cake_pay_learn_more": "Agad na bumili at tubusin ang mga kard ng regalo sa app!\nMag -swipe pakaliwa sa kanan upang matuto nang higit pa.", + "cake_pay_subtitle": "Bumili ng mga diskwento na gift card (USA lamang)", + "cake_pay_title": "Cake pay card card", + "cake_pay_web_cards_subtitle": "Bumili ng mga pandaigdigang prepaid card at gift card", + "cake_pay_web_cards_title": "Cake pay web card", + "cake_wallet": "Cake wallet", + "cakepay_prepaid_card": "Cakepay prepaid debit card", + "camera_consent": "Gagamitin ang iyong camera upang kumuha ng larawan para sa mga layunin ng pagkakakilanlan sa pamamagitan ng ${provider}. Pakisuri ang kanilang Patakaran sa Privacy para sa mga detalye.", "camera_permission_is_required": "Kinakailangan ang pahintulot sa camera.\nMangyaring paganahin ito mula sa mga setting ng app.", - "switchToETHWallet": "Mangyaring lumipat sa isang Ethereum wallet at subukang muli", - "order_by": "Iniutos ni", - "creation_date": "Petsa ng paglikha", - "group_by_type": "Pangkat ayon sa uri", - "importNFTs": "Mag-import ng mga NFT", - "noNFTYet": "Wala pang NFT", - "address": "Address", - "enterTokenID": "Ilagay ang token ID", - "tokenID": "ID", - "name": "Pangalan", - "symbol": "Simbolo", - "seed_phrase_length": "Haba ng parirala ng binhi", - "unavailable_balance": "Hindi available na balanse", - "unavailable_balance_description": "Hindi Available na Balanse: Kasama sa kabuuang ito ang mga pondong naka-lock sa mga nakabinbing transaksyon at ang mga aktibong na-freeze mo sa iyong mga setting ng kontrol ng coin. Magiging available ang mga naka-lock na balanse kapag nakumpleto na ang kani-kanilang mga transaksyon, habang ang mga nakapirming balanse ay nananatiling hindi naa-access para sa mga transaksyon hanggang sa magpasya kang i-unfreeze ang mga ito.", - "unspent_change": "Baguhin", - "tor_connection": "Koneksyon ng Tor", - "setup_warning_2fa_text": "Kakailanganin mong ibalik ang iyong wallet mula sa mnemonic seed.\n\nHindi ka matutulungan ng suporta sa cake kung mawawalan ka ng access sa iyong 2FA o mnemonic seeds.\nAng Cake 2FA ay pangalawang pagpapatotoo para sa ilang partikular na pagkilos sa wallet. Bago gamitin ang Cake 2FA, inirerekomenda naming basahin ang gabay.HINDI ito kasing-secure ng malamig na imbakan.\n\nKung nawalan ka ng access sa iyong 2FA app o TOTP keys, MAWAWALA ka ng access sa wallet na ito. ", - "scan_qr_on_device": "I-scan ang QR code na ito sa ibang device", - "how_to_use": "Paano gamitin", - "seed_hex_form": "Wallet seed (hex form)", - "seedtype_legacy": "Pamana (25 salita)", - "seedtype_polyseed": "Polyseed (16 na salita)", - "seed_language_czech": "Czech", - "seed_language_korean": "Korean", - "seed_language_chinese_traditional": "Intsik (tradisyonal)", - "ascending": "Umakyat", - "descending": "Pababang", - "dfx_option_description": "Bumili ng crypto gamit ang EUR at CHF. Hanggang 990€ nang walang karagdagang KYC. Para sa retail at corporate na mga customer sa Europe", - "polygonscan_history": "Kasaysayan ng PolygonScan", - "wallet_seed_legacy": "Legacy wallet seed", - "default_sell_provider": "Default na Sell Provider", - "select_sell_provider_notice": "Pumili ng provider ng nagbebenta sa itaas. Maaari mong laktawan ang screen na ito sa pamamagitan ng pagtatakda ng iyong default na sell provider sa mga setting ng app.", - "custom_drag": "Pasadyang (hawakan at i -drag)", - "switchToEVMCompatibleWallet": "Mangyaring lumipat sa isang EVM compatible na wallet at subukang muli (Ethereum, Polygon)", - "receivable_balance": "Natatanggap na balanse", + "cancel": "Kanselahin", + "card_address": "Address:", + "cardholder_agreement": "Kasunduan sa Cardholder", + "cards": "Mga Card", + "chains": "Mga tanikala", + "change": "Palitan", + "change_backup_password_alert": "Ang iyong mga nakaraang backup file ay hindi magagamit upang mai -import gamit ang bagong backup password. Ang bagong backup na password ay gagamitin lamang para sa mga bagong backup file. Sigurado ka bang nais mong baguhin ang backup password?", + "change_currency": "Baguhin ang pera", + "change_current_node": "Sigurado ka bang baguhin ang kasalukuyang node sa ${node}?", + "change_current_node_title": "Baguhin ang kasalukuyang node", + "change_exchange_provider": "Baguhin ang tagapagbigay ng palitan", + "change_language": "Baguhin ang wika", + "change_language_to": "Baguhin ang wika sa ${language}?", + "change_password": "Palitan ANG password", + "change_rep_successful": "Matagumpay na nagbago ng kinatawan", + "change_wallet_alert_content": "Nais mo bang baguhin ang kasalukuyang pitaka sa ${wallet_name}?", + "change_wallet_alert_title": "Baguhin ang kasalukuyang pitaka", + "choose_account": "Pumili ng account", + "choose_address": "Mangyaring piliin ang address:", + "choose_from_available_options": "Pumili mula sa magagamit na mga pagpipilian:", + "choose_one": "Pumili ng isa", + "choose_relay": "Mangyaring pumili ng relay na gagamitin", + "choose_wallet_currency": "Mangyaring piliin ang Pera ng Wallet:", + "clear": "Malinaw", + "clearnet_link": "Link ng Clearnet", + "close": "Malapit", + "coin_control": "Control ng barya (opsyonal)", + "cold_or_recover_wallet": "Magdagdag ng isang malamig na pitaka o mabawi ang isang wallet ng papel", + "color_theme": "Tema ng kulay", + "commit_transaction_amount_fee": "Gumawa ng transaksyon\nHalaga: ${amount}\nBayad: ${fee}", + "confirm": "Kumpirmahin", + "confirm_delete_template": "Ang pagkilos na ito ay tatanggalin ang template na ito. Nais mo bang magpatuloy?", + "confirm_delete_wallet": "Ang pagkilos na ito ay tatanggalin ang pitaka na ito. Nais mo bang magpatuloy?", + "confirm_sending": "Kumpirmahin ang pagpapadala", + "confirmations": "Mga kumpirmasyon", + "confirmed": "Nakumpirma na balanse", "confirmed_tx": "Nakumpirma", - "transaction_details_source_address": "SOURCE ADDRESS", - "pause_wallet_creation": "Kasalukuyang naka-pause ang kakayahang gumawa ng Haven Wallet.", + "congratulations": "Binabati kita!", + "connect_an_existing_yat": "Ikonekta ang isang umiiral na yat", + "connect_yats": "Ikonekta ang mga yats", + "connection_sync": "Koneksyon at pag -sync", + "connectWalletPrompt": "Ikonekta ang iyong wallet sa WalletConnect upang gumawa ng mga transaksyon", + "contact": "Makipag -ugnay", + "contact_list_contacts": "Mga contact", + "contact_list_wallets": "Ang mga wallets ko", + "contact_name": "pangalan ng contact", + "contact_support": "Makipag -ugnay sa suporta", + "continue_text": "Magpatuloy", "contractName": "Pangalan ng Kontrata", "contractSymbol": "Simbolo ng Kontrata", + "copied_key_to_clipboard": "Kinopya ang ${key} sa clipboard", + "copied_to_clipboard": "Kinopya sa clipboard", + "copy": "Kopya", + "copy_address": "Kopyahin ang address", + "copy_id": "Kopyahin ang id", + "copyWalletConnectLink": "Kopyahin ang link ng WalletConnect mula sa dApp at i-paste dito", + "create_account": "Lumikha ng account", + "create_backup": "Gumawa ng backup", + "create_donation_link": "Lumikha ng link ng donasyon", + "create_invoice": "Lumikha ng invoice", + "create_new": "Lumikha ng bagong pitaka", + "create_new_account": "Lumikha ng Bagong Account", + "creating_new_wallet": "Lumilikha ng bagong pitaka", + "creating_new_wallet_error": "Error: ${description}", + "creation_date": "Petsa ng paglikha", + "custom": "pasadya", + "custom_drag": "Pasadyang (hawakan at i -drag)", + "custom_redeem_amount": "Pasadyang tinubos ang halaga", + "dark_theme": "Madilim", + "debit_card": "Debit card", + "debit_card_terms": "Ang pag -iimbak at paggamit ng numero ng iyong card ng pagbabayad (at mga kredensyal na naaayon sa iyong numero ng card ng pagbabayad) sa digital na pitaka na ito ay napapailalim sa mga termino at kundisyon ng naaangkop na kasunduan sa cardholder kasama ang nagbigay ng card ng pagbabayad, tulad ng sa oras -oras.", + "decimal_places_error": "Masyadong maraming mga lugar na desimal", + "default_buy_provider": "Default na Provider ng Pagbili", + "default_sell_provider": "Default na Sell Provider", + "delete": "Tanggalin", + "delete_account": "Tanggalin ang account", + "delete_wallet": "Tanggalin ang pitaka", + "delete_wallet_confirm_message": "Sigurado ka bang nais mong tanggalin ang ${wallet_name} wallet?", + "deleteConnectionConfirmationPrompt": "Sigurado ka bang gusto mong tanggalin ang koneksyon sa", + "descending": "Pababang", "description": "Paglalarawan", - "camera_consent": "Gagamitin ang iyong camera upang kumuha ng larawan para sa mga layunin ng pagkakakilanlan sa pamamagitan ng ${provider}. Pakisuri ang kanilang Patakaran sa Privacy para sa mga detalye.", + "destination_tag": "Tag ng patutunguhan:", + "dfx_option_description": "Bumili ng crypto gamit ang EUR at CHF. Hanggang 990€ nang walang karagdagang KYC. Para sa retail at corporate na mga customer sa Europe", + "didnt_get_code": "Hindi nakuha ang code?", + "digit_pin": "-digit pin", + "digital_and_physical_card": "Digital at Physical Prepaid Debit Card", + "disable": "Huwag paganahin", + "disable_buy": "Huwag paganahin ang pagkilos ng pagbili", + "disable_cake_2fa": "Huwag paganahin ang cake 2FA", + "disable_exchange": "Huwag paganahin ang palitan", + "disable_fiat": "Huwag paganahin ang Fiat", + "disable_sell": "Huwag paganahin ang pagkilos ng pagbebenta", + "disabled": "Hindi pinagana", + "discount": "Makatipid ng ${value}%", + "display_settings": "Mga setting ng pagpapakita", + "displayable": "Maipapakita", + "do_not_have_enough_gas_asset": "Wala kang sapat na ${currency} para gumawa ng transaksyon sa kasalukuyang kundisyon ng network ng blockchain. Kailangan mo ng higit pang ${currency} upang magbayad ng mga bayarin sa network ng blockchain, kahit na nagpapadala ka ng ibang asset.", + "do_not_send": "Huwag magpadala", + "do_not_share_warning_text": "Huwag ibahagi ang mga ito sa sinumang iba pa, kabilang ang suporta.\n\nAng iyong mga pondo ay maaari at ninakaw!", + "do_not_show_me": "Huwag mo itong ipakita muli", + "domain_looks_up": "Mga paghahanap ng domain", + "donation_link_details": "Mga Detalye ng Link ng Donasyon", + "e_sign_consent": "E-sign na pahintulot", + "edit": "I -edit", + "edit_backup_password": "I -edit ang backup password", + "edit_node": "I -edit ang node", + "edit_token": "I -edit ang token", + "electrum_address_disclaimer": "Bumubuo kami ng mga bagong address sa tuwing gumagamit ka ng isa, ngunit ang mga nakaraang address ay patuloy na gumagana", + "email_address": "Email address", + "enabled": "Pinagana", + "enter_amount": "Ipasok ang halaga", + "enter_backup_password": "Ipasok ang backup password dito", + "enter_code": "Ipasok ang code", + "enter_seed_phrase": "Ipasok ang iyong pariralang binhi", + "enter_totp_code": "Mangyaring ipasok ang TOTP code.", + "enter_your_note": "Ipasok ang iyong tala ...", + "enter_your_pin": "Ipasok ang iyong pin", + "enter_your_pin_again": "Ipasok muli ang iyong pin", + "enterTokenID": "Ilagay ang token ID", + "enterWalletConnectURI": "Ilagay ang WalletConnect URI", + "error": "Error", + "error_dialog_content": "Oops, nakakuha kami ng ilang error.\n\nMangyaring ipadala ang ulat ng pag -crash sa aming koponan ng suporta upang maging mas mahusay ang application.", + "error_text_account_name": "Ang pangalan ng account ay maaari lamang maglaman ng mga titik, numero\nat dapat sa pagitan ng 1 at 15 character ang haba", + "error_text_address": "Ang wallet address ay dapat na tumutugma sa uri\nng cryptocurrency", + "error_text_amount": "Ang halaga ay maaari lamang maglaman ng mga numero", + "error_text_contact_name": "Ang pangalan ng contact ay hindi maaaring maglaman ng mga simbolo ng ',' \"\nat dapat sa pagitan ng 1 at 32 character ang haba", + "error_text_crypto_currency": "Ang bilang ng mga numero ng fraction\ndapat mas mababa o katumbas ng 12", + "error_text_fiat": "Ang halaga ng halaga ay hindi maaaring lumampas sa magagamit na balanse.\nAng bilang ng mga numero ng fraction ay dapat na mas mababa o katumbas ng 2", + "error_text_input_above_maximum_limit": "Ang halaga ay higit pa sa maximum", + "error_text_input_below_minimum_limit": "Ang halaga ay mas mababa sa minimum", + "error_text_keys": "Ang mga susi ng wallet ay maaari lamang maglaman ng 64 chars sa hex", + "error_text_limits_loading_failed": "Ang kalakalan para sa ${provider} ay hindi nilikha. Nabigo ang mga limitasyon sa paglo -load", + "error_text_maximum_limit": "Ang kalakalan para sa ${provider} ay hindi nilikha. Ang halaga ay higit na maximum: ${max} ${currency}", + "error_text_minimal_limit": "Ang kalakalan para sa ${provider} ay hindi nilikha. Ang halaga ay mas mababa pagkatapos ng minimal: ${min} ${currency}", + "error_text_node_address": "Mangyaring magpasok ng isang address ng IPv4", + "error_text_node_port": "Ang Node Port ay maaari lamang maglaman ng mga numero sa pagitan ng 0 at 65535", + "error_text_node_proxy_address": "Mangyaring ipasok ang : , halimbawa 127.0.0.1:9050", + "error_text_payment_id": "Ang Payment ID ay maaari lamang maglaman mula 16 hanggang 64 chars sa hex", + "error_text_subaddress_name": "Ang pangalan ng subaddress ay hindi maaaring maglaman ng mga simbolo na `, '\"\nat dapat sa pagitan ng 1 at 20 character ang haba", + "error_text_template": "Ang pangalan ng template at address ay hindi maaaring maglaman ng mga simbolo ng ',' \"\nat dapat sa pagitan ng 1 at 106 na character ang haba", + "error_text_wallet_name": "Ang pangalan ng pitaka ay maaari lamang maglaman ng mga titik, numero, _ - mga simbolo\nat dapat sa pagitan ng 1 at 33 character ang haba", + "error_text_xmr": "Ang halaga ng XMR ay hindi maaaring lumampas sa magagamit na balanse.\nAng bilang ng mga numero ng fraction ay dapat na mas mababa o katumbas ng 12", + "errorGettingCredentials": "Nabigo: Error habang kumukuha ng mga kredensyal", + "errorSigningTransaction": "May naganap na error habang pinipirmahan ang transaksyon", + "estimated": "Tinatayang", + "etherscan_history": "Kasaysayan ng Etherscan", + "event": "Kaganapan", + "events": "Mga kaganapan", + "exchange": "Palitan", + "exchange_incorrect_current_wallet_for_xmr": "Kung nais mong makipagpalitan ng XMR mula sa iyong balanse ng cake wallet Monero, mangyaring lumipat sa iyong Monero Wallet muna.", + "exchange_new_template": "Bagong template", + "exchange_provider_unsupported": "Ang ${providerName} ay hindi na suportado!", + "exchange_result_confirm": "Sa pamamagitan ng pagpindot ng kumpirmahin, magpapadala ka ng ${fetchingLabel} ${from} mula sa iyong pitaka na tinatawag na ${walletName} sa address na ipinakita sa ibaba. O maaari kang magpadala mula sa iyong panlabas na pitaka sa ibaba address/qr code.\n\nMangyaring pindutin ang kumpirmahin na magpatuloy o bumalik upang baguhin ang mga halaga.", + "exchange_result_description": "Dapat kang magpadala ng isang minimum na ${fetchingLabel} ${from} hanggang sa address na ipinakita sa susunod na pahina. Kung nagpapadala ka ng isang halaga na mas mababa kaysa sa ${fetchingLabel} ${from} maaaring hindi ito ma -convert at maaaring hindi ito ibabalik.", + "exchange_result_write_down_ID": "*Mangyaring kopyahin o isulat ang iyong ID na ipinakita sa itaas.", + "exchange_result_write_down_trade_id": "Mangyaring kopyahin o isulat ang trade ID upang magpatuloy.", + "exchange_sync_alert_content": "Mangyaring maghintay hanggang ang iyong pitaka ay naka -synchronize", + "expired": "Nag -expire", + "expires": "Mag -expire", + "expiresOn": "Mag-e-expire sa", + "export_backup": "I -export ang backup", + "extra_id": "Dagdag na ID:", + "extracted_address_content": "Magpapadala ka ng pondo sa\n${recipient_name}", + "failed_authentication": "Nabigong pagpapatunay. ${state_error}", + "faq": "FAQ", + "fetching": "Pagkuha", + "fiat_api": "Fiat API", + "fiat_balance": "Balanse ng fiat", + "field_required": "Kinakailangan ang patlang na ito", + "fill_code": "Mangyaring punan ang verification code na ibinigay sa iyong email", + "filter_by": "Filter ni", + "first_wallet_text": "Kahanga -hangang pitaka para sa Monero, Bitcoin, Ethereum, Litecoin, at Haven", + "fixed_pair_not_supported": "Ang nakapirming pares na ito ay hindi suportado sa mga napiling palitan", + "fixed_rate": "Naayos na rate", + "fixed_rate_alert": "Magagawa mong ipasok ang makatanggap na halaga kapag naka -check ang naayos na mode ng rate. Nais mo bang lumipat sa nakapirming mode ng rate?", + "forgot_password": "Nakalimutan ang password", + "freeze": "I -freeze", + "frequently_asked_questions": "Madalas na nagtanong", + "frozen": "Frozen", + "full_balance": "Buong balanse", + "generate_name": "Bumuo ng pangalan", + "generating_gift_card": "Bumubuo ng Gift Card", + "get_a": "Kumuha ng", + "get_card_note": "na maaari mong i -reload sa mga digital na pera. Walang karagdagang impormasyon na kailangan!", + "get_your_yat": "Kunin ang iyong yat", + "gift_card_amount": "Halaga ng Gift Card", + "gift_card_balance_note": "Ang mga kard ng regalo na may natitirang balanse ay lilitaw dito", + "gift_card_is_generated": "Ang card ng regalo ay nabuo", + "gift_card_number": "Numero ng regalo card", + "gift_card_redeemed_note": "Ang mga kard ng regalo na iyong tinubos ay lilitaw dito", + "gift_cards": "Mga kard ng regalo", + "gift_cards_unavailable": "Magagamit ang mga gift card para sa pagbili lamang kasama ang Monero, Bitcoin, at Litecoin sa oras na ito", + "got_it": "Nakuha ko", + "gross_balance": "Balanse ng gross", + "group_by_type": "Pangkat ayon sa uri", + "haven_app": "Haven sa pamamagitan ng cake wallet", + "haven_app_wallet_text": "Galing ng pitaka para sa Haven", + "help": "Tulong", + "hidden_balance": "Nakatagong balanse", + "hide_details": "Itago ang mga detalye", + "high_contrast_theme": "Mataas na tema ng kaibahan", + "home_screen_settings": "Mga setting ng home screen", + "how_to_use": "Paano gamitin", + "how_to_use_card": "Paano gamitin ang kard na ito", + "id": "ID:", + "ignor": "Huwag pansinin", + "import": "Angkat", + "importNFTs": "Mag-import ng mga NFT", + "in_store": "Nakatago", + "incoming": "Papasok", + "incorrect_seed": "Ang teksto na ipinasok ay hindi wasto.", + "introducing_cake_pay": "Ipinakikilala ang cake pay!", + "invalid_input": "Di -wastong input", + "invoice_details": "Mga detalye ng invoice", + "is_percentage": "ay", + "last_30_days": "Huling 30 araw", + "learn_more": "Matuto nang higit pa", + "light_theme": "Ilaw", + "loading_your_wallet": "Naglo -load ng iyong pitaka", + "login": "Mag log in", + "logout": "Mag -logout", + "low_fee": "Mababang bayad", + "low_fee_alert": "Kasalukuyan kang gumagamit ng isang mababang priyoridad sa bayad sa network. Maaari itong maging sanhi ng mahabang paghihintay, iba't ibang mga rate, o kanselahin ang mga trading. Inirerekumenda namin ang pagtatakda ng isang mas mataas na bayad para sa isang mas mahusay na karanasan.", + "manage_nodes": "Pamahalaan ang mga node", + "manage_yats": "Pamahalaan ang mga yats", + "mark_as_redeemed": "Markahan bilang tinubos", + "market_place": "Marketplace", + "matrix_green_dark_theme": "Matrix Green Madilim na Tema", + "max_amount": "Max: ${value}", + "max_value": "Max: ${value} ${currency}", + "memo": "Memo:", + "message": "Mensahe", + "methods": "Paraan", + "min_amount": "Min: ${value}", + "min_value": "Min: ${value} ${currency}", + "minutes_to_pin_code": "${minute} minuto", + "mm": "Mm", + "modify_2fa": "Baguhin ang cake 2FA", + "monero_com": "Monero.com sa pamamagitan ng cake wallet", + "monero_com_wallet_text": "Galing ng pitaka para sa Monero", + "monero_dark_theme": "Monero Madilim na Tema", + "monero_light_theme": "Tema ng Monero Light", + "moonpay_alert_text": "Ang halaga ng halaga ay dapat na higit pa o katumbas ng ${minAmount} ${fiatCurrency}", + "more_options": "Higit pang mga pagpipilian", + "name": "Pangalan", + "narrow": "Makitid", + "new_node_testing": "Bagong pagsubok sa node", + "new_subaddress_create": "Lumikha", + "new_subaddress_label_name": "Pangalan ng label", + "new_subaddress_title": "Bagong tirahan", + "new_template": "Bagong template", + "new_wallet": "Bagong pitaka", + "newConnection": "Bagong Koneksyon", + "no_id_needed": "Hindi kailangan ng ID!", + "no_id_required": "Walang kinakailangang ID. I -top up at gumastos kahit saan", + "no_relay_on_domain": "Walang relay para sa domain ng user o hindi available ang relay. Mangyaring pumili ng relay na gagamitin.", "no_relays": "Walang mga relay", - "choose_relay": "Mangyaring pumili ng relay na gagamitin", "no_relays_message": "Nakakita kami ng Nostr NIP-05 record para sa user na ito, ngunit hindi ito naglalaman ng anumang mga relay. Mangyaring atasan ang tatanggap na magdagdag ng mga relay sa kanilang Nostr record.", - "no_relay_on_domain": "Walang relay para sa domain ng user o hindi available ang relay. Mangyaring pumili ng relay na gagamitin." -} + "node_address": "Node address", + "node_connection_failed": "Nabigo ang koneksyon", + "node_connection_successful": "Ang koneksyon ay matagumpay", + "node_new": "Bagong node", + "node_port": "Node port", + "node_reset_settings_title": "I -reset ang Mga Setting", + "node_test": "Pagsusulit", + "nodes": "Node", + "nodes_list_reset_to_default_message": "Sigurado ka bang nais mong i -reset ang mga setting upang default?", + "none_of_selected_providers_can_exchange": "Wala sa mga napiling tagapagkaloob na maaaring gumawa ng palitan na ito", + "noNFTYet": "Wala pang NFT", + "normal": "Normal", + "note_optional": "Tandaan (Opsyonal)", + "note_tap_to_change": "Tandaan (Tapikin upang baguhin)", + "nullURIError": "Ang URI ay null", + "offer_expires_in": "Mag -expire ang alok sa:", + "offline": "Offline", + "ok": "Ok", + "onion_link": "Link ng Onion", + "online": "Online", + "onramper_option_description": "Mabilis na bumili ng crypto na may maraming paraan ng pagbabayad. Available sa karamihan ng mga bansa. Iba-iba ang mga spread at bayarin.", + "open_gift_card": "Buksan ang Gift Card", + "optional_description": "Opsyonal na paglalarawan", + "optional_email_hint": "Opsyonal na Payee Notification Email", + "optional_name": "Opsyonal na pangalan ng tatanggap", + "optionally_order_card": "Opsyonal na mag -order ng isang pisikal na kard.", + "orbot_running_alert": "Mangyaring tiyakin na ang Orbot ay tumatakbo bago kumonekta sa node na ito.", + "order_by": "Iniutos ni", + "order_id": "Order id", + "order_physical_card": "Mag -order ng pisikal na kard", + "other_settings": "Iba pang mga setting", + "outdated_electrum_wallet_description": "Ang mga bagong wallets ng Bitcoin na nilikha sa cake ay mayroon na ngayong 24-salitang binhi. Ipinag-uutos na lumikha ka ng isang bagong pitaka ng Bitcoin at ilipat ang lahat ng iyong mga pondo sa bagong 24-salitang pitaka, at itigil ang paggamit ng mga pitaka na may 12-salitang binhi. Mangyaring gawin ito kaagad upang ma -secure ang iyong mga pondo.", + "outdated_electrum_wallet_receive_warning": "Kung ang pitaka na ito ay may 12-salitang binhi at nilikha sa cake, huwag magdeposito sa Bitcoin sa pitaka na ito. Ang anumang BTC na inilipat sa pitaka na ito ay maaaring mawala. Lumikha ng isang bagong 24-word wallet (tapikin ang menu sa kanang tuktok, piliin ang mga pitaka, piliin ang Lumikha ng Bagong Wallet, pagkatapos ay piliin ang Bitcoin) at agad na ilipat ang iyong BTC doon. Ang mga bagong (24-salita) BTC Wallets mula sa cake ay ligtas", + "outgoing": "Palabas", + "overwrite_amount": "Overwrite na halaga", + "pairingInvalidEvent": "Pagpares ng Di-wastong Kaganapan", + "password": "Password", + "paste": "I -paste", + "pause_wallet_creation": "Kasalukuyang naka-pause ang kakayahang gumawa ng Haven Wallet.", + "payment_id": "Payment ID:", + "payment_was_received": "Natanggap ang iyong pagbabayad.", + "pending": "(Pending)", + "percentageOf": "ng ${amount}", + "pin_at_top": "Pin ${token} sa tuktok", + "pin_is_incorrect": "Mali ang pin", + "pin_number": "Numero ng pin", + "placeholder_contacts": "Ang iyong mga contact ay ipapakita dito", + "placeholder_transactions": "Ang iyong mga transaksyon ay ipapakita dito", + "please_fill_totp": "Mangyaring punan ang 8-digit na code na naroroon sa iyong iba pang aparato", + "please_make_selection": "Mangyaring gumawa ng isang pagpipilian sa ibaba upang lumikha o mabawi ang iyong pitaka.", + "please_reference_document": "Mangyaring sanggunian ang mga dokumento sa ibaba para sa karagdagang impormasyon.", + "please_select": "Pakipili:", + "please_select_backup_file": "Mangyaring piliin ang backup file at ipasok ang backup password.", + "please_try_to_connect_to_another_node": "Mangyaring subukang kumonekta sa isa pang node", + "please_wait": "Mangyaring maghintay", + "polygonscan_history": "Kasaysayan ng PolygonScan", + "powered_by": "Pinapagana ng ${title}", + "pre_seed_button_text": "Naiintindihan ko. Ipakita sa akin ang aking binhi", + "pre_seed_description": "Sa susunod na pahina makikita mo ang isang serye ng mga ${words} na mga salita. Ito ang iyong natatangi at pribadong binhi at ito ang tanging paraan upang mabawi ang iyong pitaka kung sakaling mawala o madepektong paggawa. Responsibilidad mong isulat ito at itago ito sa isang ligtas na lugar sa labas ng cake wallet app.", + "pre_seed_title": "Mahalaga", + "prevent_screenshots": "Maiwasan ang mga screenshot at pag -record ng screen", + "privacy": "Privacy", + "privacy_policy": "Patakaran sa Pagkapribado", + "privacy_settings": "Settings para sa pagsasa-pribado", + "private_key": "Pribadong susi", + "proceed_after_one_minute": "Kung ang screen ay hindi magpatuloy pagkatapos ng 1 minuto, suriin ang iyong email.", + "profile": "Profile", + "provider_error": "${provider} error", + "public_key": "Pampublikong susi", + "purchase_gift_card": "Bumili ng Gift Card", + "qr_fullscreen": "Tapikin upang buksan ang buong screen QR code", + "qr_payment_amount": "Ang QR code na ito ay naglalaman ng isang halaga ng pagbabayad. Nais mo bang i -overwrite ang kasalukuyang halaga?", + "question_to_disable_2fa": "Sigurado ka bang nais mong huwag paganahin ang cake 2fa? Ang isang 2FA code ay hindi na kinakailangan upang ma -access ang pitaka at ilang mga pag -andar.", + "receivable_balance": "Natatanggap na balanse", + "receive": "Tumanggap", + "receive_amount": "Halaga", + "received": "Natanggap", + "recipient_address": "Address ng tatanggap", + "reconnect": "Kumonekta muli", + "reconnect_alert_text": "Sigurado ka bang nais mong muling kumonekta?", + "reconnection": "Pag -ugnay muli", + "redeemed": "Tinubos", + "refund_address": "Refund address", + "reject": "Tanggihan", + "remaining": "natitira", + "remove": "Alisin", + "remove_node": "Alisin ang node", + "remove_node_message": "Sigurado ka bang nais mong alisin ang napiling node?", + "rename": "Palitan ang pangalan", + "require_for_adding_contacts": "Nangangailangan para sa pagdaragdag ng mga contact", + "require_for_all_security_and_backup_settings": "Nangangailangan para sa lahat ng mga setting ng seguridad at backup", + "require_for_assessing_wallet": "Nangangailangan para sa pag -access ng pitaka", + "require_for_creating_new_wallets": "Nangangailangan para sa paglikha ng mga bagong pitaka", + "require_for_exchanges_to_external_wallets": "Kinakailangan para sa mga palitan sa mga panlabas na wallet", + "require_for_exchanges_to_internal_wallets": "Nangangailangan para sa mga palitan sa mga panloob na mga pitaka", + "require_for_sends_to_contacts": "Nangangailangan para sa pagpapadala sa mga contact", + "require_for_sends_to_internal_wallets": "Nangangailangan para sa pagpapadala sa mga panloob na mga pitaka", + "require_for_sends_to_non_contacts": "Nangangailangan para sa pagpapadala sa mga hindi contact", + "require_pin_after": "Nangangailangan ng pin pagkatapos", + "rescan": "Rescan", + "resend_code": "Mangyaring ipagpatuloy ito", + "reset": "I -reset", + "reset_password": "I -reset ang password", + "restore_active_seed": "Aktibong binhi", + "restore_address": "Address", + "restore_bitcoin_description_from_keys": "Ibalik ang iyong pitaka mula sa nabuong wif string mula sa iyong mga pribadong susi", + "restore_bitcoin_description_from_seed": "Ibalik ang iyong pitaka mula sa 24 na code ng kombinasyon ng salita", + "restore_bitcoin_title_from_keys": "Ibalik mula sa WIF", + "restore_description_from_backup": "Maaari mong ibalik ang buong cake wallet app mula sa iyong back-up file", + "restore_description_from_keys": "Ibalik ang iyong pitaka mula sa nabuong mga keystroke na na -save mula sa iyong mga pribadong susi", + "restore_description_from_seed": "Ibalik ang iyong pitaka mula sa alinman sa 25 salita o 13 na code ng kombinasyon ng salita", + "restore_description_from_seed_keys": "Ibalik ang iyong pitaka mula sa mga binhi/susi na na -save mo upang ma -secure ang lugar", + "restore_from_date_or_blockheight": "Mangyaring magpasok ng isang petsa ng ilang araw bago mo nilikha ang pitaka na ito. O kung alam mo ang blockheight, mangyaring ipasok ito sa halip", + "restore_from_seed_placeholder": "Mangyaring ipasok o i -paste ang iyong binhi dito", + "restore_new_seed": "Bagong binhi", + "restore_next": "Susunod", + "restore_recover": "Ibalik", + "restore_restore_wallet": "Ibalik ang pitaka", + "restore_seed_keys_restore": "Ibinalik ang mga binhi/susi", + "restore_spend_key_private": "Gumastos ng susi (pribado)", + "restore_title_from_backup": "Ibalik mula sa backup", + "restore_title_from_keys": "Ibalik mula sa mga susi", + "restore_title_from_seed": "Ibalik mula sa binhi", + "restore_title_from_seed_keys": "Ibalik mula sa mga binhi/susi", + "restore_view_key_private": "Tingnan ang Key (Pribado)", + "restore_wallet": "Ibalik ang pitaka", + "restore_wallet_name": "Pangalan ng Wallet", + "restore_wallet_restore_description": "Paglalarawan ng Wallet", + "robinhood_option_description": "Bumili at ilipat kaagad gamit ang iyong debit card, bank account, o balanse ng Robinhood. USA lang.", + "router_no_route": "Walang ruta na tinukoy para sa ${name}", + "save": "I -save", + "save_backup_password": "Mangyaring tiyaking nai -save mo ang iyong backup password. Hindi mo mai -import ang iyong mga backup na file nang wala ito.", + "save_backup_password_alert": "I -save ang backup password", + "save_to_downloads": "I -save sa mga pag -download", + "saved_the_trade_id": "Nai -save ko ang trade ID", + "scan_qr_code": "I -scan ang QR Code", + "scan_qr_code_to_get_address": "I -scan ang QR code upang makuha ang address", + "scan_qr_on_device": "I-scan ang QR code na ito sa ibang device", + "search": "Maghanap", + "search_add_token": "Maghanap / Magdagdag ng Token", + "search_category": "Kategorya ng paghahanap", + "search_currency": "Maghanap ng pera", + "search_language": "Maghanap ng wika", + "second_intro_content": "Ang iyong yat ay isang solong natatanging address ng emoji na pumapalit sa lahat ng iyong mahabang hexadecimal address para sa lahat ng iyong mga pera.", + "second_intro_title": "Isang address ng emoji upang mamuno sa kanilang lahat", + "security_and_backup": "Seguridad at backup", + "seed_alert_back": "Bumalik ka", + "seed_alert_content": "Ang binhi ay ang tanging paraan upang mabawi ang iyong pitaka. Nasulat mo na ba ito?", + "seed_alert_title": "Pansin", + "seed_alert_yes": "Oo meron ako", + "seed_choose": "Pumili ng wika ng binhi", + "seed_hex_form": "Wallet seed (hex form)", + "seed_key": "Seed Key", + "seed_language": "Wika ng binhi", + "seed_language_chinese": "Tsino", + "seed_language_chinese_traditional": "Intsik (tradisyonal)", + "seed_language_czech": "Czech", + "seed_language_dutch": "Dutch", + "seed_language_english": "Ingles", + "seed_language_french": "Pranses", + "seed_language_german": "Aleman", + "seed_language_italian": "Italyano", + "seed_language_japanese": "Hapon", + "seed_language_korean": "Korean", + "seed_language_next": "Susunod", + "seed_language_portuguese": "Portuges", + "seed_language_russian": "Russian", + "seed_language_spanish": "Espanyol", + "seed_phrase_length": "Haba ng parirala ng binhi", + "seed_reminder": "Mangyaring isulat ang mga ito kung sakaling mawala ka o punasan ang iyong telepono", + "seed_share": "Magbahagi ng binhi", + "seed_title": "Binhi", + "seedtype_legacy": "Pamana (25 salita)", + "seedtype_polyseed": "Polyseed (16 na salita)", + "select_backup_file": "Piliin ang backup file", + "select_buy_provider_notice": "Pumili ng provider ng pagbili sa itaas. Maaari mong laktawan ang screen na ito sa pamamagitan ng pagtatakda ng iyong default na provider ng pagbili sa mga setting ng app.", + "select_destination": "Mangyaring piliin ang patutunguhan para sa backup file.", + "select_sell_provider_notice": "Pumili ng provider ng nagbebenta sa itaas. Maaari mong laktawan ang screen na ito sa pamamagitan ng pagtatakda ng iyong default na sell provider sa mga setting ng app.", + "sell": "Ibenta", + "sell_alert_content": "Kasalukuyan lamang naming sinusuportahan ang pagbebenta ng Bitcoin, Ethereum at Litecoin. Mangyaring lumikha o lumipat sa iyong Bitcoin, Ethereum o Litecoin Wallet.", + "sell_monero_com_alert_content": "Ang pagbebenta ng Monero ay hindi pa suportado", + "send": "Ipadala", + "send_address": "${cryptoCurrency} address", + "send_amount": "Halaga:", + "send_creating_transaction": "Paglikha ng transaksyon", + "send_error_currency": "Ang pera ay maaari lamang maglaman ng mga numero", + "send_error_minimum_value": "Ang pinakamababang halaga ng halaga ay 0.01", + "send_estimated_fee": "Tinatayang bayad:", + "send_fee": "Bayad:", + "send_name": "Pangalan", + "send_new": "Bago", + "send_payment_id": "Payment ID (Opsyonal)", + "send_priority": "Sa kasalukuyan ang bayad ay nakatakda sa ${transactionPriority} priority.\nAng priority ng transaksyon ay maaaring maiakma sa mga setting", + "send_sending": "Pagpapadala ...", + "send_success": "Ang iyong ${crypto} ay matagumpay na naipadala", + "send_templates": "Mga template", + "send_title": "Ipadala", + "send_to_this_address": "Magpadala ng ${currency} ${tag} sa address na ito", + "send_xmr": "Magpadala ng XMR", + "send_your_wallet": "Iyong pitaka", + "sending": "Pagpapadala", + "sent": "Ipinadala", + "settings": "Mga setting", + "settings_all": "Lahat", + "settings_allow_biometrical_authentication": "Payagan ang pagpapatunay ng biometrical", + "settings_can_be_changed_later": "Ang mga setting na ito ay maaaring mabago mamaya sa mga setting ng app", + "settings_change_language": "Baguhin ang wika", + "settings_change_pin": "Baguhin ang pin", + "settings_currency": "Pera", + "settings_current_node": "Kasalukuyang node", + "settings_dark_mode": "Madilim na mode", + "settings_display_balance": "Ipakita ang balanse", + "settings_display_on_dashboard_list": "Ipakita sa listahan ng dashboard", + "settings_fee_priority": "Priority priority", + "settings_nodes": "Node", + "settings_none": "Wala", + "settings_only_trades": "TRADES LAMANG", + "settings_only_transactions": "Mga transaksyon lamang", + "settings_personal": "Personal", + "settings_save_recipient_address": "I -save ang address ng tatanggap", + "settings_support": "Suporta", + "settings_terms_and_conditions": "Mga Tuntunin at Kundisyon", + "settings_title": "Mga setting", + "settings_trades": "Trading", + "settings_transactions": "Mga Transaksyon", + "settings_wallets": "Wallets", + "setup_2fa": "Setup cake 2fa", + "setup_2fa_text": "Gumagana ang Cake 2FA gamit ang TOTP bilang pangalawang kadahilanan sa pagpapatunay.\n\nAng TOTP ng Cake 2FA ay nangangailangan ng SHA-512 at 8 digit na suporta; nagbibigay ito ng mas mataas na seguridad. Higit pang impormasyon at suportadong app ang makikita sa gabay.", + "setup_pin": "Setup pin", + "setup_successful": "Matagumpay na na -set up ang iyong pin!", + "setup_totp_recommended": "I-setup ang TOTP", + "setup_warning_2fa_text": "Kakailanganin mong ibalik ang iyong wallet mula sa mnemonic seed.\n\nHindi ka matutulungan ng suporta sa cake kung mawawalan ka ng access sa iyong 2FA o mnemonic seeds.\nAng Cake 2FA ay pangalawang pagpapatotoo para sa ilang partikular na pagkilos sa wallet. Bago gamitin ang Cake 2FA, inirerekomenda naming basahin ang gabay.HINDI ito kasing-secure ng malamig na imbakan.\n\nKung nawalan ka ng access sa iyong 2FA app o TOTP keys, MAWAWALA ka ng access sa wallet na ito. ", + "setup_your_debit_card": "I -set up ang iyong debit card", + "share": "Ibahagi", + "share_address": "Ibahagi ang address", + "show_details": "Ipakita ang mga detalye", + "show_keys": "Ipakita ang mga binhi/susi", + "show_market_place": "Ipakita ang Marketplace", + "show_seed": "Magpakita ng binhi", + "sign_up": "Mag -sign up", + "signTransaction": "Mag-sign Transaksyon", + "signup_for_card_accept_terms": "Mag -sign up para sa card at tanggapin ang mga termino.", + "slidable": "Slidable", + "sort_by": "Pag -uri -uriin sa pamamagitan ng", + "spend_key_private": "Gumastos ng susi (pribado)", + "spend_key_public": "Gumastos ng susi (publiko)", + "status": "Katayuan:", + "subaddress_title": "Listahan ng Subaddress", + "subaddresses": "Mga Subaddresses", + "submit_request": "magsumite ng isang kahilingan", + "successful": "Matagumpay", + "support_description_guides": "Dokumentasyon at suporta para sa mga karaniwang isyu", + "support_description_live_chat": "Libre at mabilis! Ang mga bihasang kinatawan ng suporta ay magagamit upang tulungan", + "support_description_other_links": "Sumali sa aming mga komunidad o maabot sa amin ang aming mga kasosyo sa pamamagitan ng iba pang mga pamamaraan", + "support_title_guides": "Mga Gabay sa Wallet ng cake", + "support_title_live_chat": "Live na suporta", + "support_title_other_links": "Iba pang mga link sa suporta", + "sweeping_wallet": "Pagwawalis ng pitaka", + "sweeping_wallet_alert": "Hindi ito dapat magtagal. Huwag iwanan ang screen na ito o maaaring mawala ang mga pondo ng swept.", + "switchToETHWallet": "Mangyaring lumipat sa isang Ethereum wallet at subukang muli", + "switchToEVMCompatibleWallet": "Mangyaring lumipat sa isang EVM compatible na wallet at subukang muli (Ethereum, Polygon)", + "symbol": "Simbolo", + "sync_all_wallets": "I -sync ang lahat ng mga pitaka", + "sync_status_attempting_sync": "Pagtatangka ng pag -sync", + "sync_status_connected": "Konektado", + "sync_status_connecting": "Pagkonekta", + "sync_status_failed_connect": "Naka -disconnect", + "sync_status_not_connected": "HINDI KONEKTADO", + "sync_status_starting_sync": "Simula sa pag -sync", + "sync_status_syncronized": "Naka -synchronize", + "sync_status_syncronizing": "Pag -synchronize", + "syncing_wallet_alert_content": "Ang iyong balanse at listahan ng transaksyon ay maaaring hindi kumpleto hanggang sa sabihin nito na \"naka -synchronize\" sa tuktok. Mag -click/tap upang malaman ang higit pa.", + "syncing_wallet_alert_title": "Ang iyong pitaka ay nag -sync", + "template": "Template", + "template_name": "Pangalan ng Template", + "third_intro_content": "Ang mga yats ay nakatira sa labas ng cake wallet, din. Ang anumang address ng pitaka sa mundo ay maaaring mapalitan ng isang yat!", + "third_intro_title": "Si Yat ay mahusay na gumaganap sa iba", + "time": "${minutes} m ${seconds} s", + "tip": "Tip:", + "today": "Ngayon", + "token_contract_address": "Token Address ng Kontrata", + "token_decimal": "Token Decimal", + "token_name": "Pangalan ng Token hal: Tether", + "token_symbol": "Simbolo ng token hal: USDT", + "tokenID": "ID", + "tor_connection": "Koneksyon ng Tor", + "tor_only": "Tor lang", + "total_saving": "Kabuuang pagtitipid", + "totp_2fa_failure": "Maling code. Mangyaring subukan ang ibang code o makabuo ng isang bagong lihim na susi. Gumamit ng isang katugmang 2FA app na sumusuporta sa 8-digit na mga code at SHA512.", + "totp_2fa_success": "Tagumpay! Pinagana ang cake 2FA para sa pitaka na ito. Tandaan na i -save ang iyong mnemonic seed kung sakaling mawalan ka ng pag -access sa pitaka.", + "totp_auth_url": "TOTP AUTH URL", + "totp_code": "TOTP code", + "totp_secret_code": "TOTP Secret Code", + "totp_verification_success": "Matagumpay ang pagpapatunay!", + "trade_details_copied": "${title} kinopya sa clipboard", + "trade_details_created_at": "Nilikha sa", + "trade_details_fetching": "Pagkuha", + "trade_details_id": "ID", + "trade_details_pair": "Pares", + "trade_details_provider": "Tagabigay", + "trade_details_state": "Katayuan", + "trade_details_title": "Mga detalye sa kalakalan", + "trade_for_not_created": "Ang kalakalan para sa ${title} ay hindi nilikha.", + "trade_history_title": "Kasaysayan ng Kalakal", + "trade_id": "Trade ID:", + "trade_id_not_found": "Trade ${tradeId} ng ${title} Hindi natagpuan.", + "trade_is_powered_by": "Ang kalakalan na ito ay pinalakas ng ${provider}", + "trade_not_created": "Hindi nilikha ang kalakalan", + "trade_not_found": "Hindi natagpuan ang kalakalan.", + "trade_state_btc_sent": "Ipinadala ang BTC", + "trade_state_complete": "Kumpleto", + "trade_state_confirming": "Pagkumpirma", + "trade_state_created": "Nilikha", + "trade_state_finished": "Tapos na", + "trade_state_paid": "Bayad", + "trade_state_paid_unconfirmed": "Bayad na hindi nakumpirma", + "trade_state_pending": "Nakabinbin", + "trade_state_timeout": "Oras ng oras", + "trade_state_to_be_created": "Upang malikha", + "trade_state_traded": "Ipinagpalit", + "trade_state_trading": "Pangangalakal", + "trade_state_underpaid": "Underpaid", + "trade_state_unpaid": "Walang bayad", + "trades": "Trading", + "transaction_details_amount": "Halaga", + "transaction_details_copied": "${title} kinopya sa clipboard", + "transaction_details_date": "Petsa", + "transaction_details_fee": "Bayad", + "transaction_details_height": "Taas", + "transaction_details_recipient_address": "Mga address ng tatanggap", + "transaction_details_source_address": "SOURCE ADDRESS", + "transaction_details_title": "Mga detalye ng transaksyon", + "transaction_details_transaction_id": "Transaction ID", + "transaction_key": "Susi ng transaksyon", + "transaction_priority_fast": "Mabilis", + "transaction_priority_fastest": "Pinakamabilis", + "transaction_priority_medium": "Katamtaman", + "transaction_priority_regular": "Regular", + "transaction_priority_slow": "Mabagal", + "transaction_sent": "Ipinadala ang transaksyon!", + "transaction_sent_notice": "Kung ang screen ay hindi magpatuloy pagkatapos ng 1 minuto, suriin ang isang block explorer at ang iyong email.", + "transactions": "Mga Transaksyon", + "transactions_by_date": "Mga Transaksyon ayon sa Petsa", + "trusted": "Pinagkakatiwalaan", + "unavailable_balance": "Hindi available na balanse", + "unavailable_balance_description": "Hindi Available na Balanse: Kasama sa kabuuang ito ang mga pondong naka-lock sa mga nakabinbing transaksyon at ang mga aktibong na-freeze mo sa iyong mga setting ng kontrol ng coin. Magiging available ang mga naka-lock na balanse kapag nakumpleto na ang kani-kanilang mga transaksyon, habang ang mga nakapirming balanse ay nananatiling hindi naa-access para sa mga transaksyon hanggang sa magpasya kang i-unfreeze ang mga ito.", + "unconfirmed": "Hindi nakumpirma na balanse", + "understand": "naiintindihan ko", + "unmatched_currencies": "Ang pera ng iyong kasalukuyang pitaka ay hindi tumutugma sa na -scan na QR", + "unspent_change": "Baguhin", + "unspent_coins_details_title": "Mga Detalye ng Unspent Coins", + "unspent_coins_title": "Unspent barya", + "upto": "Hanggang sa ${value}", + "use": "Lumipat sa", + "use_card_info_three": "Gamitin ang digital card online o sa mga pamamaraan ng pagbabayad na walang contact.", + "use_card_info_two": "Ang mga pondo ay na -convert sa USD kapag gaganapin sila sa prepaid account, hindi sa mga digital na pera.", + "use_ssl": "Gumamit ng SSL", + "use_suggested": "Gumamit ng iminungkahing", + "variable_pair_not_supported": "Ang variable na pares na ito ay hindi suportado sa mga napiling palitan", + "verification": "Pag -verify", + "verify_with_2fa": "Mag -verify sa cake 2FA", + "version": "Bersyon ${currentVersion}", + "view_all": "Tingnan lahat", + "view_in_block_explorer": "Tingnan sa Block Explorer", + "view_key_private": "Tingnan ang Key (Pribado)", + "view_key_public": "Tingnan ang Key (Publiko)", + "view_transaction_on": "Tingnan ang transaksyon sa", + "wallet_keys": "Mga buto/susi ng pitaka", + "wallet_list_create_new_wallet": "Lumikha ng bagong pitaka", + "wallet_list_edit_wallet": "I -edit ang Wallet", + "wallet_list_failed_to_load": "Nabigong mag -load ng ${wallet_name} pitaka. ${error}", + "wallet_list_failed_to_remove": "Nabigong alisin ang ${wallet_name} wallet. ${error}", + "wallet_list_load_wallet": "Mag -load ng pitaka", + "wallet_list_loading_wallet": "Naglo -load ng ${wallet_name} Wallet", + "wallet_list_removing_wallet": "Pag -alis ng ${wallet_name} Wallet", + "wallet_list_restore_wallet": "Ibalik ang pitaka", + "wallet_list_title": "Monero Wallet", + "wallet_list_wallet_name": "Pangalan ng Wallet", + "wallet_menu": "Menu", + "wallet_name": "Pangalan ng Wallet", + "wallet_name_exists": "Ang isang pitaka na may pangalang iyon ay mayroon na. Mangyaring pumili ng ibang pangalan o palitan muna ang iba pang pitaka.", + "wallet_restoration_store_incorrect_seed_length": "Maling haba ng binhi", + "wallet_seed": "SEED ng Wallet", + "wallet_seed_legacy": "Legacy wallet seed", + "wallet_store_monero_wallet": "Monero Wallet", + "walletConnect": "WalletConnect", + "wallets": "Wallets", + "warning": "Babala", + "welcome": "Maligayang pagdating sa", + "welcome_to_cakepay": "Maligayang pagdating sa cake pay!", + "widgets_address": "Address", + "widgets_or": "o", + "widgets_restore_from_blockheight": "Ibalik mula sa blockheight", + "widgets_restore_from_date": "Ibalik mula sa petsa", + "widgets_seed": "Binhi", + "wouoldLikeToConnect": "gustong kumonekta", + "write_down_backup_password": "Mangyaring isulat ang iyong backup password, na ginagamit para sa pag -import ng iyong mga backup file.", + "xlm_extra_info": "Mangyaring huwag kalimutan na tukuyin ang memo ID habang ipinapadala ang transaksyon ng XLM para sa palitan", + "xmr_available_balance": "Magagamit na balanse", + "xmr_full_balance": "Buong balanse", + "xmr_hidden": "Nakatago", + "xmr_to_error": "Xmr.to error", + "xmr_to_error_description": "Di -wastong halaga. Pinakamataas na limitasyon ng 8 numero pagkatapos ng punto ng desimal", + "xrp_extra_info": "Mangyaring huwag kalimutan na tukuyin ang patutunguhan na tag habang ipinapadala ang transaksyon ng XRP para sa palitan", + "yat": "Yat", + "yat_address": "Yat address", + "yat_alert_content": "Ang mga gumagamit ng cake wallet ay maaari na ngayong magpadala at makatanggap ng lahat ng kanilang mga paboritong pera na may isang one-of-a-kind emoji-based username.", + "yat_alert_title": "Magpadala at tumanggap ng crypto nang mas madali sa yat", + "yat_error": "Error sa yat", + "yat_error_content": "Walang mga address na naka -link sa yat na ito. Subukan ang isa pang yat", + "yat_popup_content": "Maaari ka na ngayong magpadala at makatanggap ng crypto sa cake wallet kasama ang iyong yat - isang maikli, emoji na batay sa username. Pamahalaan ang mga yats anumang oras sa screen ng Mga Setting", + "yat_popup_title": "Ang iyong wallet address ay maaaring ma -emojified.", + "yesterday": "Kahapon", + "you_now_have_debit_card": "Mayroon ka na ngayong debit card", + "you_pay": "Magbabayad ka", + "you_will_get": "Mag -convert sa", + "you_will_send": "I -convert mula sa", + "yy": "YY", + "zzzz": "Zzzz" +} \ No newline at end of file diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index 337a85ff8..eeaaf3a40 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -1,777 +1,778 @@ { - "welcome": "Hoş Geldiniz", - "cake_wallet": "Cake Wallet", - "first_wallet_text": "Monero, Bitcoin, Ethereum, Litecoin ve Haven için harika cüzdan", - "please_make_selection": "Cüzdan oluşturmak veya geri döndürmek için aşağıdan seçim yap.", - "create_new": "Yeni Cüzdan Oluştur", - "restore_wallet": "Cüzdanı Geri Döndür", - "monero_com": "Cake Wallet tarafından Monero.com", - "monero_com_wallet_text": "Monero için harika cüzdan", - "haven_app": "Cake Wallet tarafından Haven", - "haven_app_wallet_text": "Haven için harika cüzdan ", - "accounts": "Hesaplar", - "edit": "Düzenle", + "about_cake_pay": "Cake Pay, Amerika Birleşik Devletleri'ndeki 150.000'den fazla işyerinde anında harcanabilen sanal varlıklarla kolayca hediye kartları satın almanızı sağlar.", "account": "Hesap", + "accounts": "Hesaplar", + "accounts_subaddresses": "Hesaplar ve alt adresler", + "activate": "Aktifleştir", + "active": "Aktif", + "active_cards": "Aktif kartlar", + "activeConnectionsPrompt": "Aktif bağlantılar burada görünecek", "add": "Ekle", + "add_contact": "Kişi ekle", + "add_custom_node": "Yeni Özel Düğüm Ekleme", + "add_custom_redemption": "Özel Bozdurma Ekle", + "add_fund_to_card": "Ön ödemeli kartlara para ekle (En fazla yüklenebilir tutar: ${value})", + "add_new_node": "Yeni düğüm ekle", + "add_new_word": "Yeni kelime ekle", + "add_receiver": "Başka bir alıcı ekle (isteğe bağlı)", + "add_secret_code": "Veya bu gizli kodu bir kimlik doğrulama uygulamasına ekleyin", + "add_tip": "Bahşiş Ekle", + "add_token_disclaimer_check": "Belirteç sözleşmesi adresini ve bilgilerini saygın bir kaynak kullanarak onayladım. Kötü amaçlı veya yanlış bilgilerin eklenmesi para kaybına neden olabilir.", + "add_token_warning": "Dolandırıcıların talimatına göre jetonları düzenlemeyin veya eklemeyin.\nBelirteç adreslerini her zaman saygın kaynaklarla onaylayın!", + "add_value": "Değer ekle", + "address": "Adres", "address_book": "Adres Defteri", - "contact": "Rehber", - "please_select": "Lütfen seçim yap:", - "cancel": "İptal", - "ok": "Tamam", - "contact_name": "Kişi ismi", - "reset": "Sıfırla", - "save": "Kaydet", + "address_book_menu": "Adres defteri", + "address_detected": "Adres tespit edildi", + "address_from_domain": "Bu adres Unstoppable Domains'deki' ${domain} adresinden alındı", + "address_from_yat": "Bu adres Yat'taki ${emoji} adresinden alındı", + "address_label": "Adres etiketi", "address_remove_contact": "Kişiyi sil", "address_remove_content": "Seçili kişiyi silmek istediğinden emin misin?", - "authenticated": "Doğrulandı", - "authentication": "Doğrulama", - "failed_authentication": "Doğrulama başarısız oldu. ${state_error}", - "wallet_menu": "Menü", - "Blocks_remaining": "${status} Blok Kaldı", - "please_try_to_connect_to_another_node": "Lütfen farklı düğüme bağlanmayı dene", - "xmr_hidden": "Gizli", - "xmr_available_balance": "Kullanılabilir Bakiye", - "xmr_full_balance": "Tüm Bakiye", - "send": "Para Gönder", - "receive": "Para Al", - "transactions": "İşlemler", - "incoming": "Gelen", - "outgoing": "Giden", - "transactions_by_date": "Tarihe göre transferler", - "trades": "Takaslar", - "filter_by": "Şuna göre filtrele", - "today": "Bugün", - "yesterday": "Dün", - "received": "Alındı", - "sent": "Gönderildi", - "pending": " (bekleyen)", - "rescan": "Yeniden Tara", - "reconnect": "Yeniden Bağlan", - "wallets": "Cüzdanlar", - "show_seed": "Tohumları göster", - "show_keys": "Tohumları/anahtarları göster", - "address_book_menu": "Adres defteri", - "reconnection": "Yeniden bağlantı", - "reconnect_alert_text": "Yeniden bağlanmak istediğinden emin misin?", - "exchange": "Takas", - "clear": "Temizle", - "refund_address": "İade adresi", - "change_exchange_provider": "Takas sağlayıcısını değiştir", - "you_will_send": "Biçiminden dönüştür:", - "you_will_get": "Biçimine dönüştür:", - "amount_is_guaranteed": "Alacağınız tutar garantilidir", - "amount_is_estimate": "Alacağınız tutar tahminidir", - "powered_by": "${title} tarafından desteklenmektedir", - "error": "Hata", - "estimated": "Tahmini", - "min_value": "En az: ${value} ${currency}", - "max_value": "En fazla: ${value} ${currency}", - "change_currency": "Para Birimini Değiştir", - "overwrite_amount": "Miktarın üzerine yaz", - "qr_payment_amount": "Bu QR kodu ödeme tutarını içeriyor. Geçerli miktarın üzerine yazmak istediğine emin misin?", - "copy_id": "ID'yi kopyala", - "exchange_result_write_down_trade_id": "Devam etmek için lütfen ID'yi kopyala veya bir yere yaz.", - "trade_id": "Takas ID'si:", - "copied_to_clipboard": "Panoya Kopyalandı", - "saved_the_trade_id": "Takas ID'imi kaydettim", - "fetching": "Getiriliyor", - "id": "ID: ", - "amount": "Miktar: ", - "payment_id": "Ödeme ID'si: ", - "status": "Durum: ", - "offer_expires_in": "Teklifin bitmesine kalan: ", - "trade_is_powered_by": "Bu takas ${provider} tarafından desteklenmektedir", - "copy_address": "Adresi kopyala", - "exchange_result_confirm": "Onaylaya basarak, ${fetchingLabel} ${from} miktarında ${walletName} olarak adlandırılan cüzdanından aşağıda gösterilen adrese gönderilecek. Veya harici cüzdanından aşağıdaki adrese / QR koduna gönderebilirsin.\n\nLütfen devam etmek için onayla'ya bas veya tutarı değiştirmek için geri dön.", - "exchange_result_description": "Lütfen en az ${fetchingLabel} miktarındaki ${from}'yi sonraki sayfada gönsterilen adrese gönder. Eğer ${fetchingLabel} ${from}'den az gönderirsen takas gerçekleşmeyebilir ve size geri iade edilebilir.", - "exchange_result_write_down_ID": "*Lütfen yukarıda gösterilen ID'ni kopyala veya bir yere yaz.", - "confirm": "Onayla", - "confirm_sending": "Göndermeyi onayla", - "commit_transaction_amount_fee": "Transferi gerçekleştir\nMiktar: ${amount}\nKomisyon: ${fee}", - "sending": "Gönderiliyor", - "transaction_sent": "Transfer gönderildi!", - "expired": "Süresi doldu", - "time": "${minutes}d ${seconds}s", - "send_xmr": "XMR gönder", - "exchange_new_template": "Yeni şablon", - "faq": "SSS", - "enter_your_pin": "PIN'ini gir", - "loading_your_wallet": "Cüzdanın yükleniyor", - "new_wallet": "Yeni Cüzdan", - "wallet_name": "Cüzdan ismi", - "continue_text": "Devam et", - "choose_wallet_currency": "Lütfen cüzdanın para birimini seç:", - "node_new": "Yeni düğüm", - "node_address": "Düğüm adresi", - "node_port": "Düğüm port'u", - "login": "Login", - "password": "Parola", - "nodes": "Düğümler", - "node_reset_settings_title": "Ayarları sıfırla", - "nodes_list_reset_to_default_message": "Ayarları varsayılana sıfırlamak istediğinizden emin misin?", - "change_current_node": "Şimdiki düğümü ${node} düğümüne değiştirmek istediğinizden emin misin?", - "change": "Değiştir", - "remove_node": "Düğümü kaldır", - "remove_node_message": "Seçili düğümü kaldırmak istediğinden emin misin?", - "remove": "Kaldır", - "delete": "Sil", - "add_new_node": "Yeni düğüm ekle", - "change_current_node_title": "Şimdiki düğümü değiştir", - "node_test": "Test Et", - "node_connection_successful": "Bağlantı başarılı oldu", - "node_connection_failed": "Bağlantı başarısız oldu", - "new_node_testing": "Yeni düğüm test ediliyor", - "use": "Şuna geç: ", - "digit_pin": " haneli PIN", - "share_address": "Adresi paylaş", - "receive_amount": "Miktar", - "subaddresses": "Alt adresler", "addresses": "Adresler", - "scan_qr_code_to_get_address": "Adresi getirmek için QR kodunu tara", - "qr_fullscreen": "QR kodunu tam ekranda açmak için dokun", - "rename": "Yeniden adlandır", - "choose_account": "Hesabı seç", - "create_new_account": "Yeni hesap oluştur", - "accounts_subaddresses": "Hesaplar ve alt adresler", - "restore_restore_wallet": "Cüzdanı Geri Döndür", - "restore_title_from_seed_keys": "Tohumdan/anahtarlardan geri döndür", - "restore_description_from_seed_keys": "Güvenli bir yere kaydettiğin tohumdan/anahtarlardan cüzdanını geri döndür", - "restore_next": "İleri", - "restore_title_from_backup": "Yedekten geri döndür", - "restore_description_from_backup": "Yedek dosyandan tüm Cake Wallet uygulamasını geri döndürebilirsin", - "restore_seed_keys_restore": "Tohumu/Anahtarları Geri Döndür", - "restore_title_from_seed": "Tohumdan geri döndür", - "restore_description_from_seed": "Cüzdanınızı 25 veya 13 kelimelik kombinasyon kodundan geri döndürün", - "restore_title_from_keys": "Anahtarlardan geri döndür", - "restore_description_from_keys": "Cüzdanınızı özel anahtarlarınızdan kaydedilen oluşturulmuş tuş vuruşlarından geri yükleyin", - "restore_wallet_name": "Cüzdan ismi", - "restore_address": "Adres", - "restore_view_key_private": "İzleme anahtarı (Özel)", - "restore_spend_key_private": "Harcama anahtarı (Özel)", - "restore_recover": "Geri döndür", - "restore_wallet_restore_description": "Cüzdan geri döndürme açıklaması", - "restore_new_seed": "Yeni tohum", - "restore_active_seed": "Tohumu aktifleştir", - "restore_bitcoin_description_from_seed": "Cüzdanınızı 24 kelimelik kombinasyon kodundan geri yükle", - "restore_bitcoin_description_from_keys": "Cüzdanını, oluşturulan WIF dizesinden veya özel anahtarlarından geri yükle", - "restore_bitcoin_title_from_keys": "WIF'den geri yükle", - "restore_from_date_or_blockheight": "Lütfen bu cüzdanı oluşturmadan birkaç gün önceki bir tarihi girin. Veya blok yüksekliğini biliyorsan, lütfen bunu gir", - "seed_reminder": "Telefonunu kaybetmen veya silinmesi ihtimaline karşı lütfen bunları not et", - "seed_title": "Tohum", - "seed_share": "Tohumu paylaş", - "copy": "Kopyala", - "seed_language": "Tohum dili", - "seed_choose": "Tohum dilini seçin", - "seed_language_next": "İleri", - "seed_language_english": "İngilizce", - "seed_language_chinese": "Çince", - "seed_language_dutch": "Flemenkçe", - "seed_language_german": "Almanca", - "seed_language_japanese": "Japonca", - "seed_language_portuguese": "Portekizce", - "seed_language_russian": "Rusça", - "seed_language_spanish": "İspanyolca", - "seed_language_french": "Fransızca", - "seed_language_italian": "İtalyanca", - "send_title": "Gönder", - "send_your_wallet": "Cüzdanın", - "send_address": "${cryptoCurrency} adresi", - "send_payment_id": "Ödeme ID'si (isteğe bağlı)", + "advanced_settings": "Gelişmiş Ayarlar", + "aggressive": "Aşırı duyarlı", + "agree": "Kabul Et", + "agree_and_continue": "Kabul Et & Devam Et", + "agree_to": "Hesap oluşturarak bunları kabul etmiş olursunuz ", "all": "HEPSİ", - "send_error_minimum_value": "Minimum tutar değeri 0.01'dir", - "send_error_currency": "Para birimi sadece sayı içerebilir", - "send_estimated_fee": "Tahmini komisyon:", - "send_priority": "Şu anda ücret ${transactionPriority} önceliğine ayarlanmıştır.\nİşlem önceliği ayarlardan değiştirilebilir", - "send_creating_transaction": "İşlem oluşturuluyor", - "send_templates": "Şablonlar", - "send_new": "Yeni", - "send_amount": "Miktar:", - "send_fee": "Komisyon:", - "send_name": "İsim", - "got_it": "Tamamdır", - "send_sending": "Gönderiliyor...", - "send_success": "${crypto} başarıyla gönderildi", - "settings_title": "Ayarlar", - "settings_nodes": "Düğümler", - "settings_current_node": "Şimdiki düğüm", - "settings_wallets": "Cüzdanlar", - "settings_display_balance": "Bakiyeyi göster", - "settings_currency": "Para birimi", - "settings_fee_priority": "İşlem Komsiyonu önceliği", - "settings_save_recipient_address": "Gönderilen adresi kaydet", - "settings_personal": "Kişisel", - "settings_change_pin": "PIN'i değiştir", - "settings_change_language": "Dili değiştir", - "settings_allow_biometrical_authentication": "Biyometrik doğrulamaya izin ver", - "settings_dark_mode": "Karanlık mod", - "settings_transactions": "İşlemler", - "settings_trades": "Takaslar", - "settings_display_on_dashboard_list": "Gösterge tablosu listesinde göster", - "settings_all": "HEPSİ", - "settings_only_trades": "Sadece takaslar", - "settings_only_transactions": "Sadece transferler", - "settings_none": "Hiçbiri", - "settings_support": "Destek", - "settings_terms_and_conditions": "Şartlar ve Koşullar", - "pin_is_incorrect": "PIN kodu hatalı", - "setup_pin": "PIN kodu kurulumu", - "enter_your_pin_again": "PIN kodunu tekrar girin", - "setup_successful": "PIN kodun başarıyla ayarlandı!", - "wallet_keys": "Cüzdan tohumu/anahtarları", - "wallet_seed": "Cüzdan tohumu", - "private_key": "Özel anahtar", - "public_key": "Genel Anahtar", - "view_key_private": "İzleme anahtarı (özel)", - "view_key_public": "İzleme anahtarı (genel)", - "spend_key_private": "Harcama anahtarı (özel)", - "spend_key_public": "Harcama anahtarı (genel)", - "copied_key_to_clipboard": "${key} panoya kopyalandı", - "new_subaddress_title": "Yeni adres", - "new_subaddress_label_name": "Etiket ismi", - "new_subaddress_create": "Oluştur", - "address_label": "Adres etiketi", - "subaddress_title": "Alt adres listesi", - "trade_details_title": "Takas Detayları", - "trade_details_id": "ID", - "trade_details_state": "Durum", - "trade_details_fetching": "Getiriliyor", - "trade_details_provider": "Sağlayıcı", - "trade_details_created_at": "'da oluşturuldu", - "trade_details_pair": "Parite", - "trade_details_copied": "${title} panoya kopyalandı", - "trade_history_title": "Takas geçmişi", - "transaction_details_title": "İşlem Detayları", - "transaction_details_transaction_id": "İşem ID'si", - "transaction_details_date": "Tarih", - "transaction_details_height": "Yükseklik", - "transaction_details_amount": "Miktar", - "transaction_details_fee": "Fee", - "transaction_details_copied": "${title} panoya kopyalandı", - "transaction_details_recipient_address": "Alıcı adres", - "wallet_list_title": "Monero Cüzdanı", - "wallet_list_create_new_wallet": "Yeni Cüzdan Oluştur", - "wallet_list_edit_wallet": "Cüzdanı düzenle", - "wallet_list_wallet_name": "Cüzdan adı", - "wallet_list_restore_wallet": "Cüzdanı Geri Yükle", - "wallet_list_load_wallet": "Cüzdanı yükle", - "wallet_list_loading_wallet": "${wallet_name} cüzdanı yükleniyor", - "wallet_list_failed_to_load": "Failed to load ${wallet_name} wallet. ${error}", - "wallet_list_removing_wallet": "Removing ${wallet_name} wallet", - "wallet_list_failed_to_remove": "${wallet_name} cüzdanı yüklenirken hata oluştu. ${error}", - "widgets_address": "Adres", - "widgets_restore_from_blockheight": "Blok yüksekliğinden geri yükle", - "widgets_restore_from_date": "Tarihten geri yükle", - "widgets_or": "veya", - "widgets_seed": "Tohum", - "router_no_route": "${name} için rota tanımlanmadı", - "error_text_account_name": "Hesap ismi yalnızca harf, rakam \nve 1 ile 15 uzunluğunda karakter içermelidir.", - "error_text_contact_name": "Kişi ismi ` , ' \" sembollerini içeremez \nve 1 ile 32 uzunluğunda karakter içermelidir", - "error_text_address": "Cüzdan adresi kripto para biriminin\ntürüne karşılık gelmelidir", - "error_text_node_address": "Lütfen iPv4 adresi girin", - "error_text_node_port": "Düğüm port'u yalnızca 0 ve 65535 arasında rakam içerebilir", - "error_text_node_proxy_address": "Lütfen : girin, örneğin 127.0.0.1:9050", - "error_text_payment_id": "Ödeme ID'si yalnızca onaltılık (hex) olarak 16 veya 64 karakter içerebilir", - "error_text_xmr": "XMR miktarı kullanılabilir bakiyeyi aşamaz.\nKesir basamaklarının sayısı 12'ye eşit veya daha az olmalıdır", - "error_text_fiat": "Tutarın değeri, mevcut bakiyeyi aşamaz.\nKesir basamaklarının sayısı 2'ye eşit veya daha az olmalıdır", - "error_text_subaddress_name": "Alt adres ismi ` , ' \" sembolleri içeremez\nve 1 ile 20 karakter arasında olmalıdır", - "error_text_amount": "Miktar sadece sayı içerebilir", - "error_text_wallet_name": "Cüzdan ismi yalnızca harf, rakam \nve 1 ile 33 uzunluğunda karakter içermelidir.", - "error_text_keys": "Cüzdan anahtarları onaltılık (hex) olarak yalnızca 64 karakter içerebilir", - "error_text_crypto_currency": "Kesir basamaklarının sayısı\n12'ye eşit veya daha az olmalıdır", - "error_text_minimal_limit": "${provider} için işlem oluşturulmadı. Miktar minimumdan daha azdır: ${min} ${currency}", - "error_text_maximum_limit": "${provider} için işlem oluşturulmadı. Miktar maksimumdan daha fazla: ${max} ${currency}", - "error_text_limits_loading_failed": "${provider} için işlem oluşturulmadı. Limitler yüklenirken hata oluştu.", - "error_text_template": "Şablon adı ve adresi ` , ' \" sembolleri içeremez\nve 1 ila 106 karakter uzunluğunda olmalı", + "all_trades": "Tüm takaslar", + "all_transactions": "Tüm transferler", + "alphabetical": "Alfabetik", + "already_have_account": "Zaten bir hesabınız var mı?", + "always": "Her Zaman", + "amount": "Miktar: ", + "amount_is_estimate": "Alacağınız tutar tahminidir", + "amount_is_guaranteed": "Alacağınız tutar garantilidir", + "and": "ve", + "anonpay_description": "${type} oluşturun. Alıcı, desteklenen herhangi bir kripto para birimi ile ${method} yapabilir ve bu cüzdanda para alırsınız.", + "apk_update": "APK güncellemesi", + "approve": "Onaylamak", + "arrive_in_this_address": "${currency} ${tag}bu adrese ulaşacak", + "ascending": "Yükselen", + "ask_each_time": "Her seferinde sor", "auth_store_ban_timeout": "ban_timeout", "auth_store_banned_for": "Bu kadar süreliğine yasaklandınız: ", "auth_store_banned_minutes": " dakika", "auth_store_incorrect_password": "Hatalı PIN", - "wallet_store_monero_wallet": "Monero Cüzdanı", - "wallet_restoration_store_incorrect_seed_length": "Yanlış tohum uzunluğu", - "full_balance": "Tüm bakiye", - "available_balance": "Kullanılabilir Bakiye", - "hidden_balance": "Gizli Bakiye", - "sync_status_syncronizing": "SENKRONİZE EDİLİYOR", - "sync_status_syncronized": "SENKRONİZE EDİLDİ", - "sync_status_not_connected": "BAĞLI DEĞİL", - "sync_status_starting_sync": "SENKRONİZE BAŞLATILIYOR", - "sync_status_failed_connect": "BAĞLANTI KESİLDİ", - "sync_status_connecting": "BAĞLANILIYOR", - "sync_status_connected": "BAĞLANILDI", - "sync_status_attempting_sync": "SENKRONİZE EDİLMEYE ÇALIŞILIYOR", - "transaction_priority_slow": "Yavaş", - "transaction_priority_regular": "Normal", - "transaction_priority_medium": "Orta", - "transaction_priority_fast": "Hızlı", - "transaction_priority_fastest": "En Hızlı", - "trade_for_not_created": "${title} için takas oluşturulmadı.", - "trade_not_created": "Takas oluşturulmadı", - "trade_id_not_found": "Trade ${tradeId} of ${title} not found.", - "trade_not_found": "Takas bulunamadı.", - "trade_state_pending": "Beklemede", - "trade_state_confirming": "Onaylanıyor", - "trade_state_trading": "Takas yapılıyor", - "trade_state_traded": "Takas yapıldı", - "trade_state_complete": "Tamamlandı", - "trade_state_to_be_created": "Oluşturulacak", - "trade_state_unpaid": "Ödenmedi", - "trade_state_underpaid": "Eksik ödendi", - "trade_state_paid_unconfirmed": "Ödendi onaylanmadı", - "trade_state_paid": "Ödendi", - "trade_state_btc_sent": "Btc gönderildi", - "trade_state_timeout": "Zaman aşımı", - "trade_state_created": "Oluşturuldu", - "trade_state_finished": "Tamamlandı", - "change_language": "Dili değiştir", - "change_language_to": "Dili şuna değiştir: ${language}?", - "paste": "Yapıştır", - "restore_from_seed_placeholder": "Lütfen tohumunu buraya gir veya yapıştır", - "add_new_word": "Yeni kelime ekle", - "incorrect_seed": "Girilen metin geçerli değil.", - "biometric_auth_reason": "Kimlik doğrulaması için parmak izini okutun", - "version": "Sürüm ${currentVersion}", - "extracted_address_content": "Parayı buraya gönderceksin:\n${recipient_name}", - "card_address": "Adres:", - "buy": "Alış", - "sell": "Satış", - "placeholder_transactions": "İşlemlerin burada görüntülenecek", - "placeholder_contacts": "Kişilerin burada görüntülenecek", - "template": "Şablon", - "confirm_delete_template": "Bu eylem, bu şablonu silecek. Devam etmek istiyor musun?", - "confirm_delete_wallet": "Bu eylem, bu cüzdanı silecek. Devam etmek istiyor musun?", - "change_wallet_alert_title": "Şimdiki cüzdanı değiştir", - "change_wallet_alert_content": "Şimdiki cüzdanı ${wallet_name} cüzdanı ile değiştirmek istediğinden emin misin?", - "creating_new_wallet": "Cüzdan oluşturuluyor", - "creating_new_wallet_error": "Hata: ${description}", - "seed_alert_title": "Dikkat", - "seed_alert_content": "Cüzdanını kurtarmanın tek yolu tohumdur. Tohumunu yazdın mı?", - "seed_alert_back": "Geriye dön", - "seed_alert_yes": "Evet yazdım", - "exchange_sync_alert_content": "Lütfen cüzdanın senkronize olana kadar bekle", - "pre_seed_title": "UYARI", - "pre_seed_description": "Bir sonraki sayfada ${words} kelime göreceksin. Bu senin benzersiz ve özel tohumundur, kaybetmen veya silinmesi durumunda cüzdanını kurtarmanın TEK YOLUDUR. Bunu yazmak ve Cake Wallet uygulaması dışında güvenli bir yerde saklamak tamamen SENİN sorumluluğunda.", - "pre_seed_button_text": "Anladım. Bana tohumumu göster.", - "xmr_to_error": "XMR.TO hatası", - "xmr_to_error_description": "Geçersiz tutar. Ondalık noktadan sonra maksimum limit 8 basamaktır", - "provider_error": "${provider} hatası", - "use_ssl": "SSL kullan", - "trusted": "Güvenilir", - "color_theme": "Renk teması", - "light_theme": "Aydınlık", - "bright_theme": "Parlak", - "dark_theme": "Karanlık", - "enter_your_note": "Notunu gir…", - "note_optional": "Not (isteğe bağlı)", - "note_tap_to_change": "Not (değiştirmek için dokunun)", - "view_in_block_explorer": "Blok Gezgini'nde görüntüle", - "view_transaction_on": "İşlemi şurada görüntüle ", - "transaction_key": "İşlem Anahtarı", - "confirmations": "Onay", - "recipient_address": "Alıcı adresi", - "extra_id": "Ekstra ID:", - "destination_tag": "Hedef Etiketi:", - "memo": "Memo:", - "backup": "Yedek", - "change_password": "Parolayı değiştir", - "backup_password": "Yedek parolası", - "write_down_backup_password": "Lütfen yedekleme dosyasının içe aktarılması için kullanılan yedekleme parolanı not et.", - "export_backup": "Yedeği dışa aktar", - "save_backup_password": "Lütfen yedekleme parolanı kaydettiğinden emin ol. Bu parola olmadan yedekleme dosyasını içe aktaramazsın.", - "backup_file": "Yedek dosyası", - "edit_backup_password": "Yedek parolasını değiştir", - "save_backup_password_alert": "Yedek parolasını kaydet", - "change_backup_password_alert": "Önceki yedekleme dosyaların yeni yedek parolası ile içe aktarılamayacaktır. Yeni yedekleme parolası yalnızca yeni yedekleme dosyaları için kullanılabilir olacak. Yedekleme parolasını değiştirmek istediğinden emin misin?", - "enter_backup_password": "Yedekleme parolasını buraya gir", - "select_backup_file": "Yedek dosyası seç", - "import": "İçe aktarmak", - "please_select_backup_file": "Lütfen yedekleme dosyasını seç ve yedekleme parolasını gir.", - "fixed_rate": "Sabit oran", - "fixed_rate_alert": "Sabit oran modunu işaretlersen alım tutarını girebilirsin. Sabit oran moduna geçmek ister misin?", - "xlm_extra_info": "Lütfen takas için XLM işlemi gönderirken Memo ID'yi belirtmeyi unutmayın", - "xrp_extra_info": "Lütfen takas için XRP işlemi gönderirken Hedef Etiketi (Destination Tag) belirtmeyi unutmayın", - "exchange_incorrect_current_wallet_for_xmr": "Cake Wallet'daki Monero bakiyenizi kullanarak takas yapmak istiyorsan, lütfen önce Monero cüzdanına geç.", - "confirmed": "Onaylanmış Bakiye", - "unconfirmed": "Onaylanmamış Bakiye", - "displayable": "Gösterilebilir", - "submit_request": "talep gönder", - "buy_alert_content": "Şu anda yalnızca Bitcoin, Ethereum, Litecoin ve Monero satın alımını destekliyoruz. Lütfen Bitcoin, Ethereum, Litecoin veya Monero cüzdanınızı oluşturun veya cüzdanınıza geçin.", - "sell_alert_content": "Şu anda yalnızca Bitcoin, Ethereum ve Litecoin satışını destekliyoruz. Lütfen Bitcoin, Ethereum veya Litecoin cüzdanınızı oluşturun veya cüzdanınıza geçin.", - "outdated_electrum_wallet_description": "Cake'te oluşturulan yeni Bitcoin cüzdanları artık 24 kelimelik bir tohuma sahip. Yeni bir Bitcoin cüzdanı oluşturmanız ve tüm paranızı 24 kelimelik yeni cüzdana aktarmanız ve 12 kelimelik tohuma sahip cüzdanları kullanmayı bırakmanız zorunludur. Lütfen paranızı güvence altına almak için bunu hemen yapın.", - "understand": "Anladım", - "apk_update": "APK güncellemesi", - "buy_bitcoin": "Bitcoin Satın Al", - "buy_with": "Şunun ile al: ", - "moonpay_alert_text": "Tutar ${minAmount} ${fiatCurrency} miktarına eşit veya daha fazla olmalıdır", - "outdated_electrum_wallet_receive_warning": "Bu cüzdanın 12 kelimelik bir tohumu varsa ve Cake'te oluşturulduysa, bu cüzdana Bitcoin YATIRMAYIN. Bu cüzdana aktarılan tüm BTC'ler kaybolabilir. 24 kelimelik yeni bir cüzdan oluşturun (sağ üstteki menüye dokunun, Cüzdanlar'ı seçin, Yeni Cüzdan Oluştur'u seçin, ardından Bitcoin'i seçin) ve BTC'nizi HEMEN oraya taşıyın. Cake'in yeni (24 kelimelik) BTC cüzdanları güvenlidir", - "do_not_show_me": "Bana bunu bir daha gösterme", - "unspent_coins_title": "Harcanmamış koinler", - "unspent_coins_details_title": "Harcanmamış koin detayları", - "freeze": "Dondur", - "frozen": "Dondurulmuş", - "coin_control": "Koin kontrolü (isteğe bağlı)", - "address_detected": "Adres tespit edildi", - "address_from_domain": "Bu adres Unstoppable Domains'deki' ${domain} adresinden alındı", - "add_receiver": "Başka bir alıcı ekle (isteğe bağlı)", - "manage_yats": "Yats'ları yönet", - "yat_alert_title": "Yat ile daha kolay kripto gönderin ve alın", - "yat_alert_content": "Cake Wallet kullanıcıları artık tüm favori koin birimlerini benzersiz emoji tabanlı kullanıcı adıyla gönderebilir ve alabilirler.", - "get_your_yat": "Yat'ını al", - "connect_an_existing_yat": "Mevcut bir Yat'ı bağla", - "connect_yats": "Yat'lara bağlan", - "yat_address": "Yat adresi", - "yat": "Yat", - "address_from_yat": "Bu adres Yat'taki ${emoji} adresinden alındı", - "yat_error": "Yat hatası", - "yat_error_content": "Bu Yat'a bağlı bir adres yok. Başka bir Yat'ı deneyin", - "choose_address": "\n\nLütfen adresi seçin:", - "yat_popup_title": "Cüzdan adresiniz emojileştirilebilir.", - "yat_popup_content": "Artık Cake Wallet'ta kısa, emoji tabanlı bir kullanıcı adı olan Yat'ınızla kripto gönderebilir ve alabilirsiniz. Yats'ı istediğiniz zaman ayarlar ekranından yönetebilirsiniz", - "second_intro_title": "Hepsini yönetebilen tek bir emoji adresi", - "second_intro_content": "Yat'ınız, tüm para birimleriniz için uzun onaltılık adreslerinizin yerini alan benzersiz emoji adresidir.", - "third_intro_title": "Yat diğerleriyle iyi çalışır", - "third_intro_content": "Yat'lar Cake Wallet'ın dışında da çalışabilir. Dünya üzerindeki herhangi bir cüzdan adresi Yat ile değiştirilebilir!", - "learn_more": "Daha fazla öğren", - "search": "Arat", - "search_language": "Dil arat", - "search_currency": "Para birimi ara", - "new_template": "Yeni Şablon", - "electrum_address_disclaimer": "Adresini her kullandığında yeni adres oluşturuyoruz, ancak önceki adresler de çalışmaya devam eder", - "wallet_name_exists": "Bu isimde bir cüzdan zaten mevcut. Lütfen farklı bir isim seç veya önce diğer cüzdanı yeniden adlandır.", - "market_place": "Pazar Alanı", - "cake_pay_title": "Cake Pay Hediye Kartları", - "cake_pay_subtitle": "İndirimli hediye kartları satın alın (yalnızca ABD)", - "cake_pay_web_cards_title": "Cake Pay Web Kartları", - "cake_pay_web_cards_subtitle": "Dünya çapında ön ödemeli kartlar ve hediye kartları satın alın", - "about_cake_pay": "Cake Pay, Amerika Birleşik Devletleri'ndeki 150.000'den fazla işyerinde anında harcanabilen sanal varlıklarla kolayca hediye kartları satın almanızı sağlar.", - "cake_pay_account_note": "Kartları görmek ve satın almak için sadece bir e-posta adresiyle kaydolun. Hatta bazıları indirimli olarak bile mevcut!", - "already_have_account": "Zaten bir hesabınız var mı?", - "create_account": "Hesap oluştur", - "privacy_policy": "Gizlilik Politikası", - "welcome_to_cakepay": "Cake Pay'e Hoş Geldiniz!", - "sign_up": "Kaydol", - "forgot_password": "Parolamı unuttum", - "reset_password": "Parolamı sıfırla", - "gift_cards": "Hediye kartları", - "setup_your_debit_card": "Banka kartını ayarla", - "no_id_required": "Kimlik gerekmez. Para yükleyin ve istediğiniz yerde harcayın", - "how_to_use_card": "Bu kart nasıl kullanılır", - "purchase_gift_card": "Hediye Kartı Satın Al", - "verification": "Doğrulama", - "fill_code": "Lütfen e-postanıza gelen doğrulama kodunu girin", - "didnt_get_code": "Kod gelmedi mi?", - "resend_code": "Lütfen tekrar gönder", - "debit_card": "Ön ödemeli Kart", - "cakepay_prepaid_card": "CakePay Ön Ödemeli Kart", - "no_id_needed": "Kimlik gerekmez!", - "frequently_asked_questions": "Sıkça sorulan sorular", - "debit_card_terms": "Ödeme kartı numaranızın (ve kart numaranıza karşılık gelen kimlik bilgilerinin) bu dijital cüzdanda saklanması ve kullanılması, zaman zaman yürürlükte olan ödeme kartı veren kuruluşla yapılan ilgili kart sahibi sözleşmesinin Hüküm ve Koşullarına tabidir.", - "please_reference_document": "Daha fazla bilgi için lütfen aşağıdaki belgelere bakınız.", - "cardholder_agreement": "Kart Sahibi Sözleşmesi", - "e_sign_consent": "E-İmza Onayı", - "agree_and_continue": "Kabul Et & Devam Et", - "email_address": "E-posta Adresi", - "agree_to": "Hesap oluşturarak bunları kabul etmiş olursunuz ", - "and": "ve", - "enter_code": "Kodu girin", - "congratulations": "Tebrikler!", - "you_now_have_debit_card": "Artık bir ön ödemeli kartın var", - "min_amount": "Min: ${value}", - "max_amount": "Maks: ${value}", - "enter_amount": "Miktar Girin", - "billing_address_info": "Eğer fatura adresi istenirse, kargo adresinizi girin", - "order_physical_card": "Fiziksel Kart Siparişi", - "add_value": "Değer ekle", - "activate": "Aktifleştir", - "get_a": "Bir ", - "digital_and_physical_card": " Dijital para birimleri ile para yükleyebileceğiniz ve ek bilgiye gerek olmayan", - "get_card_note": " dijital ve fiziksel ön ödemeli banka kartı edinin!", - "signup_for_card_accept_terms": "Kart için kaydol ve koşulları kabul et.", - "add_fund_to_card": "Ön ödemeli kartlara para ekle (En fazla yüklenebilir tutar: ${value})", - "use_card_info_two": "Paralar, dijital para birimlerinde değil, ön ödemeli hesapta tutulduğunda USD'ye dönüştürülür.", - "use_card_info_three": "Dijital kartı çevrimiçi olarak veya temassız ödeme yöntemleriyle kullanın.", - "optionally_order_card": "İsteğe bağlı olarak fiziksel bir kart sipariş edin.", - "hide_details": "Detayları Gizle", - "show_details": "Detayları Göster", - "upto": "Şu miktara kadar: ${value}", - "discount": "%${value} tasarruf et", - "gift_card_amount": "Hediye Kartı Tutarı", - "bill_amount": "Fatura Tutarı", - "you_pay": "Şu kadar ödeyeceksin: ", - "tip": "Bahşiş:", - "custom": "özel", - "by_cake_pay": "Cake Pay tarafından", - "expires": "Son kullanma tarihi", - "mm": "AA", - "yy": "YY", - "online": "Çevrimiçi", - "offline": "Çevrimdışı", - "gift_card_number": "Hediye kartı numarası", - "pin_number": "PIN kodu", - "total_saving": "Toplam Tasarruf", - "last_30_days": "Son 30 gün", - "avg_savings": "Ortalama Tasarruf", - "view_all": "Hepsini göster", - "active_cards": "Aktif kartlar", - "delete_account": "Hesabı sil", - "cards": "Kartlar", - "active": "Aktif", - "redeemed": "Kullanılmış", - "gift_card_balance_note": "Bakiyesi kalan olan hediye kartları burada görünecek", - "gift_card_redeemed_note": "Harcadığın hediye kartları burada görünecek", - "logout": "Çıkış yap", - "add_tip": "Bahşiş Ekle", - "percentageOf": "of ${amount}", - "is_percentage": "is", - "search_category": "Kategori ara", - "mark_as_redeemed": "Harcanmış olarak işaretle", - "more_options": "Daha Fazla Seçenek", - "awaiting_payment_confirmation": "Ödemenin onaylanması bekleniyor", - "transaction_sent_notice": "Ekran 1 dakika sonra ilerlemezse, blok gezgininden ve e-postanızdan kontrol edin.", - "agree": "Kabul Et", - "in_store": "Mağazada", - "generating_gift_card": "Hediye Kartı Oluşturuluyor", - "payment_was_received": "Ödemeniz alındı.", - "proceed_after_one_minute": "Ekran 1 dakika sonra ilerlemezse, e-postanızı kontrol edin.", - "order_id": "Sipariş ID'si", - "gift_card_is_generated": "Hediye Kartı oluşturuldu", - "open_gift_card": "Hediye Kartını Aç", - "contact_support": "Destek ile İletişime Geç", - "gift_cards_unavailable": "Hediye kartları şu anda yalnızca Monero, Bitcoin ve Litecoin ile satın alınabilir", - "introducing_cake_pay": "Cake Pay ile tanışın!", - "cake_pay_learn_more": "Uygulamada anında hediye kartları satın alın ve harcayın!\nDaha fazla öğrenmek için soldan sağa kaydır.", - "automatic": "Otomatik", - "fixed_pair_not_supported": "Bu sabit paritesi seçilen borsalarda desteklenmemekte", - "variable_pair_not_supported": "Bu değişken paritesi seçilen borsalarda desteklenmemekte", - "none_of_selected_providers_can_exchange": "Seçilen sağlayıcılardan hiçbiri bu takası yapamaz", - "choose_one": "Birini seç", - "choose_from_available_options": "Mevcut seçenekler arasından seçim yap:", - "custom_redeem_amount": "Özel Harcama Tutarı", - "add_custom_redemption": "Özel Bozdurma Ekle", - "remaining": "kalan", - "delete_wallet": "Cüzdanı sil", - "delete_wallet_confirm_message": "${wallet_name} isimli cüzdanını silmek istediğinden emin misin?", - "low_fee": "Düşük komisyon", - "low_fee_alert": "Şu anda düşük bir ağ ücreti önceliği kullanıyorsunuz. Bu durum uzun beklemeler, farklı oranlar veya iptal edilen işlemlere neden olabilir. Daha iyi bir deneyim için daha yüksek bir ücret belirlemenizi öneririz.", - "ignor": "Yoksay", - "use_suggested": "Önerileni Kullan", - "do_not_share_warning_text": "Bunları destek de dahil olmak üzere başka kimseyle paylaşma.\n\nParan çalınabilir ve çalınacaktır!", - "help": "yardım", - "all_transactions": "Tüm transferler", - "all_trades": "Tüm takaslar", - "connection_sync": "Bağlantı ve senkronizasyon", - "security_and_backup": "Güvenlik ve yedekleme", - "create_backup": "Yedek oluştur", - "privacy_settings": "Gizlilik ayarları", - "privacy": "Gizlilik", - "display_settings": "Görüntü ayarları", - "other_settings": "Diğer ayarlar", - "require_pin_after": "Şu kadar süre sonra PIN iste", - "always": "Her Zaman", - "minutes_to_pin_code": "${minute} dakika", - "disable_exchange": "Borsayı devre dışı bırak", - "advanced_settings": "Gelişmiş Ayarlar", - "settings_can_be_changed_later": "Bu ayarlar daha sonra uygulama ayarlarından da değiştirilebilir", - "add_custom_node": "Yeni Özel Düğüm Ekleme", - "disable_fiat": "İtibari paraları devre dışı bırak", - "fiat_api": "İtibari Para API", - "disabled": "Devre dışı", - "enabled": "Etkin", - "tor_only": "Yalnızca Tor", - "unmatched_currencies": "Mevcut cüzdanınızın para birimi taranan QR ile eşleşmiyor", - "orbot_running_alert": "Lütfen bu düğüme bağlanmadan önce Orbot'un çalıştığından emin olun.", - "contact_list_contacts": "Rehberim", - "contact_list_wallets": "Cüzdanlarım", - "bitcoin_payments_require_1_confirmation": "Bitcoin ödemeleri, 20 dakika veya daha uzun sürebilen 1 onay gerektirir. Sabrınız için teşekkürler! Ödeme onaylandığında e-posta ile bilgilendirileceksiniz.", - "send_to_this_address": "Bu adrese ${currency} ${tag}gönder", - "arrive_in_this_address": "${currency} ${tag}bu adrese ulaşacak", - "do_not_send": "Gönderme", - "error_dialog_content": "Hay aksi, bir hatamız var.\n\nUygulamayı daha iyi hale getirmek için lütfen kilitlenme raporunu destek ekibimize gönderin.", - "scan_qr_code": "QR kodunu tarayın", - "cold_or_recover_wallet": "Soğuk bir cüzdan ekleyin veya bir kağıt cüzdanı kurtarın", - "please_wait": "Lütfen bekleyin", - "sweeping_wallet": "Süpürme cüzdanı", - "sweeping_wallet_alert": "Bu uzun sürmemeli. BU EKRANDAN BIRAKMAYIN YOKSA SÜPÜRÜLEN FONLAR KAYBOLABİLİR", - "decimal_places_error": "Çok fazla ondalık basamak", - "edit_node": "Düğümü Düzenle", - "invoice_details": "fatura detayları", - "donation_link_details": "Bağış bağlantısı ayrıntıları", - "anonpay_description": "${type} oluşturun. Alıcı, desteklenen herhangi bir kripto para birimi ile ${method} yapabilir ve bu cüzdanda para alırsınız.", - "create_invoice": "Fatura oluşturmak", - "create_donation_link": "Bağış bağlantısı oluştur", - "optional_email_hint": "İsteğe bağlı alacaklı bildirim e-postası", - "optional_description": "İsteğe bağlı açıklama", - "optional_name": "İsteğe bağlı alıcı adı", - "clearnet_link": "Net bağlantı", - "onion_link": "soğan bağlantısı", - "settings": "ayarlar", - "sell_monero_com_alert_content": "Monero satışı henüz desteklenmiyor", - "error_text_input_below_minimum_limit": "Miktar minimumdan daha azdır", - "error_text_input_above_maximum_limit": "Miktar maksimumdan daha fazla", - "show_market_place": "Pazar Yerini Göster", - "prevent_screenshots": "Ekran görüntülerini ve ekran kaydını önleyin", - "profile": "Profil", - "close": "Kapalı", - "modify_2fa": "Cake 2FA'yı Değiştirin", - "disable_cake_2fa": "Cake 2FA'yı Devre Dışı Bırak", - "question_to_disable_2fa": "Cake 2FA'yı devre dışı bırakmak istediğinizden emin misiniz? M-cüzdana ve belirli işlevlere erişmek için artık 2FA koduna gerek kalmayacak.", - "disable": "Devre dışı bırakmak", - "setup_2fa": "Kurulum Pastası 2FA", - "verify_with_2fa": "Cake 2FA ile Doğrulayın", - "totp_code": "TOTP Kodu", - "please_fill_totp": "Lütfen diğer cihazınızda bulunan 8 haneli kodu girin", - "totp_2fa_success": "Başarı! Bu cüzdan için Cake 2FA etkinleştirildi. Mnemonic seed'inizi cüzdan erişiminizi kaybetme ihtimaline karşı kaydetmeyi unutmayın.", - "totp_verification_success": "Doğrulama Başarılı!", - "totp_2fa_failure": "Yanlış kod. Lütfen farklı bir kod deneyin veya yeni bir gizli anahtar oluşturun. 8 basamaklı kodları ve SHA512'yi destekleyen uyumlu bir 2FA uygulaması kullanın.", - "enter_totp_code": "Lütfen TOTP Kodunu giriniz.", - "add_secret_code": "Veya bu gizli kodu bir kimlik doğrulama uygulamasına ekleyin", - "totp_secret_code": "TOTP Gizli Kodu", - "setup_2fa_text": "Cake 2FA, ikinci kimlik doğrulama faktörü olarak TOTP'yi kullanarak çalışır.\n\nCake 2FA'nın TOTP'si SHA-512 ve 8 haneli destek gerektirir; bu daha fazla güvenlik sağlar. Daha fazla bilgi ve desteklenen uygulamalar kılavuzda bulunabilir.", - "setup_totp_recommended": "TOTP'yi kur", - "disable_buy": "Satın alma işlemini devre dışı bırak", - "disable_sell": "Satış işlemini devre dışı bırak", + "authenticated": "Doğrulandı", + "authentication": "Doğrulama", "auto_generate_subaddresses": "Alt adresleri otomatik olarak oluştur", - "cake_2fa_preset": "Kek 2FA Ön Ayarı", - "narrow": "Dar", - "normal": "Normal", - "aggressive": "Aşırı duyarlı", - "require_for_assessing_wallet": "Cüzdana erişmek için gerekli", - "require_for_sends_to_non_contacts": "Kişi olmayan kişilere göndermeler için gerekli kıl", - "require_for_sends_to_contacts": "Kişilere göndermeler için gerekli kıl", - "require_for_sends_to_internal_wallets": "Dahili cüzdanlara yapılan gönderimler için gereklilik", - "require_for_exchanges_to_internal_wallets": "Dahili cüzdanlara değişim gerektir", - "require_for_adding_contacts": "Kişi eklemek için gerekli", - "require_for_creating_new_wallets": "Yeni cüzdan oluşturmak için gerekli", - "require_for_all_security_and_backup_settings": "Tüm güvenlik ve yedekleme ayarları için iste", + "automatic": "Otomatik", + "available_balance": "Kullanılabilir Bakiye", "available_balance_description": "Bu, cüzdanınızda harcayabileceğiniz miktar. Bu miktar, cüzdanınızdan çekilebilecek toplam bakiyeden daha düşük olabilir, çünkü bazı fonlar henüz kullanılamaz durumda olabilir.", - "syncing_wallet_alert_title": "Cüzdanınız senkronize ediliyor", - "syncing_wallet_alert_content": "Bakiyeniz ve işlem listeniz, en üstte \"SENKRONİZE EDİLDİ\" yazana kadar tamamlanmamış olabilir. Daha fazla bilgi edinmek için tıklayın/dokunun.", - "home_screen_settings": "Ana ekran ayarları", - "sort_by": "Göre sırala", - "search_add_token": "Belirteç Ara / Ekle", - "edit_token": "Belirteci düzenle", - "warning": "Uyarı", - "add_token_warning": "Dolandırıcıların talimatına göre jetonları düzenlemeyin veya eklemeyin.\nBelirteç adreslerini her zaman saygın kaynaklarla onaylayın!", - "add_token_disclaimer_check": "Belirteç sözleşmesi adresini ve bilgilerini saygın bir kaynak kullanarak onayladım. Kötü amaçlı veya yanlış bilgilerin eklenmesi para kaybına neden olabilir.", - "token_contract_address": "Token sözleşme adresi", - "token_name": "Belirteç adı, örneğin: Tether", - "token_symbol": "Jeton sembolü, örneğin: USDT", - "token_decimal": "Belirteç ondalık", - "field_required": "Bu alan gereklidir", - "pin_at_top": "${token} üstte sabitle", - "invalid_input": "Geçersiz Giriş", - "fiat_balance": "Fiat Bakiyesi", - "gross_balance": "Brüt Bakiye", - "alphabetical": "Alfabetik", - "generate_name": "İsim Oluştur", + "avg_savings": "Ortalama Tasarruf", + "awaitDAppProcessing": "Lütfen dApp'in işlemeyi bitirmesini bekleyin.", + "awaiting_payment_confirmation": "Ödemenin onaylanması bekleniyor", + "backup": "Yedek", + "backup_file": "Yedek dosyası", + "backup_password": "Yedek parolası", "balance_page": "Bakiye Sayfası", - "share": "Paylaşmak", - "slidable": "kaydırılabilir", - "monero_dark_theme": "Monero Koyu Tema", + "bill_amount": "Fatura Tutarı", + "billing_address_info": "Eğer fatura adresi istenirse, kargo adresinizi girin", + "biometric_auth_reason": "Kimlik doğrulaması için parmak izini okutun", "bitcoin_dark_theme": "Bitcoin Karanlık Teması", "bitcoin_light_theme": "Bitcoin Hafif Tema", - "high_contrast_theme": "Yüksek Kontrastlı Tema", - "matrix_green_dark_theme": "Matrix Yeşil Koyu Tema", - "monero_light_theme": "Monero Hafif Tema", - "manage_nodes": "Düğümleri yönet", - "etherscan_history": "Etherscan geçmişi", - "template_name": "şablon adı", + "bitcoin_payments_require_1_confirmation": "Bitcoin ödemeleri, 20 dakika veya daha uzun sürebilen 1 onay gerektirir. Sabrınız için teşekkürler! Ödeme onaylandığında e-posta ile bilgilendirileceksiniz.", + "Blocks_remaining": "${status} Blok Kaldı", + "bright_theme": "Parlak", + "buy": "Alış", + "buy_alert_content": "Şu anda yalnızca Bitcoin, Ethereum, Litecoin ve Monero satın alımını destekliyoruz. Lütfen Bitcoin, Ethereum, Litecoin veya Monero cüzdanınızı oluşturun veya cüzdanınıza geçin.", + "buy_bitcoin": "Bitcoin Satın Al", + "buy_provider_unavailable": "Sağlayıcı şu anda kullanılamıyor.", + "buy_with": "Şunun ile al: ", + "by_cake_pay": "Cake Pay tarafından", + "cake_2fa_preset": "Kek 2FA Ön Ayarı", + "cake_pay_account_note": "Kartları görmek ve satın almak için sadece bir e-posta adresiyle kaydolun. Hatta bazıları indirimli olarak bile mevcut!", + "cake_pay_learn_more": "Uygulamada anında hediye kartları satın alın ve harcayın!\nDaha fazla öğrenmek için soldan sağa kaydır.", + "cake_pay_subtitle": "İndirimli hediye kartları satın alın (yalnızca ABD)", + "cake_pay_title": "Cake Pay Hediye Kartları", + "cake_pay_web_cards_subtitle": "Dünya çapında ön ödemeli kartlar ve hediye kartları satın alın", + "cake_pay_web_cards_title": "Cake Pay Web Kartları", + "cake_wallet": "Cake Wallet", + "cakepay_prepaid_card": "CakePay Ön Ödemeli Kart", + "camera_consent": "Kameranız ${provider} tarihine kadar tanımlama amacıyla bir görüntü yakalamak için kullanılacaktır. Ayrıntılar için lütfen Gizlilik Politikalarını kontrol edin.", + "camera_permission_is_required": "Kamera izni gereklidir.\nLütfen uygulama ayarlarından etkinleştirin.", + "cancel": "İptal", + "card_address": "Adres:", + "cardholder_agreement": "Kart Sahibi Sözleşmesi", + "cards": "Kartlar", + "chains": "Zincirler", + "change": "Değiştir", + "change_backup_password_alert": "Önceki yedekleme dosyaların yeni yedek parolası ile içe aktarılamayacaktır. Yeni yedekleme parolası yalnızca yeni yedekleme dosyaları için kullanılabilir olacak. Yedekleme parolasını değiştirmek istediğinden emin misin?", + "change_currency": "Para Birimini Değiştir", + "change_current_node": "Şimdiki düğümü ${node} düğümüne değiştirmek istediğinizden emin misin?", + "change_current_node_title": "Şimdiki düğümü değiştir", + "change_exchange_provider": "Takas sağlayıcısını değiştir", + "change_language": "Dili değiştir", + "change_language_to": "Dili şuna değiştir: ${language}?", + "change_password": "Parolayı değiştir", "change_rep": "Temsilciyi Değiştir", "change_rep_message": "Temsilcileri değiştirmek istediğinizden emin misiniz?", - "unsupported_asset": "Bu öğe için bu eylemi desteklemiyoruz. Lütfen desteklenen bir varlık türünde bir cüzdan oluşturun veya cüzdana geçiş yapın.", - "manage_pow_nodes": "PoW Düğümlerini Yönet", - "support_title_live_chat": "Canlı destek", - "support_description_live_chat": "Ücretsiz ve hızlı! Eğitimli destek temsilcileri yardımcı olmak için mevcuttur", - "support_title_guides": "Kek Cüzdan Kılavuzları", - "support_description_guides": "Ortak sorunlara belge ve destek", - "support_title_other_links": "Diğer destek bağlantıları", - "support_description_other_links": "Topluluklarımıza katılın veya ortaklarımıza diğer yöntemlerle bize ulaşın", + "change_rep_successful": "Temsilciyi başarıyla değiştirdi", + "change_wallet_alert_content": "Şimdiki cüzdanı ${wallet_name} cüzdanı ile değiştirmek istediğinden emin misin?", + "change_wallet_alert_title": "Şimdiki cüzdanı değiştir", + "choose_account": "Hesabı seç", + "choose_address": "\n\nLütfen adresi seçin:", "choose_derivation": "Cüzdan türevini seçin", - "new_first_wallet_text": "Kripto para biriminizi kolayca güvende tutun", - "select_destination": "Lütfen yedekleme dosyası için hedef seçin.", - "save_to_downloads": "İndirilenlere Kaydet", - "select_buy_provider_notice": "Yukarıda bir satın alma sağlayıcısı seçin. App ayarlarında varsayılan satın alma sağlayıcınızı ayarlayarak bu ekranı atlayabilirsiniz.", - "onramper_option_description": "Birçok ödeme yöntemi ile hızlı bir şekilde kripto satın alın. Çoğu ülkede mevcuttur. Forma ve ücretler değişir.", + "choose_from_available_options": "Mevcut seçenekler arasından seçim yap:", + "choose_one": "Birini seç", + "choose_relay": "Lütfen kullanmak için bir röle seçin", + "choose_wallet_currency": "Lütfen cüzdanın para birimini seç:", + "clear": "Temizle", + "clearnet_link": "Net bağlantı", + "close": "Kapalı", + "coin_control": "Koin kontrolü (isteğe bağlı)", + "cold_or_recover_wallet": "Soğuk bir cüzdan ekleyin veya bir kağıt cüzdanı kurtarın", + "color_theme": "Renk teması", + "commit_transaction_amount_fee": "Transferi gerçekleştir\nMiktar: ${amount}\nKomisyon: ${fee}", + "confirm": "Onayla", + "confirm_delete_template": "Bu eylem, bu şablonu silecek. Devam etmek istiyor musun?", + "confirm_delete_wallet": "Bu eylem, bu cüzdanı silecek. Devam etmek istiyor musun?", + "confirm_sending": "Göndermeyi onayla", + "confirmations": "Onay", + "confirmed": "Onaylanmış Bakiye", + "confirmed_tx": "Onaylanmış", + "congratulations": "Tebrikler!", + "connect_an_existing_yat": "Mevcut bir Yat'ı bağla", + "connect_yats": "Yat'lara bağlan", + "connection_sync": "Bağlantı ve senkronizasyon", + "connectWalletPrompt": "İşlem yapmak için cüzdanınızı WalletConnect'e bağlayın", + "contact": "Rehber", + "contact_list_contacts": "Rehberim", + "contact_list_wallets": "Cüzdanlarım", + "contact_name": "Kişi ismi", + "contact_support": "Destek ile İletişime Geç", + "continue_text": "Devam et", + "contractName": "Sözleşme Adı", + "contractSymbol": "Sözleşme Sembolü", + "copied_key_to_clipboard": "${key} panoya kopyalandı", + "copied_to_clipboard": "Panoya Kopyalandı", + "copy": "Kopyala", + "copy_address": "Adresi kopyala", + "copy_id": "ID'yi kopyala", + "copyWalletConnectLink": "WalletConnect bağlantısını dApp'ten kopyalayıp buraya yapıştırın", + "create_account": "Hesap oluştur", + "create_backup": "Yedek oluştur", + "create_donation_link": "Bağış bağlantısı oluştur", + "create_invoice": "Fatura oluşturmak", + "create_new": "Yeni Cüzdan Oluştur", + "create_new_account": "Yeni hesap oluştur", + "creating_new_wallet": "Cüzdan oluşturuluyor", + "creating_new_wallet_error": "Hata: ${description}", + "creation_date": "Oluşturulma tarihi", + "custom": "özel", + "custom_drag": "Özel (Bekle ve Sürükle)", + "custom_redeem_amount": "Özel Harcama Tutarı", + "dark_theme": "Karanlık", + "debit_card": "Ön ödemeli Kart", + "debit_card_terms": "Ödeme kartı numaranızın (ve kart numaranıza karşılık gelen kimlik bilgilerinin) bu dijital cüzdanda saklanması ve kullanılması, zaman zaman yürürlükte olan ödeme kartı veren kuruluşla yapılan ilgili kart sahibi sözleşmesinin Hüküm ve Koşullarına tabidir.", + "decimal_places_error": "Çok fazla ondalık basamak", "default_buy_provider": "Varsayılan Satın Alma Sağlayıcısı", - "ask_each_time": "Her seferinde sor", - "buy_provider_unavailable": "Sağlayıcı şu anda kullanılamıyor.", - "signTransaction": "İşlem İmzala", + "default_sell_provider": "Varsayılan Satış Sağlayıcısı", + "delete": "Sil", + "delete_account": "Hesabı sil", + "delete_wallet": "Cüzdanı sil", + "delete_wallet_confirm_message": "${wallet_name} isimli cüzdanını silmek istediğinden emin misin?", + "deleteConnectionConfirmationPrompt": "Bağlantıyı silmek istediğinizden emin misiniz?", + "descending": "Azalan", + "description": "Tanım", + "destination_tag": "Hedef Etiketi:", + "dfx_option_description": "EUR ve CHF ile kripto satın alın. Ek KYC olmadan 990 €'ya kadar. Avrupa'daki perakende ve kurumsal müşteriler için", + "didnt_get_code": "Kod gelmedi mi?", + "digit_pin": " haneli PIN", + "digital_and_physical_card": " Dijital para birimleri ile para yükleyebileceğiniz ve ek bilgiye gerek olmayan", + "disable": "Devre dışı bırakmak", + "disable_buy": "Satın alma işlemini devre dışı bırak", + "disable_cake_2fa": "Cake 2FA'yı Devre Dışı Bırak", + "disable_exchange": "Borsayı devre dışı bırak", + "disable_fiat": "İtibari paraları devre dışı bırak", + "disable_sell": "Satış işlemini devre dışı bırak", + "disabled": "Devre dışı", + "discount": "%${value} tasarruf et", + "display_settings": "Görüntü ayarları", + "displayable": "Gösterilebilir", + "do_not_have_enough_gas_asset": "Mevcut blockchain ağ koşullarıyla işlem yapmak için yeterli ${currency} paranız yok. Farklı bir varlık gönderiyor olsanız bile blockchain ağ ücretlerini ödemek için daha fazla ${currency} miktarına ihtiyacınız var.", + "do_not_send": "Gönderme", + "do_not_share_warning_text": "Bunları destek de dahil olmak üzere başka kimseyle paylaşma.\n\nParan çalınabilir ve çalınacaktır!", + "do_not_show_me": "Bana bunu bir daha gösterme", + "domain_looks_up": "Etki alanı aramaları", + "donation_link_details": "Bağış bağlantısı ayrıntıları", + "e_sign_consent": "E-İmza Onayı", + "edit": "Düzenle", + "edit_backup_password": "Yedek parolasını değiştir", + "edit_node": "Düğümü Düzenle", + "edit_token": "Belirteci düzenle", + "electrum_address_disclaimer": "Adresini her kullandığında yeni adres oluşturuyoruz, ancak önceki adresler de çalışmaya devam eder", + "email_address": "E-posta Adresi", + "enabled": "Etkin", + "enter_amount": "Miktar Girin", + "enter_backup_password": "Yedekleme parolasını buraya gir", + "enter_code": "Kodu girin", + "enter_seed_phrase": "Tohum ifadenizi girin", + "enter_totp_code": "Lütfen TOTP Kodunu giriniz.", + "enter_your_note": "Notunu gir…", + "enter_your_pin": "PIN'ini gir", + "enter_your_pin_again": "PIN kodunu tekrar girin", + "enterTokenID": "Belirteç kimliğini girin", + "enterWalletConnectURI": "WalletConnect URI'sini girin", + "error": "Hata", + "error_dialog_content": "Hay aksi, bir hatamız var.\n\nUygulamayı daha iyi hale getirmek için lütfen kilitlenme raporunu destek ekibimize gönderin.", + "error_text_account_name": "Hesap ismi yalnızca harf, rakam \nve 1 ile 15 uzunluğunda karakter içermelidir.", + "error_text_address": "Cüzdan adresi kripto para biriminin\ntürüne karşılık gelmelidir", + "error_text_amount": "Miktar sadece sayı içerebilir", + "error_text_contact_name": "Kişi ismi ` , ' \" sembollerini içeremez \nve 1 ile 32 uzunluğunda karakter içermelidir", + "error_text_crypto_currency": "Kesir basamaklarının sayısı\n12'ye eşit veya daha az olmalıdır", + "error_text_fiat": "Tutarın değeri, mevcut bakiyeyi aşamaz.\nKesir basamaklarının sayısı 2'ye eşit veya daha az olmalıdır", + "error_text_input_above_maximum_limit": "Miktar maksimumdan daha fazla", + "error_text_input_below_minimum_limit": "Miktar minimumdan daha azdır", + "error_text_keys": "Cüzdan anahtarları onaltılık (hex) olarak yalnızca 64 karakter içerebilir", + "error_text_limits_loading_failed": "${provider} için işlem oluşturulmadı. Limitler yüklenirken hata oluştu.", + "error_text_maximum_limit": "${provider} için işlem oluşturulmadı. Miktar maksimumdan daha fazla: ${max} ${currency}", + "error_text_minimal_limit": "${provider} için işlem oluşturulmadı. Miktar minimumdan daha azdır: ${min} ${currency}", + "error_text_node_address": "Lütfen iPv4 adresi girin", + "error_text_node_port": "Düğüm port'u yalnızca 0 ve 65535 arasında rakam içerebilir", + "error_text_node_proxy_address": "Lütfen : girin, örneğin 127.0.0.1:9050", + "error_text_payment_id": "Ödeme ID'si yalnızca onaltılık (hex) olarak 16 veya 64 karakter içerebilir", + "error_text_subaddress_name": "Alt adres ismi ` , ' \" sembolleri içeremez\nve 1 ile 20 karakter arasında olmalıdır", + "error_text_template": "Şablon adı ve adresi ` , ' \" sembolleri içeremez\nve 1 ila 106 karakter uzunluğunda olmalı", + "error_text_wallet_name": "Cüzdan ismi yalnızca harf, rakam \nve 1 ile 33 uzunluğunda karakter içermelidir.", + "error_text_xmr": "XMR miktarı kullanılabilir bakiyeyi aşamaz.\nKesir basamaklarının sayısı 12'ye eşit veya daha az olmalıdır", "errorGettingCredentials": "Başarısız: Kimlik bilgileri alınırken hata oluştu", "errorSigningTransaction": "İşlem imzalanırken bir hata oluştu", - "pairingInvalidEvent": "Geçersiz Etkinliği Eşleştirme", - "chains": "Zincirler", - "methods": "Yöntemler", - "events": "Olaylar", - "reject": "Reddetmek", - "approve": "Onaylamak", - "expiresOn": "Tarihinde sona eriyor", - "walletConnect": "WalletConnect", - "nullURIError": "URI boş", - "connectWalletPrompt": "İşlem yapmak için cüzdanınızı WalletConnect'e bağlayın", - "newConnection": "Yeni bağlantı", - "activeConnectionsPrompt": "Aktif bağlantılar burada görünecek", - "deleteConnectionConfirmationPrompt": "Bağlantıyı silmek istediğinizden emin misiniz?", + "estimated": "Tahmini", + "etherscan_history": "Etherscan geçmişi", "event": "Etkinlik", - "successful": "Başarılı", - "wouoldLikeToConnect": "bağlanmak istiyorum", - "message": "İleti", - "do_not_have_enough_gas_asset": "Mevcut blockchain ağ koşullarıyla işlem yapmak için yeterli ${currency} paranız yok. Farklı bir varlık gönderiyor olsanız bile blockchain ağ ücretlerini ödemek için daha fazla ${currency} miktarına ihtiyacınız var.", - "totp_auth_url": "TOTP YETKİ URL'si", - "awaitDAppProcessing": "Lütfen dApp'in işlemeyi bitirmesini bekleyin.", - "copyWalletConnectLink": "WalletConnect bağlantısını dApp'ten kopyalayıp buraya yapıştırın", - "enterWalletConnectURI": "WalletConnect URI'sini girin", - "seed_key": "Tohum", - "enter_seed_phrase": "Tohum ifadenizi girin", - "change_rep_successful": "Temsilciyi başarıyla değiştirdi", - "add_contact": "Kişi ekle", + "events": "Olaylar", + "exchange": "Takas", + "exchange_incorrect_current_wallet_for_xmr": "Cake Wallet'daki Monero bakiyenizi kullanarak takas yapmak istiyorsan, lütfen önce Monero cüzdanına geç.", + "exchange_new_template": "Yeni şablon", "exchange_provider_unsupported": "${providerName} artık desteklenmiyor!", - "domain_looks_up": "Etki alanı aramaları", - "require_for_exchanges_to_external_wallets": "Harici cüzdanlara geçiş yapılmasını zorunlu kılın", - "camera_permission_is_required": "Kamera izni gereklidir.\nLütfen uygulama ayarlarından etkinleştirin.", - "switchToETHWallet": "Lütfen bir Ethereum cüzdanına geçin ve tekrar deneyin", - "order_by": "Tarafından sipariş", - "creation_date": "Oluşturulma tarihi", + "exchange_result_confirm": "Onaylaya basarak, ${fetchingLabel} ${from} miktarında ${walletName} olarak adlandırılan cüzdanından aşağıda gösterilen adrese gönderilecek. Veya harici cüzdanından aşağıdaki adrese / QR koduna gönderebilirsin.\n\nLütfen devam etmek için onayla'ya bas veya tutarı değiştirmek için geri dön.", + "exchange_result_description": "Lütfen en az ${fetchingLabel} miktarındaki ${from}'yi sonraki sayfada gönsterilen adrese gönder. Eğer ${fetchingLabel} ${from}'den az gönderirsen takas gerçekleşmeyebilir ve size geri iade edilebilir.", + "exchange_result_write_down_ID": "*Lütfen yukarıda gösterilen ID'ni kopyala veya bir yere yaz.", + "exchange_result_write_down_trade_id": "Devam etmek için lütfen ID'yi kopyala veya bir yere yaz.", + "exchange_sync_alert_content": "Lütfen cüzdanın senkronize olana kadar bekle", + "expired": "Süresi doldu", + "expires": "Son kullanma tarihi", + "expiresOn": "Tarihinde sona eriyor", + "export_backup": "Yedeği dışa aktar", + "extra_id": "Ekstra ID:", + "extracted_address_content": "Parayı buraya gönderceksin:\n${recipient_name}", + "failed_authentication": "Doğrulama başarısız oldu. ${state_error}", + "faq": "SSS", + "fetching": "Getiriliyor", + "fiat_api": "İtibari Para API", + "fiat_balance": "Fiat Bakiyesi", + "field_required": "Bu alan gereklidir", + "fill_code": "Lütfen e-postanıza gelen doğrulama kodunu girin", + "filter_by": "Şuna göre filtrele", + "first_wallet_text": "Monero, Bitcoin, Ethereum, Litecoin ve Haven için harika cüzdan", + "fixed_pair_not_supported": "Bu sabit paritesi seçilen borsalarda desteklenmemekte", + "fixed_rate": "Sabit oran", + "fixed_rate_alert": "Sabit oran modunu işaretlersen alım tutarını girebilirsin. Sabit oran moduna geçmek ister misin?", + "forgot_password": "Parolamı unuttum", + "freeze": "Dondur", + "frequently_asked_questions": "Sıkça sorulan sorular", + "frozen": "Dondurulmuş", + "full_balance": "Tüm bakiye", + "generate_name": "İsim Oluştur", + "generating_gift_card": "Hediye Kartı Oluşturuluyor", + "get_a": "Bir ", + "get_card_note": " dijital ve fiziksel ön ödemeli banka kartı edinin!", + "get_your_yat": "Yat'ını al", + "gift_card_amount": "Hediye Kartı Tutarı", + "gift_card_balance_note": "Bakiyesi kalan olan hediye kartları burada görünecek", + "gift_card_is_generated": "Hediye Kartı oluşturuldu", + "gift_card_number": "Hediye kartı numarası", + "gift_card_redeemed_note": "Harcadığın hediye kartları burada görünecek", + "gift_cards": "Hediye kartları", + "gift_cards_unavailable": "Hediye kartları şu anda yalnızca Monero, Bitcoin ve Litecoin ile satın alınabilir", + "got_it": "Tamamdır", + "gross_balance": "Brüt Bakiye", "group_by_type": "Türüne göre grup", - "importNFTs": "NFT'leri içe aktar", - "noNFTYet": "Henüz NFT yok", - "address": "Adres", - "enterTokenID": "Belirteç kimliğini girin", - "tokenID": "İD", - "name": "İsim", - "symbol": "Sembol", - "seed_phrase_length": "Çekirdek cümle uzunluğu", - "unavailable_balance": "Kullanılamayan bakiye", - "unavailable_balance_description": "Kullanılamayan Bakiye: Bu toplam, bekleyen işlemlerde kilitlenen fonları ve jeton kontrol ayarlarınızda aktif olarak dondurduğunuz fonları içerir. Kilitli bakiyeler, ilgili işlemleri tamamlandıktan sonra kullanılabilir hale gelir; dondurulmuş bakiyeler ise siz onları dondurmaya karar verene kadar işlemler için erişilemez durumda kalır.", - "unspent_change": "Değiştirmek", - "tor_connection": "Tor bağlantısı", - "setup_warning_2fa_text": "Cüzdanınızı anımsatıcı tohumdan geri yüklemeniz gerekecek.\n\n2FA veya anımsatıcı tohumlarınıza erişiminizi kaybederseniz pasta desteği size yardımcı olamayacaktır.\nCake 2FA, cüzdandaki belirli eylemler için ikinci bir kimlik doğrulamadır. Cake 2FA'yı kullanmadan önce kılavuzu okumanızı öneririz.Soğuk hava deposu kadar güvenli DEĞİLDİR.\n\n2FA uygulamanıza veya TOTP anahtarlarınıza erişiminizi kaybederseniz bu cüzdana erişimi KAYBEDECEKSİNİZ. ", - "scan_qr_on_device": "Bu QR kodunu başka bir cihazda tarayın", + "haven_app": "Cake Wallet tarafından Haven", + "haven_app_wallet_text": "Haven için harika cüzdan ", + "help": "yardım", + "hidden_balance": "Gizli Bakiye", + "hide_details": "Detayları Gizle", + "high_contrast_theme": "Yüksek Kontrastlı Tema", + "home_screen_settings": "Ana ekran ayarları", "how_to_use": "Nasıl kullanılır", + "how_to_use_card": "Bu kart nasıl kullanılır", + "id": "ID: ", + "ignor": "Yoksay", + "import": "İçe aktarmak", + "importNFTs": "NFT'leri içe aktar", + "in_store": "Mağazada", + "incoming": "Gelen", + "incorrect_seed": "Girilen metin geçerli değil.", + "introducing_cake_pay": "Cake Pay ile tanışın!", + "invalid_input": "Geçersiz Giriş", + "invoice_details": "fatura detayları", + "is_percentage": "is", + "last_30_days": "Son 30 gün", + "learn_more": "Daha fazla öğren", + "light_theme": "Aydınlık", + "loading_your_wallet": "Cüzdanın yükleniyor", + "login": "Login", + "logout": "Çıkış yap", + "low_fee": "Düşük komisyon", + "low_fee_alert": "Şu anda düşük bir ağ ücreti önceliği kullanıyorsunuz. Bu durum uzun beklemeler, farklı oranlar veya iptal edilen işlemlere neden olabilir. Daha iyi bir deneyim için daha yüksek bir ücret belirlemenizi öneririz.", + "manage_nodes": "Düğümleri yönet", + "manage_pow_nodes": "PoW Düğümlerini Yönet", + "manage_yats": "Yats'ları yönet", + "mark_as_redeemed": "Harcanmış olarak işaretle", + "market_place": "Pazar Alanı", + "matrix_green_dark_theme": "Matrix Yeşil Koyu Tema", + "max_amount": "Maks: ${value}", + "max_value": "En fazla: ${value} ${currency}", + "memo": "Memo:", + "message": "İleti", + "methods": "Yöntemler", + "min_amount": "Min: ${value}", + "min_value": "En az: ${value} ${currency}", + "minutes_to_pin_code": "${minute} dakika", + "mm": "AA", + "modify_2fa": "Cake 2FA'yı Değiştirin", + "monero_com": "Cake Wallet tarafından Monero.com", + "monero_com_wallet_text": "Monero için harika cüzdan", + "monero_dark_theme": "Monero Koyu Tema", + "monero_light_theme": "Monero Hafif Tema", + "moonpay_alert_text": "Tutar ${minAmount} ${fiatCurrency} miktarına eşit veya daha fazla olmalıdır", + "more_options": "Daha Fazla Seçenek", + "name": "İsim", + "narrow": "Dar", + "new_first_wallet_text": "Kripto para biriminizi kolayca güvende tutun", + "new_node_testing": "Yeni düğüm test ediliyor", + "new_subaddress_create": "Oluştur", + "new_subaddress_label_name": "Etiket ismi", + "new_subaddress_title": "Yeni adres", + "new_template": "Yeni Şablon", + "new_wallet": "Yeni Cüzdan", + "newConnection": "Yeni bağlantı", + "no_id_needed": "Kimlik gerekmez!", + "no_id_required": "Kimlik gerekmez. Para yükleyin ve istediğiniz yerde harcayın", + "no_relay_on_domain": "Kullanıcının alanı için bir geçiş yok veya geçiş kullanılamıyor. Lütfen kullanmak için bir röle seçin.", + "no_relays": "Röle yok", + "no_relays_message": "Bu kullanıcı için bir Nostr NIP-05 kaydı bulduk ancak bu kayıt herhangi bir aktarma içermiyor. Lütfen alıcıya Nostr kayıtlarına aktarma eklemesi talimatını verin.", + "node_address": "Düğüm adresi", + "node_connection_failed": "Bağlantı başarısız oldu", + "node_connection_successful": "Bağlantı başarılı oldu", + "node_new": "Yeni düğüm", + "node_port": "Düğüm port'u", + "node_reset_settings_title": "Ayarları sıfırla", + "node_test": "Test Et", + "nodes": "Düğümler", + "nodes_list_reset_to_default_message": "Ayarları varsayılana sıfırlamak istediğinizden emin misin?", + "none_of_selected_providers_can_exchange": "Seçilen sağlayıcılardan hiçbiri bu takası yapamaz", + "noNFTYet": "Henüz NFT yok", + "normal": "Normal", + "note_optional": "Not (isteğe bağlı)", + "note_tap_to_change": "Not (değiştirmek için dokunun)", + "nullURIError": "URI boş", + "offer_expires_in": "Teklifin bitmesine kalan: ", + "offline": "Çevrimdışı", + "ok": "Tamam", + "onion_link": "soğan bağlantısı", + "online": "Çevrimiçi", + "onramper_option_description": "Birçok ödeme yöntemi ile hızlı bir şekilde kripto satın alın. Çoğu ülkede mevcuttur. Forma ve ücretler değişir.", + "open_gift_card": "Hediye Kartını Aç", + "optional_description": "İsteğe bağlı açıklama", + "optional_email_hint": "İsteğe bağlı alacaklı bildirim e-postası", + "optional_name": "İsteğe bağlı alıcı adı", + "optionally_order_card": "İsteğe bağlı olarak fiziksel bir kart sipariş edin.", + "orbot_running_alert": "Lütfen bu düğüme bağlanmadan önce Orbot'un çalıştığından emin olun.", + "order_by": "Tarafından sipariş", + "order_id": "Sipariş ID'si", + "order_physical_card": "Fiziksel Kart Siparişi", + "other_settings": "Diğer ayarlar", + "outdated_electrum_wallet_description": "Cake'te oluşturulan yeni Bitcoin cüzdanları artık 24 kelimelik bir tohuma sahip. Yeni bir Bitcoin cüzdanı oluşturmanız ve tüm paranızı 24 kelimelik yeni cüzdana aktarmanız ve 12 kelimelik tohuma sahip cüzdanları kullanmayı bırakmanız zorunludur. Lütfen paranızı güvence altına almak için bunu hemen yapın.", + "outdated_electrum_wallet_receive_warning": "Bu cüzdanın 12 kelimelik bir tohumu varsa ve Cake'te oluşturulduysa, bu cüzdana Bitcoin YATIRMAYIN. Bu cüzdana aktarılan tüm BTC'ler kaybolabilir. 24 kelimelik yeni bir cüzdan oluşturun (sağ üstteki menüye dokunun, Cüzdanlar'ı seçin, Yeni Cüzdan Oluştur'u seçin, ardından Bitcoin'i seçin) ve BTC'nizi HEMEN oraya taşıyın. Cake'in yeni (24 kelimelik) BTC cüzdanları güvenlidir", + "outgoing": "Giden", + "overwrite_amount": "Miktarın üzerine yaz", + "pairingInvalidEvent": "Geçersiz Etkinliği Eşleştirme", + "password": "Parola", + "paste": "Yapıştır", + "pause_wallet_creation": "Haven Cüzdanı oluşturma yeteneği şu anda duraklatıldı.", + "payment_id": "Ödeme ID'si: ", + "payment_was_received": "Ödemeniz alındı.", + "pending": " (bekleyen)", + "percentageOf": "of ${amount}", + "pin_at_top": "${token} üstte sabitle", + "pin_is_incorrect": "PIN kodu hatalı", + "pin_number": "PIN kodu", + "placeholder_contacts": "Kişilerin burada görüntülenecek", + "placeholder_transactions": "İşlemlerin burada görüntülenecek", + "please_fill_totp": "Lütfen diğer cihazınızda bulunan 8 haneli kodu girin", + "please_make_selection": "Cüzdan oluşturmak veya geri döndürmek için aşağıdan seçim yap.", + "please_reference_document": "Daha fazla bilgi için lütfen aşağıdaki belgelere bakınız.", + "please_select": "Lütfen seçim yap:", + "please_select_backup_file": "Lütfen yedekleme dosyasını seç ve yedekleme parolasını gir.", + "please_try_to_connect_to_another_node": "Lütfen farklı düğüme bağlanmayı dene", + "please_wait": "Lütfen bekleyin", + "polygonscan_history": "PolygonScan geçmişi", + "powered_by": "${title} tarafından desteklenmektedir", + "pre_seed_button_text": "Anladım. Bana tohumumu göster.", + "pre_seed_description": "Bir sonraki sayfada ${words} kelime göreceksin. Bu senin benzersiz ve özel tohumundur, kaybetmen veya silinmesi durumunda cüzdanını kurtarmanın TEK YOLUDUR. Bunu yazmak ve Cake Wallet uygulaması dışında güvenli bir yerde saklamak tamamen SENİN sorumluluğunda.", + "pre_seed_title": "UYARI", + "prevent_screenshots": "Ekran görüntülerini ve ekran kaydını önleyin", + "privacy": "Gizlilik", + "privacy_policy": "Gizlilik Politikası", + "privacy_settings": "Gizlilik ayarları", + "private_key": "Özel anahtar", + "proceed_after_one_minute": "Ekran 1 dakika sonra ilerlemezse, e-postanızı kontrol edin.", + "profile": "Profil", + "provider_error": "${provider} hatası", + "public_key": "Genel Anahtar", + "purchase_gift_card": "Hediye Kartı Satın Al", + "qr_fullscreen": "QR kodunu tam ekranda açmak için dokun", + "qr_payment_amount": "Bu QR kodu ödeme tutarını içeriyor. Geçerli miktarın üzerine yazmak istediğine emin misin?", + "question_to_disable_2fa": "Cake 2FA'yı devre dışı bırakmak istediğinizden emin misiniz? M-cüzdana ve belirli işlevlere erişmek için artık 2FA koduna gerek kalmayacak.", + "receivable_balance": "Alacak bakiyesi", + "receive": "Para Al", + "receive_amount": "Miktar", + "received": "Alındı", + "recipient_address": "Alıcı adresi", + "reconnect": "Yeniden Bağlan", + "reconnect_alert_text": "Yeniden bağlanmak istediğinden emin misin?", + "reconnection": "Yeniden bağlantı", + "redeemed": "Kullanılmış", + "refund_address": "İade adresi", + "reject": "Reddetmek", + "remaining": "kalan", + "remove": "Kaldır", + "remove_node": "Düğümü kaldır", + "remove_node_message": "Seçili düğümü kaldırmak istediğinden emin misin?", + "rename": "Yeniden adlandır", + "require_for_adding_contacts": "Kişi eklemek için gerekli", + "require_for_all_security_and_backup_settings": "Tüm güvenlik ve yedekleme ayarları için iste", + "require_for_assessing_wallet": "Cüzdana erişmek için gerekli", + "require_for_creating_new_wallets": "Yeni cüzdan oluşturmak için gerekli", + "require_for_exchanges_to_external_wallets": "Harici cüzdanlara geçiş yapılmasını zorunlu kılın", + "require_for_exchanges_to_internal_wallets": "Dahili cüzdanlara değişim gerektir", + "require_for_sends_to_contacts": "Kişilere göndermeler için gerekli kıl", + "require_for_sends_to_internal_wallets": "Dahili cüzdanlara yapılan gönderimler için gereklilik", + "require_for_sends_to_non_contacts": "Kişi olmayan kişilere göndermeler için gerekli kıl", + "require_pin_after": "Şu kadar süre sonra PIN iste", + "rescan": "Yeniden Tara", + "resend_code": "Lütfen tekrar gönder", + "reset": "Sıfırla", + "reset_password": "Parolamı sıfırla", + "restore_active_seed": "Tohumu aktifleştir", + "restore_address": "Adres", + "restore_bitcoin_description_from_keys": "Cüzdanını, oluşturulan WIF dizesinden veya özel anahtarlarından geri yükle", + "restore_bitcoin_description_from_seed": "Cüzdanınızı 24 kelimelik kombinasyon kodundan geri yükle", + "restore_bitcoin_title_from_keys": "WIF'den geri yükle", + "restore_description_from_backup": "Yedek dosyandan tüm Cake Wallet uygulamasını geri döndürebilirsin", + "restore_description_from_keys": "Cüzdanınızı özel anahtarlarınızdan kaydedilen oluşturulmuş tuş vuruşlarından geri yükleyin", + "restore_description_from_seed": "Cüzdanınızı 25 veya 13 kelimelik kombinasyon kodundan geri döndürün", + "restore_description_from_seed_keys": "Güvenli bir yere kaydettiğin tohumdan/anahtarlardan cüzdanını geri döndür", + "restore_from_date_or_blockheight": "Lütfen bu cüzdanı oluşturmadan birkaç gün önceki bir tarihi girin. Veya blok yüksekliğini biliyorsan, lütfen bunu gir", + "restore_from_seed_placeholder": "Lütfen tohumunu buraya gir veya yapıştır", + "restore_new_seed": "Yeni tohum", + "restore_next": "İleri", + "restore_recover": "Geri döndür", + "restore_restore_wallet": "Cüzdanı Geri Döndür", + "restore_seed_keys_restore": "Tohumu/Anahtarları Geri Döndür", + "restore_spend_key_private": "Harcama anahtarı (Özel)", + "restore_title_from_backup": "Yedekten geri döndür", + "restore_title_from_keys": "Anahtarlardan geri döndür", + "restore_title_from_seed": "Tohumdan geri döndür", + "restore_title_from_seed_keys": "Tohumdan/anahtarlardan geri döndür", + "restore_view_key_private": "İzleme anahtarı (Özel)", + "restore_wallet": "Cüzdanı Geri Döndür", + "restore_wallet_name": "Cüzdan ismi", + "restore_wallet_restore_description": "Cüzdan geri döndürme açıklaması", + "router_no_route": "${name} için rota tanımlanmadı", + "save": "Kaydet", + "save_backup_password": "Lütfen yedekleme parolanı kaydettiğinden emin ol. Bu parola olmadan yedekleme dosyasını içe aktaramazsın.", + "save_backup_password_alert": "Yedek parolasını kaydet", + "save_to_downloads": "İndirilenlere Kaydet", + "saved_the_trade_id": "Takas ID'imi kaydettim", + "scan_qr_code": "QR kodunu tarayın", + "scan_qr_code_to_get_address": "Adresi getirmek için QR kodunu tara", + "scan_qr_on_device": "Bu QR kodunu başka bir cihazda tarayın", + "search": "Arat", + "search_add_token": "Belirteç Ara / Ekle", + "search_category": "Kategori ara", + "search_currency": "Para birimi ara", + "search_language": "Dil arat", + "second_intro_content": "Yat'ınız, tüm para birimleriniz için uzun onaltılık adreslerinizin yerini alan benzersiz emoji adresidir.", + "second_intro_title": "Hepsini yönetebilen tek bir emoji adresi", + "security_and_backup": "Güvenlik ve yedekleme", + "seed_alert_back": "Geriye dön", + "seed_alert_content": "Cüzdanını kurtarmanın tek yolu tohumdur. Tohumunu yazdın mı?", + "seed_alert_title": "Dikkat", + "seed_alert_yes": "Evet yazdım", + "seed_choose": "Tohum dilini seçin", "seed_hex_form": "Cüzdan tohumu (onaltılık form)", + "seed_key": "Tohum", + "seed_language": "Tohum dili", + "seed_language_chinese": "Çince", + "seed_language_chinese_traditional": "Çin geleneği)", + "seed_language_czech": "Çek", + "seed_language_dutch": "Flemenkçe", + "seed_language_english": "İngilizce", + "seed_language_french": "Fransızca", + "seed_language_german": "Almanca", + "seed_language_italian": "İtalyanca", + "seed_language_japanese": "Japonca", + "seed_language_korean": "Koreli", + "seed_language_next": "İleri", + "seed_language_portuguese": "Portekizce", + "seed_language_russian": "Rusça", + "seed_language_spanish": "İspanyolca", + "seed_phrase_length": "Çekirdek cümle uzunluğu", + "seed_reminder": "Telefonunu kaybetmen veya silinmesi ihtimaline karşı lütfen bunları not et", + "seed_share": "Tohumu paylaş", + "seed_title": "Tohum", "seedtype": "Tohum", "seedtype_legacy": "Miras (25 kelime)", "seedtype_polyseed": "Polyseed (16 kelime)", - "seed_language_czech": "Çek", - "seed_language_korean": "Koreli", - "seed_language_chinese_traditional": "Çin geleneği)", - "ascending": "Yükselen", - "descending": "Azalan", - "dfx_option_description": "EUR ve CHF ile kripto satın alın. Ek KYC olmadan 990 €'ya kadar. Avrupa'daki perakende ve kurumsal müşteriler için", - "polygonscan_history": "PolygonScan geçmişi", - "wallet_seed_legacy": "Eski cüzdan tohumu", - "default_sell_provider": "Varsayılan Satış Sağlayıcısı", + "select_backup_file": "Yedek dosyası seç", + "select_buy_provider_notice": "Yukarıda bir satın alma sağlayıcısı seçin. App ayarlarında varsayılan satın alma sağlayıcınızı ayarlayarak bu ekranı atlayabilirsiniz.", + "select_destination": "Lütfen yedekleme dosyası için hedef seçin.", "select_sell_provider_notice": "Yukarıdan bir satış sağlayıcısı seçin. Uygulama ayarlarında varsayılan satış sağlayıcınızı ayarlayarak bu ekranı atlayabilirsiniz.", - "custom_drag": "Özel (Bekle ve Sürükle)", + "sell": "Satış", + "sell_alert_content": "Şu anda yalnızca Bitcoin, Ethereum ve Litecoin satışını destekliyoruz. Lütfen Bitcoin, Ethereum veya Litecoin cüzdanınızı oluşturun veya cüzdanınıza geçin.", + "sell_monero_com_alert_content": "Monero satışı henüz desteklenmiyor", + "send": "Para Gönder", + "send_address": "${cryptoCurrency} adresi", + "send_amount": "Miktar:", + "send_creating_transaction": "İşlem oluşturuluyor", + "send_error_currency": "Para birimi sadece sayı içerebilir", + "send_error_minimum_value": "Minimum tutar değeri 0.01'dir", + "send_estimated_fee": "Tahmini komisyon:", + "send_fee": "Komisyon:", + "send_name": "İsim", + "send_new": "Yeni", + "send_payment_id": "Ödeme ID'si (isteğe bağlı)", + "send_priority": "Şu anda ücret ${transactionPriority} önceliğine ayarlanmıştır.\nİşlem önceliği ayarlardan değiştirilebilir", + "send_sending": "Gönderiliyor...", + "send_success": "${crypto} başarıyla gönderildi", + "send_templates": "Şablonlar", + "send_title": "Gönder", + "send_to_this_address": "Bu adrese ${currency} ${tag}gönder", + "send_xmr": "XMR gönder", + "send_your_wallet": "Cüzdanın", + "sending": "Gönderiliyor", + "sent": "Gönderildi", + "settings": "ayarlar", + "settings_all": "HEPSİ", + "settings_allow_biometrical_authentication": "Biyometrik doğrulamaya izin ver", + "settings_can_be_changed_later": "Bu ayarlar daha sonra uygulama ayarlarından da değiştirilebilir", + "settings_change_language": "Dili değiştir", + "settings_change_pin": "PIN'i değiştir", + "settings_currency": "Para birimi", + "settings_current_node": "Şimdiki düğüm", + "settings_dark_mode": "Karanlık mod", + "settings_display_balance": "Bakiyeyi göster", + "settings_display_on_dashboard_list": "Gösterge tablosu listesinde göster", + "settings_fee_priority": "İşlem Komsiyonu önceliği", + "settings_nodes": "Düğümler", + "settings_none": "Hiçbiri", + "settings_only_trades": "Sadece takaslar", + "settings_only_transactions": "Sadece transferler", + "settings_personal": "Kişisel", + "settings_save_recipient_address": "Gönderilen adresi kaydet", + "settings_support": "Destek", + "settings_terms_and_conditions": "Şartlar ve Koşullar", + "settings_title": "Ayarlar", + "settings_trades": "Takaslar", + "settings_transactions": "İşlemler", + "settings_wallets": "Cüzdanlar", + "setup_2fa": "Kurulum Pastası 2FA", + "setup_2fa_text": "Cake 2FA, ikinci kimlik doğrulama faktörü olarak TOTP'yi kullanarak çalışır.\n\nCake 2FA'nın TOTP'si SHA-512 ve 8 haneli destek gerektirir; bu daha fazla güvenlik sağlar. Daha fazla bilgi ve desteklenen uygulamalar kılavuzda bulunabilir.", + "setup_pin": "PIN kodu kurulumu", + "setup_successful": "PIN kodun başarıyla ayarlandı!", + "setup_totp_recommended": "TOTP'yi kur", + "setup_warning_2fa_text": "Cüzdanınızı anımsatıcı tohumdan geri yüklemeniz gerekecek.\n\n2FA veya anımsatıcı tohumlarınıza erişiminizi kaybederseniz pasta desteği size yardımcı olamayacaktır.\nCake 2FA, cüzdandaki belirli eylemler için ikinci bir kimlik doğrulamadır. Cake 2FA'yı kullanmadan önce kılavuzu okumanızı öneririz.Soğuk hava deposu kadar güvenli DEĞİLDİR.\n\n2FA uygulamanıza veya TOTP anahtarlarınıza erişiminizi kaybederseniz bu cüzdana erişimi KAYBEDECEKSİNİZ. ", + "setup_your_debit_card": "Banka kartını ayarla", + "share": "Paylaşmak", + "share_address": "Adresi paylaş", + "show_details": "Detayları Göster", + "show_keys": "Tohumları/anahtarları göster", + "show_market_place": "Pazar Yerini Göster", + "show_seed": "Tohumları göster", + "sign_up": "Kaydol", + "signTransaction": "İşlem İmzala", + "signup_for_card_accept_terms": "Kart için kaydol ve koşulları kabul et.", + "slidable": "kaydırılabilir", + "sort_by": "Göre sırala", + "spend_key_private": "Harcama anahtarı (özel)", + "spend_key_public": "Harcama anahtarı (genel)", + "status": "Durum: ", + "subaddress_title": "Alt adres listesi", + "subaddresses": "Alt adresler", + "submit_request": "talep gönder", + "successful": "Başarılı", + "support_description_guides": "Ortak sorunlara belge ve destek", + "support_description_live_chat": "Ücretsiz ve hızlı! Eğitimli destek temsilcileri yardımcı olmak için mevcuttur", + "support_description_other_links": "Topluluklarımıza katılın veya ortaklarımıza diğer yöntemlerle bize ulaşın", + "support_title_guides": "Kek Cüzdan Kılavuzları", + "support_title_live_chat": "Canlı destek", + "support_title_other_links": "Diğer destek bağlantıları", + "sweeping_wallet": "Süpürme cüzdanı", + "sweeping_wallet_alert": "Bu uzun sürmemeli. BU EKRANDAN BIRAKMAYIN YOKSA SÜPÜRÜLEN FONLAR KAYBOLABİLİR", + "switchToETHWallet": "Lütfen bir Ethereum cüzdanına geçin ve tekrar deneyin", "switchToEVMCompatibleWallet": "Lütfen EVM uyumlu bir cüzdana geçin ve tekrar deneyin (Ethereum, Polygon)", - "receivable_balance": "Alacak bakiyesi", - "confirmed_tx": "Onaylanmış", + "symbol": "Sembol", + "sync_status_attempting_sync": "SENKRONİZE EDİLMEYE ÇALIŞILIYOR", + "sync_status_connected": "BAĞLANILDI", + "sync_status_connecting": "BAĞLANILIYOR", + "sync_status_failed_connect": "BAĞLANTI KESİLDİ", + "sync_status_not_connected": "BAĞLI DEĞİL", + "sync_status_starting_sync": "SENKRONİZE BAŞLATILIYOR", + "sync_status_syncronized": "SENKRONİZE EDİLDİ", + "sync_status_syncronizing": "SENKRONİZE EDİLİYOR", + "syncing_wallet_alert_content": "Bakiyeniz ve işlem listeniz, en üstte \"SENKRONİZE EDİLDİ\" yazana kadar tamamlanmamış olabilir. Daha fazla bilgi edinmek için tıklayın/dokunun.", + "syncing_wallet_alert_title": "Cüzdanınız senkronize ediliyor", + "template": "Şablon", + "template_name": "şablon adı", + "third_intro_content": "Yat'lar Cake Wallet'ın dışında da çalışabilir. Dünya üzerindeki herhangi bir cüzdan adresi Yat ile değiştirilebilir!", + "third_intro_title": "Yat diğerleriyle iyi çalışır", + "time": "${minutes}d ${seconds}s", + "tip": "Bahşiş:", + "today": "Bugün", + "token_contract_address": "Token sözleşme adresi", + "token_decimal": "Belirteç ondalık", + "token_name": "Belirteç adı, örneğin: Tether", + "token_symbol": "Jeton sembolü, örneğin: USDT", + "tokenID": "İD", + "tor_connection": "Tor bağlantısı", + "tor_only": "Yalnızca Tor", + "total_saving": "Toplam Tasarruf", + "totp_2fa_failure": "Yanlış kod. Lütfen farklı bir kod deneyin veya yeni bir gizli anahtar oluşturun. 8 basamaklı kodları ve SHA512'yi destekleyen uyumlu bir 2FA uygulaması kullanın.", + "totp_2fa_success": "Başarı! Bu cüzdan için Cake 2FA etkinleştirildi. Mnemonic seed'inizi cüzdan erişiminizi kaybetme ihtimaline karşı kaydetmeyi unutmayın.", + "totp_auth_url": "TOTP YETKİ URL'si", + "totp_code": "TOTP Kodu", + "totp_secret_code": "TOTP Gizli Kodu", + "totp_verification_success": "Doğrulama Başarılı!", + "trade_details_copied": "${title} panoya kopyalandı", + "trade_details_created_at": "'da oluşturuldu", + "trade_details_fetching": "Getiriliyor", + "trade_details_id": "ID", + "trade_details_pair": "Parite", + "trade_details_provider": "Sağlayıcı", + "trade_details_state": "Durum", + "trade_details_title": "Takas Detayları", + "trade_for_not_created": "${title} için takas oluşturulmadı.", + "trade_history_title": "Takas geçmişi", + "trade_id": "Takas ID'si:", + "trade_id_not_found": "Trade ${tradeId} of ${title} not found.", + "trade_is_powered_by": "Bu takas ${provider} tarafından desteklenmektedir", + "trade_not_created": "Takas oluşturulmadı", + "trade_not_found": "Takas bulunamadı.", + "trade_state_btc_sent": "Btc gönderildi", + "trade_state_complete": "Tamamlandı", + "trade_state_confirming": "Onaylanıyor", + "trade_state_created": "Oluşturuldu", + "trade_state_finished": "Tamamlandı", + "trade_state_paid": "Ödendi", + "trade_state_paid_unconfirmed": "Ödendi onaylanmadı", + "trade_state_pending": "Beklemede", + "trade_state_timeout": "Zaman aşımı", + "trade_state_to_be_created": "Oluşturulacak", + "trade_state_traded": "Takas yapıldı", + "trade_state_trading": "Takas yapılıyor", + "trade_state_underpaid": "Eksik ödendi", + "trade_state_unpaid": "Ödenmedi", + "trades": "Takaslar", + "transaction_details_amount": "Miktar", + "transaction_details_copied": "${title} panoya kopyalandı", + "transaction_details_date": "Tarih", + "transaction_details_fee": "Fee", + "transaction_details_height": "Yükseklik", + "transaction_details_recipient_address": "Alıcı adres", "transaction_details_source_address": "Kaynak adresi", - "pause_wallet_creation": "Haven Cüzdanı oluşturma yeteneği şu anda duraklatıldı.", - "contractName": "Sözleşme Adı", - "contractSymbol": "Sözleşme Sembolü", - "description": "Tanım", - "camera_consent": "Kameranız ${provider} tarihine kadar tanımlama amacıyla bir görüntü yakalamak için kullanılacaktır. Ayrıntılar için lütfen Gizlilik Politikalarını kontrol edin.", - "no_relays": "Röle yok", - "choose_relay": "Lütfen kullanmak için bir röle seçin", - "no_relays_message": "Bu kullanıcı için bir Nostr NIP-05 kaydı bulduk ancak bu kayıt herhangi bir aktarma içermiyor. Lütfen alıcıya Nostr kayıtlarına aktarma eklemesi talimatını verin.", - "no_relay_on_domain": "Kullanıcının alanı için bir geçiş yok veya geçiş kullanılamıyor. Lütfen kullanmak için bir röle seçin." -} + "transaction_details_title": "İşlem Detayları", + "transaction_details_transaction_id": "İşem ID'si", + "transaction_key": "İşlem Anahtarı", + "transaction_priority_fast": "Hızlı", + "transaction_priority_fastest": "En Hızlı", + "transaction_priority_medium": "Orta", + "transaction_priority_regular": "Normal", + "transaction_priority_slow": "Yavaş", + "transaction_sent": "Transfer gönderildi!", + "transaction_sent_notice": "Ekran 1 dakika sonra ilerlemezse, blok gezgininden ve e-postanızdan kontrol edin.", + "transactions": "İşlemler", + "transactions_by_date": "Tarihe göre transferler", + "trusted": "Güvenilir", + "unavailable_balance": "Kullanılamayan bakiye", + "unavailable_balance_description": "Kullanılamayan Bakiye: Bu toplam, bekleyen işlemlerde kilitlenen fonları ve jeton kontrol ayarlarınızda aktif olarak dondurduğunuz fonları içerir. Kilitli bakiyeler, ilgili işlemleri tamamlandıktan sonra kullanılabilir hale gelir; dondurulmuş bakiyeler ise siz onları dondurmaya karar verene kadar işlemler için erişilemez durumda kalır.", + "unconfirmed": "Onaylanmamış Bakiye", + "understand": "Anladım", + "unmatched_currencies": "Mevcut cüzdanınızın para birimi taranan QR ile eşleşmiyor", + "unspent_change": "Değiştirmek", + "unspent_coins_details_title": "Harcanmamış koin detayları", + "unspent_coins_title": "Harcanmamış koinler", + "unsupported_asset": "Bu öğe için bu eylemi desteklemiyoruz. Lütfen desteklenen bir varlık türünde bir cüzdan oluşturun veya cüzdana geçiş yapın.", + "upto": "Şu miktara kadar: ${value}", + "use": "Şuna geç: ", + "use_card_info_three": "Dijital kartı çevrimiçi olarak veya temassız ödeme yöntemleriyle kullanın.", + "use_card_info_two": "Paralar, dijital para birimlerinde değil, ön ödemeli hesapta tutulduğunda USD'ye dönüştürülür.", + "use_ssl": "SSL kullan", + "use_suggested": "Önerileni Kullan", + "variable_pair_not_supported": "Bu değişken paritesi seçilen borsalarda desteklenmemekte", + "verification": "Doğrulama", + "verify_with_2fa": "Cake 2FA ile Doğrulayın", + "version": "Sürüm ${currentVersion}", + "view_all": "Hepsini göster", + "view_in_block_explorer": "Blok Gezgini'nde görüntüle", + "view_key_private": "İzleme anahtarı (özel)", + "view_key_public": "İzleme anahtarı (genel)", + "view_transaction_on": "İşlemi şurada görüntüle ", + "wallet_keys": "Cüzdan tohumu/anahtarları", + "wallet_list_create_new_wallet": "Yeni Cüzdan Oluştur", + "wallet_list_edit_wallet": "Cüzdanı düzenle", + "wallet_list_failed_to_load": "Failed to load ${wallet_name} wallet. ${error}", + "wallet_list_failed_to_remove": "${wallet_name} cüzdanı yüklenirken hata oluştu. ${error}", + "wallet_list_load_wallet": "Cüzdanı yükle", + "wallet_list_loading_wallet": "${wallet_name} cüzdanı yükleniyor", + "wallet_list_removing_wallet": "Removing ${wallet_name} wallet", + "wallet_list_restore_wallet": "Cüzdanı Geri Yükle", + "wallet_list_title": "Monero Cüzdanı", + "wallet_list_wallet_name": "Cüzdan adı", + "wallet_menu": "Menü", + "wallet_name": "Cüzdan ismi", + "wallet_name_exists": "Bu isimde bir cüzdan zaten mevcut. Lütfen farklı bir isim seç veya önce diğer cüzdanı yeniden adlandır.", + "wallet_restoration_store_incorrect_seed_length": "Yanlış tohum uzunluğu", + "wallet_seed": "Cüzdan tohumu", + "wallet_seed_legacy": "Eski cüzdan tohumu", + "wallet_store_monero_wallet": "Monero Cüzdanı", + "walletConnect": "WalletConnect", + "wallets": "Cüzdanlar", + "warning": "Uyarı", + "welcome": "Hoş Geldiniz", + "welcome_to_cakepay": "Cake Pay'e Hoş Geldiniz!", + "widgets_address": "Adres", + "widgets_or": "veya", + "widgets_restore_from_blockheight": "Blok yüksekliğinden geri yükle", + "widgets_restore_from_date": "Tarihten geri yükle", + "widgets_seed": "Tohum", + "wouoldLikeToConnect": "bağlanmak istiyorum", + "write_down_backup_password": "Lütfen yedekleme dosyasının içe aktarılması için kullanılan yedekleme parolanı not et.", + "xlm_extra_info": "Lütfen takas için XLM işlemi gönderirken Memo ID'yi belirtmeyi unutmayın", + "xmr_available_balance": "Kullanılabilir Bakiye", + "xmr_full_balance": "Tüm Bakiye", + "xmr_hidden": "Gizli", + "xmr_to_error": "XMR.TO hatası", + "xmr_to_error_description": "Geçersiz tutar. Ondalık noktadan sonra maksimum limit 8 basamaktır", + "xrp_extra_info": "Lütfen takas için XRP işlemi gönderirken Hedef Etiketi (Destination Tag) belirtmeyi unutmayın", + "yat": "Yat", + "yat_address": "Yat adresi", + "yat_alert_content": "Cake Wallet kullanıcıları artık tüm favori koin birimlerini benzersiz emoji tabanlı kullanıcı adıyla gönderebilir ve alabilirler.", + "yat_alert_title": "Yat ile daha kolay kripto gönderin ve alın", + "yat_error": "Yat hatası", + "yat_error_content": "Bu Yat'a bağlı bir adres yok. Başka bir Yat'ı deneyin", + "yat_popup_content": "Artık Cake Wallet'ta kısa, emoji tabanlı bir kullanıcı adı olan Yat'ınızla kripto gönderebilir ve alabilirsiniz. Yats'ı istediğiniz zaman ayarlar ekranından yönetebilirsiniz", + "yat_popup_title": "Cüzdan adresiniz emojileştirilebilir.", + "yesterday": "Dün", + "you_now_have_debit_card": "Artık bir ön ödemeli kartın var", + "you_pay": "Şu kadar ödeyeceksin: ", + "you_will_get": "Biçimine dönüştür:", + "you_will_send": "Biçiminden dönüştür:", + "yy": "YY", + "zzzz": "zzzz" +} \ No newline at end of file diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 7cc41ab43..59f21ab87 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -1,779 +1,780 @@ { - "welcome": "Вітаємо в", - "cake_wallet": "Cake Wallet", - "first_wallet_text": "В самому зручному гаманці для Monero, Bitcoin, Ethereum, Litecoin, та Haven", - "please_make_selection": "Оберіть спосіб створення гаманця: створити новий чи відновити ваш існуючий.", - "create_new": "Створити новий гаманець", - "restore_wallet": "Відновити гаманець", - "monero_com": "Monero.com by Cake Wallet", - "monero_com_wallet_text": "Awesome wallet for Monero", - "haven_app": "Haven by Cake Wallet", - "haven_app_wallet_text": "Awesome wallet for Haven", - "accounts": "Акаунти", - "edit": "Редагувати", + "about_cake_pay": "Cake Pay дозволяє вам легко купувати подарункові картки з віртуальними активами, які можна миттєво витратити в понад 150 000 продавців у Сполучених Штатах.", "account": "Акаунт", + "accounts": "Акаунти", + "accounts_subaddresses": "Акаунти та субадреси", + "activate": "Активувати", + "active": "Активний", + "active_cards": "Активні картки", + "activeConnectionsPrompt": "Тут з’являться активні підключення", "add": "Добавити", + "add_contact": "Додати контакт", + "add_custom_node": "Додати новий спеціальний вузол", + "add_custom_redemption": "Додати спеціальне погашення", + "add_fund_to_card": "Додайте передплачені кошти на картки (до ${value})", + "add_new_node": "Додати новий вузол", + "add_new_word": "Добавити нове слово", + "add_receiver": "Додати одержувача (необов'язково)", + "add_secret_code": "Або додайте цей секретний код до програми автентифікації", + "add_tip": "Додати підказку", + "add_token_disclaimer_check": "Я підтвердив адресу та інформацію щодо договору маркера, використовуючи авторитетне джерело. Додавання зловмисної або невірної інформації може призвести до втрати коштів.", + "add_token_warning": "Не редагуйте та не додавайте токени за вказівками шахраїв.\nЗавжди підтверджуйте адреси токенів у авторитетних джерелах!", + "add_value": "Додати значення", + "address": "Адреса", "address_book": "Адресна книга", - "contact": "Контакт", - "please_select": "Будь ласка, виберіть:", - "cancel": "Відмінити", - "ok": "OK", - "contact_name": "Ім'я контакту", - "reset": "Скинути", - "save": "Зберегти", + "address_book_menu": "Адресна книга", + "address_detected": "Виявлено адресу", + "address_from_domain": "Ця адреса від ${domain} на Unstoppable Domains", + "address_from_yat": "Ця адреса від ${emoji} на Yat", + "address_label": "Address label", "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": "Торгові операції", - "filter_by": "Фільтрувати по", - "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": "Використовуючи ${title}", - "error": "Помилка", - "estimated": "Приблизно ", - "min_value": "Мін: ${value} ${currency}", - "max_value": "Макс: ${value} ${currency}", - "change_currency": "Змінити валюту", - "overwrite_amount": "Overwrite amount", - "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", - "copy_id": "Скопіювати ID", - "exchange_result_write_down_trade_id": "Будь ласка, скопіюйте або запишіть ID операції.", - "trade_id": "ID операції:", - "copied_to_clipboard": "Скопійовано в буфер обміну", - "saved_the_trade_id": "Я зберіг ID операції", - "fetching": "Завантаження", - "id": "ID: ", - "amount": "Сума: ", - "payment_id": "ID платежу: ", - "status": "Статус: ", - "offer_expires_in": "Пропозиція закінчиться через: ", - "trade_is_powered_by": "Операція виконана через ${provider}", - "copy_address": "Cкопіювати адресу", - "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": "Tранзакцію відправлено!", - "expired": "Закінчується", - "time": "${minutes}хв ${seconds}сек", - "send_xmr": "Відправити XMR", - "exchange_new_template": "Новий шаблон", - "faq": "FAQ", - "enter_your_pin": "Введіть ваш 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_to_get_address": "Скануйте QR-код для одержання адреси", - "qr_fullscreen": "Торкніться, щоб відкрити QR-код на весь екран", - "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-ти слівну мнемонічну фразу", - "restore_title_from_keys": "Відновити за допомогою ключів", - "restore_description_from_keys": "Ви можете відновити гаманець за допомогою приватних ключів", - "restore_wallet_name": "Ім'я гаманця", - "restore_address": "Адреса", - "restore_view_key_private": "Приватний ключ перегляду", - "restore_spend_key_private": "Приватний ключ витрати", - "restore_recover": "Відновити", - "restore_wallet_restore_description": "Опис відновлюваного гаманця", - "restore_new_seed": "Нова мнемонічна фраза", - "restore_active_seed": "Активна мнемонічна фраза", - "restore_bitcoin_description_from_seed": "Ви можете відновити гаманець використовуючи 24-ти слівну мнемонічну фразу", - "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": "Насіннєва мова", - "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": "Іспанська", - "seed_language_french": "французький", - "seed_language_italian": "італійська", - "send_title": "Відправити", - "send_your_wallet": "Ваш гаманець", - "send_address": "${cryptoCurrency} адреса", - "send_payment_id": "ID платежу (опційно)", + "advanced_settings": "Розширені налаштування", + "aggressive": "Надто старанний", + "agree": "Згоден", + "agree_and_continue": "Погодитися та продовжити", + "agree_to": "Створюючи обліковий запис, ви погоджуєтеся з ", "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": "Ім'я", - "got_it": "Зрозумів", - "send_sending": "Відправлення...", - "send_success": "Ваш ${crypto} успішно надісланий", - "settings_title": "Налаштування", - "settings_nodes": "Вузли", - "settings_current_node": "Поточний вузол", - "settings_wallets": "Гаманці", - "settings_display_balance": "Відображати баланс", - "settings_currency": "Валюта", - "settings_fee_priority": "Пріоритет транзакції", - "settings_save_recipient_address": "Зберігати адресу отримувача", - "settings_personal": "Персональні", - "settings_change_pin": "Змінити 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_key_public": "Публічний ключ перегляду", - "spend_key_private": "Приватний ключ витрати", - "spend_key_public": "Публічний ключ витрати", - "copied_key_to_clipboard": "Скопійовано ${key} в буфер обміну", - "new_subaddress_title": "Нова адреса", - "new_subaddress_label_name": "Ім'я", - "new_subaddress_create": "Створити", - "address_label": "Address label", - "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": "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_edit_wallet": "Редагувати гаманець", - "wallet_list_wallet_name": "Назва гаманця", - "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_node_proxy_address": "Будь ласка, введіть :<порт>, наприклад 127.0.0.1:9050", - "error_text_payment_id": "Ідентифікатор платежу може містити від 16 до 64 символів в hex", - "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 до 33 символів в довжину", - "error_text_keys": "Ключі гаманця можуть містити тільки 64 символів в hex", - "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 символів в довжину", + "all_trades": "Всі операції", + "all_transactions": "Всі транзакції", + "alphabetical": "Алфавітний", + "already_have_account": "Вже є обліковий запис?", + "always": "Завжди", + "amount": "Сума: ", + "amount_is_estimate": "Отримана сума є приблизною", + "amount_is_guaranteed": "Отримана сума є гарантованою", + "and": "і", + "anonpay_description": "Згенерувати ${type}. Одержувач може ${method} будь-якою підтримуваною криптовалютою, і ви отримаєте кошти на цей гаманець.", + "apk_update": "Оновлення APK", + "approve": "Затвердити", + "arrive_in_this_address": "${currency} ${tag}надійде на цю адресу", + "ascending": "Висхід", + "ask_each_time": "Запитайте кожен раз", "auth_store_ban_timeout": "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": "ПІДКЛЮЧЕНО", - "sync_status_attempting_sync": "СПРОБА СИНХРОНІЗАЦІЇ", - "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": "BTC надіслано", - "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}", - "extracted_address_content": "Ви будете відправляти кошти\n${recipient_name}", - "card_address": "Адреса:", - "buy": "Купити", - "sell": "Продати", - "placeholder_transactions": "Тут відображатимуться ваші транзакції", - "placeholder_contacts": "Тут будуть показані ваші контакти", - "template": "Шаблон", - "confirm_delete_template": "Ця дія видалить шаблон. Ви хочете продовжити?", - "confirm_delete_wallet": "Ця дія видалить гаманець. Ви хочете продовжити?", - "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", - "trusted": "довіряють", - "color_theme": "Кольорова тема", - "light_theme": "Світла", - "bright_theme": "Яскрава", - "dark_theme": "Темна", - "enter_your_note": "Введіть примітку…", - "note_optional": "Примітка (необов’язково)", - "note_tap_to_change": "Примітка (натисніть для зміни)", - "view_in_block_explorer": "View in Block Explorer", - "view_transaction_on": "View Transaction on ", - "transaction_key": "Ключ транзакції", - "confirmations": "Підтвердження", - "recipient_address": "Адреса одержувача", - "extra_id": "Додатковий ID:", - "destination_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 для обміну", - "xrp_extra_info": "Будь ласка, не забудьте вказати тег призначення під час надсилання XRP-транзакції для обміну", - "exchange_incorrect_current_wallet_for_xmr": "Якщо ви хочете обміняти XMR із вашого балансу Cake Wallet Monero, спочатку перейдіть на свій гаманець Monero.", - "confirmed": "Підтверджений баланс", - "unconfirmed": "Непідтверджений баланс", - "displayable": "Відображуваний", - "submit_request": "надіслати запит", - "buy_alert_content": "Наразі ми підтримуємо купівлю лише Bitcoin, Ethereum, Litecoin і Monero. Створіть або перейдіть на свій гаманець Bitcoin, Ethereum, Litecoin або Monero.", - "sell_alert_content": "Наразі ми підтримуємо лише продаж Bitcoin, Ethereum і Litecoin. Створіть або перейдіть на свій гаманець Bitcoin, Ethereum або Litecoin.", - "outdated_electrum_wallet_description": "Нові біткойн-гаманці, створені в Cake, тепер містять мнемонічну фразу з 24 слів. Обов’язково стовріть новий біткойн-гаманець, переведіть всі кошти на новий гаманець із 24 слів і припиніть використання гаманців із мнемонічною фразою з 12 слів. Зробіть це негайно, щоб убезпечити свої кошти.", - "understand": "Зрозуміло", - "apk_update": "Оновлення APK", - "buy_bitcoin": "Купити Bitcoin", - "buy_with": "Купити за допомогою", - "moonpay_alert_text": "Значення суми має бути більшим або дорівнювати ${minAmount} ${fiatCurrency}", - "outdated_electrum_wallet_receive_warning": "Якщо цей гаманець має мнемонічну фразу з 12 слів і був створений у Cake, НЕ переводьте біткойни на цей гаманець. Будь-які BTC, переведений на цей гаманець, можуть бути втраченими. Створіть новий гаманець з мнемонічною фразою з 24 слів (торкніться меню у верхньому правому куті, виберіть Гаманці, виберіть Створити новий гаманець, потім виберіть Bitcoin) і НЕГАЙНО переведіть туди свії BTC. Нові (з мнемонічною фразою з 24 слів) гаманці BTC від Cake надійно захищені", - "do_not_show_me": "Не показуй мені це знову", - "unspent_coins_title": "Невитрачені монети", - "unspent_coins_details_title": "Відомості про невитрачені монети", - "freeze": "Заморозити", - "frozen": "Заморожено", - "coin_control": "Контроль монет (необов’язково)", - "address_detected": "Виявлено адресу", - "address_from_domain": "Ця адреса від ${domain} на Unstoppable Domains", - "add_receiver": "Додати одержувача (необов'язково)", - "manage_yats": "Керувати Yat", - "yat_alert_title": "За допомогою Yat легше надсилати та отримувати криптовалюту", - "yat_alert_content": "Користувачі Cake Wallet тепер можуть надсилати та отримувати криптовалюту за допомогою унікального імені користувача на основі смайликів.", - "get_your_yat": "Одержати свій Yat", - "connect_an_existing_yat": "Підключити існуючий Yat", - "yat_address": "Yat адреса", - "yat": "Yat", - "connect_yats": "Підключіть Yats", - "address_from_yat": "Ця адреса від ${emoji} на Yat", - "yat_error": "Помилка Yat", - "yat_error_content": "Немає адрес, пов'язаних з цим Yat. Спробуйте інший Yat", - "choose_address": "\n\nБудь ласка, оберіть адресу:", - "yat_popup_title": "Адреса вашого гаманця може бути пов'язаною з емодзі", - "yat_popup_content": "Тепер ви можете відправляти і отримувати криптовалюту в Cake Wallet за допомогою Yat - короткого імені користувача на основі емодзі. Керуйте Yat в будь-який час за допомогою екрану налаштувань", - "second_intro_title": "Одна адреса емодзі для управління іншими адресами", - "second_intro_content": "Ваш Yat - це єдина унікальна адреса емодзі, яка замінює довгі шістнадцятиричні адреси для всіх ваших валют.", - "third_intro_title": "Yat добре взаємодіє з іншими", - "third_intro_content": "Yat знаходиться за межами Cake Wallet. Будь-яку адресу гаманця на землі можна замінити на Yat!", - "learn_more": "Дізнатися більше", - "search": "Пошук", - "search_language": "Мова пошуку", - "search_currency": "Шукати валюту", - "new_template": "Новий шаблон", - "electrum_address_disclaimer": "Ми створюємо нові адреси щоразу, коли ви використовуєте їх, але попередні адреси продовжують працювати", - "wallet_name_exists": "Гаманець з такою назвою вже існує", - "market_place": "Ринок", - "cake_pay_title": "Подарункові картки Cake Pay", - "cake_pay_subtitle": "Купуйте подарункові картки зі знижкою (тільки для США)", - "cake_pay_web_cards_title": "Веб-картки Cake Pay", - "cake_pay_web_cards_subtitle": "Купуйте передоплачені та подарункові картки по всьому світу", - "about_cake_pay": "Cake Pay дозволяє вам легко купувати подарункові картки з віртуальними активами, які можна миттєво витратити в понад 150 000 продавців у Сполучених Штатах.", - "cake_pay_account_note": "Зареєструйтеся, використовуючи лише адресу електронної пошти, щоб переглядати та купувати картки. Деякі навіть доступні зі знижкою!", - "already_have_account": "Вже є обліковий запис?", - "create_account": "Створити обліковий запис", - "privacy_policy": "Політика конфіденційності", - "welcome_to_cakepay": "Ласкаво просимо до Cake Pay!", - "sign_up": "Зареєструватися", - "forgot_password": "Забули пароль", - "reset_password": "Скинути пароль", - "gift_cards": "Подарункові карти", - "setup_your_debit_card": "Налаштуйте свою дебетову картку", - "no_id_required": "Ідентифікатор не потрібен. Поповнюйте та витрачайте будь-де", - "how_to_use_card": "Як використовувати цю картку", - "purchase_gift_card": "Придбати подарункову картку", - "verification": "Перевірка", - "fill_code": "Будь ласка, введіть код підтвердження, надісланий на вашу електронну адресу", - "didnt_get_code": "Не отримуєте код?", - "resend_code": "Будь ласка, надішліть його повторно", - "debit_card": "Дебетова картка", - "cakepay_prepaid_card": "Передплачена дебетова картка CakePay", - "no_id_needed": "Ідентифікатор не потрібен!", - "frequently_asked_questions": "Часті запитання", - "debit_card_terms": "Зберігання та використання номера вашої платіжної картки (та облікових даних, які відповідають номеру вашої платіжної картки) у цьому цифровому гаманці регулюються Умовами відповідної угоди власника картки з емітентом платіжної картки, що діє з час від часу.", - "please_reference_document": "Для отримання додаткової інформації зверніться до документів нижче.", - "cardholder_agreement": "Угода власника картки", - "e_sign_consent": "Згода електронного підпису", - "agree_and_continue": "Погодитися та продовжити", - "email_address": "Адреса електронної пошти", - "agree_to": "Створюючи обліковий запис, ви погоджуєтеся з ", - "and": "і", - "enter_code": "Введіть код", - "congratulations": "Вітаємо!", - "you_now_have_debit_card": "Тепер у вас є дебетова картка", - "min_amount": "Мінімум: ${value}", - "max_amount": "Макс: ${value}", - "enter_amount": "Введіть суму", - "billing_address_info": "Якщо буде запропоновано платіжну адресу, вкажіть свою адресу доставки", - "order_physical_card": "Замовити фізичну картку", - "add_value": "Додати значення", - "activate": "Активувати", - "get_a": "Отримати ", - "digital_and_physical_card": " цифрова та фізична передплачена дебетова картка", - "get_card_note": " яку можна перезавантажувати цифровими валютами. Додаткова інформація не потрібна!", - "signup_for_card_accept_terms": "Зареєструйтеся на картку та прийміть умови.", - "add_fund_to_card": "Додайте передплачені кошти на картки (до ${value})", - "use_card_info_two": "Кошти конвертуються в долари США, якщо вони зберігаються на передплаченому рахунку, а не в цифрових валютах.", - "use_card_info_three": "Використовуйте цифрову картку онлайн або за допомогою безконтактних методів оплати.", - "optionally_order_card": "Необов'язково замовте фізичну картку.", - "hide_details": "Приховати деталі", - "show_details": "Показати деталі", - "upto": "до ${value}", - "discount": "Зекономте ${value}%", - "gift_card_amount": "Сума подарункової картки", - "bill_amount": "Сума рахунку", - "you_pay": "Ви платите", - "tip": "Порада:", - "custom": "на замовлення", - "by_cake_pay": "від Cake Pay", - "expires": "Закінчується", - "mm": "MM", - "yy": "YY", - "online": "Онлайн", - "offline": "Офлайн", - "gift_card_number": "Номер подарункової картки", - "pin_number": "PIN-код", - "total_saving": "Загальна економія", - "last_30_days": "Останні 30 днів", - "avg_savings": "Середня економія", - "view_all": "Переглянути все", - "active_cards": "Активні картки", - "delete_account": "Видалити обліковий запис", - "cards": "Картки", - "active": "Активний", - "redeeded": "Викуплено", - "gift_card_balance_note": "Тут з'являться подарункові картки із залишком на балансі", - "gift_card_redeemed_note": "Подарункові картки, які ви активували, відображатимуться тут", - "logout": "Вийти", - "add_tip": "Додати підказку", - "percentageOf": "${amount}", - "is_percentage": "є", - "search_category": "Категорія пошуку", - "mark_as_redeemed": "Позначити як погашене", - "more_options": "Більше параметрів", - "awaiting_payment_confirmation": "Очікується підтвердження платежу", - "transaction_sent_notice": "Якщо екран не відображається через 1 хвилину, перевірте провідник блоків і свою електронну пошту.", - "agree": "Згоден", - "in_store": "У магазині", - "generating_gift_card": "Створення подарункової картки", - "payment_was_received": "Ваш платіж отримано.", - "proceed_after_one_minute": "Якщо екран не продовжується через 1 хвилину, перевірте свою електронну пошту.", - "order_id": "Ідентифікатор замовлення", - "gift_card_is_generated": "Подарункова картка створена", - "open_gift_card": "Відкрити подарункову картку", - "contact_support": "Звернутися до служби підтримки", - "gift_cards_unavailable": "Наразі подарункові картки можна придбати лише через Monero, Bitcoin і Litecoin", - "background_sync_mode": "Фоновий режим синхронізації", - "sync_all_wallets": "Синхронізувати всі гаманці", - "introducing_cake_pay": "Представляємо Cake Pay!", - "cake_pay_learn_more": "Миттєво купуйте та активуйте подарункові картки в додатку!\nПроведіть пальцем зліва направо, щоб дізнатися більше.", - "automatic": "Автоматичний", - "fixed_pair_not_supported": "Ця фіксована пара не підтримується вибраними біржами", - "variable_pair_not_supported": "Ця пара змінних не підтримується вибраними біржами", - "none_of_selected_providers_can_exchange": "Жоден із вибраних провайдерів не може здійснити цей обмін", - "choose_one": "Вибери один", - "choose_from_available_options": "Виберіть із доступних варіантів:", - "custom_redeem_amount": "Власна сума викупу", - "add_custom_redemption": "Додати спеціальне погашення", - "remaining": "залишилося", - "delete_wallet": "Видалити гаманець", - "delete_wallet_confirm_message": "Ви впевнені, що хочете видалити гаманець ${wallet_name}?", - "low_fee": "Низька плата", - "low_fee_alert": "Зараз ви використовуєте низький пріоритет плати за мережу. Це може спричинити тривале очікування, інший курс або скасування угод. Ми рекомендуємо встановити вищу плату для кращого досвіду.", - "ignor": "Ігнорувати", - "use_suggested": "Використати запропоноване", - "do_not_share_warning_text": "Не діліться цим нікому, включно зі службою підтримки.\n\nВаші кошти можуть і будуть вкрадені!", - "help": "допомога", - "all_transactions": "Всі транзакції", - "all_trades": "Всі операції", - "connection_sync": "Підключення та синхронізація", - "security_and_backup": "Безпека та резервне копіювання", - "create_backup": "Створити резервну копію", - "privacy_settings": "Налаштування конфіденційності", - "privacy": "Конфіденційність", - "display_settings": "Налаштування дисплея", - "other_settings": "Інші налаштування", - "require_pin_after": "Вимагати PIN після", - "always": "Завжди", - "minutes_to_pin_code": "${minute} хвилин", - "disable_exchange": "Вимкнути exchange", - "advanced_settings": "Розширені налаштування", - "settings_can_be_changed_later": "Ці параметри можна змінити пізніше в налаштуваннях програми", - "add_custom_node": "Додати новий спеціальний вузол", - "disable_fiat": "Вимкнути фиат", - "fiat_api": "Фіат API", - "disabled": "Вимкнено", - "enabled": "Увімкнено", - "tor_only": "Тільки Tor", - "unmatched_currencies": "Валюта вашого гаманця не збігається з валютою сканованого QR-коду", - "orbot_running_alert": "Перед підключенням до цього вузла переконайтеся, що Orbot запущено.", - "contact_list_contacts": "Контакти", - "contact_list_wallets": "Мої гаманці", - "bitcoin_payments_require_1_confirmation": "Платежі Bitcoin потребують 1 підтвердження, яке може зайняти 20 хвилин або більше. Дякую за Ваше терпіння! Ви отримаєте електронний лист, коли платіж буде підтверджено.", - "send_to_this_address": "Надіслати ${currency} ${tag}на цю адресу", - "arrive_in_this_address": "${currency} ${tag}надійде на цю адресу", - "do_not_send": "Не надсилайте", - "error_dialog_content": "На жаль, ми отримали помилку.\n\nБудь ласка, надішліть звіт про збій нашій команді підтримки, щоб покращити додаток.", - "scan_qr_code": "Відскануйте QR-код", - "cold_or_recover_wallet": "Додайте холодний гаманець або відновіть паперовий гаманець", - "please_wait": "Будь ласка, зачекайте", - "sweeping_wallet": "Підмітаня гаманця", - "sweeping_wallet_alert": "Це не повинно зайняти багато часу. НЕ ЗАЛИШАЙТЕ ЦЬОГО ЕКРАНУ, АБО КОШТИ МОЖУТЬ БУТИ ВТРАЧЕНІ", - "decimal_places_error": "Забагато знаків після коми", - "edit_node": "Редагувати вузол", - "invoice_details": "Реквізити рахунку-фактури", - "donation_link_details": "Деталі посилання для пожертв", - "anonpay_description": "Згенерувати ${type}. Одержувач може ${method} будь-якою підтримуваною криптовалютою, і ви отримаєте кошти на цей гаманець.", - "create_invoice": "Створити рахунок-фактуру", - "create_donation_link": "Створити посилання для пожертв", - "optional_email_hint": "Додаткова електронна адреса для сповіщення одержувача", - "optional_description": "Додатковий опис", - "optional_name": "Додаткове ім'я одержувача", - "clearnet_link": "Посилання Clearnet", - "onion_link": "Посилання на цибулю", - "settings": "Налаштування", - "sell_monero_com_alert_content": "Продаж Monero ще не підтримується", - "error_text_input_below_minimum_limit": "Сума менша мінімальної", - "error_text_input_above_maximum_limit": "Сума більше максимальної", - "show_market_place": "Відображати маркетплейс", - "prevent_screenshots": "Запобігати знімкам екрана та запису екрана", - "profile": "Профіль", - "close": "Закрити", - "modify_2fa": "Змінити торт 2FA", - "disable_cake_2fa": "Вимкнути Cake 2FA", - "question_to_disable_2fa": "Ви впевнені, що хочете вимкнути Cake 2FA? Код 2FA більше не потрібен для доступу до гаманця та певних функцій.", - "disable": "Вимкнути", - "setup_2fa": "Налаштування Cake 2FA", - "verify_with_2fa": "Перевірте за допомогою Cake 2FA", - "totp_code": "Код TOTP", - "please_fill_totp": "Будь ласка, введіть 8-значний код, наявний на вашому іншому пристрої", - "totp_2fa_success": "Успіх! Cake 2FA увімкнено для цього гаманця. Пам’ятайте про збереження мнемоніки на випадок, якщо ви втратите доступ до гаманця.", - "totp_verification_success": "Перевірка успішна!", - "totp_2fa_failure": "Невірний код. Спробуйте інший код або створіть новий секретний ключ. Використовуйте сумісний додаток 2FA, який підтримує 8-значні коди та SHA512.", - "enter_totp_code": "Будь ласка, введіть код TOTP.", - "add_secret_code": "Або додайте цей секретний код до програми автентифікації", - "totp_secret_code": "Секретний код TOTP", - "setup_2fa_text": "Cake 2FA працює з використанням TOTP як другого фактора автентифікації.\n\nДля TOTP Cake 2FA потрібен SHA-512 і підтримка 8 цифр; це забезпечує підвищену безпеку. Додаткову інформацію та підтримувані програми можна знайти в посібнику.", - "setup_totp_recommended": "Налаштувати TOTP", - "disable_buy": "Вимкнути дію покупки", - "disable_sell": "Вимкнути дію продажу", + "authenticated": "Аутентифіковано", + "authentication": "Аутентифікація", "auto_generate_subaddresses": "Автоматично генерувати підадреси", - "cake_2fa_preset": "Торт 2FA Preset", - "narrow": "вузькі", - "normal": "нормальний", - "aggressive": "Надто старанний", - "require_for_assessing_wallet": "Потрібен доступ до гаманця", - "require_for_sends_to_non_contacts": "Вимагати для надсилання неконтактним особам", - "require_for_sends_to_contacts": "Вимагати для надсилання контактам", - "require_for_sends_to_internal_wallets": "Вимагати надсилання на внутрішні гаманці", - "require_for_exchanges_to_internal_wallets": "Вимагати обміну на внутрішні гаманці", - "require_for_adding_contacts": "Потрібен для додавання контактів", - "require_for_creating_new_wallets": "Потрібно для створення нових гаманців", - "require_for_all_security_and_backup_settings": "Вимагати всіх налаштувань безпеки та резервного копіювання", + "automatic": "Автоматичний", + "available_balance": "Доступний баланс", "available_balance_description": "Це сума, яку ви можете витратити, не включаючи невизначені кошти. Це може бути менше, ніж загальний баланс, якщо ви витратили кошти, які ще не підтверджені.", - "syncing_wallet_alert_title": "Ваш гаманець синхронізується", - "syncing_wallet_alert_content": "Ваш баланс та список транзакцій може бути неповним, доки вгорі не буде написано «СИНХРОНІЗОВАНО». Натисніть/торкніться, щоб дізнатися більше.", - "home_screen_settings": "Налаштування головного екрана", - "sort_by": "Сортувати за", - "search_add_token": "Пошук / Додати маркер", - "edit_token": "Редагувати маркер", - "warning": "УВАГА", - "add_token_warning": "Не редагуйте та не додавайте токени за вказівками шахраїв.\nЗавжди підтверджуйте адреси токенів у авторитетних джерелах!", - "add_token_disclaimer_check": "Я підтвердив адресу та інформацію щодо договору маркера, використовуючи авторитетне джерело. Додавання зловмисної або невірної інформації може призвести до втрати коштів.", - "token_contract_address": "Адреса договору маркера", - "token_name": "Назва токена, наприклад: Tether", - "token_symbol": "Символ маркера, наприклад: USDT", - "token_decimal": "Токен десятковий", - "field_required": "Це поле є обов'язковим", - "pin_at_top": "закріпити ${token} зверху", - "invalid_input": "Неправильні дані", - "fiat_balance": "Фіат Баланс", - "gross_balance": "Валовий баланс", - "alphabetical": "Алфавітний", - "generate_name": "Згенерувати назву", + "avg_savings": "Середня економія", + "awaitDAppProcessing": "Зачекайте, доки dApp завершить обробку.", + "awaiting_payment_confirmation": "Очікується підтвердження платежу", + "background_sync_mode": "Фоновий режим синхронізації", + "backup": "Резервна копія", + "backup_file": "Файл резервної копії", + "backup_password": "Пароль резервної копії", "balance_page": "Сторінка балансу", - "share": "Поділіться", - "slidable": "Розсувний", - "monero_dark_theme": "Темна тема Monero", + "bill_amount": "Сума рахунку", + "billing_address_info": "Якщо буде запропоновано платіжну адресу, вкажіть свою адресу доставки", + "biometric_auth_reason": "Відскануйте свій відбиток пальця для аутентифікації", "bitcoin_dark_theme": "Темна тема Bitcoin", "bitcoin_light_theme": "Світла тема Bitcoin", - "high_contrast_theme": "Тема високої контрастності", - "matrix_green_dark_theme": "Зелена темна тема Matrix", - "monero_light_theme": "Легка тема Monero", - "manage_nodes": "Керуйте вузлами", - "etherscan_history": "Історія Etherscan", - "template_name": "Назва шаблону", + "bitcoin_payments_require_1_confirmation": "Платежі Bitcoin потребують 1 підтвердження, яке може зайняти 20 хвилин або більше. Дякую за Ваше терпіння! Ви отримаєте електронний лист, коли платіж буде підтверджено.", + "Blocks_remaining": "${status} Залишилось блоків", + "bright_theme": "Яскрава", + "buy": "Купити", + "buy_alert_content": "Наразі ми підтримуємо купівлю лише Bitcoin, Ethereum, Litecoin і Monero. Створіть або перейдіть на свій гаманець Bitcoin, Ethereum, Litecoin або Monero.", + "buy_bitcoin": "Купити Bitcoin", + "buy_provider_unavailable": "В даний час постачальник недоступний.", + "buy_with": "Купити за допомогою", + "by_cake_pay": "від Cake Pay", + "cake_2fa_preset": "Торт 2FA Preset", + "cake_pay_account_note": "Зареєструйтеся, використовуючи лише адресу електронної пошти, щоб переглядати та купувати картки. Деякі навіть доступні зі знижкою!", + "cake_pay_learn_more": "Миттєво купуйте та активуйте подарункові картки в додатку!\nПроведіть пальцем зліва направо, щоб дізнатися більше.", + "cake_pay_subtitle": "Купуйте подарункові картки зі знижкою (тільки для США)", + "cake_pay_title": "Подарункові картки Cake Pay", + "cake_pay_web_cards_subtitle": "Купуйте передоплачені та подарункові картки по всьому світу", + "cake_pay_web_cards_title": "Веб-картки Cake Pay", + "cake_wallet": "Cake Wallet", + "cakepay_prepaid_card": "Передплачена дебетова картка CakePay", + "camera_consent": "Ваша камера використовуватиметься для зйомки зображення з метою ідентифікації ${provider}. Будь ласка, ознайомтеся з їхньою політикою конфіденційності, щоб дізнатися більше.", + "camera_permission_is_required": "Потрібен дозвіл камери.\nУвімкніть його в налаштуваннях програми.", + "cancel": "Відмінити", + "card_address": "Адреса:", + "cardholder_agreement": "Угода власника картки", + "cards": "Картки", + "chains": "Ланцюги", + "change": "Змінити", + "change_backup_password_alert": "Ваші попередні файли резервних копій будуть недоступні для імпорту з новим паролем резервної копії. Новий пароль резервної копії буде використовуватися тільки для нових файлів резервних копій. Ви впевнені, що хочете змінити пароль резервної копії?", + "change_currency": "Змінити валюту", + "change_current_node": "Ви впевнені, що хочете змінити поточний вузол на ${node}?", + "change_current_node_title": "Змінити поточний вузол", + "change_exchange_provider": "Змінити провайдера обміну", + "change_language": "Змінити мову", + "change_language_to": "Змінити мову на ${language}?", + "change_password": "Змінити пароль", "change_rep": "Зміна представника", "change_rep_message": "Ви впевнені, що хочете змінити представника?", - "unsupported_asset": "Ми не підтримуємо цю дію для цього ресурсу. Створіть або перейдіть на гаманець підтримуваного типу активів.", - "manage_pow_nodes": "Керуйте вузлами PoW", - "support_title_live_chat": "Жива підтримка", - "support_description_live_chat": "Безкоштовно і швидко! Навчені представники підтримки доступні для надання допомоги", - "support_title_guides": "Поклики для гаманців тортів", - "support_description_guides": "Документація та підтримка загальних питань", - "support_title_other_links": "Інші посилання на підтримку", - "support_description_other_links": "Приєднуйтесь до наших спільнот або досягайте нас нашими партнерами іншими методами", + "change_rep_successful": "Успішно змінив представник", + "change_wallet_alert_content": "Ви хочете змінити поточний гаманець на ${wallet_name}?", + "change_wallet_alert_title": "Змінити поточний гаманець", + "choose_account": "Оберіть акаунт", + "choose_address": "\n\nБудь ласка, оберіть адресу:", "choose_derivation": "Виберіть деривацію гаманця", - "new_first_wallet_text": "Легко зберігайте свою криптовалюту в безпеці", - "select_destination": "Виберіть місце призначення для файлу резервної копії.", - "save_to_downloads": "Зберегти до завантажень", - "select_buy_provider_notice": "Виберіть постачальника купівлі вище. Ви можете пропустити цей екран, встановивши свого постачальника купівлі за замовчуванням у налаштуваннях додатків.", - "onramper_option_description": "Швидко купуйте криптовалюту з багатьма методами оплати. Доступний у більшості країн. Поширення та збори різняться.", + "choose_from_available_options": "Виберіть із доступних варіантів:", + "choose_one": "Вибери один", + "choose_relay": "Будь ласка, виберіть реле для використання", + "choose_wallet_currency": "Будь ласка, виберіть валюту гаманця:", + "clear": "Очистити", + "clearnet_link": "Посилання Clearnet", + "close": "Закрити", + "coin_control": "Контроль монет (необов’язково)", + "cold_or_recover_wallet": "Додайте холодний гаманець або відновіть паперовий гаманець", + "color_theme": "Кольорова тема", + "commit_transaction_amount_fee": "Підтвердити транзакцію \nСума: ${amount}\nКомісія: ${fee}", + "confirm": "Підтвердити", + "confirm_delete_template": "Ця дія видалить шаблон. Ви хочете продовжити?", + "confirm_delete_wallet": "Ця дія видалить гаманець. Ви хочете продовжити?", + "confirm_sending": "Підтвердити відправлення", + "confirmations": "Підтвердження", + "confirmed": "Підтверджений баланс", + "confirmed_tx": "Підтверджений", + "congratulations": "Вітаємо!", + "connect_an_existing_yat": "Підключити існуючий Yat", + "connect_yats": "Підключіть Yats", + "connection_sync": "Підключення та синхронізація", + "connectWalletPrompt": "Підключіть свій гаманець до WalletConnect, щоб здійснювати транзакції", + "contact": "Контакт", + "contact_list_contacts": "Контакти", + "contact_list_wallets": "Мої гаманці", + "contact_name": "Ім'я контакту", + "contact_support": "Звернутися до служби підтримки", + "continue_text": "Продовжити", + "contractName": "Назва контракту", + "contractSymbol": "Контракт символ", + "copied_key_to_clipboard": "Скопійовано ${key} в буфер обміну", + "copied_to_clipboard": "Скопійовано в буфер обміну", + "copy": "Скопіювати", + "copy_address": "Cкопіювати адресу", + "copy_id": "Скопіювати ID", + "copyWalletConnectLink": "Скопіюйте посилання WalletConnect із dApp і вставте сюди", + "create_account": "Створити обліковий запис", + "create_backup": "Створити резервну копію", + "create_donation_link": "Створити посилання для пожертв", + "create_invoice": "Створити рахунок-фактуру", + "create_new": "Створити новий гаманець", + "create_new_account": "Створити новий акаунт", + "creating_new_wallet": "Створення нового гаманця", + "creating_new_wallet_error": "Помилка: ${description}", + "creation_date": "Дата створення", + "custom": "на замовлення", + "custom_drag": "На замовлення (утримуйте та перетягується)", + "custom_redeem_amount": "Власна сума викупу", + "dark_theme": "Темна", + "debit_card": "Дебетова картка", + "debit_card_terms": "Зберігання та використання номера вашої платіжної картки (та облікових даних, які відповідають номеру вашої платіжної картки) у цьому цифровому гаманці регулюються Умовами відповідної угоди власника картки з емітентом платіжної картки, що діє з час від часу.", + "decimal_places_error": "Забагато знаків після коми", "default_buy_provider": "Постачальник покупки за замовчуванням", - "ask_each_time": "Запитайте кожен раз", - "buy_provider_unavailable": "В даний час постачальник недоступний.", - "signTransaction": "Підписати транзакцію", + "default_sell_provider": "Постачальник продажу за замовчуванням", + "delete": "Видалити", + "delete_account": "Видалити обліковий запис", + "delete_wallet": "Видалити гаманець", + "delete_wallet_confirm_message": "Ви впевнені, що хочете видалити гаманець ${wallet_name}?", + "deleteConnectionConfirmationPrompt": "Ви впевнені, що хочете видалити з’єднання з", + "descending": "Низхідний", + "description": "опис", + "destination_tag": "Тег призначення:", + "dfx_option_description": "Купуйте криптовалюту за EUR і CHF. До 990 євро без додаткового KYC. Для роздрібних і корпоративних клієнтів у Європі", + "didnt_get_code": "Не отримуєте код?", + "digit_pin": "-значний PIN", + "digital_and_physical_card": " цифрова та фізична передплачена дебетова картка", + "disable": "Вимкнути", + "disable_buy": "Вимкнути дію покупки", + "disable_cake_2fa": "Вимкнути Cake 2FA", + "disable_exchange": "Вимкнути exchange", + "disable_fiat": "Вимкнути фиат", + "disable_sell": "Вимкнути дію продажу", + "disabled": "Вимкнено", + "discount": "Зекономте ${value}%", + "display_settings": "Налаштування дисплея", + "displayable": "Відображуваний", + "do_not_have_enough_gas_asset": "У вас недостатньо ${currency}, щоб здійснити трансакцію з поточними умовами мережі блокчейн. Вам потрібно більше ${currency}, щоб сплатити комісію мережі блокчейн, навіть якщо ви надсилаєте інший актив.", + "do_not_send": "Не надсилайте", + "do_not_share_warning_text": "Не діліться цим нікому, включно зі службою підтримки.\n\nВаші кошти можуть і будуть вкрадені!", + "do_not_show_me": "Не показуй мені це знову", + "domain_looks_up": "Пошук доменів", + "donation_link_details": "Деталі посилання для пожертв", + "e_sign_consent": "Згода електронного підпису", + "edit": "Редагувати", + "edit_backup_password": "Змінити пароль резервної копії", + "edit_node": "Редагувати вузол", + "edit_token": "Редагувати маркер", + "electrum_address_disclaimer": "Ми створюємо нові адреси щоразу, коли ви використовуєте їх, але попередні адреси продовжують працювати", + "email_address": "Адреса електронної пошти", + "enabled": "Увімкнено", + "enter_amount": "Введіть суму", + "enter_backup_password": "Введіть пароль резервної копії", + "enter_code": "Введіть код", + "enter_seed_phrase": "Введіть свою насіннєву фразу", + "enter_totp_code": "Будь ласка, введіть код TOTP.", + "enter_your_note": "Введіть примітку…", + "enter_your_pin": "Введіть ваш PIN", + "enter_your_pin_again": "Введіть PIN ще раз", + "enterTokenID": "Введіть ідентифікатор токена", + "enterWalletConnectURI": "Введіть URI WalletConnect", + "error": "Помилка", + "error_dialog_content": "На жаль, ми отримали помилку.\n\nБудь ласка, надішліть звіт про збій нашій команді підтримки, щоб покращити додаток.", + "error_text_account_name": "Ім'я акаунту може містити тільки букви, цифри\nі повинно бути від 1 до 15 символів в довжину", + "error_text_address": "Адреса гаманця повинна відповідати типу\nкриптовалюти", + "error_text_amount": "Баланс може містити тільки цифри", + "error_text_contact_name": "Ім'я контакту не може містити ` , ' \" символи\n і повинно бути від 1 до 32 символів в довжину", + "error_text_crypto_currency": "Кількість цифр після коми\nповинно бути меншим або дорівнювати 12", + "error_text_fiat": "Значення суми не може перевищувати доступний баланс.\nКількість цифр після коми повинно бути меншим або дорівнювати 2", + "error_text_input_above_maximum_limit": "Сума більше максимальної", + "error_text_input_below_minimum_limit": "Сума менша мінімальної", + "error_text_keys": "Ключі гаманця можуть містити тільки 64 символів в hex", + "error_text_limits_loading_failed": "Операція для ${provider} не створена. Помилка завантаження лімітів", + "error_text_maximum_limit": "Операція для ${provider} не створена. Сума більше максимальної: ${max} ${currency}", + "error_text_minimal_limit": "Операція для ${provider} не створена. Сума менша мінімальної: ${min} ${currency}", + "error_text_node_address": "Будь ласка, введіть iPv4 адресу", + "error_text_node_port": "Порт вузла може містити тільки цифри від 0 до 65535", + "error_text_node_proxy_address": "Будь ласка, введіть :<порт>, наприклад 127.0.0.1:9050", + "error_text_payment_id": "Ідентифікатор платежу може містити від 16 до 64 символів в hex", + "error_text_subaddress_name": "Ім'я субадреси не може містити ` , ' \" символи\nі може бути від 1 до 20 символів в довжину", + "error_text_template": "Ім'я та адреса шаблону не може містити ` , ' \" символи\nі може бути від 1 до 106 символів в довжину", + "error_text_wallet_name": "Ім'я гаманця може містити тільки букви, цифри, символи _ -\nі повинно бути від 1 до 33 символів в довжину", + "error_text_xmr": "Значення XMR не може перевищувати доступний баланс.\nКількість цифр після коми повинно бути меншим або дорівнювати 12", "errorGettingCredentials": "Помилка: помилка під час отримання облікових даних", "errorSigningTransaction": "Під час підписання транзакції сталася помилка", - "pairingInvalidEvent": "Недійсна подія сполучення", - "chains": "Ланцюги", - "methods": "методи", - "events": "Події", - "reject": "Відхиляти", - "approve": "Затвердити", - "expiresOn": "Термін дії закінчується", - "walletConnect": "WalletConnect", - "nullURIError": "URI нульовий", - "connectWalletPrompt": "Підключіть свій гаманець до WalletConnect, щоб здійснювати транзакції", - "newConnection": "Нове підключення", - "activeConnectionsPrompt": "Тут з’являться активні підключення", - "deleteConnectionConfirmationPrompt": "Ви впевнені, що хочете видалити з’єднання з", + "estimated": "Приблизно ", + "etherscan_history": "Історія Etherscan", "event": "Подія", - "successful": "Успішний", - "wouoldLikeToConnect": "хотів би підключитися", - "message": "повідомлення", - "do_not_have_enough_gas_asset": "У вас недостатньо ${currency}, щоб здійснити трансакцію з поточними умовами мережі блокчейн. Вам потрібно більше ${currency}, щоб сплатити комісію мережі блокчейн, навіть якщо ви надсилаєте інший актив.", - "totp_auth_url": "TOTP AUTH URL", - "awaitDAppProcessing": "Зачекайте, доки dApp завершить обробку.", - "copyWalletConnectLink": "Скопіюйте посилання WalletConnect із dApp і вставте сюди", - "enterWalletConnectURI": "Введіть URI WalletConnect", - "seed_key": "Насіннєвий ключ", - "enter_seed_phrase": "Введіть свою насіннєву фразу", - "change_rep_successful": "Успішно змінив представник", - "add_contact": "Додати контакт", + "events": "Події", + "exchange": "Обмін", + "exchange_incorrect_current_wallet_for_xmr": "Якщо ви хочете обміняти XMR із вашого балансу Cake Wallet Monero, спочатку перейдіть на свій гаманець Monero.", + "exchange_new_template": "Новий шаблон", "exchange_provider_unsupported": "${providerName} більше не підтримується!", - "domain_looks_up": "Пошук доменів", - "require_for_exchanges_to_external_wallets": "Потрібен для обміну на зовнішні гаманці", - "camera_permission_is_required": "Потрібен дозвіл камери.\nУвімкніть його в налаштуваннях програми.", - "switchToETHWallet": "Перейдіть на гаманець Ethereum і повторіть спробу", - "order_by": "Сортувати за", - "creation_date": "Дата створення", + "exchange_result_confirm": "Натиснувши підтвердити, ви відправите ${fetchingLabel} ${from} з вашого гаманця ${walletName} на адресу вказану нижче. Або ви можете відправити зі свого зовнішнього гаманця на нижчевказану адресу/QR-код.\n\nБудь ласка, натисніть підтвердити для продовження або поверніться назад щоб змінити суму.", + "exchange_result_description": "Ви повинні надіслати мінімум ${fetchingLabel} ${from} на адресу, вказану на наступній сторінці. Якщо ви надішлете суму меншу за ${fetchingLabel} ${from}, то вона може бути не конвертованою і не поверненою.", + "exchange_result_write_down_ID": "*Будь ласка, скопіюйте або запишіть ID, вказаний вище.", + "exchange_result_write_down_trade_id": "Будь ласка, скопіюйте або запишіть ID операції.", + "exchange_sync_alert_content": "Зачекайте, поки ваш гаманець не синхронізується", + "expired": "Закінчується", + "expires": "Закінчується", + "expiresOn": "Термін дії закінчується", + "export_backup": "Експортувати резервну копію", + "extra_id": "Додатковий ID:", + "extracted_address_content": "Ви будете відправляти кошти\n${recipient_name}", + "failed_authentication": "Помилка аутентифікації. ${state_error}", + "faq": "FAQ", + "fetching": "Завантаження", + "fiat_api": "Фіат API", + "fiat_balance": "Фіат Баланс", + "field_required": "Це поле є обов'язковим", + "fill_code": "Будь ласка, введіть код підтвердження, надісланий на вашу електронну адресу", + "filter_by": "Фільтрувати по", + "first_wallet_text": "В самому зручному гаманці для Monero, Bitcoin, Ethereum, Litecoin, та Haven", + "fixed_pair_not_supported": "Ця фіксована пара не підтримується вибраними біржами", + "fixed_rate": "Фіксована ставка", + "fixed_rate_alert": "Ви зможете ввести суму отримання тоді, коли буде встановлений режим фіксованої ставки. Ви хочете перейти в режим фіксованої ставки?", + "forgot_password": "Забули пароль", + "freeze": "Заморозити", + "frequently_asked_questions": "Часті запитання", + "frozen": "Заморожено", + "full_balance": "Весь баланс", + "generate_name": "Згенерувати назву", + "generating_gift_card": "Створення подарункової картки", + "get_a": "Отримати ", + "get_card_note": " яку можна перезавантажувати цифровими валютами. Додаткова інформація не потрібна!", + "get_your_yat": "Одержати свій Yat", + "gift_card_amount": "Сума подарункової картки", + "gift_card_balance_note": "Тут з'являться подарункові картки із залишком на балансі", + "gift_card_is_generated": "Подарункова картка створена", + "gift_card_number": "Номер подарункової картки", + "gift_card_redeemed_note": "Подарункові картки, які ви активували, відображатимуться тут", + "gift_cards": "Подарункові карти", + "gift_cards_unavailable": "Наразі подарункові картки можна придбати лише через Monero, Bitcoin і Litecoin", + "got_it": "Зрозумів", + "gross_balance": "Валовий баланс", "group_by_type": "Група за типом", - "importNFTs": "Імпорт NFT", - "noNFTYet": "NFT ще немає", - "address": "Адреса", - "enterTokenID": "Введіть ідентифікатор токена", - "tokenID": "ID", - "name": "Ім'я", - "symbol": "символ", - "seed_phrase_length": "Довжина початкової фрази", - "unavailable_balance": "Недоступний баланс", - "unavailable_balance_description": "Недоступний баланс: ця сума включає кошти, заблоковані в незавершених транзакціях, і ті, які ви активно заморозили в налаштуваннях контролю монет. Заблоковані баланси стануть доступними після завершення відповідних транзакцій, тоді як заморожені баланси залишаються недоступними для транзакцій, доки ви не вирішите їх розморозити.", - "unspent_change": "Зміна", - "tor_connection": "Підключення Tor", - "setup_warning_2fa_text": "Cake 2FA — друга аутентифікація для певних дій у гаманці. Це НЕ так безпечно, як холодне зберігання.\n\nЯкщо ви втратите доступ до своєї програми 2FA або ключів TOTP, ви втратите доступ до цього гаманця. Вам потрібно буде відновити свій гаманець з мнемоніки.\n\nСлужба підтримки Cake не зможе вам допомогти, якщо ви втратите доступ до 2FA або мнемонічних насадок.\nПеред використанням Cake 2FA рекомендуємо прочитати інструкцію.", - "scan_qr_on_device": "Відскануйте цей QR-код на іншому пристрої", + "haven_app": "Haven by Cake Wallet", + "haven_app_wallet_text": "Awesome wallet for Haven", + "help": "допомога", + "hidden_balance": "Прихований баланс", + "hide_details": "Приховати деталі", + "high_contrast_theme": "Тема високої контрастності", + "home_screen_settings": "Налаштування головного екрана", "how_to_use": "Як використовувати", + "how_to_use_card": "Як використовувати цю картку", + "id": "ID: ", + "ignor": "Ігнорувати", + "import": "Імпорт", + "importNFTs": "Імпорт NFT", + "in_store": "У магазині", + "incoming": "Вхідні", + "incorrect_seed": "Введений текст невірний.", + "introducing_cake_pay": "Представляємо Cake Pay!", + "invalid_input": "Неправильні дані", + "invoice_details": "Реквізити рахунку-фактури", + "is_percentage": "є", + "last_30_days": "Останні 30 днів", + "learn_more": "Дізнатися більше", + "light_theme": "Світла", + "loading_your_wallet": "Завантаження гаманця", + "login": "Логін", + "logout": "Вийти", + "low_fee": "Низька плата", + "low_fee_alert": "Зараз ви використовуєте низький пріоритет плати за мережу. Це може спричинити тривале очікування, інший курс або скасування угод. Ми рекомендуємо встановити вищу плату для кращого досвіду.", + "manage_nodes": "Керуйте вузлами", + "manage_pow_nodes": "Керуйте вузлами PoW", + "manage_yats": "Керувати Yat", + "mark_as_redeemed": "Позначити як погашене", + "market_place": "Ринок", + "matrix_green_dark_theme": "Зелена темна тема Matrix", + "max_amount": "Макс: ${value}", + "max_value": "Макс: ${value} ${currency}", + "memo": "Пам’ятка:", + "message": "повідомлення", + "methods": "методи", + "min_amount": "Мінімум: ${value}", + "min_value": "Мін: ${value} ${currency}", + "minutes_to_pin_code": "${minute} хвилин", + "mm": "MM", + "modify_2fa": "Змінити торт 2FA", + "monero_com": "Monero.com by Cake Wallet", + "monero_com_wallet_text": "Awesome wallet for Monero", + "monero_dark_theme": "Темна тема Monero", + "monero_light_theme": "Легка тема Monero", + "moonpay_alert_text": "Значення суми має бути більшим або дорівнювати ${minAmount} ${fiatCurrency}", + "more_options": "Більше параметрів", + "name": "Ім'я", + "narrow": "вузькі", + "new_first_wallet_text": "Легко зберігайте свою криптовалюту в безпеці", + "new_node_testing": "Тестування нового вузла", + "new_subaddress_create": "Створити", + "new_subaddress_label_name": "Ім'я", + "new_subaddress_title": "Нова адреса", + "new_template": "Новий шаблон", + "new_wallet": "Новий гаманець", + "newConnection": "Нове підключення", + "no_id_needed": "Ідентифікатор не потрібен!", + "no_id_required": "Ідентифікатор не потрібен. Поповнюйте та витрачайте будь-де", + "no_relay_on_domain": "Немає ретранслятора для домену користувача або ретранслятор недоступний. Будь ласка, виберіть реле для використання.", + "no_relays": "Без реле", + "no_relays_message": "Ми знайшли запис Nostr NIP-05 для цього користувача, але він не містить жодних реле. Будь ласка, попросіть одержувача додати реле до свого запису Nostr.", + "node_address": "Адреса вузла", + "node_connection_failed": "Помилка з’єднання", + "node_connection_successful": "З'єднання було успішним", + "node_new": "Новий вузол", + "node_port": "Порт вузла", + "node_reset_settings_title": "Скинути налаштування", + "node_test": "Тест", + "nodes": "Вузли", + "nodes_list_reset_to_default_message": "Ви впевнені, що хочете скинути до налаштувань за замовченням?", + "none_of_selected_providers_can_exchange": "Жоден із вибраних провайдерів не може здійснити цей обмін", + "noNFTYet": "NFT ще немає", + "normal": "нормальний", + "note_optional": "Примітка (необов’язково)", + "note_tap_to_change": "Примітка (натисніть для зміни)", + "nullURIError": "URI нульовий", + "offer_expires_in": "Пропозиція закінчиться через: ", + "offline": "Офлайн", + "ok": "OK", + "onion_link": "Посилання на цибулю", + "online": "Онлайн", + "onramper_option_description": "Швидко купуйте криптовалюту з багатьма методами оплати. Доступний у більшості країн. Поширення та збори різняться.", + "open_gift_card": "Відкрити подарункову картку", + "optional_description": "Додатковий опис", + "optional_email_hint": "Додаткова електронна адреса для сповіщення одержувача", + "optional_name": "Додаткове ім'я одержувача", + "optionally_order_card": "Необов'язково замовте фізичну картку.", + "orbot_running_alert": "Перед підключенням до цього вузла переконайтеся, що Orbot запущено.", + "order_by": "Сортувати за", + "order_id": "Ідентифікатор замовлення", + "order_physical_card": "Замовити фізичну картку", + "other_settings": "Інші налаштування", + "outdated_electrum_wallet_description": "Нові біткойн-гаманці, створені в Cake, тепер містять мнемонічну фразу з 24 слів. Обов’язково стовріть новий біткойн-гаманець, переведіть всі кошти на новий гаманець із 24 слів і припиніть використання гаманців із мнемонічною фразою з 12 слів. Зробіть це негайно, щоб убезпечити свої кошти.", + "outdated_electrum_wallet_receive_warning": "Якщо цей гаманець має мнемонічну фразу з 12 слів і був створений у Cake, НЕ переводьте біткойни на цей гаманець. Будь-які BTC, переведений на цей гаманець, можуть бути втраченими. Створіть новий гаманець з мнемонічною фразою з 24 слів (торкніться меню у верхньому правому куті, виберіть Гаманці, виберіть Створити новий гаманець, потім виберіть Bitcoin) і НЕГАЙНО переведіть туди свії BTC. Нові (з мнемонічною фразою з 24 слів) гаманці BTC від Cake надійно захищені", + "outgoing": "Вихідні", + "overwrite_amount": "Overwrite amount", + "pairingInvalidEvent": "Недійсна подія сполучення", + "password": "Пароль", + "paste": "Вставити", + "pause_wallet_creation": "Можливість створення гаманця Haven зараз призупинено.", + "payment_id": "ID платежу: ", + "payment_was_received": "Ваш платіж отримано.", + "pending": " (в очікуванні)", + "percentageOf": "${amount}", + "pin_at_top": "закріпити ${token} зверху", + "pin_is_incorrect": "Некоректний PIN", + "pin_number": "PIN-код", + "placeholder_contacts": "Тут будуть показані ваші контакти", + "placeholder_transactions": "Тут відображатимуться ваші транзакції", + "please_fill_totp": "Будь ласка, введіть 8-значний код, наявний на вашому іншому пристрої", + "please_make_selection": "Оберіть спосіб створення гаманця: створити новий чи відновити ваш існуючий.", + "please_reference_document": "Для отримання додаткової інформації зверніться до документів нижче.", + "please_select": "Будь ласка, виберіть:", + "please_select_backup_file": "Виберіть файл резервної копії та введіть пароль резервної копії.", + "please_try_to_connect_to_another_node": "Будь ласка, спробуйте підключитися до іншого вузлу", + "please_wait": "Будь ласка, зачекайте", + "polygonscan_history": "Історія PolygonScan", + "powered_by": "Використовуючи ${title}", + "pre_seed_button_text": "Зрозуміло. Покажіть мнемонічну фразу", + "pre_seed_description": "На наступній сторінці ви побачите серію з ${words} слів. Це ваша унікальна та приватна мнемонічна фраза, і це ЄДИНИЙ спосіб відновити ваш гаманець на випадок втрати або несправності. ВАМ необхідно записати її та зберігати в безпечному місці поза програмою Cake Wallet.", + "pre_seed_title": "ВАЖЛИВО", + "prevent_screenshots": "Запобігати знімкам екрана та запису екрана", + "privacy": "Конфіденційність", + "privacy_policy": "Політика конфіденційності", + "privacy_settings": "Налаштування конфіденційності", + "private_key": "Приватний ключ", + "proceed_after_one_minute": "Якщо екран не продовжується через 1 хвилину, перевірте свою електронну пошту.", + "profile": "Профіль", + "provider_error": "${provider} помилка", + "public_key": "Публічний ключ", + "purchase_gift_card": "Придбати подарункову картку", + "qr_fullscreen": "Торкніться, щоб відкрити QR-код на весь екран", + "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", + "question_to_disable_2fa": "Ви впевнені, що хочете вимкнути Cake 2FA? Код 2FA більше не потрібен для доступу до гаманця та певних функцій.", + "receivable_balance": "Баланс дебіторської заборгованості", + "receive": "Отримати", + "receive_amount": "Сума", + "received": "Отримані", + "recipient_address": "Адреса одержувача", + "reconnect": "Перепідключитися", + "reconnect_alert_text": "Ви хочете перепідключитися?", + "reconnection": "Перепідключення", + "redeeded": "Викуплено", + "refund_address": "Адреса повернення коштів", + "reject": "Відхиляти", + "remaining": "залишилося", + "remove": "Видалити", + "remove_node": "Видалити вузол", + "remove_node_message": "Ви впевнені, що хочете видалити поточний вузол?", + "rename": "Перейменувати", + "require_for_adding_contacts": "Потрібен для додавання контактів", + "require_for_all_security_and_backup_settings": "Вимагати всіх налаштувань безпеки та резервного копіювання", + "require_for_assessing_wallet": "Потрібен доступ до гаманця", + "require_for_creating_new_wallets": "Потрібно для створення нових гаманців", + "require_for_exchanges_to_external_wallets": "Потрібен для обміну на зовнішні гаманці", + "require_for_exchanges_to_internal_wallets": "Вимагати обміну на внутрішні гаманці", + "require_for_sends_to_contacts": "Вимагати для надсилання контактам", + "require_for_sends_to_internal_wallets": "Вимагати надсилання на внутрішні гаманці", + "require_for_sends_to_non_contacts": "Вимагати для надсилання неконтактним особам", + "require_pin_after": "Вимагати PIN після", + "rescan": "Пересканувати", + "resend_code": "Будь ласка, надішліть його повторно", + "reset": "Скинути", + "reset_password": "Скинути пароль", + "restore_active_seed": "Активна мнемонічна фраза", + "restore_address": "Адреса", + "restore_bitcoin_description_from_keys": "Ви можете відновити гаманець за допомогою WIF", + "restore_bitcoin_description_from_seed": "Ви можете відновити гаманець використовуючи 24-ти слівну мнемонічну фразу", + "restore_bitcoin_title_from_keys": "Відновити за допомогою WIF", + "restore_description_from_backup": "Ви можете відновити Cake Wallet з вашого резервного файлу", + "restore_description_from_keys": "Ви можете відновити гаманець за допомогою приватних ключів", + "restore_description_from_seed": "Ви можете відновити гаманець використовуючи 25-ти слівну мнемонічну фразу", + "restore_description_from_seed_keys": "Ви можете відновити гаманець з мнемонічної фрази/ключів, які ви зберегли раніше", + "restore_from_date_or_blockheight": "Будь ласка, введіть дату за кілька днів до створення цього гаманця. Або, якщо ви знаєте висоту блоку, введіть її значення", + "restore_from_seed_placeholder": "Введіть або вставте мнемонічну фразу вашого гаманця", + "restore_new_seed": "Нова мнемонічна фраза", + "restore_next": "Продовжити", + "restore_recover": "Відновити", + "restore_restore_wallet": "Відновити гаманець", + "restore_seed_keys_restore": "Відновити за допомогою мнемонічної фрази/ключів", + "restore_spend_key_private": "Приватний ключ витрати", + "restore_title_from_backup": "Відновити із резервного файлу", + "restore_title_from_keys": "Відновити за допомогою ключів", + "restore_title_from_seed": "Відновити з мнемонічної фрази", + "restore_title_from_seed_keys": "Відновити з мнемонічної фрази/ключів", + "restore_view_key_private": "Приватний ключ перегляду", + "restore_wallet": "Відновити гаманець", + "restore_wallet_name": "Ім'я гаманця", + "restore_wallet_restore_description": "Опис відновлюваного гаманця", + "router_no_route": "Не встановлено маршрут для ${name}", + "save": "Зберегти", + "save_backup_password": "Переконайтеся, що ви зберегли свій пароль резервної копії. Без нього ви не зможете імпортувати файли резервних копій.", + "save_backup_password_alert": "Зберегти пароль резервної копії", + "save_to_downloads": "Зберегти до завантажень", + "saved_the_trade_id": "Я зберіг ID операції", + "scan_qr_code": "Відскануйте QR-код", + "scan_qr_code_to_get_address": "Скануйте QR-код для одержання адреси", + "scan_qr_on_device": "Відскануйте цей QR-код на іншому пристрої", + "search": "Пошук", + "search_add_token": "Пошук / Додати маркер", + "search_category": "Категорія пошуку", + "search_currency": "Шукати валюту", + "search_language": "Мова пошуку", + "second_intro_content": "Ваш Yat - це єдина унікальна адреса емодзі, яка замінює довгі шістнадцятиричні адреси для всіх ваших валют.", + "second_intro_title": "Одна адреса емодзі для управління іншими адресами", + "security_and_backup": "Безпека та резервне копіювання", + "seed_alert_back": "Назад", + "seed_alert_content": "Мнемонічна фраза - єдиний спосіб відновити ваш гаманець. Ви записали її?", + "seed_alert_title": "Увага", + "seed_alert_yes": "Так", + "seed_choose": "Виберіть мову мнемонічної фрази", "seed_hex_form": "Насіння гаманця (шістнадцяткова форма)", + "seed_key": "Насіннєвий ключ", + "seed_language": "Насіннєва мова", + "seed_language_chinese": "Китайська", + "seed_language_chinese_traditional": "Китайський (традиційний)", + "seed_language_czech": "Чеський", + "seed_language_dutch": "Голландська", + "seed_language_english": "Англійська", + "seed_language_french": "французький", + "seed_language_german": "Німецька", + "seed_language_italian": "італійська", + "seed_language_japanese": "Японська", + "seed_language_korean": "Корейський", + "seed_language_next": "Продовжити", + "seed_language_portuguese": "Португальська", + "seed_language_russian": "Російська", + "seed_language_spanish": "Іспанська", + "seed_phrase_length": "Довжина початкової фрази", + "seed_reminder": "Будь ласка, запишіть мнемонічну фразу на випадок втрати або очищення телефону", + "seed_share": "Поділитися мнемонічною фразою", + "seed_title": "Мнемонічна фраза", "seedtype": "Насіннєвий тип", "seedtype_legacy": "Спадщина (25 слів)", "seedtype_polyseed": "Полісей (16 слів)", - "seed_language_czech": "Чеський", - "seed_language_korean": "Корейський", - "ascending": "Висхід", - "descending": "Низхідний", - "dfx_option_description": "Купуйте криптовалюту за EUR і CHF. До 990 євро без додаткового KYC. Для роздрібних і корпоративних клієнтів у Європі", - "seed_language_chinese_traditional": "Китайський (традиційний)", - "polygonscan_history": "Історія PolygonScan", - "wallet_seed_legacy": "Спадець насіння гаманця", - "default_sell_provider": "Постачальник продажу за замовчуванням", + "select_backup_file": "Виберіть файл резервної копії", + "select_buy_provider_notice": "Виберіть постачальника купівлі вище. Ви можете пропустити цей екран, встановивши свого постачальника купівлі за замовчуванням у налаштуваннях додатків.", + "select_destination": "Виберіть місце призначення для файлу резервної копії.", "select_sell_provider_notice": "Виберіть вище постачальника послуг продажу. Ви можете пропустити цей екран, встановивши постачальника послуг продажу за умовчанням у налаштуваннях програми.", - "custom_drag": "На замовлення (утримуйте та перетягується)", + "sell": "Продати", + "sell_alert_content": "Наразі ми підтримуємо лише продаж Bitcoin, Ethereum і Litecoin. Створіть або перейдіть на свій гаманець Bitcoin, Ethereum або Litecoin.", + "sell_monero_com_alert_content": "Продаж Monero ще не підтримується", + "send": "Відправити", + "send_address": "${cryptoCurrency} адреса", + "send_amount": "Сума:", + "send_creating_transaction": "Створити транзакцію", + "send_error_currency": "Валюта може містити тільки цифри", + "send_error_minimum_value": "Мінімальна сума 0.01", + "send_estimated_fee": "Ймовірна комісія:", + "send_fee": "Комісія:", + "send_name": "Ім'я", + "send_new": "Новий", + "send_payment_id": "ID платежу (опційно)", + "send_priority": "Комісія встановлена в залежності від пріоритету: ${transactionPriority}.\nПріоритет транзакції може бути змінений в налаштуваннях", + "send_sending": "Відправлення...", + "send_success": "Ваш ${crypto} успішно надісланий", + "send_templates": "Шаблони", + "send_title": "Відправити", + "send_to_this_address": "Надіслати ${currency} ${tag}на цю адресу", + "send_xmr": "Відправити XMR", + "send_your_wallet": "Ваш гаманець", + "sending": "Відправлення", + "sent": "Відправлені", + "settings": "Налаштування", + "settings_all": "ВСІ", + "settings_allow_biometrical_authentication": "Включити біометричну аутентифікацію", + "settings_can_be_changed_later": "Ці параметри можна змінити пізніше в налаштуваннях програми", + "settings_change_language": "Змінити мову", + "settings_change_pin": "Змінити PIN", + "settings_currency": "Валюта", + "settings_current_node": "Поточний вузол", + "settings_dark_mode": "Темний режим", + "settings_display_balance": "Відображати баланс", + "settings_display_on_dashboard_list": "Відображати в списку транзакцій", + "settings_fee_priority": "Пріоритет транзакції", + "settings_nodes": "Вузли", + "settings_none": "Нічого", + "settings_only_trades": "Операції", + "settings_only_transactions": "Транзакції", + "settings_personal": "Персональні", + "settings_save_recipient_address": "Зберігати адресу отримувача", + "settings_support": "Підтримка", + "settings_terms_and_conditions": "Умови та положення", + "settings_title": "Налаштування", + "settings_trades": "Операції", + "settings_transactions": "Транзакції", + "settings_wallets": "Гаманці", + "setup_2fa": "Налаштування Cake 2FA", + "setup_2fa_text": "Cake 2FA працює з використанням TOTP як другого фактора автентифікації.\n\nДля TOTP Cake 2FA потрібен SHA-512 і підтримка 8 цифр; це забезпечує підвищену безпеку. Додаткову інформацію та підтримувані програми можна знайти в посібнику.", + "setup_pin": "Встановити PIN", + "setup_successful": "PIN було успішно встановлено!", + "setup_totp_recommended": "Налаштувати TOTP", + "setup_warning_2fa_text": "Cake 2FA — друга аутентифікація для певних дій у гаманці. Це НЕ так безпечно, як холодне зберігання.\n\nЯкщо ви втратите доступ до своєї програми 2FA або ключів TOTP, ви втратите доступ до цього гаманця. Вам потрібно буде відновити свій гаманець з мнемоніки.\n\nСлужба підтримки Cake не зможе вам допомогти, якщо ви втратите доступ до 2FA або мнемонічних насадок.\nПеред використанням Cake 2FA рекомендуємо прочитати інструкцію.", + "setup_your_debit_card": "Налаштуйте свою дебетову картку", + "share": "Поділіться", + "share_address": "Поділитися адресою", + "show_details": "Показати деталі", + "show_keys": "Показати мнемонічну фразу/ключі", + "show_market_place": "Відображати маркетплейс", + "show_seed": "Показати мнемонічну фразу", + "sign_up": "Зареєструватися", + "signTransaction": "Підписати транзакцію", + "signup_for_card_accept_terms": "Зареєструйтеся на картку та прийміть умови.", + "slidable": "Розсувний", + "sort_by": "Сортувати за", + "spend_key_private": "Приватний ключ витрати", + "spend_key_public": "Публічний ключ витрати", + "status": "Статус: ", + "subaddress_title": "Список Субадрес", + "subaddresses": "Субадреси", + "submit_request": "надіслати запит", + "successful": "Успішний", + "support_description_guides": "Документація та підтримка загальних питань", + "support_description_live_chat": "Безкоштовно і швидко! Навчені представники підтримки доступні для надання допомоги", + "support_description_other_links": "Приєднуйтесь до наших спільнот або досягайте нас нашими партнерами іншими методами", + "support_title_guides": "Поклики для гаманців тортів", + "support_title_live_chat": "Жива підтримка", + "support_title_other_links": "Інші посилання на підтримку", + "sweeping_wallet": "Підмітаня гаманця", + "sweeping_wallet_alert": "Це не повинно зайняти багато часу. НЕ ЗАЛИШАЙТЕ ЦЬОГО ЕКРАНУ, АБО КОШТИ МОЖУТЬ БУТИ ВТРАЧЕНІ", + "switchToETHWallet": "Перейдіть на гаманець Ethereum і повторіть спробу", "switchToEVMCompatibleWallet": "Перейдіть на гаманець, сумісний з EVM, і повторіть спробу (Ethereum, Polygon)", - "receivable_balance": "Баланс дебіторської заборгованості", - "confirmed_tx": "Підтверджений", + "symbol": "символ", + "sync_all_wallets": "Синхронізувати всі гаманці", + "sync_status_attempting_sync": "СПРОБА СИНХРОНІЗАЦІЇ", + "sync_status_connected": "ПІДКЛЮЧЕНО", + "sync_status_connecting": "ПІДКЛЮЧЕННЯ", + "sync_status_failed_connect": "ВІДКЛЮЧЕНО", + "sync_status_not_connected": "НЕ ПІДКЛЮЧЕННИЙ", + "sync_status_starting_sync": "ПОЧАТОК СИНХРОНІЗАЦІЇ", + "sync_status_syncronized": "СИНХРОНІЗОВАНИЙ", + "sync_status_syncronizing": "СИНХРОНІЗАЦІЯ", + "syncing_wallet_alert_content": "Ваш баланс та список транзакцій може бути неповним, доки вгорі не буде написано «СИНХРОНІЗОВАНО». Натисніть/торкніться, щоб дізнатися більше.", + "syncing_wallet_alert_title": "Ваш гаманець синхронізується", + "template": "Шаблон", + "template_name": "Назва шаблону", + "third_intro_content": "Yat знаходиться за межами Cake Wallet. Будь-яку адресу гаманця на землі можна замінити на Yat!", + "third_intro_title": "Yat добре взаємодіє з іншими", + "time": "${minutes}хв ${seconds}сек", + "tip": "Порада:", + "today": "Сьогодні", + "token_contract_address": "Адреса договору маркера", + "token_decimal": "Токен десятковий", + "token_name": "Назва токена, наприклад: Tether", + "token_symbol": "Символ маркера, наприклад: USDT", + "tokenID": "ID", + "tor_connection": "Підключення Tor", + "tor_only": "Тільки Tor", + "total_saving": "Загальна економія", + "totp_2fa_failure": "Невірний код. Спробуйте інший код або створіть новий секретний ключ. Використовуйте сумісний додаток 2FA, який підтримує 8-значні коди та SHA512.", + "totp_2fa_success": "Успіх! Cake 2FA увімкнено для цього гаманця. Пам’ятайте про збереження мнемоніки на випадок, якщо ви втратите доступ до гаманця.", + "totp_auth_url": "TOTP AUTH URL", + "totp_code": "Код TOTP", + "totp_secret_code": "Секретний код TOTP", + "totp_verification_success": "Перевірка успішна!", + "trade_details_copied": "${title} скопійовано в буфер обміну", + "trade_details_created_at": "Створено", + "trade_details_fetching": "Отримання", + "trade_details_id": "ID", + "trade_details_pair": "Пара", + "trade_details_provider": "Провайдер", + "trade_details_state": "Статус", + "trade_details_title": "Деталі операцій", + "trade_for_not_created": "Операція для ${title} не створена.", + "trade_history_title": "Історія операцій", + "trade_id": "ID операції:", + "trade_id_not_found": "Операція ${tradeId} ${title} не знайдена.", + "trade_is_powered_by": "Операція виконана через ${provider}", + "trade_not_created": "Операція не створена", + "trade_not_found": "Операція не знайдена.", + "trade_state_btc_sent": "BTC надіслано", + "trade_state_complete": "Завершено", + "trade_state_confirming": "Підтвердження", + "trade_state_created": "Створена", + "trade_state_finished": "Завершена", + "trade_state_paid": "Оплачена", + "trade_state_paid_unconfirmed": "Оплата непідтверджена", + "trade_state_pending": "Очікування", + "trade_state_timeout": "Таймаут", + "trade_state_to_be_created": "Буде створена", + "trade_state_traded": "Операція виконана", + "trade_state_trading": "Виконання операції", + "trade_state_underpaid": "Недоплачена", + "trade_state_unpaid": "Неоплачена", + "trades": "Торгові операції", + "transaction_details_amount": "Сума", + "transaction_details_copied": "${title} скопійовано в буфер обміну", + "transaction_details_date": "Дата", + "transaction_details_fee": "Комісія", + "transaction_details_height": "Висота", + "transaction_details_recipient_address": "Адреси одержувачів", "transaction_details_source_address": "Адреса джерела", - "pause_wallet_creation": "Можливість створення гаманця Haven зараз призупинено.", - "contractName": "Назва контракту", - "contractSymbol": "Контракт символ", - "description": "опис", - "camera_consent": "Ваша камера використовуватиметься для зйомки зображення з метою ідентифікації ${provider}. Будь ласка, ознайомтеся з їхньою політикою конфіденційності, щоб дізнатися більше.", - "no_relays": "Без реле", - "choose_relay": "Будь ласка, виберіть реле для використання", - "no_relays_message": "Ми знайшли запис Nostr NIP-05 для цього користувача, але він не містить жодних реле. Будь ласка, попросіть одержувача додати реле до свого запису Nostr.", - "no_relay_on_domain": "Немає ретранслятора для домену користувача або ретранслятор недоступний. Будь ласка, виберіть реле для використання." -} + "transaction_details_title": "Деталі транзакції", + "transaction_details_transaction_id": "ID транзакції", + "transaction_key": "Ключ транзакції", + "transaction_priority_fast": "Швидкий", + "transaction_priority_fastest": "Найшвидший", + "transaction_priority_medium": "Середній", + "transaction_priority_regular": "Звичайний", + "transaction_priority_slow": "Повільний", + "transaction_sent": "Tранзакцію відправлено!", + "transaction_sent_notice": "Якщо екран не відображається через 1 хвилину, перевірте провідник блоків і свою електронну пошту.", + "transactions": "Транзакції", + "transactions_by_date": "Сортувати по даті", + "trusted": "довіряють", + "unavailable_balance": "Недоступний баланс", + "unavailable_balance_description": "Недоступний баланс: ця сума включає кошти, заблоковані в незавершених транзакціях, і ті, які ви активно заморозили в налаштуваннях контролю монет. Заблоковані баланси стануть доступними після завершення відповідних транзакцій, тоді як заморожені баланси залишаються недоступними для транзакцій, доки ви не вирішите їх розморозити.", + "unconfirmed": "Непідтверджений баланс", + "understand": "Зрозуміло", + "unmatched_currencies": "Валюта вашого гаманця не збігається з валютою сканованого QR-коду", + "unspent_change": "Зміна", + "unspent_coins_details_title": "Відомості про невитрачені монети", + "unspent_coins_title": "Невитрачені монети", + "unsupported_asset": "Ми не підтримуємо цю дію для цього ресурсу. Створіть або перейдіть на гаманець підтримуваного типу активів.", + "upto": "до ${value}", + "use": "Використати ", + "use_card_info_three": "Використовуйте цифрову картку онлайн або за допомогою безконтактних методів оплати.", + "use_card_info_two": "Кошти конвертуються в долари США, якщо вони зберігаються на передплаченому рахунку, а не в цифрових валютах.", + "use_ssl": "Використати SSL", + "use_suggested": "Використати запропоноване", + "variable_pair_not_supported": "Ця пара змінних не підтримується вибраними біржами", + "verification": "Перевірка", + "verify_with_2fa": "Перевірте за допомогою Cake 2FA", + "version": "Версія ${currentVersion}", + "view_all": "Переглянути все", + "view_in_block_explorer": "View in Block Explorer", + "view_key_private": "Приватний ключ перегляду", + "view_key_public": "Публічний ключ перегляду", + "view_transaction_on": "View Transaction on ", + "wallet_keys": "Мнемонічна фраза/ключі гаманця", + "wallet_list_create_new_wallet": "Створити новий гаманець", + "wallet_list_edit_wallet": "Редагувати гаманець", + "wallet_list_failed_to_load": "Помилка при завантаженні ${wallet_name} гаманця. ${error}", + "wallet_list_failed_to_remove": "Помилка при видаленні ${wallet_name} гаманця. ${error}", + "wallet_list_load_wallet": "Завантаження гаманця", + "wallet_list_loading_wallet": "Завантаження ${wallet_name} гаманця", + "wallet_list_removing_wallet": "Видалення ${wallet_name} гаманця", + "wallet_list_restore_wallet": "Відновити гаманець", + "wallet_list_title": "Monero Гаманець", + "wallet_list_wallet_name": "Назва гаманця", + "wallet_menu": "Меню гаманця", + "wallet_name": "Ім'я гаманця", + "wallet_name_exists": "Гаманець з такою назвою вже існує", + "wallet_restoration_store_incorrect_seed_length": "Невірна довжина мнемонічної фрази", + "wallet_seed": "Мнемонічна фраза гаманця", + "wallet_seed_legacy": "Спадець насіння гаманця", + "wallet_store_monero_wallet": "Monero гаманець", + "walletConnect": "WalletConnect", + "wallets": "Гаманці", + "warning": "УВАГА", + "welcome": "Вітаємо в", + "welcome_to_cakepay": "Ласкаво просимо до Cake Pay!", + "widgets_address": "Адреса", + "widgets_or": "або", + "widgets_restore_from_blockheight": "Відновити на висоті блоку", + "widgets_restore_from_date": "Відновити з дати", + "widgets_seed": "Мнемонічна фраза", + "wouoldLikeToConnect": "хотів би підключитися", + "write_down_backup_password": "Запишіть пароль резервної копії, який використовується для імпорту файлів резервних копій.", + "xlm_extra_info": "Будь ласка, не забудьте вказати ідентифікатор пам'ятки під час надсилання транзакції XLM для обміну", + "xmr_available_balance": "Доступний баланс", + "xmr_full_balance": "Весь баланс", + "xmr_hidden": "Приховано", + "xmr_to_error": "Помилка XMR.TO", + "xmr_to_error_description": "Неприпустима сума. Максимум 8 цифр після десяткової коми", + "xrp_extra_info": "Будь ласка, не забудьте вказати тег призначення під час надсилання XRP-транзакції для обміну", + "yat": "Yat", + "yat_address": "Yat адреса", + "yat_alert_content": "Користувачі Cake Wallet тепер можуть надсилати та отримувати криптовалюту за допомогою унікального імені користувача на основі смайликів.", + "yat_alert_title": "За допомогою Yat легше надсилати та отримувати криптовалюту", + "yat_error": "Помилка Yat", + "yat_error_content": "Немає адрес, пов'язаних з цим Yat. Спробуйте інший Yat", + "yat_popup_content": "Тепер ви можете відправляти і отримувати криптовалюту в Cake Wallet за допомогою Yat - короткого імені користувача на основі емодзі. Керуйте Yat в будь-який час за допомогою екрану налаштувань", + "yat_popup_title": "Адреса вашого гаманця може бути пов'язаною з емодзі", + "yesterday": "Вчора", + "you_now_have_debit_card": "Тепер у вас є дебетова картка", + "you_pay": "Ви платите", + "you_will_get": "Конвертувати в", + "you_will_send": "Конвертувати з", + "yy": "YY", + "zzzz": "ZZZZ" +} \ No newline at end of file diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index 11fc67c4e..713b676c4 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -1,771 +1,772 @@ { - "welcome": "میں خوش آمدید", - "cake_wallet": "Cake والیٹ", - "first_wallet_text": "Monero، Bitcoin، Ethereum، Litecoin، اور Haven کے لیے زبردست پرس", - "please_make_selection": "اپنا بٹوہ بنانے یا بازیافت کرنے کے لیے براہ کرم ذیل میں ایک انتخاب کریں۔", - "create_new": "نیا والیٹ بنائیں", - "restore_wallet": "والیٹ کو بحال کریں۔", - "monero_com": "Monero.com بذریعہ Cake والیٹ", - "monero_com_wallet_text": "Monero کے لئے بہت اچھا پرس", - "haven_app": "Haven از Cake والیٹ", - "haven_app_wallet_text": "Havek کے لیے زبردست پرس", - "accounts": "اکاؤنٹس", - "edit": "ترمیم", + "about_cake_pay": "Cake پے آپ کو ورچوئل اثاثوں کے ساتھ گفٹ کارڈز آسانی سے خریدنے کی اجازت دیتا ہے، جو ریاستہائے متحدہ میں 150,000 سے زیادہ تاجروں پر فوری طور پر خرچ کیے جا سکتے ہیں۔", "account": "کھاتہ", + "accounts": "اکاؤنٹس", + "accounts_subaddresses": "اکاؤنٹس اور ذیلی پتے", + "activate": "محرک کریں", + "active": "فعال", + "active_cards": "فعال کارڈز", + "activeConnectionsPrompt": "۔ﮯﮔ ﮞﻮﮨ ﺮﮨﺎﻇ ﮞﺎﮩﯾ ﺰﻨﺸﮑﻨﮐ ﻝﺎﻌﻓ", "add": "شامل کریں۔", + "add_contact": "۔ﮟﯾﺮﮐ ﻞﻣﺎﺷ ﮧﻄﺑﺍﺭ", + "add_custom_node": "نیا کسٹم نوڈ شامل کریں۔", + "add_custom_redemption": "حسب ضرورت چھٹکارا شامل کریں۔", + "add_fund_to_card": "کارڈز میں پری پیڈ فنڈز شامل کریں (${value} تک)", + "add_new_node": "نیا نوڈ شامل کریں۔", + "add_new_word": "نیا لفظ شامل کریں۔", + "add_receiver": "دوسرا وصول کنندہ شامل کریں (اختیاری)", + "add_secret_code": " ۔ﮟﯾﺮﮐ ﻞﻣﺎﺷ ﮟﯿﻣ ﭗﯾﺍ ﮦﺪﻨﻨﮐ ﻖﯾﺪﺼﺗ ﻮﮐ ﮈﻮﮐ ﮧﯿﻔﺧ ﺱﺍ ،ﺎﯾ", + "add_tip": "ٹپ شامل کریں۔", + "add_token_disclaimer_check": "میں نے ایک معتبر ذریعہ کا استعمال کرتے ہوئے ٹوکن کنٹریکٹ ایڈریس اور معلومات کی تصدیق کی ہے۔ بدنیتی پر مبنی یا غلط معلومات شامل کرنے کے نتیجے میں فنڈز ضائع ہو سکتے ہیں۔", + "add_token_warning": "سکیمرز کی ہدایت کے مطابق ٹوکن میں ترمیم یا اضافہ نہ کریں۔\nہمیشہ معتبر ذرائع سے ٹوکن پتوں کی تصدیق کریں!", + "add_value": "قدر شامل کریں۔", + "address": "ﮧﺘﭘ", "address_book": "ایڈریس بک", - "contact": "رابطہ کریں۔", - "please_select": "براہ مہربانی منتخب کریں:", - "cancel": "منسوخ کریں۔", - "ok": "ٹھیک ہے", - "contact_name": "رابطے کا نام", - "reset": "دوبارہ ترتیب دیں۔", - "save": "محفوظ کریں۔", + "address_book_menu": "ایڈریس بک", + "address_detected": "پتہ کا پتہ چلا", + "address_from_domain": "یہ پتہ نہ رکنے والے ڈومینز پر ${domain} کا ہے۔", + "address_from_yat": "یہ پتہ Yat پر ${emoji} کا ہے۔", + "address_label": "پتے کا خانہ", "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": "تجارت", - "filter_by": "کی طرف سے فلٹر", - "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": "${title} کے ذریعے تقویت یافتہ", - "error": "خرابی", - "estimated": "تخمینہ لگایا", - "min_value": "کم سے کم: ${value} ${currency}", - "max_value": "زیادہ سے زیادہ: ${value} ${currency}", - "change_currency": "کرنسی تبدیل کریں", - "overwrite_amount": "رقم کو اوور رائٹ کریں۔", - "qr_payment_amount": "اس QR کوڈ میں ادائیگی کی رقم شامل ہے۔ کیا آپ موجودہ قدر کو اوور رائٹ کرنا چاہتے ہیں؟", - "copy_id": "کاپی ID", - "exchange_result_write_down_trade_id": "جاری رکھنے کے لیے براہ کرم تجارتی ID کاپی کریں یا لکھیں۔", - "trade_id": "تجارتی ID:", - "copied_to_clipboard": "کلپ بورڈ پر کاپی کیا گیا۔", - "saved_the_trade_id": "میں نے تجارتی ID محفوظ کر لی ہے۔", - "fetching": "لا رہا ہے۔", - "id": "ID:", - "amount": "رقم کی رقم:", - "payment_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": "عمومی سوالات", - "enter_your_pin": "اپنا 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": "-ہندسوں کا پن", - "share_address": "پتہ شیئر کریں۔", - "receive_amount": "رقم", - "subaddresses": "ذیلی پتے", "addresses": "پتے", - "scan_qr_code": "پتہ حاصل کرنے کے لیے QR کوڈ اسکین کریں۔", - "qr_fullscreen": "فل سکرین QR کوڈ کھولنے کے لیے تھپتھپائیں۔", - "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": "آپ اپنی بیک اپ فائل سے پوری کیک والیٹ ایپ کو بحال کر سکتے ہیں۔", - "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": "کلید دیکھیں (نجی)", - "restore_spend_key_private": "خرچ کی کلید (نجی)", - "restore_recover": "بحال کریں۔", - "restore_wallet_restore_description": "والیٹ کی بحالی کی تفصیل", - "restore_new_seed": "نیا بیج", - "restore_active_seed": "فعال بیج", - "restore_bitcoin_description_from_seed": "24 الفاظ کے مجموعہ کوڈ سے اپنے بٹوے کو بحال کریں۔", - "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": "بیج کی زبان", - "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": "ہسپانوی", - "seed_language_french": "فرانسیسی", - "seed_language_italian": "اطالوی", - "send_title": "بھیجیں", - "send_your_wallet": "آپ کا بٹوہ", - "send_address": "${cryptoCurrency} پتہ", - "send_payment_id": "ادائیگی کی شناخت (اختیاری)", + "advanced_settings": "اعلی درجے کی ترتیبات", + "aggressive": "حد سے زیادہ پرجوش", + "agree": "متفق", + "agree_and_continue": "اتفاق کریں اور جاری رکھیں", + "agree_to": "اکاؤنٹ بنا کر آپ اس سے اتفاق کرتے ہیں۔", "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": "نام", - "got_it": "یہ مل گیا", - "send_sending": "بھیج رہا ہے...", - "send_success": "آپ کا ${crypto} کامیابی کے ساتھ بھیج دیا گیا۔", - "settings_title": "ترتیبات", - "settings_nodes": "نوڈس", - "settings_current_node": "موجودہ نوڈ", - "settings_wallets": "بٹوے", - "settings_display_balance": "ڈسپلے بیلنس", - "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": "اپنا پن دوبارہ درج کریں۔", - "setup_successful": "آپ کا PIN کامیابی کے ساتھ ترتیب دیا گیا ہے!", - "wallet_keys": "بٹوے کے بیج / چابیاں", - "wallet_seed": "بٹوے کا بیج", - "private_key": "نجی کلید", - "public_key": "عوامی کلید", - "view_key_private": "کلید دیکھیں (نجی)", - "view_key_public": "کلید دیکھیں (عوامی)", - "spend_key_private": "خرچ کی کلید (نجی)", - "spend_key_public": "خرچ کی کلید (عوامی)", - "copied_key_to_clipboard": "${key} کو کلپ بورڈ پر کاپی کیا گیا۔", - "new_subaddress_title": "نیا پتہ", - "new_subaddress_label_name": "لیبل کا نام", - "new_subaddress_create": "بنانا", - "address_label": "پتے کا خانہ", - "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": "ٹرانزیکشن 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_edit_wallet": "بٹوے میں ترمیم کریں۔", - "wallet_list_wallet_name": "بٹوے کا نام", - "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": "والیٹ کا پتہ cryptocurrency کی قسم\\nکے مطابق ہونا چاہیے۔", - "error_text_node_address": "براہ کرم ایک iPv4 پتہ درج کریں۔", - "error_text_node_port": "نوڈ پورٹ میں صرف 0 اور 65535 کے درمیان نمبر ہوسکتے ہیں۔", - "error_text_node_proxy_address": "براہ کرم : درج کریں، مثال کے طور پر 127.0.0.1:9050", - "error_text_payment_id": "ادائیگی کی ID ہیکس میں صرف 16 سے 64 حروف پر مشتمل ہو سکتی ہے۔", - "error_text_xmr": "XMR قدر دستیاب بیلنس سے زیادہ نہیں ہو سکتی۔\\nفرکشن ہندسوں کی تعداد 12 سے کم یا اس کے برابر ہونی چاہیے۔", - "error_text_fiat": "رقم کی قدر دستیاب بیلنس سے زیادہ نہیں ہو سکتی۔\\nفرکشن ہندسوں کی تعداد 2 کے برابر یا کم ہونی چاہیے۔", - "error_text_subaddress_name": "ذیلی پتے کے نام میں ` , \\ ' \" علامتیں نہیں ہو سکتی ہیں اور 1 اور 20 حروف کے درمیان ہونی چاہئیں", - "error_text_amount": "رقم صرف اعداد پر مشتمل ہو سکتی ہے۔", - "error_text_wallet_name": "والیٹ کے نام میں صرف حروف، اعداد، _ - علامتیں\\nاور 1 سے 33 حروف کے درمیان ہونی چاہئیں", - "error_text_keys": "والیٹ کیز ہیکس میں صرف 64 حروف پر مشتمل ہو سکتی ہیں۔", - "error_text_crypto_currency": "کسر ہندسوں کی تعداد\\n12 سے کم یا مساوی ہونی چاہیے۔", - "error_text_minimal_limit": "${provider} کے لیے تجارت نہیں بنائی گئی ہے۔ رقم کم سے کم ہے: ${min} ${currency}", - "error_text_maximum_limit": "${provider} کے لیے تجارت نہیں بنائی گئی ہے۔ رقم زیادہ سے زیادہ سے زیادہ ہے: ${max} ${currency}", - "error_text_limits_loading_failed": "${provider} کے لیے تجارت نہیں بنائی گئی ہے۔ حدود کی لوڈنگ ناکام ہو گئی۔", - "error_text_template": "ٹیمپلیٹ کا نام اور پتہ `` , \\' \" علامتوں پر مشتمل نہیں ہو سکتا ہے اور 1 اور 106 حروف کے درمیان ہونا چاہیے", + "all_trades": "تمام تجارت", + "all_transactions": "تمام لین دین", + "alphabetical": "حروف تہجی کے مطابق", + "already_have_account": "پہلے سے ہی اکاؤنٹ ہے؟", + "always": "ہمیشہ", + "amount": "رقم کی رقم:", + "amount_is_estimate": "وصول شدہ رقم ایک تخمینہ ہے۔", + "amount_is_guaranteed": "وصول شدہ رقم کی ضمانت ہے۔", + "and": "اور", + "anonpay_description": "${type} بنائیں۔ وصول کنندہ کسی بھی تعاون یافتہ کرپٹو کرنسی کے ساتھ ${method} کرسکتا ہے، اور آپ کو اس بٹوے میں فنڈز موصول ہوں گے۔", + "apk_update": "APK اپ ڈیٹ", + "approve": "ﻭﺮﮐ ﺭﻮﻈﻨﻣ", + "arrive_in_this_address": "${currency} ${tag}اس پتے پر پہنچے گا۔", + "ascending": "چڑھنے", + "ask_each_time": "ہر بار پوچھیں", "auth_store_ban_timeout": "پابندی_وقت ختم", "auth_store_banned_for": "کے لیے پابندی لگا دی گئی۔", "auth_store_banned_minutes": " منٹ", "auth_store_incorrect_password": "غلط PIN", - "wallet_store_monero_wallet": "مونیرو والیٹ", - "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": "منسلک", - "sync_status_attempting_sync": "ہم آہنگی کی کوشش کر رہا ہے۔", - "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": "Btc بھیجا گیا۔", - "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": "پتہ کا پتہ چلا", - "openalias_alert_content": "آپ کو فنڈز بھیجیں گے\\n${recipient_name}", - "card_address": "پتہ:", - "buy": "خریدنے", - "sell": "بیچنا", - "placeholder_transactions": "آپ کے لین دین یہاں دکھائے جائیں گے۔", - "placeholder_contacts": "آپ کے رابطے یہاں دکھائے جائیں گے۔", - "template": "سانچے", - "confirm_delete_template": "یہ عمل اس ٹیمپلیٹ کو حذف کر دے گا۔ کیا آپ جاری رکھنا چاہتے ہیں؟", - "confirm_delete_wallet": "اس کارروائی سے یہ پرس حذف ہو جائے گا۔ کیا آپ جاری رکھنا چاہتے ہیں؟", - "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} الفاظ کا ایک سلسلہ نظر آئے گا۔ یہ آپ کا انوکھا اور نجی بیج ہے اور یہ آپ کے بٹوے کو ضائع یا خرابی کی صورت میں بازیافت کرنے کا واحد طریقہ ہے۔ اسے لکھنا اور اسے کیک والیٹ ایپ سے باہر کسی محفوظ جگہ پر اسٹور کرنا آپ کی ذمہ داری ہے۔", - "pre_seed_button_text": "میں سمجھتا ہوں۔ مجھے میرا بیج دکھاؤ", - "xmr_to_error": "XMR.TO غلطی", - "xmr_to_error_description": "غلط رقم۔ اعشاریہ پوائنٹ کے بعد زیادہ سے زیادہ 8 ہندسے", - "provider_error": "${provider} خرابی۔", - "use_ssl": "SSL استعمال کریں۔", - "trusted": "قابل اعتماد", - "color_theme": "رنگین تھیم", - "light_theme": "روشنی", - "bright_theme": "روشن", - "dark_theme": "اندھیرا", - "enter_your_note": "اپنا نوٹ درج کریں…", - "note_optional": "نوٹ (اختیاری)", - "note_tap_to_change": "نوٹ (تبدیل کرنے کے لیے تھپتھپائیں)", - "view_in_block_explorer": "بلاک ایکسپلورر میں دیکھیں", - "view_transaction_on": "لین دین دیکھیں آن", - "transaction_key": "لین دین کی کلید", - "confirmations": "تصدیقات", - "recipient_address": "وصول کنندہ کا پتہ", - "extra_id": "اضافی ID:", - "destination_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 ٹرانزیکشن بھیجتے وقت ڈیسٹینیشن ٹیگ بتانا نہ بھولیں۔", - "exchange_incorrect_current_wallet_for_xmr": "اگر آپ اپنے Cake والیٹ Monero بیلنس سے XMR کا تبادلہ کرنا چاہتے ہیں، تو براہ کرم پہلے اپنے Monero والیٹ پر جائیں۔", - "confirmed": "تصدیق شدہ بیلنس", - "unconfirmed": "غیر تصدیق شدہ بیلنس", - "displayable": "قابل نمائش", - "submit_request": "درخواست بھیج دو", - "buy_alert_content": "۔ﮟﯾﺮﮐ ﭻﺋﻮﺳ ﺮﭘ ﺱﺍ ﺎﯾ ﮟﯿﺋﺎﻨﺑ ﭧﯿﻟﺍﻭ Monero ﺎﯾ ،Bitcoin، Ethereum، Litecoin ﺎﻨﭘﺍ ﻡ", - "sell_alert_content": "۔ﮟﯾﺮﮐ ﭻﺋﻮﺳ ﺮﭘ ﺱﺍ ﺎﯾ ﮟﯿﺋﺎﻨﺑ ﭧﯿﻟﺍﻭ Litecoin ﺎﯾ Bitcoin، Ethereum ﺎﻨﭘﺍ ﻡﺮﮐ ﮦﺍﺮﺑ ۔", - "outdated_electrum_wallet_description": "Cake میں بنائے گئے نئے Bitcoin بٹوے میں اب 24 الفاظ کا بیج ہے۔ یہ لازمی ہے کہ آپ ایک نیا Bitcoin والیٹ بنائیں اور اپنے تمام فنڈز کو نئے 24 الفاظ والے والیٹ میں منتقل کریں، اور 12 الفاظ کے بیج والے بٹوے کا استعمال بند کریں۔ براہ کرم اپنے فنڈز کو محفوظ بنانے کے لیے فوری طور پر ایسا کریں۔", - "understand": "میں سمجھتا ہوں۔", - "apk_update": "APK اپ ڈیٹ", - "buy_bitcoin": "Bitcoin خریدیں۔", - "buy_with": "کے ساتھ خریدیں۔", - "moonpay_alert_text": "رقم کی قدر ${minAmount} ${fiatCurrency} کے برابر یا زیادہ ہونی چاہیے۔", - "outdated_electrum_wallet_receive_warning": "اگر اس پرس میں 12 الفاظ کا بیج ہے اور اسے Cake میں بنایا گیا ہے، تو اس بٹوے میں Bitcoin جمع نہ کریں۔ اس بٹوے میں منتقل کیا گیا کوئی بھی BTC ضائع ہو سکتا ہے۔ ایک نیا 24 الفاظ والا والیٹ بنائیں (اوپر دائیں جانب مینو کو تھپتھپائیں، Wallets کو منتخب کریں، نیا والیٹ بنائیں، پھر Bitcoin کو منتخب کریں) اور فوری طور پر اپنے BTC کو وہاں منتقل کریں۔ Cake کے نئے (24-لفظوں) BTC بٹوے محفوظ ہیں۔", - "do_not_show_me": "مجھے یہ دوبارہ مت دکھانا", - "unspent_coins_title": "غیر خرچ شدہ سکے ۔", - "unspent_coins_details_title": "غیر خرچ شدہ سککوں کی تفصیلات", - "freeze": "منجمد", - "frozen": "منجمد", - "coin_control": "سکے کنٹرول (اختیاری)", - "address_detected": "پتہ کا پتہ چلا", - "address_from_domain": "یہ پتہ نہ رکنے والے ڈومینز پر ${domain} کا ہے۔", - "add_receiver": "دوسرا وصول کنندہ شامل کریں (اختیاری)", - "manage_yats": "یاٹس کا انتظام کریں۔", - "yat_alert_title": "Yat کے ساتھ زیادہ آسانی سے کریپٹو بھیجیں اور وصول کریں۔", - "yat_alert_content": "Cake والیٹ کے صارفین اب ایک قسم کے ایموجی پر مبنی صارف نام کے ساتھ اپنی تمام پسندیدہ کرنسیاں بھیج اور وصول کر سکتے ہیں۔", - "get_your_yat": "اپنی Yat حاصل کریں۔", - "connect_an_existing_yat": "ایک موجودہ Yat کو جوڑیں۔", - "connect_yats": "Yats کو جوڑیں۔", - "yat_address": "Yat ایڈریس", - "yat": "Yat", - "address_from_yat": "یہ پتہ Yat پر ${emoji} کا ہے۔", - "yat_error": "Yat غلطی", - "yat_error_content": "اس Yat کے ساتھ کوئی پتے منسلک نہیں ہیں۔ ایک اور یات آزمائیں۔", - "choose_address": "\\n\\nبراہ کرم پتہ منتخب کریں:", - "yat_popup_title": "آپ کے بٹوے کا پتہ ایموجائز کیا جا سکتا ہے۔", - "yat_popup_content": "اب آپ Cake Wallet میں اپنے Yat کے ساتھ کرپٹو بھیج اور وصول کر سکتے ہیں - ایک مختصر، ایموجی پر مبنی صارف نام۔ ترتیبات کی سکرین پر کسی بھی وقت Yats کا نظم کریں۔", - "second_intro_title": "ان سب پر حکمرانی کے لیے ایک ایموجی ایڈریس", - "second_intro_content": "آپ کا Yat ایک منفرد ایموجی ایڈریس ہے جو آپ کی تمام کرنسیوں کے لیے آپ کے تمام لمبے ہیکسا ڈیسیمل پتوں کی جگہ لے لیتا ہے۔", - "third_intro_title": "Yat دوسروں کے ساتھ اچھی طرح کھیلتا ہے۔", - "third_intro_content": "Yats بھی Cake والیٹ سے باہر رہتے ہیں۔ زمین پر کسی بھی بٹوے کے پتے کو Yat سے تبدیل کیا جا سکتا ہے!", - "learn_more": "اورجانیے", - "search": "تلاش کریں۔", - "search_language": "زبان تلاش کریں۔", - "search_currency": "کرنسی تلاش کریں۔", - "new_template": "نیا سانچہ", - "electrum_address_disclaimer": "جب بھی آپ ایک کا استعمال کرتے ہیں تو ہم نئے پتے تیار کرتے ہیں، لیکن پچھلے پتے کام کرتے رہتے ہیں۔", - "wallet_name_exists": "اس نام کا پرس پہلے سے موجود ہے۔ براہ کرم ایک مختلف نام منتخب کریں یا پہلے دوسرے بٹوے کا نام تبدیل کریں۔", - "market_place": "بازار", - "cake_pay_title": "Cake پے گفٹ کارڈز", - "cake_pay_subtitle": "رعایتی گفٹ کارڈز خریدیں (صرف امریکہ)", - "cake_pay_web_cards_title": "Cake پے ویب کارڈز", - "cake_pay_web_cards_subtitle": "دنیا بھر میں پری پیڈ کارڈز اور گفٹ کارڈز خریدیں۔", - "about_cake_pay": "Cake پے آپ کو ورچوئل اثاثوں کے ساتھ گفٹ کارڈز آسانی سے خریدنے کی اجازت دیتا ہے، جو ریاستہائے متحدہ میں 150,000 سے زیادہ تاجروں پر فوری طور پر خرچ کیے جا سکتے ہیں۔", - "cake_pay_account_note": "کارڈز دیکھنے اور خریدنے کے لیے صرف ایک ای میل ایڈریس کے ساتھ سائن اپ کریں۔ کچھ رعایت پر بھی دستیاب ہیں!", - "already_have_account": "پہلے سے ہی اکاؤنٹ ہے؟", - "create_account": "اکاؤنٹ بنائیں", - "privacy_policy": "رازداری کی پالیسی", - "welcome_to_cakepay": "Cake پے میں خوش آمدید!", - "sign_up": "سائن اپ", - "forgot_password": "پاسورڈ بھول گے", - "reset_password": "پاس ورڈ ری سیٹ", - "gift_cards": "گفٹ کارڈز", - "setup_your_debit_card": "اپنا ڈیبٹ کارڈ ترتیب دیں۔", - "no_id_required": "کوئی ID درکار نہیں۔ ٹاپ اپ اور کہیں بھی خرچ کریں۔", - "how_to_use_card": "اس کارڈ کو استعمال کرنے کا طریقہ", - "purchase_gift_card": "گفٹ کارڈ خریدیں۔", - "verification": "تصدیق", - "fill_code": "براہ کرم اپنے ای میل پر فراہم کردہ تصدیقی کوڈ کو پُر کریں۔", - "didnt_get_code": "کوڈ نہیں ملتا؟", - "resend_code": "براہ کرم اسے دوبارہ بھیجیں۔", - "debit_card": "ڈیبٹ کارڈ", - "cakepay_prepaid_card": "Cake پے پری پیڈ ڈیبٹ کارڈ", - "no_id_needed": "شناخت کی ضرورت نہیں!", - "frequently_asked_questions": "اکثر پوچھے گئے سوالات", - "debit_card_terms": "اس ڈیجیٹل والیٹ میں آپ کے ادائیگی کارڈ نمبر (اور آپ کے ادائیگی کارڈ نمبر سے متعلقہ اسناد) کا ذخیرہ اور استعمال ادائیگی کارڈ جاری کنندہ کے ساتھ قابل اطلاق کارڈ ہولڈر کے معاہدے کی شرائط و ضوابط کے ساتھ مشروط ہے، جیسا کہ وقتاً فوقتاً نافذ ہوتا ہے۔", - "please_reference_document": "مزید معلومات کے لیے براہ کرم نیچے دی گئی دستاویزات کا حوالہ دیں۔", - "cardholder_agreement": "کارڈ ہولڈر کا معاہدہ", - "e_sign_consent": "ای سائن کنسنٹ", - "agree_and_continue": "اتفاق کریں اور جاری رکھیں", - "email_address": "ای میل اڈریس", - "agree_to": "اکاؤنٹ بنا کر آپ اس سے اتفاق کرتے ہیں۔", - "and": "اور", - "enter_code": "کوڈ درج کریں", - "congratulations": "مبارک ہو!", - "you_now_have_debit_card": "اب آپ کے پاس ڈیبٹ کارڈ ہے۔", - "min_amount": "کم سے کم: ${value}", - "max_amount": "زیادہ سے زیادہ: ${value}", - "enter_amount": "رقم درج کریں۔", - "billing_address_info": "اگر آپ سے بلنگ کا پتہ پوچھا جائے تو اپنا شپنگ ایڈریس فراہم کریں۔", - "order_physical_card": "فزیکل کارڈ آرڈر کریں۔", - "add_value": "قدر شامل کریں۔", - "activate": "محرک کریں", - "get_a": "حاصل", - "digital_and_physical_card": " ڈیجیٹل اور فزیکل پری پیڈ ڈیبٹ کارڈ", - "get_card_note": " جسے آپ ڈیجیٹل کرنسیوں کے ساتھ دوبارہ لوڈ کر سکتے ہیں۔ کوئی اضافی معلومات کی ضرورت نہیں!", - "signup_for_card_accept_terms": "کارڈ کے لیے سائن اپ کریں اور شرائط کو قبول کریں۔", - "add_fund_to_card": "کارڈز میں پری پیڈ فنڈز شامل کریں (${value} تک)", - "use_card_info_two": "رقوم کو امریکی ڈالر میں تبدیل کیا جاتا ہے جب پری پیڈ اکاؤنٹ میں رکھا جاتا ہے، ڈیجیٹل کرنسیوں میں نہیں۔", - "use_card_info_three": "ڈیجیٹل کارڈ آن لائن یا کنٹیکٹ لیس ادائیگی کے طریقوں کے ساتھ استعمال کریں۔", - "optionally_order_card": "اختیاری طور پر ایک فزیکل کارڈ آرڈر کریں۔", - "hide_details": "تفصیلات چھپائیں۔", - "show_details": "تفصیلات دکھائیں", - "upto": "${value} تک", - "discount": "${value}% بچائیں", - "gift_card_amount": "گفٹ کارڈ کی رقم", - "bill_amount": "بل رقم", - "you_pay": "تم ادا کرو", - "tip": "ٹپ:", - "custom": "اپنی مرضی کے مطابق", - "by_cake_pay": "Cake پے کے ذریعے", - "expires": "میعاد ختم", - "mm": "MM", - "yy": "YY", - "online": "آن لائن", - "offline": "آف لائن", - "gift_card_number": "گفٹ کارڈ نمبر", - "pin_number": "پن نمبر", - "total_saving": "کل بچت", - "last_30_days": "آخری 30 دن", - "avg_savings": "اوسط بچت", - "view_all": "سب دیکھیں", - "active_cards": "فعال کارڈز", - "delete_account": "کھاتہ مٹا دو", - "cards": "کارڈز", - "active": "فعال", - "redeemed": "چھڑایا", - "gift_card_balance_note": "باقی بیلنس والے گفٹ کارڈز یہاں ظاہر ہوں گے۔", - "gift_card_redeemed_note": "آپ نے جن گفٹ کارڈز کو بھنایا ہے وہ یہاں ظاہر ہوں گے۔", - "logout": "لاگ آوٹ", - "add_tip": "ٹپ شامل کریں۔", - "percentageOf": "${amount} کا", - "is_percentage": "ہے", - "search_category": "زمرہ تلاش کریں۔", - "mark_as_redeemed": "ریڈیم کے بطور نشان زد کریں۔", - "more_options": "مزید زرائے", - "awaiting_payment_confirmation": "ادائیگی کی تصدیق کے منتظر", - "transaction_sent_notice": "اگر اسکرین 1 منٹ کے بعد آگے نہیں بڑھتی ہے، تو بلاک ایکسپلورر اور اپنا ای میل چیک کریں۔", - "agree": "متفق", - "in_store": "اسٹور میں", - "generating_gift_card": "گفٹ کارڈ تیار کرنا", - "payment_was_received": "آپ کی ادائیگی موصول ہو گئی۔", - "proceed_after_one_minute": "اگر اسکرین 1 منٹ کے بعد آگے نہیں بڑھتی ہے تو اپنا ای میل چیک کریں۔", - "order_id": "ID آرڈر کریں۔", - "gift_card_is_generated": "گفٹ کارڈ بنتا ہے۔", - "open_gift_card": "گفٹ کارڈ کھولیں۔", - "contact_support": "سپورٹ سے رابطہ کریں۔", - "gift_cards_unavailable": "گفٹ کارڈز اس وقت صرف Monero، Bitcoin اور Litecoin کے ساتھ خریداری کے لیے دستیاب ہیں۔", - "introducing_cake_pay": "Cake پے کا تعارف!", - "cake_pay_learn_more": "ایپ میں فوری طور پر گفٹ کارڈز خریدیں اور بھنائیں!\\nمزید جاننے کے لیے بائیں سے دائیں سوائپ کریں۔", + "authenticated": "تصدیق شدہ", + "authentication": "تصدیق", + "auto_generate_subaddresses": "آٹو سب ایڈریس تیار کرتا ہے", "automatic": "خودکار", - "fixed_pair_not_supported": "یہ مقررہ جوڑا منتخب کردہ تبادلے کے ساتھ تعاون یافتہ نہیں ہے۔", - "variable_pair_not_supported": "یہ متغیر جوڑا منتخب ایکسچینجز کے ساتھ تعاون یافتہ نہیں ہے۔", - "none_of_selected_providers_can_exchange": "منتخب فراہم کنندگان میں سے کوئی بھی یہ تبادلہ نہیں کر سکتا", - "choose_one": "ایک کا انتخاب کریں", - "choose_from_available_options": "دستیاب اختیارات میں سے انتخاب کریں:", - "custom_redeem_amount": "حسب ضرورت چھڑانے کی رقم", - "add_custom_redemption": "حسب ضرورت چھٹکارا شامل کریں۔", - "remaining": "باقی", - "delete_wallet": "پرس کو حذف کریں۔", - "delete_wallet_confirm_message": "کیا آپ واقعی ${wallet_name} والیٹ کو حذف کرنا چاہتے ہیں؟", - "low_fee": "کم فیس", - "low_fee_alert": "آپ فی الحال کم نیٹ ورک فیس کی ترجیح استعمال کر رہے ہیں۔ یہ طویل انتظار، مختلف شرحوں، یا منسوخ شدہ تجارتوں کا سبب بن سکتا ہے۔ ہم بہتر تجربہ کے لیے زیادہ فیس مقرر کرنے کی تجویز کرتے ہیں۔", - "ignor": "نظر انداز کرنا", - "use_suggested": "تجویز کردہ استعمال کریں۔", - "do_not_share_warning_text": "سپورٹ سمیت کسی اور کے ساتھ ان کا اشتراک نہ کریں۔\\n\\nآپ کے فنڈز چوری ہو سکتے ہیں اور ہو جائیں گے!", - "help": "مدد", - "all_transactions": "تمام لین دین", - "all_trades": "تمام تجارت", - "connection_sync": "کنکشن اور مطابقت پذیری", - "security_and_backup": "سیکیورٹی اور بیک اپ", - "create_backup": "بیک اپ بنائیں", - "privacy_settings": "رازداری کی ترتیبات", - "privacy": "رازداری", - "display_settings": "ڈسپلے کی ترتیبات", - "other_settings": "دیگر ترتیبات", - "require_pin_after": "اس کے بعد PIN کی ضرورت ہے۔", - "always": "ہمیشہ", - "minutes_to_pin_code": "${minute} منٹ", - "disable_exchange": "تبادلے کو غیر فعال کریں۔", - "advanced_settings": "اعلی درجے کی ترتیبات", - "settings_can_be_changed_later": "ان ترتیبات کو بعد میں ایپ کی ترتیبات میں تبدیل کیا جا سکتا ہے۔", - "add_custom_node": "نیا کسٹم نوڈ شامل کریں۔", - "disable_fiat": "فیاٹ کو غیر فعال کریں۔", - "fiat_api": "Fiat API", - "disabled": "معذور", - "enabled": "فعال", - "tor_only": "صرف Tor", - "unmatched_currencies": "آپ کے پرس کی موجودہ کرنسی اسکین شدہ QR سے مماثل نہیں ہے۔", - "orbot_running_alert": "براہ کرم یقینی بنائیں کہ اس نوڈ سے منسلک ہونے سے پہلے Orbot چل رہا ہے۔", - "contact_list_contacts": "رابطے", - "contact_list_wallets": "میرے بٹوے", - "send_to_this_address": "اس پتے پر ${currency} ${tag} بھیجیں۔", - "arrive_in_this_address": "${currency} ${tag}اس پتے پر پہنچے گا۔", - "do_not_send": "مت بھیجیں۔", - "error_dialog_content": "افوہ، ہمیں کچھ خرابی ملی۔\n\nایپلی کیشن کو بہتر بنانے کے لیے براہ کرم کریش رپورٹ ہماری سپورٹ ٹیم کو بھیجیں۔", - "decimal_places_error": "بہت زیادہ اعشاریہ جگہیں۔", - "edit_node": "نوڈ میں ترمیم کریں۔", - "invoice_details": "رسید کی تفصیلات", - "donation_link_details": "عطیہ کے لنک کی تفصیلات", - "anonpay_description": "${type} بنائیں۔ وصول کنندہ کسی بھی تعاون یافتہ کرپٹو کرنسی کے ساتھ ${method} کرسکتا ہے، اور آپ کو اس بٹوے میں فنڈز موصول ہوں گے۔", - "create_invoice": "انوائس بنائیں", - "create_donation_link": "عطیہ کا لنک بنائیں", - "optional_email_hint": "اختیاری وصول کنندہ کی اطلاع کا ای میل", - "optional_description": "اختیاری تفصیل", - "optional_name": "اختیاری وصول کنندہ کا نام", - "clearnet_link": "کلیرنیٹ لنک", - "onion_link": "پیاز کا لنک", - "sell_monero_com_alert_content": "Monero فروخت کرنا ابھی تک تعاون یافتہ نہیں ہے۔", - "error_text_input_below_minimum_limit": "رقم کم از کم سے کم ہے۔", - "error_text_input_above_maximum_limit": "رقم زیادہ سے زیادہ سے زیادہ ہے۔", - "show_market_place": "بازار دکھائیں۔", - "prevent_screenshots": "اسکرین شاٹس اور اسکرین ریکارڈنگ کو روکیں۔", - "profile": "پروفائل", - "close": "بند کریں", - "modify_2fa": "کیک 2FA میں ترمیم کریں۔", - "disable_cake_2fa": "کیک 2FA کو غیر فعال کریں۔", - "question_to_disable_2fa": "کیا آپ واقعی کیک 2FA کو غیر فعال کرنا چاہتے ہیں؟ بٹوے اور بعض افعال تک رسائی کے لیے اب 2FA کوڈ کی ضرورت نہیں ہوگی۔", - "disable": "غیر فعال کریں۔", - "setup_2fa": "سیٹ اپ کیک 2FA", - "verify_with_2fa": "کیک 2FA سے تصدیق کریں۔", - "totp_code": "TOTP کوڈ", - "please_fill_totp": "براہ کرم اپنے دوسرے آلے پر موجود 8 ہندسوں کا کوڈ پُر کریں۔", - "totp_2fa_success": "کامیابی! کیک 2FA اس بٹوے کے لیے فعال ہے۔ بٹوے تک رسائی سے محروم ہونے کی صورت میں اپنے یادداشت کے بیج کو محفوظ کرنا یاد رکھیں۔", - "totp_verification_success": "توثیق کامیاب!", - "totp_2fa_failure": "غلط کوڈ. براہ کرم ایک مختلف کوڈ آزمائیں یا ایک نئی خفیہ کلید بنائیں۔ ایک ہم آہنگ 2FA ایپ استعمال کریں جو 8 ہندسوں کے کوڈز اور SHA512 کو سپورٹ کرتی ہو۔", - "enter_totp_code": "براہ کرم TOTP کوڈ درج کریں۔", - "add_secret_code": " ۔ﮟﯾﺮﮐ ﻞﻣﺎﺷ ﮟﯿﻣ ﭗﯾﺍ ﮦﺪﻨﻨﮐ ﻖﯾﺪﺼﺗ ﻮﮐ ﮈﻮﮐ ﮧﯿﻔﺧ ﺱﺍ ،ﺎﯾ", - "totp_secret_code": "TOTP خفیہ کوڈ", - "setup_2fa_text": " ۔ﮯﮨ ﺎﺗﺮﮐ ﻡﺎﮐ ﮯﺋﻮﮨ ﮯﺗﺮﮐ ﻝﺎﻤﻌﺘﺳﺍ ﺎﮐ TOTP ﺮﭘ ﺭﻮﻃ ﮯﮐ ﺮﺼﻨﻋ ﯽﻘﯾﺪﺼﺗ ﮮﺮﺳﻭﺩ 2FA ﮏﯿﮐ", - "setup_totp_recommended": "TOTP ۔ﮟﯾﺮﮐ ﭖﺍ ﭧﯿﺳ", - "disable_buy": "خرید ایکشن کو غیر فعال کریں۔", - "disable_sell": "فروخت کی کارروائی کو غیر فعال کریں۔", - "cake_2fa_preset": "کیک 2FA پیش سیٹ", - "narrow": "تنگ", - "normal": "نارمل", - "aggressive": "حد سے زیادہ پرجوش", - "require_for_assessing_wallet": "بٹوے تک رسائی کے لیے درکار ہے۔", - "require_for_sends_to_non_contacts": "غیر رابطوں کو بھیجنے کی ضرورت ہے۔", - "require_for_sends_to_contacts": "رابطوں کو بھیجنے کی ضرورت ہے۔", - "require_for_sends_to_internal_wallets": "اندرونی بٹوے پر بھیجنے کے لیے درکار ہے۔", - "require_for_exchanges_to_internal_wallets": "اندرونی بٹوے میں تبادلے کی ضرورت ہے۔", - "require_for_adding_contacts": "رابطوں کو شامل کرنے کی ضرورت ہے۔", - "require_for_creating_new_wallets": "نئے بٹوے بنانے کی ضرورت ہے۔", - "require_for_all_security_and_backup_settings": "تمام سیکورٹی اور بیک اپ کی ترتیبات کے لیے درکار ہے۔", + "available_balance": "دستیاب بیلنس", "available_balance_description": "”دستیاب بیلنس” یا ”تصدیق شدہ بیلنس” وہ فنڈز ہیں جو فوری طور پر خرچ کیے جا سکتے ہیں۔ اگر فنڈز کم بیلنس میں ظاہر ہوتے ہیں لیکن اوپر کے بیلنس میں نہیں، تو آپ کو مزید نیٹ ورک کی تصدیقات حاصل کرنے کے لیے آنے والے فنڈز کے لیے چند منٹ انتظار کرنا چاہیے۔ مزید تصدیق حاصل کرنے کے بعد، وہ قابل خرچ ہوں گے۔", - "syncing_wallet_alert_title": "آپ کا بٹوہ مطابقت پذیر ہو رہا ہے۔", - "syncing_wallet_alert_content": "آپ کے بیلنس اور لین دین کی فہرست اس وقت تک مکمل نہیں ہو سکتی جب تک کہ یہ سب سے اوپر \"SYNCRONIZED\" نہ کہے۔ مزید جاننے کے لیے کلک/تھپتھپائیں۔", - "home_screen_settings": "ہوم اسکرین کی ترتیبات", - "sort_by": "ترتیب دیں", - "search_add_token": "تلاش کریں / ٹوکن شامل کریں۔", - "edit_token": "ٹوکن میں ترمیم کریں۔", - "warning": "وارننگ", - "add_token_warning": "سکیمرز کی ہدایت کے مطابق ٹوکن میں ترمیم یا اضافہ نہ کریں۔\nہمیشہ معتبر ذرائع سے ٹوکن پتوں کی تصدیق کریں!", - "add_token_disclaimer_check": "میں نے ایک معتبر ذریعہ کا استعمال کرتے ہوئے ٹوکن کنٹریکٹ ایڈریس اور معلومات کی تصدیق کی ہے۔ بدنیتی پر مبنی یا غلط معلومات شامل کرنے کے نتیجے میں فنڈز ضائع ہو سکتے ہیں۔", - "token_contract_address": "ٹوکن کنٹریکٹ ایڈریس", - "token_name": "ٹوکن کا نام جیسے: Tether", - "token_symbol": "ٹوکن کی علامت جیسے: USDT", - "token_decimal": "ٹوکن اعشاریہ", - "field_required": "اس کو پر کرنا ضروری ہے", - "pin_at_top": "اوپر ${token} کو پن کریں۔", - "invalid_input": "غلط ان پٹ", - "fiat_balance": "فیاٹ بیلنس", - "gross_balance": "مجموعی بیلنس", - "alphabetical": "حروف تہجی کے مطابق", - "generate_name": "نام پیدا کریں۔", + "avg_savings": "اوسط بچت", + "awaitDAppProcessing": "۔ﮟﯾﺮﮐ ﺭﺎﻈﺘﻧﺍ ﺎﮐ ﮯﻧﻮﮨ ﻞﻤﮑﻣ ﮓﻨﺴﯿﺳﻭﺮﭘ ﮯﮐ dApp ﻡﺮﮐ ﮦﺍﺮﺑ", + "awaiting_payment_confirmation": "ادائیگی کی تصدیق کے منتظر", + "backup": "بیک اپ", + "backup_file": "بیک اپ فائل", + "backup_password": "بیک اپ پاس ورڈ", "balance_page": "بیلنس صفحہ", - "share": "بانٹیں", - "slidable": "سلائیڈ ایبل", - "monero_dark_theme": "مونیرو ڈارک تھیم", + "bill_amount": "بل رقم", + "billing_address_info": "اگر آپ سے بلنگ کا پتہ پوچھا جائے تو اپنا شپنگ ایڈریس فراہم کریں۔", + "biometric_auth_reason": "تصدیق کرنے کے لیے اپنے فنگر پرنٹ کو اسکین کریں۔", "bitcoin_dark_theme": "بٹ کوائن ڈارک تھیم", "bitcoin_light_theme": "بٹ کوائن لائٹ تھیم", - "high_contrast_theme": "ہائی کنٹراسٹ تھیم", - "matrix_green_dark_theme": "میٹرکس گرین ڈارک تھیم", - "monero_light_theme": "مونیرو لائٹ تھیم", - "manage_nodes": "۔ﮟﯾﺮﮐ ﻢﻈﻧ ﺎﮐ ﺱﮈﻮﻧ", - "etherscan_history": "ﺦﯾﺭﺎﺗ ﯽﮐ ﻦﯿﮑﺳﺍ ﺮﮭﺘﯾﺍ", - "template_name": "ٹیمپلیٹ کا نام", + "Blocks_remaining": "${status} بلاکس باقی ہیں۔", + "bright_theme": "روشن", + "buy": "خریدنے", + "buy_alert_content": "۔ﮟﯾﺮﮐ ﭻﺋﻮﺳ ﺮﭘ ﺱﺍ ﺎﯾ ﮟﯿﺋﺎﻨﺑ ﭧﯿﻟﺍﻭ Monero ﺎﯾ ،Bitcoin، Ethereum، Litecoin ﺎﻨﭘﺍ ﻡ", + "buy_bitcoin": "Bitcoin خریدیں۔", + "buy_provider_unavailable": "فراہم کنندہ فی الحال دستیاب نہیں ہے۔", + "buy_with": "کے ساتھ خریدیں۔", + "by_cake_pay": "Cake پے کے ذریعے", + "cake_2fa_preset": "کیک 2FA پیش سیٹ", + "cake_pay_account_note": "کارڈز دیکھنے اور خریدنے کے لیے صرف ایک ای میل ایڈریس کے ساتھ سائن اپ کریں۔ کچھ رعایت پر بھی دستیاب ہیں!", + "cake_pay_learn_more": "ایپ میں فوری طور پر گفٹ کارڈز خریدیں اور بھنائیں!\\nمزید جاننے کے لیے بائیں سے دائیں سوائپ کریں۔", + "cake_pay_subtitle": "رعایتی گفٹ کارڈز خریدیں (صرف امریکہ)", + "cake_pay_title": "Cake پے گفٹ کارڈز", + "cake_pay_web_cards_subtitle": "دنیا بھر میں پری پیڈ کارڈز اور گفٹ کارڈز خریدیں۔", + "cake_pay_web_cards_title": "Cake پے ویب کارڈز", + "cake_wallet": "Cake والیٹ", + "cakepay_prepaid_card": "Cake پے پری پیڈ ڈیبٹ کارڈ", + "camera_consent": "۔ﮟﯿﮭﮑﯾﺩ ﯽﺴﯿﻟﺎﭘ ﯽﺴﯾﻮﯿﺋﺍﺮﭘ ﯽﮐ ﻥﺍ ﻡﺮﮐ ﮦﺍﺮﺑ ﮯﯿﻟ ﮯﮐ ﺕﻼ${provider}ﯿﺼﻔﺗ ۔ﺎﮔ ﮯﺋﺎﺟ ﺎﯿﮐ ﻝﺎﻤﻌﺘﺳﺍ ﮯﯿﻟ", + "camera_permission_is_required": "۔ﮯﮨ ﺭﺎﮐﺭﺩ ﺕﺯﺎﺟﺍ ﯽﮐ ﮮﺮﻤﯿﮐ", + "cancel": "منسوخ کریں۔", + "card_address": "پتہ:", + "cardholder_agreement": "کارڈ ہولڈر کا معاہدہ", + "cards": "کارڈز", + "chains": "ﮟﯾﺮﯿﺠﻧﺯ", + "change": "تبدیلی", + "change_backup_password_alert": "آپ کی پچھلی بیک اپ فائلیں نئے بیک اپ پاس ورڈ کے ساتھ درآمد کرنے کے لیے دستیاب نہیں ہوں گی۔ نیا بیک اپ پاس ورڈ صرف نئی بیک اپ فائلوں کے لیے استعمال کیا جائے گا۔ کیا آپ واقعی بیک اپ پاس ورڈ تبدیل کرنا چاہتے ہیں؟", + "change_currency": "کرنسی تبدیل کریں", + "change_current_node": "کیا آپ یقینی طور پر موجودہ نوڈ کو ${node} میں تبدیل کرنا چاہتے ہیں؟", + "change_current_node_title": "موجودہ نوڈ کو تبدیل کریں۔", + "change_exchange_provider": "ایکسچینج فراہم کنندہ کو تبدیل کریں۔", + "change_language": "زبان تبدیل کریں", + "change_language_to": "زبان کو ${language} میں تبدیل کریں؟", + "change_password": "پاس ورڈ تبدیل کریں", "change_rep": "۔ﮟﯾﺮﮐ ﻞﯾﺪﺒﺗ ﮦﺪﻨﺋﺎﻤﻧ", "change_rep_message": "؟ﮟﯿﮨ ﮯﺘﮨﺎﭼ ﺎﻧﺮﮐ ﻞﯾﺪﺒﺗ ﻮﮐ ﮞﻭﺪﻨﺋﺎﻤﻧ ﯽﻌﻗﺍﻭ ﭖﺁ ﺎﯿﮐ", - "unsupported_asset": "۔ﮟﯾﺮﮐ ﭻﺋﻮﺳ ﺮﭘ ﺱﺍ ﺎﯾ ﮟﯿﺋﺎﻨﺑ ﺱﺮﭘ ﺎﮐ ﻢﺴﻗ ﯽﮐ ﮧﺛﺎﺛﺍ ﮧﺘﻓﺎﯾ ﻥﻭﺎﻌﺗ ﻡﺮﮐ ﮦﺍﺮﺑ ۔ﮟﯿﮨ ﮯﺗﺮﮐ ﮟﯿﮩﻧ ﺖﯾﺎﻤﺣ ﯽﮐ ﯽﺋﺍﻭﺭﺭﺎﮐ ﺱﺍ ﮯﯿﻟ ﮯﮐ ﮧﺛﺎﺛﺍ ﺱﺍ ﻢﮨ", - "manage_pow_nodes": "PoW ۔ﮟﯾﺮﮐ ﻢﻈﻧ ﺎﮐ ﺱﮈﻮﻧ", - "support_title_live_chat": "براہ راست مدد", - "support_description_live_chat": "مفت اور تیز! تربیت یافتہ معاون نمائندے مدد کے لئے دستیاب ہیں", - "support_title_guides": "کیک پرس گائڈز", - "support_description_guides": "عام مسائل کے لئے دستاویزات اور مدد", - "support_title_other_links": "دوسرے سپورٹ لنکس", - "support_description_other_links": "ہماری برادریوں میں شامل ہوں یا دوسرے طریقوں سے ہمارے شراکت داروں تک پہنچیں", + "change_rep_successful": "نمائندہ کو کامیابی کے ساتھ تبدیل کیا", + "change_wallet_alert_content": "کیا آپ موجودہ والیٹ کو ${wallet_name} میں تبدیل کرنا چاہتے ہیں؟", + "change_wallet_alert_title": "موجودہ پرس تبدیل کریں۔", + "choose_account": "اکاؤنٹ کا انتخاب کریں۔", + "choose_address": "\\n\\nبراہ کرم پتہ منتخب کریں:", "choose_derivation": "پرس سے ماخوذ منتخب کریں", - "new_first_wallet_text": "آسانی سے اپنے cryptocurrency محفوظ رکھیں", - "select_destination": "۔ﮟﯾﺮﮐ ﺏﺎﺨﺘﻧﺍ ﺎﮐ ﻝﺰﻨﻣ ﮯﯿﻟ ﮯﮐ ﻞﺋﺎﻓ ﭖﺍ ﮏﯿﺑ ﻡﺮﮐ ﮦﺍﺮﺑ", - "auto_generate_subaddresses": "آٹو سب ایڈریس تیار کرتا ہے", - "save_to_downloads": "۔ﮟﯾﺮﮐ ﻅﻮﻔﺤﻣ ﮟﯿﻣ ﺯﮈﻮﻟ ﻥﺅﺍﮈ", - "select_buy_provider_notice": "اوپر خریدنے والا خریدنے والا منتخب کریں۔ آپ ایپ کی ترتیبات میں اپنے پہلے سے طے شدہ خریدنے والے کو ترتیب دے کر اس اسکرین کو چھوڑ سکتے ہیں۔", - "onramper_option_description": "ادائیگی کے بہت سے طریقوں سے جلدی سے کرپٹو خریدیں۔ زیادہ تر ممالک میں دستیاب ہے۔ پھیلاؤ اور فیس مختلف ہوتی ہے۔", + "choose_from_available_options": "دستیاب اختیارات میں سے انتخاب کریں:", + "choose_one": "ایک کا انتخاب کریں", + "choose_relay": "۔ﮟﯾﺮﮐ ﺏﺎﺨﺘﻧﺍ ﺎﮐ ﮯﻠﯾﺭ ﮯﯿﻟ ﮯﮐ ﮯﻧﺮﮐ ﻝﺎﻤﻌﺘﺳﺍ ﻡﺮﮐ ﮦﺍﺮﺑ", + "choose_wallet_currency": "براہ کرم والیٹ کرنسی کا انتخاب کریں:", + "clear": "صاف", + "clearnet_link": "کلیرنیٹ لنک", + "close": "بند کریں", + "coin_control": "سکے کنٹرول (اختیاری)", + "color_theme": "رنگین تھیم", + "commit_transaction_amount_fee": "لین دین کا ارتکاب کریں\\nرقم: ${amount}\\nفیس: ${fee}", + "confirm": "تصدیق کریں۔", + "confirm_delete_template": "یہ عمل اس ٹیمپلیٹ کو حذف کر دے گا۔ کیا آپ جاری رکھنا چاہتے ہیں؟", + "confirm_delete_wallet": "اس کارروائی سے یہ پرس حذف ہو جائے گا۔ کیا آپ جاری رکھنا چاہتے ہیں؟", + "confirm_sending": "بھیجنے کی تصدیق کریں۔", + "confirmations": "تصدیقات", + "confirmed": "تصدیق شدہ بیلنس", + "confirmed_tx": "تصدیق", + "congratulations": "مبارک ہو!", + "connect_an_existing_yat": "ایک موجودہ Yat کو جوڑیں۔", + "connect_yats": "Yats کو جوڑیں۔", + "connection_sync": "کنکشن اور مطابقت پذیری", + "connectWalletPrompt": "۔ﮟﯾﮌﻮﺟ ﮫﺗﺎﺳ ﮯﮐ WalletConnect ﻮﮐ ﮮﻮﭩﺑ ﮯﻨﭘﺍ ﮯﯿﻟ ﮯﮐ ﮯﻧﺮﮐ ﻦﯾﺩ ﻦﯿﻟ", + "contact": "رابطہ کریں۔", + "contact_list_contacts": "رابطے", + "contact_list_wallets": "میرے بٹوے", + "contact_name": "رابطے کا نام", + "contact_support": "سپورٹ سے رابطہ کریں۔", + "continue_text": "جاری رہے", + "contractName": "ﻡﺎﻧ ﺎﮐ ﮦﺪﮨﺎﻌﻣ", + "contractSymbol": "ﺖﻣﻼﻋ ﯽﮐ ﮦﺪﮨﺎﻌﻣ", + "copied_key_to_clipboard": "${key} کو کلپ بورڈ پر کاپی کیا گیا۔", + "copied_to_clipboard": "کلپ بورڈ پر کاپی کیا گیا۔", + "copy": "کاپی", + "copy_address": "ایڈریس کاپی کریں۔", + "copy_id": "کاپی ID", + "copyWalletConnectLink": "dApp ﮯﺳ WalletConnect ۔ﮟﯾﺮﮐ ﭧﺴﯿﭘ ﮞﺎﮩﯾ ﺭﻭﺍ ﮟﯾﺮﮐ ﯽﭘﺎﮐ ﻮﮐ ﮏﻨﻟ", + "create_account": "اکاؤنٹ بنائیں", + "create_backup": "بیک اپ بنائیں", + "create_donation_link": "عطیہ کا لنک بنائیں", + "create_invoice": "انوائس بنائیں", + "create_new": "نیا والیٹ بنائیں", + "create_new_account": "نیا اکاؤنٹ بنانے", + "creating_new_wallet": "نیا پرس بنانا", + "creating_new_wallet_error": "خرابی: ${description}", + "creation_date": "بنانے کی تاریخ", + "custom": "اپنی مرضی کے مطابق", + "custom_drag": "کسٹم (ہولڈ اینڈ ڈریگ)", + "custom_redeem_amount": "حسب ضرورت چھڑانے کی رقم", + "dark_theme": "اندھیرا", + "debit_card": "ڈیبٹ کارڈ", + "debit_card_terms": "اس ڈیجیٹل والیٹ میں آپ کے ادائیگی کارڈ نمبر (اور آپ کے ادائیگی کارڈ نمبر سے متعلقہ اسناد) کا ذخیرہ اور استعمال ادائیگی کارڈ جاری کنندہ کے ساتھ قابل اطلاق کارڈ ہولڈر کے معاہدے کی شرائط و ضوابط کے ساتھ مشروط ہے، جیسا کہ وقتاً فوقتاً نافذ ہوتا ہے۔", + "decimal_places_error": "بہت زیادہ اعشاریہ جگہیں۔", "default_buy_provider": "پہلے سے طے شدہ خریدنے والا", - "ask_each_time": "ہر بار پوچھیں", - "buy_provider_unavailable": "فراہم کنندہ فی الحال دستیاب نہیں ہے۔", - "signTransaction": "۔ﮟﯾﺮﮐ ﻂﺨﺘﺳﺩ ﺮﭘ ﻦﯾﺩ ﻦﯿﻟ", + "default_sell_provider": " ﮦﺪﻨﻨﮐ ﻢﮨﺍﺮﻓ ﻞﯿﺳ ﭧﻟﺎﻔﯾﮈ", + "delete": "حذف کریں۔", + "delete_account": "کھاتہ مٹا دو", + "delete_wallet": "پرس کو حذف کریں۔", + "delete_wallet_confirm_message": "کیا آپ واقعی ${wallet_name} والیٹ کو حذف کرنا چاہتے ہیں؟", + "deleteConnectionConfirmationPrompt": "۔ﮟﯿﮨ ﮯﺘﮨﺎﭼ ﺎﻧﺮﮐ ﻑﺬﺣ ﻮﮐ ﻦﺸﮑﻨﮐ ﭖﺁ ﮧﮐ ﮯﮨ ﻦﯿﻘﯾ ﻮﮐ ﭖﺁ ﺎﯿﮐ", + "descending": "اترتے ہوئے", + "description": "ﻞﯿﺼﻔﺗ", + "destination_tag": "منزل کا ٹیگ:", + "dfx_option_description": "EUR ﺭﻭﺍ CHF ﯽﻓﺎﺿﺍ ۔ﮟﯾﺪﯾﺮﺧ ﻮﭩﭘﺮﮐ ﮫﺗﺎﺳ ﮯﮐ KYC ﮯﯿﻟ ﮯﮐ ﻦﯿﻓﺭﺎﺻ ﭧﯾﺭﻮﭘﺭﺎﮐ ﺭﻭﺍ ﮦﺩﺭﻮﺧ ﮟ", + "didnt_get_code": "کوڈ نہیں ملتا؟", + "digit_pin": "-ہندسوں کا پن", + "digital_and_physical_card": " ڈیجیٹل اور فزیکل پری پیڈ ڈیبٹ کارڈ", + "disable": "غیر فعال کریں۔", + "disable_buy": "خرید ایکشن کو غیر فعال کریں۔", + "disable_cake_2fa": "کیک 2FA کو غیر فعال کریں۔", + "disable_exchange": "تبادلے کو غیر فعال کریں۔", + "disable_fiat": "فیاٹ کو غیر فعال کریں۔", + "disable_sell": "فروخت کی کارروائی کو غیر فعال کریں۔", + "disabled": "معذور", + "discount": "${value}% بچائیں", + "display_settings": "ڈسپلے کی ترتیبات", + "displayable": "قابل نمائش", + "do_not_have_enough_gas_asset": "آپ کے پاس موجودہ بلاکچین نیٹ ورک کی شرائط کے ساتھ لین دین کرنے کے لیے کافی ${currency} نہیں ہے۔ آپ کو بلاکچین نیٹ ورک کی فیس ادا کرنے کے لیے مزید ${currency} کی ضرورت ہے، چاہے آپ کوئی مختلف اثاثہ بھیج رہے ہوں۔", + "do_not_send": "مت بھیجیں۔", + "do_not_share_warning_text": "سپورٹ سمیت کسی اور کے ساتھ ان کا اشتراک نہ کریں۔\\n\\nآپ کے فنڈز چوری ہو سکتے ہیں اور ہو جائیں گے!", + "do_not_show_me": "مجھے یہ دوبارہ مت دکھانا", + "domain_looks_up": "ڈومین تلاش کرنا", + "donation_link_details": "عطیہ کے لنک کی تفصیلات", + "e_sign_consent": "ای سائن کنسنٹ", + "edit": "ترمیم", + "edit_backup_password": "بیک اپ پاس ورڈ میں ترمیم کریں۔", + "edit_node": "نوڈ میں ترمیم کریں۔", + "edit_token": "ٹوکن میں ترمیم کریں۔", + "electrum_address_disclaimer": "جب بھی آپ ایک کا استعمال کرتے ہیں تو ہم نئے پتے تیار کرتے ہیں، لیکن پچھلے پتے کام کرتے رہتے ہیں۔", + "email_address": "ای میل اڈریس", + "enabled": "فعال", + "enter_amount": "رقم درج کریں۔", + "enter_backup_password": "یہاں بیک اپ پاس ورڈ درج کریں۔", + "enter_code": "کوڈ درج کریں", + "enter_seed_phrase": "اپنے بیج کا جملہ درج کریں", + "enter_totp_code": "براہ کرم TOTP کوڈ درج کریں۔", + "enter_your_note": "اپنا نوٹ درج کریں…", + "enter_your_pin": "اپنا PIN درج کریں۔", + "enter_your_pin_again": "اپنا پن دوبارہ درج کریں۔", + "enterTokenID": " ۔ﮟﯾﺮﮐ ﺝﺭﺩ ID ﻦﮐﻮﭨ", + "enterWalletConnectURI": "WalletConnect URI ۔ﮟﯾﺮﮐ ﺝﺭﺩ", + "error": "خرابی", + "error_dialog_content": "افوہ، ہمیں کچھ خرابی ملی۔\n\nایپلی کیشن کو بہتر بنانے کے لیے براہ کرم کریش رپورٹ ہماری سپورٹ ٹیم کو بھیجیں۔", + "error_text_account_name": "اکاؤنٹ کا نام صرف حروف، اعداد پر مشتمل ہو سکتا ہے\\nاور 1 سے 15 حروف کے درمیان ہونا چاہیے۔", + "error_text_address": "والیٹ کا پتہ cryptocurrency کی قسم\\nکے مطابق ہونا چاہیے۔", + "error_text_amount": "رقم صرف اعداد پر مشتمل ہو سکتی ہے۔", + "error_text_contact_name": "رابطہ کے نام میں ` , \\' \" علامات\\nنہیں ہو سکتے اور 1 سے 32 حروف کے درمیان ہونا چاہیے", + "error_text_crypto_currency": "کسر ہندسوں کی تعداد\\n12 سے کم یا مساوی ہونی چاہیے۔", + "error_text_fiat": "رقم کی قدر دستیاب بیلنس سے زیادہ نہیں ہو سکتی۔\\nفرکشن ہندسوں کی تعداد 2 کے برابر یا کم ہونی چاہیے۔", + "error_text_input_above_maximum_limit": "رقم زیادہ سے زیادہ سے زیادہ ہے۔", + "error_text_input_below_minimum_limit": "رقم کم از کم سے کم ہے۔", + "error_text_keys": "والیٹ کیز ہیکس میں صرف 64 حروف پر مشتمل ہو سکتی ہیں۔", + "error_text_limits_loading_failed": "${provider} کے لیے تجارت نہیں بنائی گئی ہے۔ حدود کی لوڈنگ ناکام ہو گئی۔", + "error_text_maximum_limit": "${provider} کے لیے تجارت نہیں بنائی گئی ہے۔ رقم زیادہ سے زیادہ سے زیادہ ہے: ${max} ${currency}", + "error_text_minimal_limit": "${provider} کے لیے تجارت نہیں بنائی گئی ہے۔ رقم کم سے کم ہے: ${min} ${currency}", + "error_text_node_address": "براہ کرم ایک iPv4 پتہ درج کریں۔", + "error_text_node_port": "نوڈ پورٹ میں صرف 0 اور 65535 کے درمیان نمبر ہوسکتے ہیں۔", + "error_text_node_proxy_address": "براہ کرم : درج کریں، مثال کے طور پر 127.0.0.1:9050", + "error_text_payment_id": "ادائیگی کی ID ہیکس میں صرف 16 سے 64 حروف پر مشتمل ہو سکتی ہے۔", + "error_text_subaddress_name": "ذیلی پتے کے نام میں ` , \\ ' \" علامتیں نہیں ہو سکتی ہیں اور 1 اور 20 حروف کے درمیان ہونی چاہئیں", + "error_text_template": "ٹیمپلیٹ کا نام اور پتہ `` , \\' \" علامتوں پر مشتمل نہیں ہو سکتا ہے اور 1 اور 106 حروف کے درمیان ہونا چاہیے", + "error_text_wallet_name": "والیٹ کے نام میں صرف حروف، اعداد، _ - علامتیں\\nاور 1 سے 33 حروف کے درمیان ہونی چاہئیں", + "error_text_xmr": "XMR قدر دستیاب بیلنس سے زیادہ نہیں ہو سکتی۔\\nفرکشن ہندسوں کی تعداد 12 سے کم یا اس کے برابر ہونی چاہیے۔", "errorGettingCredentials": "۔ﯽﺑﺍﺮﺧ ﮟﯿﻣ ﮯﻧﺮﮐ ﻞﺻﺎﺣ ﺩﺎﻨﺳﺍ :ﻡﺎﮐﺎﻧ", "errorSigningTransaction": "۔ﮯﮨ ﯽﺌﮔﺁ ﺶﯿﭘ ﯽﺑﺍﺮﺧ ﮏﯾﺍ ﺖﻗﻭ ﮯﺗﺮﮐ ﻂﺨﺘﺳﺩ ﺮﭘ ﻦﯾﺩ ﻦﯿﻟ", - "pairingInvalidEvent": "ﭧﻧﻮﯾﺍ ﻂﻠﻏ ﺎﻧﺎﻨﺑ ﺍﮌﻮﺟ", - "chains": "ﮟﯾﺮﯿﺠﻧﺯ", - "methods": "ﮯﻘﯾﺮﻃ", - "events": "ﺕﺎﺒﯾﺮﻘﺗ", - "reject": "ﺎﻧﺮﮐ ﺩﺭ", - "approve": "ﻭﺮﮐ ﺭﻮﻈﻨﻣ", - "expiresOn": "ﺩﺎﻌﯿﻣ ﯽﻣﺎﺘﺘﺧﺍ", - "walletConnect": "WalletConnect", - "nullURIError": "URI ۔ﮯﮨ ﻡﺪﻌﻟﺎﮐ", - "connectWalletPrompt": "۔ﮟﯾﮌﻮﺟ ﮫﺗﺎﺳ ﮯﮐ WalletConnect ﻮﮐ ﮮﻮﭩﺑ ﮯﻨﭘﺍ ﮯﯿﻟ ﮯﮐ ﮯﻧﺮﮐ ﻦﯾﺩ ﻦﯿﻟ", - "newConnection": "ﻦﺸﮑﻨﮐ ﺎﯿﻧ", - "activeConnectionsPrompt": "۔ﮯﮔ ﮞﻮﮨ ﺮﮨﺎﻇ ﮞﺎﮩﯾ ﺰﻨﺸﮑﻨﮐ ﻝﺎﻌﻓ", - "deleteConnectionConfirmationPrompt": "۔ﮟﯿﮨ ﮯﺘﮨﺎﭼ ﺎﻧﺮﮐ ﻑﺬﺣ ﻮﮐ ﻦﺸﮑﻨﮐ ﭖﺁ ﮧﮐ ﮯﮨ ﻦﯿﻘﯾ ﻮﮐ ﭖﺁ ﺎﯿﮐ", + "estimated": "تخمینہ لگایا", + "etherscan_history": "ﺦﯾﺭﺎﺗ ﯽﮐ ﻦﯿﮑﺳﺍ ﺮﮭﺘﯾﺍ", "event": "ﺐﯾﺮﻘﺗ", - "successful": "ﺏﺎﯿﻣﺎﮐ", - "wouoldLikeToConnect": "؟ﮯﮔ ﮟﯿﮨﺎﭼ ﺎﻧﮍﺟ", - "message": "ﻡﺎﻐﯿﭘ", - "do_not_have_enough_gas_asset": "آپ کے پاس موجودہ بلاکچین نیٹ ورک کی شرائط کے ساتھ لین دین کرنے کے لیے کافی ${currency} نہیں ہے۔ آپ کو بلاکچین نیٹ ورک کی فیس ادا کرنے کے لیے مزید ${currency} کی ضرورت ہے، چاہے آپ کوئی مختلف اثاثہ بھیج رہے ہوں۔", - "totp_auth_url": "TOTP AUTH URL", - "awaitDAppProcessing": "۔ﮟﯾﺮﮐ ﺭﺎﻈﺘﻧﺍ ﺎﮐ ﮯﻧﻮﮨ ﻞﻤﮑﻣ ﮓﻨﺴﯿﺳﻭﺮﭘ ﮯﮐ dApp ﻡﺮﮐ ﮦﺍﺮﺑ", - "copyWalletConnectLink": "dApp ﮯﺳ WalletConnect ۔ﮟﯾﺮﮐ ﭧﺴﯿﭘ ﮞﺎﮩﯾ ﺭﻭﺍ ﮟﯾﺮﮐ ﯽﭘﺎﮐ ﻮﮐ ﮏﻨﻟ", - "enterWalletConnectURI": "WalletConnect URI ۔ﮟﯾﺮﮐ ﺝﺭﺩ", - "seed_key": "بیج کی کلید", - "enter_seed_phrase": "اپنے بیج کا جملہ درج کریں", - "change_rep_successful": "نمائندہ کو کامیابی کے ساتھ تبدیل کیا", - "add_contact": "۔ﮟﯾﺮﮐ ﻞﻣﺎﺷ ﮧﻄﺑﺍﺭ", + "events": "ﺕﺎﺒﯾﺮﻘﺗ", + "exchange": "تبادلہ", + "exchange_incorrect_current_wallet_for_xmr": "اگر آپ اپنے Cake والیٹ Monero بیلنس سے XMR کا تبادلہ کرنا چاہتے ہیں، تو براہ کرم پہلے اپنے Monero والیٹ پر جائیں۔", + "exchange_new_template": "نیا سانچہ", "exchange_provider_unsupported": "${providerName} اب تعاون نہیں کیا جاتا ہے!", - "domain_looks_up": "ڈومین تلاش کرنا", - "require_for_exchanges_to_external_wallets": "۔ﮯﮨ ﺕﺭﻭﺮﺿ ﯽﮐ ﮯﻟﺩﺎﺒﺗ ﮟﯿﻣ ﮮﻮﭩﺑ ﯽﻧﻭﺮﯿﺑ", - "camera_permission_is_required": "۔ﮯﮨ ﺭﺎﮐﺭﺩ ﺕﺯﺎﺟﺍ ﯽﮐ ﮮﺮﻤﯿﮐ", - "switchToETHWallet": "۔ﮟﯾﺮﮐ ﺶﺷﻮﮐ ﮦﺭﺎﺑﻭﺩ ﺭﻭﺍ ﮟﯾﺮﮐ ﭻﺋﻮﺳ ﺮﭘ ﭧﯿﻟﺍﻭ Ethereum ﻡﺮﮐ ﮦﺍﺮﺑ", - "order_by": "آرڈر بذریعہ", - "creation_date": "بنانے کی تاریخ", + "exchange_result_confirm": "تصدیق کو دبانے سے، آپ اپنے بٹوے سے ${fetchingLabel} ${from} بھیجیں گے جسے ${walletName} کہتے ہیں نیچے دکھائے گئے پتے پر۔ یا آپ اپنے بیرونی والیٹ سے نیچے دیئے گئے پتے/QR کوڈ پر بھیج سکتے ہیں۔\\n\\nجاری رکھنے کے لیے براہ کرم تصدیق کو دبائیں یا رقم تبدیل کرنے کے لیے واپس جائیں۔", + "exchange_result_description": "آپ کو اگلے صفحہ پر دکھائے گئے پتے پر کم از کم ${fetchingLabel} ${from} بھیجنا ہوگا۔ اگر آپ ${fetchingLabel} ${from} سے کم رقم بھیجتے ہیں تو یہ تبدیل نہیں ہوسکتی ہے اور اسے واپس نہیں کیا جاسکتا ہے۔", + "exchange_result_write_down_ID": "*براہ کرم اوپر دکھائی گئی اپنی ID کاپی کریں یا لکھیں۔", + "exchange_result_write_down_trade_id": "جاری رکھنے کے لیے براہ کرم تجارتی ID کاپی کریں یا لکھیں۔", + "exchange_sync_alert_content": "براہ کرم اس وقت تک انتظار کریں جب تک آپ کا بٹوہ مطابقت پذیر نہ ہو جائے۔", + "expired": "میعاد ختم", + "expires": "میعاد ختم", + "expiresOn": "ﺩﺎﻌﯿﻣ ﯽﻣﺎﺘﺘﺧﺍ", + "export_backup": "بیک اپ برآمد کریں۔", + "extra_id": "اضافی ID:", + "failed_authentication": "ناکام تصدیق۔ ${state_error}", + "faq": "عمومی سوالات", + "fetching": "لا رہا ہے۔", + "fiat_api": "Fiat API", + "fiat_balance": "فیاٹ بیلنس", + "field_required": "اس کو پر کرنا ضروری ہے", + "fill_code": "براہ کرم اپنے ای میل پر فراہم کردہ تصدیقی کوڈ کو پُر کریں۔", + "filter_by": "کی طرف سے فلٹر", + "first_wallet_text": "Monero، Bitcoin، Ethereum، Litecoin، اور Haven کے لیے زبردست پرس", + "fixed_pair_not_supported": "یہ مقررہ جوڑا منتخب کردہ تبادلے کے ساتھ تعاون یافتہ نہیں ہے۔", + "fixed_rate": "مقررہ شرح", + "fixed_rate_alert": "فکسڈ ریٹ موڈ چیک ہونے پر آپ وصولی رقم درج کر سکیں گے۔ کیا آپ فکسڈ ریٹ موڈ پر سوئچ کرنا چاہتے ہیں؟", + "forgot_password": "پاسورڈ بھول گے", + "freeze": "منجمد", + "frequently_asked_questions": "اکثر پوچھے گئے سوالات", + "frozen": "منجمد", + "full_balance": "مکمل بیلنس", + "generate_name": "نام پیدا کریں۔", + "generating_gift_card": "گفٹ کارڈ تیار کرنا", + "get_a": "حاصل", + "get_card_note": " جسے آپ ڈیجیٹل کرنسیوں کے ساتھ دوبارہ لوڈ کر سکتے ہیں۔ کوئی اضافی معلومات کی ضرورت نہیں!", + "get_your_yat": "اپنی Yat حاصل کریں۔", + "gift_card_amount": "گفٹ کارڈ کی رقم", + "gift_card_balance_note": "باقی بیلنس والے گفٹ کارڈز یہاں ظاہر ہوں گے۔", + "gift_card_is_generated": "گفٹ کارڈ بنتا ہے۔", + "gift_card_number": "گفٹ کارڈ نمبر", + "gift_card_redeemed_note": "آپ نے جن گفٹ کارڈز کو بھنایا ہے وہ یہاں ظاہر ہوں گے۔", + "gift_cards": "گفٹ کارڈز", + "gift_cards_unavailable": "گفٹ کارڈز اس وقت صرف Monero، Bitcoin اور Litecoin کے ساتھ خریداری کے لیے دستیاب ہیں۔", + "got_it": "یہ مل گیا", + "gross_balance": "مجموعی بیلنس", "group_by_type": "قسم کے لحاظ سے گروپ", - "importNFTs": "NFTs ۔ﮟﯾﺮﮐ ﺪﻣﺁﺭﺩ", - "noNFTYet": "۔ﮟﯿﮨ ﮟﯿﮩﻧ NFTs ﯽﺋﻮﮐ ﮏﺗ ﯽﮭﺑﺍ", - "address": "ﮧﺘﭘ", - "enterTokenID": " ۔ﮟﯾﺮﮐ ﺝﺭﺩ ID ﻦﮐﻮﭨ", - "tokenID": "ID", - "name": "ﻡﺎﻧ", - "symbol": "ﺖﻣﻼﻋ", - "seed_phrase_length": "ﯽﺋﺎﺒﻤﻟ ﯽﮐ ﮯﻠﻤﺟ ﮯﮐ ﺞﯿﺑ", - "unavailable_balance": "ﺲﻨﻠﯿﺑ ﺏﺎﯿﺘﺳﺩ ﺮﯿﻏ", - "unavailable_balance_description": "۔ﮯﺗﺮﮐ ﮟﯿﮩﻧ ﮧﻠﺼﯿﻓ ﺎﮐ ﮯﻧﺮﮐ ﺪﻤﺠﻨﻣ ﻥﺍ ﮟﯿﮩﻧﺍ ﭖﺁ ﮧﮐ ﮏﺗ ﺐﺟ ﮟﯿﮨ ﮯﺘﮨﺭ ﯽﺋﺎﺳﺭ ﻞﺑﺎﻗﺎﻧ ﮏﺗ ﺖﻗﻭ ﺱﺍ ﮯﯿﻟ ﮯﮐ ﻦﯾﺩ ﻦﯿﻟ ﺲﻨﻠﯿﺑ ﺪﻤﺠﻨﻣ ﮧﮐ ﺐﺟ ،ﮯﮔ ﮟﯿﺋﺎﺟ ﻮﮨ ﺏﺎﯿﺘﺳﺩ ﺲﻨﻠﯿﺑ ﻞﻔﻘﻣ ﺪﻌﺑ ﮯﮐ ﮯﻧﻮﮨ ﻞﻤﮑﻣ ﻦﯾﺩ ﻦﯿﻟ ﮧﻘﻠﻌﺘﻣ ﮯﮐ ﻥﺍ ۔ﮯﮨ ﺎﮭﮐﺭ ﺮ", - "unspent_change": "تبدیل کریں", - "setup_warning_2fa_text": " ۔ﯽﮔﻮﮨ ﺕﺭﻭﺮﺿ ﯽﮐ ﮯﻧﺮﮐ ﻝﺎﺤﺑ ﻮﮐ ﮮﻮﭩﺑ ﮯﻨﭘﺍ ﮯﺳ ﺞﯿﺑ ﮯﮐ ﺖﺷﺍﺩﺩﺎﯾ ﻮﮐ ﭖﺁ", - "scan_qr_on_device": " ۔ﮟﯾﺮﮐ ﻦﯿﮑﺳﺍ ﺮﭘ ﺲﺋﺍﻮﯾﮈ ﺭﻭﺍ ﯽﺴﮐ ﻮﮐ ﮈﻮﮐ QR ﺱﺍ", + "haven_app": "Haven از Cake والیٹ", + "haven_app_wallet_text": "Havek کے لیے زبردست پرس", + "help": "مدد", + "hidden_balance": "پوشیدہ بیلنس", + "hide_details": "تفصیلات چھپائیں۔", + "high_contrast_theme": "ہائی کنٹراسٹ تھیم", + "home_screen_settings": "ہوم اسکرین کی ترتیبات", "how_to_use": " ﮧﻘﯾﺮﻃ ﺎﮐ ﮯﻧﺮﮐ ﻝﺎﻤﻌﺘﺳﺍ", + "how_to_use_card": "اس کارڈ کو استعمال کرنے کا طریقہ", + "id": "ID:", + "ignor": "نظر انداز کرنا", + "import": " ۔ﮟﯾﺮﮐ ﺪﻣﺁﺭﺩ", + "importNFTs": "NFTs ۔ﮟﯾﺮﮐ ﺪﻣﺁﺭﺩ", + "in_store": "اسٹور میں", + "incoming": "آنے والا", + "incorrect_seed": "درج کردہ متن درست نہیں ہے۔", + "introducing_cake_pay": "Cake پے کا تعارف!", + "invalid_input": "غلط ان پٹ", + "invoice_details": "رسید کی تفصیلات", + "is_percentage": "ہے", + "last_30_days": "آخری 30 دن", + "learn_more": "اورجانیے", + "light_theme": "روشنی", + "loading_your_wallet": "آپ کا بٹوہ لوڈ ہو رہا ہے۔", + "login": "لاگ ان کریں", + "logout": "لاگ آوٹ", + "low_fee": "کم فیس", + "low_fee_alert": "آپ فی الحال کم نیٹ ورک فیس کی ترجیح استعمال کر رہے ہیں۔ یہ طویل انتظار، مختلف شرحوں، یا منسوخ شدہ تجارتوں کا سبب بن سکتا ہے۔ ہم بہتر تجربہ کے لیے زیادہ فیس مقرر کرنے کی تجویز کرتے ہیں۔", + "manage_nodes": "۔ﮟﯾﺮﮐ ﻢﻈﻧ ﺎﮐ ﺱﮈﻮﻧ", + "manage_pow_nodes": "PoW ۔ﮟﯾﺮﮐ ﻢﻈﻧ ﺎﮐ ﺱﮈﻮﻧ", + "manage_yats": "یاٹس کا انتظام کریں۔", + "mark_as_redeemed": "ریڈیم کے بطور نشان زد کریں۔", + "market_place": "بازار", + "matrix_green_dark_theme": "میٹرکس گرین ڈارک تھیم", + "max_amount": "زیادہ سے زیادہ: ${value}", + "max_value": "زیادہ سے زیادہ: ${value} ${currency}", + "memo": "میمو:", + "message": "ﻡﺎﻐﯿﭘ", + "methods": "ﮯﻘﯾﺮﻃ", + "min_amount": "کم سے کم: ${value}", + "min_value": "کم سے کم: ${value} ${currency}", + "minutes_to_pin_code": "${minute} منٹ", + "mm": "MM", + "modify_2fa": "کیک 2FA میں ترمیم کریں۔", + "monero_com": "Monero.com بذریعہ Cake والیٹ", + "monero_com_wallet_text": "Monero کے لئے بہت اچھا پرس", + "monero_dark_theme": "مونیرو ڈارک تھیم", + "monero_light_theme": "مونیرو لائٹ تھیم", + "moonpay_alert_text": "رقم کی قدر ${minAmount} ${fiatCurrency} کے برابر یا زیادہ ہونی چاہیے۔", + "more_options": "مزید زرائے", + "name": "ﻡﺎﻧ", + "narrow": "تنگ", + "new_first_wallet_text": "آسانی سے اپنے cryptocurrency محفوظ رکھیں", + "new_node_testing": "نیا نوڈ ٹیسٹنگ", + "new_subaddress_create": "بنانا", + "new_subaddress_label_name": "لیبل کا نام", + "new_subaddress_title": "نیا پتہ", + "new_template": "نیا سانچہ", + "new_wallet": "نیا پرس", + "newConnection": "ﻦﺸﮑﻨﮐ ﺎﯿﻧ", + "no_id_needed": "شناخت کی ضرورت نہیں!", + "no_id_required": "کوئی ID درکار نہیں۔ ٹاپ اپ اور کہیں بھی خرچ کریں۔", + "no_relay_on_domain": "۔ﮟﯾﺮﮐ ﺏﺎﺨﺘﻧﺍ ﺎﮐ ﮯﻠﯾﺭ ﮯﯿﻟ ﮯﮐ ﮯﻧﺮﮐ ﻝﺎﻤﻌﺘﺳﺍ ﻡﺮﮐ ﮦﺍﺮﺑ ۔ﮯﮨ ﮟﯿﮩﻧ ﺏﺎﯿﺘﺳﺩ ﮯﻠﯾﺭ ﺎﯾ ﮯﮨ ﮟ", + "no_relays": "۔ﮟﯿﮩﻧ ﮯﻠﯾﺭ ﯽﺋﻮﮐ", + "no_relays_message": "۔ﮟﯾﺮﮐ ﻞﻣﺎﺷ ﮯﻠﯾﺭ ﮟﯿﻣ ﮈﺭﺎﮑﯾﺭ ﺮﭩﺳﻮﻧ ﮯﻨﭘﺍ ﮦﻭ ﮧﮐ ﮟﯾﺩ ﺖﯾﺍﺪﮨ ﻮﮐ ﮦﺪﻨﻨﮐ ﻝﻮﺻﻭ ﻡﺮﮐ ﮦﺍﺮﺑ ۔", + "node_address": "نوڈ ایڈریس", + "node_connection_failed": "کنکشن ناکام ہو گیا تھا۔", + "node_connection_successful": "کنکشن کامیاب رہا۔", + "node_new": "نیا نوڈ", + "node_port": "نوڈ پورٹ", + "node_reset_settings_title": "ترتیبات کو دوبارہ ترتیب دیں۔", + "node_test": "پرکھ", + "nodes": "نوڈس", + "nodes_list_reset_to_default_message": "کیا آپ واقعی ترتیبات کو ڈیفالٹ پر دوبارہ ترتیب دینا چاہتے ہیں؟", + "none_of_selected_providers_can_exchange": "منتخب فراہم کنندگان میں سے کوئی بھی یہ تبادلہ نہیں کر سکتا", + "noNFTYet": "۔ﮟﯿﮨ ﮟﯿﮩﻧ NFTs ﯽﺋﻮﮐ ﮏﺗ ﯽﮭﺑﺍ", + "normal": "نارمل", + "note_optional": "نوٹ (اختیاری)", + "note_tap_to_change": "نوٹ (تبدیل کرنے کے لیے تھپتھپائیں)", + "nullURIError": "URI ۔ﮯﮨ ﻡﺪﻌﻟﺎﮐ", + "offer_expires_in": "پیشکش کی میعاد اس وقت ختم ہو جاتی ہے:", + "offline": "آف لائن", + "ok": "ٹھیک ہے", + "onion_link": "پیاز کا لنک", + "online": "آن لائن", + "onramper_option_description": "ادائیگی کے بہت سے طریقوں سے جلدی سے کرپٹو خریدیں۔ زیادہ تر ممالک میں دستیاب ہے۔ پھیلاؤ اور فیس مختلف ہوتی ہے۔", + "open_gift_card": "گفٹ کارڈ کھولیں۔", + "openalias_alert_content": "آپ کو فنڈز بھیجیں گے\\n${recipient_name}", + "openalias_alert_title": "پتہ کا پتہ چلا", + "optional_description": "اختیاری تفصیل", + "optional_email_hint": "اختیاری وصول کنندہ کی اطلاع کا ای میل", + "optional_name": "اختیاری وصول کنندہ کا نام", + "optionally_order_card": "اختیاری طور پر ایک فزیکل کارڈ آرڈر کریں۔", + "orbot_running_alert": "براہ کرم یقینی بنائیں کہ اس نوڈ سے منسلک ہونے سے پہلے Orbot چل رہا ہے۔", + "order_by": "آرڈر بذریعہ", + "order_id": "ID آرڈر کریں۔", + "order_physical_card": "فزیکل کارڈ آرڈر کریں۔", + "other_settings": "دیگر ترتیبات", + "outdated_electrum_wallet_description": "Cake میں بنائے گئے نئے Bitcoin بٹوے میں اب 24 الفاظ کا بیج ہے۔ یہ لازمی ہے کہ آپ ایک نیا Bitcoin والیٹ بنائیں اور اپنے تمام فنڈز کو نئے 24 الفاظ والے والیٹ میں منتقل کریں، اور 12 الفاظ کے بیج والے بٹوے کا استعمال بند کریں۔ براہ کرم اپنے فنڈز کو محفوظ بنانے کے لیے فوری طور پر ایسا کریں۔", + "outdated_electrum_wallet_receive_warning": "اگر اس پرس میں 12 الفاظ کا بیج ہے اور اسے Cake میں بنایا گیا ہے، تو اس بٹوے میں Bitcoin جمع نہ کریں۔ اس بٹوے میں منتقل کیا گیا کوئی بھی BTC ضائع ہو سکتا ہے۔ ایک نیا 24 الفاظ والا والیٹ بنائیں (اوپر دائیں جانب مینو کو تھپتھپائیں، Wallets کو منتخب کریں، نیا والیٹ بنائیں، پھر Bitcoin کو منتخب کریں) اور فوری طور پر اپنے BTC کو وہاں منتقل کریں۔ Cake کے نئے (24-لفظوں) BTC بٹوے محفوظ ہیں۔", + "outgoing": "سبکدوش ہونے والے", + "overwrite_amount": "رقم کو اوور رائٹ کریں۔", + "pairingInvalidEvent": "ﭧﻧﻮﯾﺍ ﻂﻠﻏ ﺎﻧﺎﻨﺑ ﺍﮌﻮﺟ", + "password": "پاس ورڈ", + "paste": "چسپاں کریں۔", + "pause_wallet_creation": "Haven Wallet ۔ﮯﮨ ﻑﻮﻗﻮﻣ ﻝﺎﺤﻟﺍ ﯽﻓ ﺖﯿﻠﮨﺍ ﯽﮐ ﮯﻧﺎﻨﺑ", + "payment_id": "ادائیگی کی شناخت:", + "payment_was_received": "آپ کی ادائیگی موصول ہو گئی۔", + "pending": " (زیر التواء)", + "percentageOf": "${amount} کا", + "pin_at_top": "اوپر ${token} کو پن کریں۔", + "pin_is_incorrect": "PIN غلط ہے۔", + "pin_number": "پن نمبر", + "placeholder_contacts": "آپ کے رابطے یہاں دکھائے جائیں گے۔", + "placeholder_transactions": "آپ کے لین دین یہاں دکھائے جائیں گے۔", + "please_fill_totp": "براہ کرم اپنے دوسرے آلے پر موجود 8 ہندسوں کا کوڈ پُر کریں۔", + "please_make_selection": "اپنا بٹوہ بنانے یا بازیافت کرنے کے لیے براہ کرم ذیل میں ایک انتخاب کریں۔", + "please_reference_document": "مزید معلومات کے لیے براہ کرم نیچے دی گئی دستاویزات کا حوالہ دیں۔", + "please_select": "براہ مہربانی منتخب کریں:", + "please_select_backup_file": "براہ کرم بیک اپ فائل منتخب کریں اور بیک اپ پاس ورڈ درج کریں۔", + "please_try_to_connect_to_another_node": "براہ کرم کسی دوسرے نوڈ سے جڑنے کی کوشش کریں۔", + "polygonscan_history": "ﺦﯾﺭﺎﺗ ﯽﮐ ﻦﯿﮑﺳﺍ ﻥﻮﮔ ﯽﻟﻮﭘ", + "powered_by": "${title} کے ذریعے تقویت یافتہ", + "pre_seed_button_text": "میں سمجھتا ہوں۔ مجھے میرا بیج دکھاؤ", + "pre_seed_description": "اگلے صفحے پر آپ کو ${words} الفاظ کا ایک سلسلہ نظر آئے گا۔ یہ آپ کا انوکھا اور نجی بیج ہے اور یہ آپ کے بٹوے کو ضائع یا خرابی کی صورت میں بازیافت کرنے کا واحد طریقہ ہے۔ اسے لکھنا اور اسے کیک والیٹ ایپ سے باہر کسی محفوظ جگہ پر اسٹور کرنا آپ کی ذمہ داری ہے۔", + "pre_seed_title": "اہم", + "prevent_screenshots": "اسکرین شاٹس اور اسکرین ریکارڈنگ کو روکیں۔", + "privacy": "رازداری", + "privacy_policy": "رازداری کی پالیسی", + "privacy_settings": "رازداری کی ترتیبات", + "private_key": "نجی کلید", + "proceed_after_one_minute": "اگر اسکرین 1 منٹ کے بعد آگے نہیں بڑھتی ہے تو اپنا ای میل چیک کریں۔", + "profile": "پروفائل", + "provider_error": "${provider} خرابی۔", + "public_key": "عوامی کلید", + "purchase_gift_card": "گفٹ کارڈ خریدیں۔", + "qr_fullscreen": "فل سکرین QR کوڈ کھولنے کے لیے تھپتھپائیں۔", + "qr_payment_amount": "اس QR کوڈ میں ادائیگی کی رقم شامل ہے۔ کیا آپ موجودہ قدر کو اوور رائٹ کرنا چاہتے ہیں؟", + "question_to_disable_2fa": "کیا آپ واقعی کیک 2FA کو غیر فعال کرنا چاہتے ہیں؟ بٹوے اور بعض افعال تک رسائی کے لیے اب 2FA کوڈ کی ضرورت نہیں ہوگی۔", + "receivable_balance": "قابل وصول توازن", + "receive": "وصول کریں۔", + "receive_amount": "رقم", + "received": "موصول ہوا۔", + "recipient_address": "وصول کنندہ کا پتہ", + "reconnect": "دوبارہ جڑیں۔", + "reconnect_alert_text": "کیا آپ واقعی دوبارہ جڑنا چاہتے ہیں؟", + "reconnection": "دوبارہ رابطہ", + "redeemed": "چھڑایا", + "refund_address": "رقم کی واپسی کا پتہ", + "reject": "ﺎﻧﺮﮐ ﺩﺭ", + "remaining": "باقی", + "remove": "دور", + "remove_node": "نوڈ کو ہٹا دیں۔", + "remove_node_message": "کیا آپ واقعی منتخب نوڈ کو ہٹانا چاہتے ہیں؟", + "rename": "نام تبدیل کریں۔", + "require_for_adding_contacts": "رابطوں کو شامل کرنے کی ضرورت ہے۔", + "require_for_all_security_and_backup_settings": "تمام سیکورٹی اور بیک اپ کی ترتیبات کے لیے درکار ہے۔", + "require_for_assessing_wallet": "بٹوے تک رسائی کے لیے درکار ہے۔", + "require_for_creating_new_wallets": "نئے بٹوے بنانے کی ضرورت ہے۔", + "require_for_exchanges_to_external_wallets": "۔ﮯﮨ ﺕﺭﻭﺮﺿ ﯽﮐ ﮯﻟﺩﺎﺒﺗ ﮟﯿﻣ ﮮﻮﭩﺑ ﯽﻧﻭﺮﯿﺑ", + "require_for_exchanges_to_internal_wallets": "اندرونی بٹوے میں تبادلے کی ضرورت ہے۔", + "require_for_sends_to_contacts": "رابطوں کو بھیجنے کی ضرورت ہے۔", + "require_for_sends_to_internal_wallets": "اندرونی بٹوے پر بھیجنے کے لیے درکار ہے۔", + "require_for_sends_to_non_contacts": "غیر رابطوں کو بھیجنے کی ضرورت ہے۔", + "require_pin_after": "اس کے بعد PIN کی ضرورت ہے۔", + "rescan": "دوبارہ اسکین کریں۔", + "resend_code": "براہ کرم اسے دوبارہ بھیجیں۔", + "reset": "دوبارہ ترتیب دیں۔", + "reset_password": "پاس ورڈ ری سیٹ", + "restore_active_seed": "فعال بیج", + "restore_address": "پتہ", + "restore_bitcoin_description_from_keys": "اپنی نجی کلیدوں سے تیار کردہ WIF سٹرنگ سے اپنے بٹوے کو بحال کریں۔", + "restore_bitcoin_description_from_seed": "24 الفاظ کے مجموعہ کوڈ سے اپنے بٹوے کو بحال کریں۔", + "restore_bitcoin_title_from_keys": "WIF سے بحال کریں۔", + "restore_description_from_backup": "آپ اپنی بیک اپ فائل سے پوری کیک والیٹ ایپ کو بحال کر سکتے ہیں۔", + "restore_description_from_keys": "اپنے بٹوے کو اپنی نجی کلیدوں سے محفوظ کردہ کی اسٹروکس سے بحال کریں۔", + "restore_description_from_seed": "اپنے بٹوے کو 25 لفظ یا 13 الفاظ کے مجموعہ کوڈ سے بحال کریں۔", + "restore_description_from_seed_keys": "اپنے بٹوے کو بیج / چابیاں سے واپس حاصل کریں جنہیں آپ نے محفوظ جگہ پر محفوظ کیا ہے۔", + "restore_from_date_or_blockheight": "براہ کرم یہ پرس بنانے سے چند دن پہلے کی تاریخ درج کریں۔ یا اگر آپ کو بلاک ہائیٹ معلوم ہے تو براہ کرم اس کی بجائے اسے درج کریں۔", + "restore_from_seed_placeholder": "براہ کرم اپنا بیج یہاں درج کریں یا پیسٹ کریں۔", + "restore_new_seed": "نیا بیج", + "restore_next": "اگلے", + "restore_recover": "بحال کریں۔", + "restore_restore_wallet": "والیٹ کو بحال کریں۔", + "restore_seed_keys_restore": "بیج/کیز کی بحالی", + "restore_spend_key_private": "خرچ کی کلید (نجی)", + "restore_title_from_backup": "بیک اپ سے بحال کریں۔", + "restore_title_from_keys": "چابیاں سے بحال کریں۔", + "restore_title_from_seed": "بیج سے بحال کریں۔", + "restore_title_from_seed_keys": "بیج / چابیاں سے بحال کریں۔", + "restore_view_key_private": "کلید دیکھیں (نجی)", + "restore_wallet": "والیٹ کو بحال کریں۔", + "restore_wallet_name": "بٹوے کا نام", + "restore_wallet_restore_description": "والیٹ کی بحالی کی تفصیل", + "router_no_route": "${name} کے لیے کوئی راستہ متعین نہیں ہے", + "save": "محفوظ کریں۔", + "save_backup_password": "براہ کرم یقینی بنائیں کہ آپ نے اپنا بیک اپ پاس ورڈ محفوظ کر لیا ہے۔ آپ اس کے بغیر اپنی بیک اپ فائلیں درآمد نہیں کر سکیں گے۔", + "save_backup_password_alert": "بیک اپ پاس ورڈ محفوظ کریں۔", + "save_to_downloads": "۔ﮟﯾﺮﮐ ﻅﻮﻔﺤﻣ ﮟﯿﻣ ﺯﮈﻮﻟ ﻥﺅﺍﮈ", + "saved_the_trade_id": "میں نے تجارتی ID محفوظ کر لی ہے۔", + "scan_qr_code": "پتہ حاصل کرنے کے لیے QR کوڈ اسکین کریں۔", + "scan_qr_on_device": " ۔ﮟﯾﺮﮐ ﻦﯿﮑﺳﺍ ﺮﭘ ﺲﺋﺍﻮﯾﮈ ﺭﻭﺍ ﯽﺴﮐ ﻮﮐ ﮈﻮﮐ QR ﺱﺍ", + "search": "تلاش کریں۔", + "search_add_token": "تلاش کریں / ٹوکن شامل کریں۔", + "search_category": "زمرہ تلاش کریں۔", + "search_currency": "کرنسی تلاش کریں۔", + "search_language": "زبان تلاش کریں۔", + "second_intro_content": "آپ کا Yat ایک منفرد ایموجی ایڈریس ہے جو آپ کی تمام کرنسیوں کے لیے آپ کے تمام لمبے ہیکسا ڈیسیمل پتوں کی جگہ لے لیتا ہے۔", + "second_intro_title": "ان سب پر حکمرانی کے لیے ایک ایموجی ایڈریس", + "security_and_backup": "سیکیورٹی اور بیک اپ", + "seed_alert_back": "واپس جاو", + "seed_alert_content": "بیج آپ کے بٹوے کو بازیافت کرنے کا واحد طریقہ ہے۔ کیا آپ نے اسے لکھا ہے؟", + "seed_alert_title": "توجہ", + "seed_alert_yes": "ہاں میرے پاس ہے", + "seed_choose": "بیج کی زبان کا انتخاب کریں۔", "seed_hex_form": "پرس بیج (ہیکس فارم)", - "tor_connection": "ﻦﺸﮑﻨﮐ ﺭﻮﭨ", + "seed_key": "بیج کی کلید", + "seed_language": "بیج کی زبان", + "seed_language_chinese": "چینی", + "seed_language_chinese_traditional": "چینی (روایتی)", + "seed_language_czech": "چیک", + "seed_language_dutch": "ڈچ", + "seed_language_english": "انگریزی", + "seed_language_french": "فرانسیسی", + "seed_language_german": "جرمن", + "seed_language_italian": "اطالوی", + "seed_language_japanese": "جاپانی", + "seed_language_korean": "کورین", + "seed_language_next": "اگلے", + "seed_language_portuguese": "پرتگالی", + "seed_language_russian": "روسی", + "seed_language_spanish": "ہسپانوی", + "seed_phrase_length": "ﯽﺋﺎﺒﻤﻟ ﯽﮐ ﮯﻠﻤﺟ ﮯﮐ ﺞﯿﺑ", + "seed_reminder": "اگر آپ اپنا فون کھو دیتے ہیں یا صاف کرتے ہیں تو براہ کرم یہ لکھ دیں۔", + "seed_share": "بیج بانٹیں۔", + "seed_title": "بیج", "seedtype": "سیڈ ٹائپ", "seedtype_legacy": "میراث (25 الفاظ)", "seedtype_polyseed": "پالیسیڈ (16 الفاظ)", - "seed_language_czech": "چیک", - "seed_language_korean": "کورین", - "seed_language_chinese_traditional": "چینی (روایتی)", - "ascending": "چڑھنے", - "descending": "اترتے ہوئے", - "dfx_option_description": "EUR ﺭﻭﺍ CHF ﯽﻓﺎﺿﺍ ۔ﮟﯾﺪﯾﺮﺧ ﻮﭩﭘﺮﮐ ﮫﺗﺎﺳ ﮯﮐ KYC ﮯﯿﻟ ﮯﮐ ﻦﯿﻓﺭﺎﺻ ﭧﯾﺭﻮﭘﺭﺎﮐ ﺭﻭﺍ ﮦﺩﺭﻮﺧ ﮟ", - "polygonscan_history": "ﺦﯾﺭﺎﺗ ﯽﮐ ﻦﯿﮑﺳﺍ ﻥﻮﮔ ﯽﻟﻮﭘ", - "wallet_seed_legacy": "میراثی پرس کا بیج", - "default_sell_provider": " ﮦﺪﻨﻨﮐ ﻢﮨﺍﺮﻓ ﻞﯿﺳ ﭧﻟﺎﻔﯾﮈ", + "select_backup_file": "بیک اپ فائل کو منتخب کریں۔", + "select_buy_provider_notice": "اوپر خریدنے والا خریدنے والا منتخب کریں۔ آپ ایپ کی ترتیبات میں اپنے پہلے سے طے شدہ خریدنے والے کو ترتیب دے کر اس اسکرین کو چھوڑ سکتے ہیں۔", + "select_destination": "۔ﮟﯾﺮﮐ ﺏﺎﺨﺘﻧﺍ ﺎﮐ ﻝﺰﻨﻣ ﮯﯿﻟ ﮯﮐ ﻞﺋﺎﻓ ﭖﺍ ﮏﯿﺑ ﻡﺮﮐ ﮦﺍﺮﺑ", "select_sell_provider_notice": "۔ﮟﯿﮨ ﮯﺘﮑﺳ ﮌﻮﮭﭼ ﻮﮐ ﻦﯾﺮﮑﺳﺍ ﺱﺍ ﺮﮐ ﮮﺩ ﺐﯿﺗﺮﺗ ﻮﮐ ﮦﺪﻨﻨﮐ ﻢﮨﺍﺮﻓ ﻞﯿﺳ ﭧﻟﺎﻔﯾﮈ ﮯﻨﭘﺍ ﮟﯿﻣ ﺕﺎﺒ", - "custom_drag": "کسٹم (ہولڈ اینڈ ڈریگ)", + "sell": "بیچنا", + "sell_alert_content": "۔ﮟﯾﺮﮐ ﭻﺋﻮﺳ ﺮﭘ ﺱﺍ ﺎﯾ ﮟﯿﺋﺎﻨﺑ ﭧﯿﻟﺍﻭ Litecoin ﺎﯾ Bitcoin، Ethereum ﺎﻨﭘﺍ ﻡﺮﮐ ﮦﺍﺮﺑ ۔", + "sell_monero_com_alert_content": "Monero فروخت کرنا ابھی تک تعاون یافتہ نہیں ہے۔", + "send": "بھیجیں", + "send_address": "${cryptoCurrency} پتہ", + "send_amount": "رقم:", + "send_creating_transaction": "لین دین کی تخلیق", + "send_error_currency": "کرنسی صرف نمبروں پر مشتمل ہو سکتی ہے۔", + "send_error_minimum_value": "رقم کی کم از کم قیمت 0.01 ہے۔", + "send_estimated_fee": "تخمینی فیس:", + "send_fee": "فیس:", + "send_name": "نام", + "send_new": "نئی", + "send_payment_id": "ادائیگی کی شناخت (اختیاری)", + "send_priority": "فی الحال فیس ${transactionPriority} کی ترجیح پر سیٹ ہے۔\\nٹرانزیکشن کی ترجیح سیٹنگز میں ایڈجسٹ کی جا سکتی ہے۔", + "send_sending": "بھیج رہا ہے...", + "send_success": "آپ کا ${crypto} کامیابی کے ساتھ بھیج دیا گیا۔", + "send_templates": "ٹیمپلیٹس", + "send_title": "بھیجیں", + "send_to_this_address": "اس پتے پر ${currency} ${tag} بھیجیں۔", + "send_xmr": "XMR بھیجیں۔", + "send_your_wallet": "آپ کا بٹوہ", + "sending": "بھیج رہا ہے۔", + "sent": "بھیجا", + "settings_all": "تمام", + "settings_allow_biometrical_authentication": "بایومیٹریکل تصدیق کی اجازت دیں۔", + "settings_can_be_changed_later": "ان ترتیبات کو بعد میں ایپ کی ترتیبات میں تبدیل کیا جا سکتا ہے۔", + "settings_change_language": "زبان تبدیل کریں", + "settings_change_pin": "پن تبدیل کریں۔", + "settings_currency": "کرنسی", + "settings_current_node": "موجودہ نوڈ", + "settings_dark_mode": "ڈارک موڈ", + "settings_display_balance": "ڈسپلے بیلنس", + "settings_display_on_dashboard_list": "ڈیش بورڈ کی فہرست پر ڈسپلے کریں۔", + "settings_fee_priority": "فیس کی ترجیح", + "settings_nodes": "نوڈس", + "settings_none": "کوئی نہیں۔", + "settings_only_trades": "صرف تجارت", + "settings_only_transactions": "صرف لین دین", + "settings_personal": "ذاتی", + "settings_save_recipient_address": "وصول کنندہ کا پتہ محفوظ کریں۔", + "settings_support": "حمایت", + "settings_terms_and_conditions": "شرائط و ضوابط", + "settings_title": "ترتیبات", + "settings_trades": "تجارت", + "settings_transactions": "لین دین", + "settings_wallets": "بٹوے", + "setup_2fa": "سیٹ اپ کیک 2FA", + "setup_2fa_text": " ۔ﮯﮨ ﺎﺗﺮﮐ ﻡﺎﮐ ﮯﺋﻮﮨ ﮯﺗﺮﮐ ﻝﺎﻤﻌﺘﺳﺍ ﺎﮐ TOTP ﺮﭘ ﺭﻮﻃ ﮯﮐ ﺮﺼﻨﻋ ﯽﻘﯾﺪﺼﺗ ﮮﺮﺳﻭﺩ 2FA ﮏﯿﮐ", + "setup_pin": "PIN سیٹ اپ کریں۔", + "setup_successful": "آپ کا PIN کامیابی کے ساتھ ترتیب دیا گیا ہے!", + "setup_totp_recommended": "TOTP ۔ﮟﯾﺮﮐ ﭖﺍ ﭧﯿﺳ", + "setup_warning_2fa_text": " ۔ﯽﮔﻮﮨ ﺕﺭﻭﺮﺿ ﯽﮐ ﮯﻧﺮﮐ ﻝﺎﺤﺑ ﻮﮐ ﮮﻮﭩﺑ ﮯﻨﭘﺍ ﮯﺳ ﺞﯿﺑ ﮯﮐ ﺖﺷﺍﺩﺩﺎﯾ ﻮﮐ ﭖﺁ", + "setup_your_debit_card": "اپنا ڈیبٹ کارڈ ترتیب دیں۔", + "share": "بانٹیں", + "share_address": "پتہ شیئر کریں۔", + "show_details": "تفصیلات دکھائیں", + "show_keys": "بیج / چابیاں دکھائیں۔", + "show_market_place": "بازار دکھائیں۔", + "show_seed": "بیج دکھائیں۔", + "sign_up": "سائن اپ", + "signTransaction": "۔ﮟﯾﺮﮐ ﻂﺨﺘﺳﺩ ﺮﭘ ﻦﯾﺩ ﻦﯿﻟ", + "signup_for_card_accept_terms": "کارڈ کے لیے سائن اپ کریں اور شرائط کو قبول کریں۔", + "slidable": "سلائیڈ ایبل", + "sort_by": "ترتیب دیں", + "spend_key_private": "خرچ کی کلید (نجی)", + "spend_key_public": "خرچ کی کلید (عوامی)", + "status": "حالت:", + "subaddress_title": "ذیلی ایڈریس کی فہرست", + "subaddresses": "ذیلی پتے", + "submit_request": "درخواست بھیج دو", + "successful": "ﺏﺎﯿﻣﺎﮐ", + "support_description_guides": "عام مسائل کے لئے دستاویزات اور مدد", + "support_description_live_chat": "مفت اور تیز! تربیت یافتہ معاون نمائندے مدد کے لئے دستیاب ہیں", + "support_description_other_links": "ہماری برادریوں میں شامل ہوں یا دوسرے طریقوں سے ہمارے شراکت داروں تک پہنچیں", + "support_title_guides": "کیک پرس گائڈز", + "support_title_live_chat": "براہ راست مدد", + "support_title_other_links": "دوسرے سپورٹ لنکس", + "switchToETHWallet": "۔ﮟﯾﺮﮐ ﺶﺷﻮﮐ ﮦﺭﺎﺑﻭﺩ ﺭﻭﺍ ﮟﯾﺮﮐ ﭻﺋﻮﺳ ﺮﭘ ﭧﯿﻟﺍﻭ Ethereum ﻡﺮﮐ ﮦﺍﺮﺑ", "switchToEVMCompatibleWallet": "(Ethereum, Polygon) ﮟﯾﺮﮐ ﺶﺷﻮﮐ ﮦﺭﺎﺑﻭﺩ ﺭﻭﺍ ﮟﯾﺮﮐ ﭻﺋﻮﺳ ﺮﭘ ﭧﯿﻟﺍﻭ ﮯﻟﺍﻭ ﮯﻨﮭﮐﺭ ﺖﻘﺑﺎﻄﻣ ", - "receivable_balance": "قابل وصول توازن", - "confirmed_tx": "تصدیق", + "symbol": "ﺖﻣﻼﻋ", + "sync_status_attempting_sync": "ہم آہنگی کی کوشش کر رہا ہے۔", + "sync_status_connected": "منسلک", + "sync_status_connecting": "جڑ رہا ہے۔", + "sync_status_failed_connect": "منقطع", + "sync_status_not_connected": "منسلک نہیں", + "sync_status_starting_sync": "مطابقت پذیری شروع کر رہا ہے۔", + "sync_status_syncronized": "مطابقت پذیر", + "sync_status_syncronizing": "مطابقت پذیری", + "syncing_wallet_alert_content": "آپ کے بیلنس اور لین دین کی فہرست اس وقت تک مکمل نہیں ہو سکتی جب تک کہ یہ سب سے اوپر \"SYNCRONIZED\" نہ کہے۔ مزید جاننے کے لیے کلک/تھپتھپائیں۔", + "syncing_wallet_alert_title": "آپ کا بٹوہ مطابقت پذیر ہو رہا ہے۔", + "template": "سانچے", + "template_name": "ٹیمپلیٹ کا نام", + "third_intro_content": "Yats بھی Cake والیٹ سے باہر رہتے ہیں۔ زمین پر کسی بھی بٹوے کے پتے کو Yat سے تبدیل کیا جا سکتا ہے!", + "third_intro_title": "Yat دوسروں کے ساتھ اچھی طرح کھیلتا ہے۔", + "time": "${minutes}m ${seconds}s", + "tip": "ٹپ:", + "today": "آج", + "token_contract_address": "ٹوکن کنٹریکٹ ایڈریس", + "token_decimal": "ٹوکن اعشاریہ", + "token_name": "ٹوکن کا نام جیسے: Tether", + "token_symbol": "ٹوکن کی علامت جیسے: USDT", + "tokenID": "ID", + "tor_connection": "ﻦﺸﮑﻨﮐ ﺭﻮﭨ", + "tor_only": "صرف Tor", + "total_saving": "کل بچت", + "totp_2fa_failure": "غلط کوڈ. براہ کرم ایک مختلف کوڈ آزمائیں یا ایک نئی خفیہ کلید بنائیں۔ ایک ہم آہنگ 2FA ایپ استعمال کریں جو 8 ہندسوں کے کوڈز اور SHA512 کو سپورٹ کرتی ہو۔", + "totp_2fa_success": "کامیابی! کیک 2FA اس بٹوے کے لیے فعال ہے۔ بٹوے تک رسائی سے محروم ہونے کی صورت میں اپنے یادداشت کے بیج کو محفوظ کرنا یاد رکھیں۔", + "totp_auth_url": "TOTP AUTH URL", + "totp_code": "TOTP کوڈ", + "totp_secret_code": "TOTP خفیہ کوڈ", + "totp_verification_success": "توثیق کامیاب!", + "trade_details_copied": "${title} کو کلپ بورڈ پر کاپی کیا گیا۔", + "trade_details_created_at": "پر تخلیق کیا گیا۔", + "trade_details_fetching": "لا رہا ہے۔", + "trade_details_id": "ID", + "trade_details_pair": "جوڑا", + "trade_details_provider": "فراہم کرنے والا", + "trade_details_state": "حالت", + "trade_details_title": "تجارت کی تفصیلات", + "trade_for_not_created": "${title} کے لیے تجارت نہیں بنائی گئی ہے۔", + "trade_history_title": "تجارتی تاریخ", + "trade_id": "تجارتی ID:", + "trade_id_not_found": "ٹریڈ ${tradeId} از ${title} نہیں ملا۔", + "trade_is_powered_by": "یہ تجارت ${provider} کے ذریعے تقویت یافتہ ہے", + "trade_not_created": "تجارت پیدا نہیں ہوئی۔", + "trade_not_found": "تجارت نہیں ملی۔", + "trade_state_btc_sent": "Btc بھیجا گیا۔", + "trade_state_complete": "مکمل", + "trade_state_confirming": "تصدیق کر رہا ہے۔", + "trade_state_created": "بنایا", + "trade_state_finished": "ختم", + "trade_state_paid": "ادا کیا", + "trade_state_paid_unconfirmed": "غیر تصدیق شدہ ادائیگی", + "trade_state_pending": "زیر التواء", + "trade_state_timeout": "وقت ختم", + "trade_state_to_be_created": "پیدا کیا جائے۔", + "trade_state_traded": "تجارت کی۔", + "trade_state_trading": "تجارت", + "trade_state_underpaid": "کم معاوضہ", + "trade_state_unpaid": "بلا معاوضہ", + "trades": "تجارت", + "transaction_details_amount": "رقم", + "transaction_details_copied": "${title} کو کلپ بورڈ پر کاپی کیا گیا۔", + "transaction_details_date": "تاریخ", + "transaction_details_fee": "فیس", + "transaction_details_height": "اونچائی", + "transaction_details_recipient_address": "وصول کنندگان کے پتے", "transaction_details_source_address": "ماخذ ایڈریس", - "pause_wallet_creation": "Haven Wallet ۔ﮯﮨ ﻑﻮﻗﻮﻣ ﻝﺎﺤﻟﺍ ﯽﻓ ﺖﯿﻠﮨﺍ ﯽﮐ ﮯﻧﺎﻨﺑ", - "contractName": "ﻡﺎﻧ ﺎﮐ ﮦﺪﮨﺎﻌﻣ", - "contractSymbol": "ﺖﻣﻼﻋ ﯽﮐ ﮦﺪﮨﺎﻌﻣ", - "description": "ﻞﯿﺼﻔﺗ", - "camera_consent": "۔ﮟﯿﮭﮑﯾﺩ ﯽﺴﯿﻟﺎﭘ ﯽﺴﯾﻮﯿﺋﺍﺮﭘ ﯽﮐ ﻥﺍ ﻡﺮﮐ ﮦﺍﺮﺑ ﮯﯿﻟ ﮯﮐ ﺕﻼ${provider}ﯿﺼﻔﺗ ۔ﺎﮔ ﮯﺋﺎﺟ ﺎﯿﮐ ﻝﺎﻤﻌﺘﺳﺍ ﮯﯿﻟ", - "no_relays": "۔ﮟﯿﮩﻧ ﮯﻠﯾﺭ ﯽﺋﻮﮐ", - "choose_relay": "۔ﮟﯾﺮﮐ ﺏﺎﺨﺘﻧﺍ ﺎﮐ ﮯﻠﯾﺭ ﮯﯿﻟ ﮯﮐ ﮯﻧﺮﮐ ﻝﺎﻤﻌﺘﺳﺍ ﻡﺮﮐ ﮦﺍﺮﺑ", - "no_relays_message": "۔ﮟﯾﺮﮐ ﻞﻣﺎﺷ ﮯﻠﯾﺭ ﮟﯿﻣ ﮈﺭﺎﮑﯾﺭ ﺮﭩﺳﻮﻧ ﮯﻨﭘﺍ ﮦﻭ ﮧﮐ ﮟﯾﺩ ﺖﯾﺍﺪﮨ ﻮﮐ ﮦﺪﻨﻨﮐ ﻝﻮﺻﻭ ﻡﺮﮐ ﮦﺍﺮﺑ ۔", - "no_relay_on_domain": "۔ﮟﯾﺮﮐ ﺏﺎﺨﺘﻧﺍ ﺎﮐ ﮯﻠﯾﺭ ﮯﯿﻟ ﮯﮐ ﮯﻧﺮﮐ ﻝﺎﻤﻌﺘﺳﺍ ﻡﺮﮐ ﮦﺍﺮﺑ ۔ﮯﮨ ﮟﯿﮩﻧ ﺏﺎﯿﺘﺳﺩ ﮯﻠﯾﺭ ﺎﯾ ﮯﮨ ﮟ" -} + "transaction_details_title": "لین دین کی تفصیلات", + "transaction_details_transaction_id": "ٹرانزیکشن ID", + "transaction_key": "لین دین کی کلید", + "transaction_priority_fast": "تیز", + "transaction_priority_fastest": "تیز ترین", + "transaction_priority_medium": "درمیانہ", + "transaction_priority_regular": "باقاعدہ", + "transaction_priority_slow": "سست", + "transaction_sent": "لین دین بھیجا گیا!", + "transaction_sent_notice": "اگر اسکرین 1 منٹ کے بعد آگے نہیں بڑھتی ہے، تو بلاک ایکسپلورر اور اپنا ای میل چیک کریں۔", + "transactions": "لین دین", + "transactions_by_date": "تاریخ کے لحاظ سے لین دین", + "trusted": "قابل اعتماد", + "unavailable_balance": "ﺲﻨﻠﯿﺑ ﺏﺎﯿﺘﺳﺩ ﺮﯿﻏ", + "unavailable_balance_description": "۔ﮯﺗﺮﮐ ﮟﯿﮩﻧ ﮧﻠﺼﯿﻓ ﺎﮐ ﮯﻧﺮﮐ ﺪﻤﺠﻨﻣ ﻥﺍ ﮟﯿﮩﻧﺍ ﭖﺁ ﮧﮐ ﮏﺗ ﺐﺟ ﮟﯿﮨ ﮯﺘﮨﺭ ﯽﺋﺎﺳﺭ ﻞﺑﺎﻗﺎﻧ ﮏﺗ ﺖﻗﻭ ﺱﺍ ﮯﯿﻟ ﮯﮐ ﻦﯾﺩ ﻦﯿﻟ ﺲﻨﻠﯿﺑ ﺪﻤﺠﻨﻣ ﮧﮐ ﺐﺟ ،ﮯﮔ ﮟﯿﺋﺎﺟ ﻮﮨ ﺏﺎﯿﺘﺳﺩ ﺲﻨﻠﯿﺑ ﻞﻔﻘﻣ ﺪﻌﺑ ﮯﮐ ﮯﻧﻮﮨ ﻞﻤﮑﻣ ﻦﯾﺩ ﻦﯿﻟ ﮧﻘﻠﻌﺘﻣ ﮯﮐ ﻥﺍ ۔ﮯﮨ ﺎﮭﮐﺭ ﺮ", + "unconfirmed": "غیر تصدیق شدہ بیلنس", + "understand": "میں سمجھتا ہوں۔", + "unmatched_currencies": "آپ کے پرس کی موجودہ کرنسی اسکین شدہ QR سے مماثل نہیں ہے۔", + "unspent_change": "تبدیل کریں", + "unspent_coins_details_title": "غیر خرچ شدہ سککوں کی تفصیلات", + "unspent_coins_title": "غیر خرچ شدہ سکے ۔", + "unsupported_asset": "۔ﮟﯾﺮﮐ ﭻﺋﻮﺳ ﺮﭘ ﺱﺍ ﺎﯾ ﮟﯿﺋﺎﻨﺑ ﺱﺮﭘ ﺎﮐ ﻢﺴﻗ ﯽﮐ ﮧﺛﺎﺛﺍ ﮧﺘﻓﺎﯾ ﻥﻭﺎﻌﺗ ﻡﺮﮐ ﮦﺍﺮﺑ ۔ﮟﯿﮨ ﮯﺗﺮﮐ ﮟﯿﮩﻧ ﺖﯾﺎﻤﺣ ﯽﮐ ﯽﺋﺍﻭﺭﺭﺎﮐ ﺱﺍ ﮯﯿﻟ ﮯﮐ ﮧﺛﺎﺛﺍ ﺱﺍ ﻢﮨ", + "upto": "${value} تک", + "use": "تبدیل کرنا", + "use_card_info_three": "ڈیجیٹل کارڈ آن لائن یا کنٹیکٹ لیس ادائیگی کے طریقوں کے ساتھ استعمال کریں۔", + "use_card_info_two": "رقوم کو امریکی ڈالر میں تبدیل کیا جاتا ہے جب پری پیڈ اکاؤنٹ میں رکھا جاتا ہے، ڈیجیٹل کرنسیوں میں نہیں۔", + "use_ssl": "SSL استعمال کریں۔", + "use_suggested": "تجویز کردہ استعمال کریں۔", + "variable_pair_not_supported": "یہ متغیر جوڑا منتخب ایکسچینجز کے ساتھ تعاون یافتہ نہیں ہے۔", + "verification": "تصدیق", + "verify_with_2fa": "کیک 2FA سے تصدیق کریں۔", + "version": "ورژن ${currentVersion}", + "view_all": "سب دیکھیں", + "view_in_block_explorer": "بلاک ایکسپلورر میں دیکھیں", + "view_key_private": "کلید دیکھیں (نجی)", + "view_key_public": "کلید دیکھیں (عوامی)", + "view_transaction_on": "لین دین دیکھیں آن", + "wallet_keys": "بٹوے کے بیج / چابیاں", + "wallet_list_create_new_wallet": "نیا والیٹ بنائیں", + "wallet_list_edit_wallet": "بٹوے میں ترمیم کریں۔", + "wallet_list_failed_to_load": "${wallet_name} والیٹ لوڈ کرنے میں ناکام۔ ${error}", + "wallet_list_failed_to_remove": "${wallet_name} والیٹ کو ہٹانے میں ناکام۔ ${error}", + "wallet_list_load_wallet": "پرس لوڈ کریں۔", + "wallet_list_loading_wallet": "${wallet_name} والیٹ لوڈ ہو رہا ہے۔", + "wallet_list_removing_wallet": "${wallet_name} والیٹ کو ہٹایا جا رہا ہے۔", + "wallet_list_restore_wallet": "والیٹ کو بحال کریں۔", + "wallet_list_title": "Monero والیٹ", + "wallet_list_wallet_name": "بٹوے کا نام", + "wallet_menu": "مینو", + "wallet_name": "بٹوے کا نام", + "wallet_name_exists": "اس نام کا پرس پہلے سے موجود ہے۔ براہ کرم ایک مختلف نام منتخب کریں یا پہلے دوسرے بٹوے کا نام تبدیل کریں۔", + "wallet_restoration_store_incorrect_seed_length": "غلط بیج کی لمبائی", + "wallet_seed": "بٹوے کا بیج", + "wallet_seed_legacy": "میراثی پرس کا بیج", + "wallet_store_monero_wallet": "مونیرو والیٹ", + "walletConnect": "WalletConnect", + "wallets": "بٹوے", + "warning": "وارننگ", + "welcome": "میں خوش آمدید", + "welcome_to_cakepay": "Cake پے میں خوش آمدید!", + "widgets_address": "پتہ", + "widgets_or": "یا", + "widgets_restore_from_blockheight": "بلاک ہائیٹ سے بحال کریں۔", + "widgets_restore_from_date": "تاریخ سے بحال کریں۔", + "widgets_seed": "بیج", + "wouoldLikeToConnect": "؟ﮯﮔ ﮟﯿﮨﺎﭼ ﺎﻧﮍﺟ", + "write_down_backup_password": "براہ کرم اپنا بیک اپ پاس ورڈ لکھیں، جو آپ کی بیک اپ فائلوں کی درآمد کے لیے استعمال ہوتا ہے۔", + "xlm_extra_info": "ایکسچینج کے لیے XLM ٹرانزیکشن بھیجتے وقت براہ کرم میمو ID بتانا نہ بھولیں۔", + "xmr_available_balance": "دستیاب بیلنس", + "xmr_full_balance": "مکمل بیلنس", + "xmr_hidden": "پوشیدہ", + "xmr_to_error": "XMR.TO غلطی", + "xmr_to_error_description": "غلط رقم۔ اعشاریہ پوائنٹ کے بعد زیادہ سے زیادہ 8 ہندسے", + "xrp_extra_info": "ایکسچینج کے لیے XRP ٹرانزیکشن بھیجتے وقت ڈیسٹینیشن ٹیگ بتانا نہ بھولیں۔", + "yat": "Yat", + "yat_address": "Yat ایڈریس", + "yat_alert_content": "Cake والیٹ کے صارفین اب ایک قسم کے ایموجی پر مبنی صارف نام کے ساتھ اپنی تمام پسندیدہ کرنسیاں بھیج اور وصول کر سکتے ہیں۔", + "yat_alert_title": "Yat کے ساتھ زیادہ آسانی سے کریپٹو بھیجیں اور وصول کریں۔", + "yat_error": "Yat غلطی", + "yat_error_content": "اس Yat کے ساتھ کوئی پتے منسلک نہیں ہیں۔ ایک اور یات آزمائیں۔", + "yat_popup_content": "اب آپ Cake Wallet میں اپنے Yat کے ساتھ کرپٹو بھیج اور وصول کر سکتے ہیں - ایک مختصر، ایموجی پر مبنی صارف نام۔ ترتیبات کی سکرین پر کسی بھی وقت Yats کا نظم کریں۔", + "yat_popup_title": "آپ کے بٹوے کا پتہ ایموجائز کیا جا سکتا ہے۔", + "yesterday": "کل", + "you_now_have_debit_card": "اب آپ کے پاس ڈیبٹ کارڈ ہے۔", + "you_pay": "تم ادا کرو", + "you_will_get": "میں تبدیل کریں۔", + "you_will_send": "سے تبدیل کریں۔", + "yy": "YY", + "zzzz": "زیڈز" +} \ No newline at end of file diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index 142d9f5bf..355800e72 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -1,773 +1,774 @@ { - "welcome": "Ẹ káàbọ sí", - "cake_wallet": "Cake Wallet", - "first_wallet_text": "Àpamọ́wọ́ t'á fi Monero, Bitcoin, Ethereum, Litecoin, àti Haven pamọ́ wà pa", - "please_make_selection": "Ẹ jọ̀wọ́, yàn dá àpamọ́wọ́ yín tàbí dá àpamọ́wọ́ yín padà n’ísàlẹ̀.", - "create_new": "Dá àpamọ́wọ́ tuntun", - "restore_wallet": "Mú àpamọ́wọ́ padà", - "monero_com": "Monero.com latí ọwọ́ Cake Wallet", - "monero_com_wallet_text": "Àpamọ́wọ́ Monero wà pa", - "haven_app": "Haven latí ọwọ́ Cake Wallet", - "haven_app_wallet_text": "Àpamọ́wọ́ Haven wà pa", - "accounts": "Àwọn àkáǹtì", - "edit": "Pààrọ̀", + "about_cake_pay": "Cake Pay jẹ́ kí ẹ lè fi owó wẹ́ẹ̀bù ra àwọn káàdì ìrajà t'á lò nínú iye ìtajà kan. Ẹ lè san wọn láìpẹ́ nítajà 150,000 nínú Amẹ́ríkà.", "account": "Àkáǹtì", + "accounts": "Àwọn àkáǹtì", + "accounts_subaddresses": "Àwọn àkáǹtì àti àwọn àdírẹ́sì kékeré", + "activate": "Fi àyè gba", + "active": "Ó títàn", + "active_cards": "Àwọn káàdì títàn", + "activeConnectionsPrompt": "Awọn asopọ ti nṣiṣe lọwọ yoo han nibi", "add": "Fikún", + "add_contact": "Fi olubasọrọ kun", + "add_custom_node": "Fikún apẹka títun t'ẹ́ pààrọ̀", + "add_custom_redemption": "Tẹ̀ iye owó t'ẹ́ fẹ́ ná", + "add_fund_to_card": "Ẹ fikún owó sí àwọn káàdì (kò tóbi ju ${value})", + "add_new_node": "Fi apẹka kún", + "add_new_word": "Fikún ọ̀rọ̀ títun", + "add_receiver": "Fikún àdírẹ́sì mìíràn (ìyàn nìyí)", + "add_secret_code": "Tabi, ṣafikun koodu aṣiri yii si ohun elo onijeri kan", + "add_tip": "Fún owó àfikún", + "add_token_disclaimer_check": "Mo ti jẹrisi adirẹsi adehun ami ati alaye nipa lilo orisun olokiki kan. Fifi irira tabi alaye ti ko tọ le ja si isonu ti owo.", + "add_token_warning": "Ma ṣe ṣatunkọ tabi ṣafikun awọn ami bi a ti fun ni aṣẹ nipasẹ awọn scammers.\nNigbagbogbo jẹrisi awọn adirẹsi ami pẹlu awọn orisun olokiki!", + "add_value": "Fikún owó", + "address": "Adirẹsi", "address_book": "Ìwé Àdírẹ́sì", - "contact": "Olùbásọ̀rọ̀", - "please_select": "Ẹ jọ̀wọ́ yàn:", - "cancel": "Fagi lé e", - "ok": "Ó dáa", - "contact_name": "Orúkọ olùbásọ̀rọ̀", - "reset": "Tún ṣe", - "save": "Pamọ́", + "address_book_menu": "Ìwé Àdírẹ́sì", + "address_detected": "A ti gbọ́ àdírẹ́sì", + "address_from_domain": "Àdírẹ́sì yìí wá láti ${domain} lórí Unstoppable Domains", + "address_from_yat": "Àdírẹ́sì yìí wá láti ${emoji} lórí Yat", + "address_label": "Orúkọ àdírẹ́sì", "address_remove_contact": "Yọ olùbásọ̀rọ̀ kúrò", "address_remove_content": "Ṣó dá ẹ lójú pé ẹ fẹ́ yọ olùbásọ̀rọ̀ yíyàn kúrò?", - "authenticated": "A ti jẹ́rìísí yín", - "authentication": "Ìfẹ̀rílàdí", - "failed_authentication": "Ìfẹ̀rílàdí pipòfo. ${state_error}", - "wallet_menu": "Mẹ́nù", - "Blocks_remaining": "Àkójọpọ̀ ${status} kikù", - "please_try_to_connect_to_another_node": "Ẹ jọ̀wọ́, gbìyànjú dárapọ̀ mọ́ apẹka mìíràn yí wọlé", - "xmr_hidden": "Bìbò", - "xmr_available_balance": "Owó tó wà ḿbí", - "xmr_full_balance": "Ìyókù owó", - "send": "Ránṣẹ́", - "receive": "Gbà", - "transactions": "Àwọn àránṣẹ́", - "incoming": "Wọ́n tó ń bọ̀", - "outgoing": "Wọ́n tó ń jáde", - "transactions_by_date": "Àwọn àránṣẹ́ t'á ti fi aago ṣa", - "trades": "Àwọn pàṣípààrọ̀", - "filter_by": "Ṣẹ́ láti", - "today": "Lénìí", - "yesterday": "Lánàá", - "received": "Owó t'á ti gbà", - "sent": "Owó t'á ti ránṣẹ́", - "pending": " pípẹ́", - "rescan": "Tún Wá", - "reconnect": "Ṣe àtúnse", - "wallets": "Àwọn àpamọ́wọ́", - "show_seed": "Wo hóró", - "show_keys": "Wo hóró / àwọn kọ́kọ́rọ́", - "address_book_menu": "Ìwé Àdírẹ́sì", - "reconnection": "Àtúnṣe", - "reconnect_alert_text": "Ṣó dá ẹ lójú pé ẹ fẹ́ ṣe àtúnse?", - "exchange": "Pàṣípààrọ̀", - "clear": "Pa gbogbo nǹkan", - "refund_address": "Àdírẹ́sì t'ẹ́ gba owó sí", - "change_exchange_provider": "Pààrọ̀ Ilé Ìfowóṣòwò", - "you_will_send": "Ṣe pàṣípààrọ̀ láti", - "you_will_get": "Ṣe pàṣípààrọ̀ sí", - "amount_is_guaranteed": "ó di dandan pé owó á wọlé", - "amount_is_estimate": "Ìdíyelé ni iye tó ń bọ̀", - "powered_by": "Láti ọwọ́ ${title}", - "error": "Àṣìṣe", - "estimated": "Ó tó a fojú díwọ̀n", - "min_value": "kò gbọ́dọ̀ kéré ju ${value} ${currency}", - "max_value": "kò gbọ́dọ̀ tóbi ju ${value} ${currency}", - "change_currency": "Pààrọ̀ irú owó", - "overwrite_amount": "Pààrọ̀ iye owó", - "qr_payment_amount": "Iye owó t'á ránṣé wà nínú àmì ìlujá yìí. Ṣé ẹ fẹ́ pààrọ̀ ẹ̀?", - "copy_id": "Ṣẹ̀dà àmì ìdánimọ̀", - "exchange_result_write_down_trade_id": "Ẹ jọ̀wọ́, kọ àmì ìdánimọ̀ pàṣípààrọ̀ sílẹ̀ kí tẹ̀síwájú.", - "trade_id": "Pàṣípààrọ̀ àmì ìdánimọ̀:", - "copied_to_clipboard": "Jíjí wò sí àtẹ àkọsílẹ̀", - "saved_the_trade_id": "Mo ti pamọ́ àmì ìdánimọ̀ pàṣípààrọ̀", - "fetching": "ń wá", - "id": "Àmì Ìdánimọ̀: ", - "amount": "Iye: ", - "payment_id": "Àmì ìdánimọ̀ àránṣẹ́: ", - "status": "Tó ń ṣẹlẹ̀: ", - "offer_expires_in": "Ìrònúdábàá máa gbẹ́mìí mì ní: ", - "trade_is_powered_by": "${provider} ń fikún pàṣípààrọ̀ yìí lágbára", - "copy_address": "Ṣẹ̀dà àdírẹ́sì", - "exchange_result_confirm": "T'ẹ́ bá tẹ̀ jẹ́rìí, ẹ máa fi ${fetchingLabel} ${from} ránṣẹ́ láti àpamọ́wọ́ yín t'á pe ${walletName} sí àdírẹ́sì t'ó ṣàfihàn òun lísàlẹ̀. Tàbí ẹ lè fi àpamọ́wọ́ mìíràn yín ránṣẹ́ sí àdírẹ́sì / àmì ìlujá lísàlẹ̀.\n\nẸ jọ̀wọ́ tẹ̀ jẹ́rìí́ tẹ̀síwájú tàbí padà sọ́dọ̀ pààrọ̀ iye náà.", - "exchange_result_description": "Ẹ gbọ́dọ̀ ránṣẹ́ iye owó tó pọ̀ jù ${fetchingLabel} ${from} sí àdírẹ́sì tó ṣàfihàn òun lójú tó ń bọ̀. T'ẹ́ bá fi iye tí kò pọ̀ jù ${fetchingLabel} ${from}, a kò lè pàṣípààrọ̀ ẹ̀. A sì kò lè dá a padà fún yín.", - "exchange_result_write_down_ID": "*Ẹ jọ̀wọ́, ṣẹ̀dà àmì ìdánimọ̀ yín tó ṣàfihàn òun lókè.", - "confirm": "Jẹ́rìísí", - "confirm_sending": "Jẹ́rìí sí ránṣẹ́", - "commit_transaction_amount_fee": "Jẹ́rìí sí àránṣẹ́\nOwó: ${amount}\nIye àfikún: ${fee}", - "sending": "Ó ń ránṣẹ́", - "transaction_sent": "Ẹ ti ránṣẹ́ ẹ̀!", - "expired": "Kíkú", - "time": "${minutes}ìṣj ${seconds}ìṣs", - "send_xmr": "Fi XMR ránṣẹ́", - "exchange_new_template": "Àwòṣe títun", - "faq": "Àwọn ìbéèrè l'a máa ń bèèrè", - "enter_your_pin": "Tẹ̀ òǹkà ìdánimọ̀ àdáni yín", - "loading_your_wallet": "A ń ṣí àpamọ́wọ́ yín", - "new_wallet": "Àpamọ́wọ́ títun", - "wallet_name": "Orúkọ àpamọ́wọ́", - "continue_text": "Tẹ̀síwájú", - "choose_wallet_currency": "Ẹ jọ̀wọ́, yàn irú owó ti àpamọ́wọ́ yín:", - "node_new": "Apẹka títun", - "node_address": "Àdírẹ́sì apẹka", - "node_port": "Ojú ìkànpọ̀ apẹka", - "login": "Orúkọ", - "password": "Ọ̀rọ̀ aṣínà", - "nodes": "Àwọn apẹka", - "node_reset_settings_title": "Tún àwọn ààtò ṣe", - "nodes_list_reset_to_default_message": "Ṣé ó dá yín lójú pé ẹ fẹ́ yí àwọn ààtò padà?", - "change_current_node": "Ṣé ó dá yín lójú pé ẹ fẹ́ pààrọ̀ apẹka lọ́wọ́ sí ${node}?", - "change": "Pààrọ̀", - "remove_node": "Yọ apẹka kúrò", - "remove_node_message": "Ṣé ó da yín lójú pé ẹ fẹ́ yọ apẹka lọwọ́ kúrò?", - "remove": "Yọ ọ́ kúrò", - "delete": "Pa á", - "add_new_node": "Fi apẹka kún", - "change_current_node_title": "Pààrọ̀ apẹka lọwọ́", - "node_test": "Dánwò", - "node_connection_successful": "Ìkànpọ̀ ti dára", - "node_connection_failed": "Ìkànpọ̀ ti kùnà", - "new_node_testing": "A ń dán apẹka títun wò", - "use": "Lo", - "digit_pin": "-díjíìtì òǹkà ìdánimọ̀ àdáni", - "share_address": "Pín àdírẹ́sì", - "receive_amount": "Iye", - "subaddresses": "Àwọn àdírẹ́sì kékeré", "addresses": "Àwọn àdírẹ́sì", - "scan_qr_code": "Yan QR koodu", - "qr_fullscreen": "Àmì ìlujá túbọ̀ máa tóbi tí o bá tẹ̀", - "rename": "Pààrọ̀ orúkọ", - "choose_account": "Yan àkáǹtì", - "create_new_account": "Dá àkáǹtì títun", - "accounts_subaddresses": "Àwọn àkáǹtì àti àwọn àdírẹ́sì kékeré", - "restore_restore_wallet": "Mú àpamọ́wọ́ padà", - "restore_title_from_seed_keys": "Fi hóró/kọ́kọ́rọ́ mú padà", - "restore_description_from_seed_keys": "Mú àpamọ́wọ́ yín padà láti hóró/kọ́kọ́rọ́ t'ẹ́ ti pamọ́ sí ibi láìléwu", - "restore_next": "Tẹ̀síwájú", - "restore_title_from_backup": "Fi ẹ̀dà nípamọ́ mú padà", - "restore_description_from_backup": "Ẹ lè fi ẹ̀dà nípamọ́ yín mú odindi Cake Wallet áàpù padà.", - "restore_seed_keys_restore": "Mú hóró/kọ́kọ́rọ́ padà", - "restore_title_from_seed": "Fi hóró mú padà", - "restore_description_from_seed": "Ẹ mú àpamọ́wọ́ yín padà láti àkànpọ̀ ọlọ́rọ̀ ẹ̀ẹ̀marùndínlọgbọ̀n tàbí ti mẹ́talá.", - "restore_title_from_keys": "Fi kọ́kọ́rọ́ ṣẹ̀dá", - "restore_description_from_keys": "Mú àpamọ́wọ́ yín padà láti àwọn àtẹ̀ nípamọ́ láti àwọn kọ́kọ́rọ́ àdáni yín", - "restore_wallet_name": "Orúkọ àpamọ́wọ́", - "restore_address": "Àdírẹ́sì", - "restore_view_key_private": "kọ́kọ́rọ́ ìrán àdáni", - "restore_spend_key_private": "kọ́kọ́rọ́ àdáni fún níná", - "restore_recover": "Mú padà", - "restore_wallet_restore_description": "Ìṣapẹrẹ mú àpamọ́wọ́ padà", - "restore_new_seed": "Hóró títun", - "restore_active_seed": "Hóró lọ́wọ́", - "restore_bitcoin_description_from_seed": "Mú àpamọ́wọ́ yín padà láti àkànpọ̀ ọlọ́rọ̀ ẹ̀ẹ̀mẹrinlélógun", - "restore_bitcoin_description_from_keys": "Mú àpamọ́wọ́ yín padà láti ọ̀rọ̀ WIF t'á ti dá láti kọ́kọ́rọ́ àdáni yín", - "restore_bitcoin_title_from_keys": "Mú padà láti WIF", - "restore_from_date_or_blockheight": "Ẹ jọ̀wọ́, tẹ̀ ìgbà ọjọ́ díẹ̀ k'ẹ́ tó ti dá àpamọ́wọ́ yìí. Tàbí ẹ lè tẹ̀ ẹ́ t'ẹ́ bá mọ gíga àkójọpọ̀.", - "seed_reminder": "Ẹ jọ̀wọ́, kọ wọnyí sílẹ̀ k'ẹ́ tó pàdánù ẹ̀rọ ìbánisọ̀rọ̀ yín", - "seed_title": "Hóró", - "seed_share": "Pín hóró", - "copy": "Ṣẹ̀dà", - "seed_language": "Ewu ọmọ", - "seed_choose": "Yan èdè hóró", - "seed_language_next": "Tẹ̀síwájú", - "seed_language_english": "Èdè Gẹ̀ẹ́sì", - "seed_language_chinese": "Èdè Ṣáínà", - "seed_language_dutch": "Èdè Nẹ́dálaǹdì", - "seed_language_german": "Èdè Jámánì", - "seed_language_japanese": "Èdè Jẹ́páànì", - "seed_language_portuguese": "Èdè Potogí", - "seed_language_russian": "Èdè Rọ́síà", - "seed_language_spanish": "Èdè Sípéènì", - "seed_language_french": "Èdè Fránsì", - "seed_language_italian": "Èdè Itálíà", - "send_title": "Ránṣẹ́", - "send_your_wallet": "Àpamọ́wọ́ yín", - "send_address": "${cryptoCurrency} àdírẹ́sì", - "send_payment_id": "Àmì ìdánimọ̀ àránṣẹ́ (ìyàn nìyí)", + "advanced_settings": "Awọn eto ilọsiwaju", + "aggressive": "Onítara", + "agree": "Jọ rò", + "agree_and_continue": "Jọ Rò àti Tẹ̀síwájú", + "agree_to": "Tẹ́ ẹ bá dá àkáǹtì ẹ jọ rò ", "all": "Gbogbo", - "send_error_minimum_value": "Ránṣẹ́ owó kò kéré dé 0.01", - "send_error_currency": "Ó yẹ kí òǹkà dá wà nínu iye", - "send_estimated_fee": "Iye àfikún l'a fojú díwọ̀n:", - "send_priority": "${transactionPriority} agbára ni owó àfikún lọ́wọ́lọ́wọ́.\nẸ lè pààrọ̀ iye agbára t'ẹ fikún àránṣẹ́ lórí àwọn ààtò", - "send_creating_transaction": "Ńṣe àránṣẹ́", - "send_templates": "Àwọn àwòṣe", - "send_new": "Títun", - "send_amount": "Iye:", - "send_fee": "Owó àfikún:", - "send_name": "Orúkọ", - "got_it": "Ó dáa", - "send_sending": "Ń Ránṣẹ́...", - "send_success": "A ti ránṣẹ́ ${crypto} yín dáadáa", - "settings_title": "Àwọn ààtò", - "settings_nodes": "Àwọn apẹka", - "settings_current_node": "Apẹka lọ́wọ́lọ́wó", - "settings_wallets": "Àwọn àpamọ́wọ́", - "settings_display_balance": "Ṣàfihàn ìyókù owó", - "settings_currency": "Iye owó", - "settings_fee_priority": "Bí iye àfikún ṣe ṣe pàtàkì", - "settings_save_recipient_address": "Pamọ́ àdírẹ́sì olùgbà", - "settings_personal": "Àdáni", - "settings_change_pin": "Pààrọ̀ òǹkà ìdánimọ̀ àdáni", - "settings_change_language": "Pààrọ̀ èdè", - "settings_allow_biometrical_authentication": "Fi àyè gba ìfẹ̀rílàdí biometrical", - "settings_dark_mode": "Ṣókùnkùn Áápù", - "settings_transactions": "Àwọn àránṣẹ́", - "settings_trades": "Àwọn pàṣípààrọ̀", - "settings_display_on_dashboard_list": "Ṣàfihàn lórí àkọsílẹ̀ tá fihàn", - "settings_all": "Gbogbo", - "settings_only_trades": "Àwọn pàṣípààrọ̀ nìkan", - "settings_only_transactions": "Àwọn àránṣẹ́ nìkan", - "settings_none": "Kòsóhun", - "settings_support": "Ìranlọ́wọ́", - "settings_terms_and_conditions": "Àwọn Òfin àti àwọn Àjọrò", - "pin_is_incorrect": "òǹkà ìdánimọ̀ àdáni kò yẹ́", - "setup_pin": "Setup òǹkà ìdánimọ̀ àdáni", - "enter_your_pin_again": "Tún òǹkà ìdánimọ̀ àdáni yín tẹ̀", - "setup_successful": "Òǹkà ìdánimọ̀ àdáni yín ti ṣe!", - "wallet_keys": "Hóró/kọ́kọ́rọ́ àpamọ́wọ́", - "wallet_seed": "Hóró àpamọ́wọ́", - "private_key": "Kọ́kọ́rọ́ àdáni", - "public_key": "Kọ́kọ́rọ́ tó kò àdáni", - "view_key_private": "Kọ́kọ́rọ́ ìwò (àdáni)", - "view_key_public": "Kọ́kọ́rọ́ ìwò (kò àdáni)", - "spend_key_private": "Kọ́kọ́rọ́ sísan (àdáni)", - "spend_key_public": "Kọ́kọ́rọ́ sísan (kò àdáni)", - "copied_key_to_clipboard": "Ti ṣeda ${key} sí àtẹ àkọsílẹ̀", - "new_subaddress_title": "Àdírẹ́sì títun", - "new_subaddress_label_name": "Orúkọ", - "new_subaddress_create": "Ṣe é", - "address_label": "Orúkọ àdírẹ́sì", - "subaddress_title": "Àkọsílẹ̀ ni nínú àwọn àdírẹ́sì tíwọn rẹ̀lẹ̀", - "trade_details_title": "Ìsọfúnni pàṣípààrọ̀", - "trade_details_id": "Àmì ìdánimọ̀:", - "trade_details_state": "Tó ń ṣẹlẹ̀", - "trade_details_fetching": "Ń mú wá", - "trade_details_provider": "Ilé pàṣípààrọ̀", - "trade_details_created_at": "Ṣíṣe ní", - "trade_details_pair": "Àwọn irú owó t'á pàṣípààrọ̀ jọ", - "trade_details_copied": "Ti ṣeda ${title} sí àtẹ àkọsílẹ̀", - "trade_history_title": "Ìtan pàṣípààrọ̀", - "transaction_details_title": "Àránṣẹ́ ìsọfúnni", - "transaction_details_transaction_id": "Àmì ìdánimọ̀ àránṣẹ́", - "transaction_details_date": "Ìgbà", - "transaction_details_height": "Gíga", - "transaction_details_amount": "Iye owó", - "transaction_details_fee": "Iye àfikún", - "transaction_details_copied": "A ṣeda ${title} sí àkọsílẹ̀", - "transaction_details_recipient_address": "Àwọn àdírẹ́sì olùgbà", - "wallet_list_title": "Àpamọ́wọ́ Monero", - "wallet_list_create_new_wallet": "Ṣe àpamọ́wọ́ títun", - "wallet_list_edit_wallet": "Ṣatunkọ apamọwọ", - "wallet_list_wallet_name": "Orukọ apamọwọ", - "wallet_list_restore_wallet": "Restore àpamọ́wọ́", - "wallet_list_load_wallet": "Load àpamọ́wọ́", - "wallet_list_loading_wallet": "Ń ṣí àpamọ́wọ́ ${wallet_name}", - "wallet_list_failed_to_load": "Ti kùnà ṣí́ àpamọ́wọ́ ${wallet_name}. ${error}", - "wallet_list_removing_wallet": "Ń yọ àpamọ́wọ́ ${wallet_name} kúrò", - "wallet_list_failed_to_remove": "Ti kùnà yọ ${wallet_name} àpamọ́wọ́ kúrò. ${error}", - "widgets_address": "Àdírẹ́sì", - "widgets_restore_from_blockheight": "Dá padà sípò láti gíga àkójọpọ̀", - "widgets_restore_from_date": "Dá padà sípò láti ìgbà", - "widgets_or": "tàbí", - "widgets_seed": "Hóró", - "router_no_route": "Ọ̀nà kò sí fún ${name}", - "error_text_account_name": "Orúkọ àkáǹtì lè ni nìkan nínú ẹyọ ọ̀rọ̀ àti òǹkà\nGígun rẹ̀ kò gbọ́dọ̀ kéré ju oókan. Gígun rẹ̀ sì kò gbọ́dọ̀ tóbi ju márùndínlógún.", - "error_text_contact_name": "Orúkọ olùbásọ̀rọ̀ kò lè ni nínú ` , ' \" ẹyọ ọ̀rọ̀.\nIye ẹyọ ọ̀rọ̀ kò gbọ́dọ̀ kéré ju oókan. Ó sì kò gbọ́dọ̀ tóbi ju méjìlélọ́gbọ̀n.", - "error_text_address": "Àdírẹ́sì àpamọ́wọ́ gbọ́dọ̀ báramu irú owó", - "error_text_node_address": "Ẹ jọ̀wọ́ tẹ̀ àdírẹ́sì iPv4", - "error_text_node_port": "Ojú ìkànpọ̀ apẹka lè ni nìkan nínú òǹkà l'áàárín òdo àti márùn-úndínlógojí lé ní ẹ̀ẹ́dẹgbẹ̀ta lé ní ọ̀kẹ́ mẹ́ta lé ní ẹ̀ẹ́dẹ́gbàta", - "error_text_node_proxy_address": "Jọwọ tẹ :, fun apẹẹrẹ 127.0.0.1:9050", - "error_text_payment_id": "Iye ẹyọ ọ̀rọ̀ nínú àmì ìdánimọ̀ àránṣẹ́ gbọ́dọ̀ wà l'áàárín aárùndínlógún dé ẹẹ́rinlélọ́gọ́ta.", - "error_text_xmr": "Iye XMR kò lè tóbi ju ìyókù.\nIye díjíìtì léyìn ẹsẹ kò gbọ́dọ̀ tóbi ju eéjìlá.", - "error_text_fiat": "Iye àránṣẹ́ kò tóbi ju ìyókù owó.\nIye díjíìtì léyìn ẹsẹ kò gbọ́dọ̀ tóbi ju eéjì.", - "error_text_subaddress_name": "Orúkọ àdírẹ́sì tó rẹ̀lẹ̀ kò ni nínú àmì ` , ' \"\nIye ẹyọ ọ̀rọ̀ gbọ́dọ̀ wà láàárín oókan àti ogún", - "error_text_amount": "Iye lè ni nìkan nínú àwọn òǹkà", - "error_text_wallet_name": "Orúkọ àpamọ́wọ́ lè ni nìkan nínú àwọn òǹkà àti ẹyọ ọ̀rọ̀ àti àmì _ -\nIye ẹyọ ọ̀rọ̀ gbọ́dọ̀ wà láàárín 1 àti 33", - "error_text_keys": "Àwọn kọ́kọ́rọ́ àpamọ́wọ́ gbọ́dọ̀ ní ẹyọ ọ̀rọ̀ mẹ́rinlélọ́gọ́ta lílà mẹ́rìndínlógún", - "error_text_crypto_currency": "Iye díjíìtì léyìn ẹsẹ kò gbọ́dọ̀ tóbi ju eéjìlá.", - "error_text_minimal_limit": "A kò tí ì ṣe pàṣípààrọ̀ tí ${provider} nítorí iye kéré ju ${min} ${currency}", - "error_text_maximum_limit": "A kò tí ì ṣe pàṣípààrọ̀ tí ${provider} nítorí iye tóbi ju ${min} ${currency}", - "error_text_limits_loading_failed": "A kò tí ì ṣe pàṣípààrọ̀ tí ${provider} nítorí a ti kùnà mú àwọn ààlà wá", - "error_text_template": "Orúkọ àwòṣe àti àdírẹ́sì kò lè ni nínú àwọn àmì ` , ' \"\nIye ẹyọ ọ̀rọ̀ náà gbọ́dọ̀ jẹ́ láàárín 1 àti 106", + "all_trades": "Gbogbo àwọn pàṣípààrọ̀", + "all_transactions": "Gbogbo àwọn àránṣẹ́", + "alphabetical": "Labidibi", + "already_have_account": "Ṣé ẹ ti ní àkáǹtì?", + "always": "Ní gbogbo àwọn ìgbà", + "amount": "Iye: ", + "amount_is_estimate": "Ìdíyelé ni iye tó ń bọ̀", + "amount_is_guaranteed": "ó di dandan pé owó á wọlé", + "and": "àti", + "anonpay_description": "Ṣe akọkọ ${type}. Awọn alabara le ${method} pẹlu eyikeyi iwo ise ati owo yoo wọle si iwe iwe yii.", + "apk_update": "Àtúnse áàpù títun wà", + "approve": "Fi ọwọ si", + "arrive_in_this_address": "${currency} ${tag} máa dé sí àdírẹ́sì yìí", + "ascending": "Goke", + "ask_each_time": "Beere lọwọ kọọkan", "auth_store_ban_timeout": "ìfòfindè ti gbẹ́mìí mì", "auth_store_banned_for": "A ti fòfin de ẹ̀ nítorí ", "auth_store_banned_minutes": " ìṣéjú", "auth_store_incorrect_password": "Òǹkà ìdánimọ̀ àdáni kọ́ ni èyí", - "wallet_store_monero_wallet": "Àpamọ́wọ́ Monero", - "wallet_restoration_store_incorrect_seed_length": "Gígùn hóró tí a máa ń lò kọ́ ni èyí", - "full_balance": "Ìyókù owó kíkún", - "available_balance": "Ìyókù owó tó wà níbẹ̀", - "hidden_balance": "Ìyókù owó dídé", - "sync_status_syncronizing": "Ń MÚDỌ́GBA", - "sync_status_syncronized": "TI MÚDỌ́GBA", - "sync_status_not_connected": "KÒ TI DÁRAPỌ̀ MỌ́ Ọ", - "sync_status_starting_sync": "Ń BẸ̀RẸ̀ RẸ́", - "sync_status_failed_connect": "ÌKÀNPỌ̀ TI KÚ", - "sync_status_connecting": "Ń DÁRAPỌ̀ MỌ́", - "sync_status_connected": "TI DÁRAPỌ̀ MỌ́", - "sync_status_attempting_sync": "Ń GBÌYÀNJÚ MÚDỌ́GBA", - "transaction_priority_slow": "Díẹ̀", - "transaction_priority_regular": "Àjùmọ̀lò", - "transaction_priority_medium": "L’áàárín", - "transaction_priority_fast": "Yára", - "transaction_priority_fastest": "Yá jù lọ", - "trade_for_not_created": "A kò tí ì ṣe pàṣípààrọ̀ ${title}", - "trade_not_created": "A kò tí ì ṣe pàṣípààrọ̀ náà", - "trade_id_not_found": "Trade ${tradeId} ti a ko ba ri ninu ${title}.", - "trade_not_found": "A kò tí ì wá pàṣípààrọ̀.", - "trade_state_pending": "Pípẹ́", - "trade_state_confirming": "Ń jẹ́rìí", - "trade_state_trading": "Ń ṣe pàṣípààrọ̀", - "trade_state_traded": "Ti ṣe pàṣípààrọ̀", - "trade_state_complete": "Ti ṣetán", - "trade_state_to_be_created": "Máa ṣe", - "trade_state_unpaid": "Kò tíì san", - "trade_state_underpaid": "Ti san iye tó kéré jù", - "trade_state_paid_unconfirmed": "Ti san. A kò tíì jẹ́rìí ẹ̀", - "trade_state_paid": "Ti san", - "trade_state_btc_sent": "Ti san BTC", - "trade_state_timeout": "Ti gbẹ́mìí mì", - "trade_state_created": "Ti ṣe", - "trade_state_finished": "Ti ṣetán", - "change_language": "Pààrọ̀ èdè", - "change_language_to": "Pààrọ̀ èdè sí ${language}?", - "paste": "Fikún ẹ̀dà yín", - "restore_from_seed_placeholder": "Ẹ jọ̀wọ́ tẹ̀ hóró yín tàbí fikún ẹ̀dà hóró ḿbí.", - "add_new_word": "Fikún ọ̀rọ̀ títun", - "incorrect_seed": "Ọ̀rọ̀ tí a tẹ̀ kì í ṣe èyí.", - "biometric_auth_reason": "Ya ìka ọwọ́ yín láti ṣe ìfẹ̀rílàdí", - "version": "Àtúnse ${currentVersion}", - "extracted_address_content": "Ẹ máa máa fi owó ránṣẹ́ sí\n${recipient_name}", - "card_address": "Àdírẹ́sì:", - "buy": "Rà", - "sell": "Tà", - "placeholder_transactions": "A máa fihàn àwọn àránṣẹ́ yín ḿbí", - "placeholder_contacts": "A máa fihàn àwọn olùbásọ̀rọ̀ yín ḿbí", - "template": "Àwòṣe", - "confirm_delete_template": "Ìṣe yìí máa yọ àwòṣe yìí kúrò. Ṣé ẹ fẹ́ tẹ̀síwájú?", - "confirm_delete_wallet": "Ìṣe yìí máa yọ àpamọ́wọ́ yìí kúrò. Ṣé ẹ fẹ́ tẹ̀síwájú?", - "change_wallet_alert_title": "Ẹ pààrọ̀ àpamọ́wọ́ yìí", - "change_wallet_alert_content": "Ṣe ẹ fẹ́ pààrọ̀ àpamọ́wọ́ yìí sí ${wallet_name}?", - "creating_new_wallet": "Ń dá àpamọ́wọ́ títun", - "creating_new_wallet_error": "Àṣìṣe: ${description}", - "seed_alert_title": "Ẹ wo", - "seed_alert_content": "Hóró ni ọ̀nà nìkan kí ṣẹ̀dà àpamọ́wọ́ yín. Ṣé ẹ ti kọ ọ́ sílẹ̀?", - "seed_alert_back": "Padà sọ́dọ̀", - "seed_alert_yes": "Mo ti kọ ọ́", - "exchange_sync_alert_content": "Ẹ jọ̀wọ́ dúró kí a ti múdọ́gba àpamọ́wọ́ yín", - "pre_seed_title": "Ó TI ṢE PÀTÀKÌ", - "pre_seed_description": "Ẹ máa wo àwọn ọ̀rọ̀ ${words} lórí ojú tó ń bọ̀. Èyí ni hóró aládàáni yín tó kì í jọra. Ẹ lè fi í nìkan dá àpamọ́wọ́ yín padà sípò tí àṣìṣe tàbí ìbàjẹ́ bá ṣẹlẹ̀. Hóró yín ni ẹ gbọ́dọ̀ kọ sílẹ̀ àti pamọ́ síbí tó kò léwu níta Cake Wallet.", - "pre_seed_button_text": "Mo ti gbọ́. O fi hóró mi hàn mi", - "provider_error": "Àṣìṣe ${provider}", - "use_ssl": "Lo SSL", - "trusted": "A ti fọkàn ẹ̀ tán", - "color_theme": "Àwọn ààtò àwọ̀", - "light_theme": "Funfun bí eérú", - "bright_theme": "Funfun", - "dark_theme": "Dúdú", - "enter_your_note": "Tẹ̀ àkọsílẹ̀ yín", - "note_optional": "Àkọsílẹ̀ (ìyàn nìyí)", - "note_tap_to_change": "Àkọsílẹ̀ (ẹ tẹ̀ láti pààrọ̀)", - "view_in_block_explorer": "Wo lórí olùṣèwádìí àkójọpọ̀", - "view_transaction_on": "Wo pàṣípààrọ̀ lórí ", - "transaction_key": "Kọ́kọ́rọ́ pàṣípààrọ̀", - "confirmations": "Àwọn ẹ̀rí", - "recipient_address": "Àdírẹ́sì olùgbà", - "extra_id": "Àmì ìdánimọ̀ tó fikún:", - "destination_tag": "Orúkọ tí ìbí tó a ránṣẹ́ sí:", - "memo": "Àkọsílẹ̀:", - "backup": "Ṣẹ̀dà", - "change_password": "Pààrọ̀ ọ̀rọ̀ aṣínà", - "backup_password": "Ṣẹ̀dà ọ̀rọ̀ aṣínà", - "write_down_backup_password": "Ẹ jọ̀wọ́ ẹ̀dà ọ̀rọ̀ aṣínà ti ẹ̀dà nípamọ́ yín tó máa ń bá yín ṣí àkọsílẹ̀ yín l'ẹ kọ sílẹ̀.", - "export_backup": "Sún ẹ̀dà nípamọ́ síta", - "save_backup_password": "Ẹ jọ̀wọ́ dájú pé ẹ ti pamọ́ ọ̀rọ̀ aṣínà ti ẹ̀dà nípamọ́ yín. Ti ẹ kò bá ni í, ẹ kò lè ṣí àwọn àkọsílẹ̀ nípamọ́ yín.", - "backup_file": "Ṣẹ̀dà akọsílẹ̀", - "edit_backup_password": "Pààrọ̀ ọ̀rọ̀ aṣínà", - "save_backup_password_alert": "Pamọ́ ọ̀rọ̀ aṣínà ti ẹ̀dà", - "change_backup_password_alert": "Ẹ kò lè fi ọ̀rọ̀ aṣínà títun ti ẹ̀dà nípamọ́ ṣí àwọn àkọsílẹ̀ nípamọ́ tẹ́lẹ̀tẹ́lẹ̀ yín. Ẹ máa fi ọ̀rọ̀ aṣínà ti ẹ̀dà nípamọ́ títun ṣí àwọn àkọsílẹ̀ nípamọ́ títun nìkan. Ṣé ó dá ẹ lójú pé ẹ fẹ́ pààrọ̀ aṣínà ti ẹ̀dà nípamọ́?", - "enter_backup_password": "Tẹ̀ ọ̀rọ̀ aṣínà ti ẹ̀dà ḿbí", - "select_backup_file": "Select backup file", - "import": "gbe wọle", - "please_select_backup_file": "Ẹ jọ̀wọ́ yan àkọsílẹ̀ nípamọ́ àti tẹ̀ ọ̀rọ̀ aṣínà ti ẹ̀dà.", - "fixed_rate": "Iye t'á ṣẹ́ owó sí ò ní pààrọ̀", - "fixed_rate_alert": "Ẹ lè tẹ̀ iye owó tó ń bọ̀ tí iye t'a ṣẹ́ owó sí bá is checked. Ṣé ẹ fẹ́ sún ipò ti iye t'á ṣẹ́ owó sí ò ní pààrọ̀ mọ́?", - "xlm_extra_info": "Ẹ jọ̀wọ́ ẹ kò gbàgbé pèsè àmì ìdánimọ̀ àkọsílẹ̀ t'ẹ́ ń bá ránṣẹ́ pàṣípààrọ̀ ti XLM yín sí ilé ìfowóṣòwò", - "xrp_extra_info": "Ẹ jọ̀wọ́ ẹ kò gbàgbé pèsè orúkọ̀ àdírẹ́sì ti a ránṣẹ́ sí t'ẹ́ bá ránṣẹ pàṣípààrọ̀ ti XRP yín sílé ìfowóṣòwò", - "exchange_incorrect_current_wallet_for_xmr": "T'ẹ́ bá fẹ́ pàṣípààrọ̀ XMR láti ìyókù owó Cake Wallet yín, ẹ jọ̀wọ́ kọ́kọ́ sún àpamọ́wọ́ Monero mọ́.", - "confirmed": "A ti jẹ́rìí ẹ̀", - "unconfirmed": "A kò tí ì jẹ́rìí ẹ̀", - "displayable": "A lè ṣàfihàn ẹ̀", - "submit_request": "Ṣé ìbéèrè", - "buy_alert_content": "Lọwọlọwọ a ṣe atilẹyin rira Bitcoin, Ethereum, Litecoin, ati Monero. Jọwọ ṣẹda tabi yipada si Bitcoin, Ethereum, Litecoin, tabi apamọwọ Monero.", - "sell_alert_content": "Lọwọlọwọ a ṣe atilẹyin tita Bitcoin, Ethereum ati Litecoin nikan. Jọwọ ṣẹda tabi yipada si Bitcoin, Ethereum tabi apamọwọ Litecoin rẹ.", - "outdated_electrum_wallet_description": "Àwọn àpamọ́wọ́ títun Bitcoin ti a ti dá nínú Cake Wallet lọ́wọ́lọ́wọ́. Àwọn àpamọ́wọ́ títun t'á dá nínú Cake Wallet ni hóró tó ní ọ̀rọ̀ mẹ́rinlélógún. Ẹ gbọ́dọ̀ dá àpamọ́wọ́. Ẹ sì sún gbogbo owó yín sí àpamọ́wọ́ títun náà tó dá lórí ọ̀rọ̀ mẹ́rinlélógún. Ẹ sì gbọ́dọ̀ yé lo àwọn àpamọ́wọ́ tó dá lórí hóró tó ní ọ̀rọ̀ méjìlá. Ẹ jọ̀wọ́ ṣe èyí láìpẹ́ kí ẹ ba owó yín.", - "understand": "Ó ye mi", - "apk_update": "Àtúnse áàpù títun wà", - "buy_bitcoin": "Ra Bitcoin", - "buy_with": "Rà pẹ̀lú", - "moonpay_alert_text": "Iye owó kò gbọ́dọ̀ kéré ju ${minAmount} ${fiatCurrency}", - "outdated_electrum_wallet_receive_warning": "Ẹ KÒ FI BITCOIN SÍ ÀPAMỌ́WỌ́ YÌÍ t'á ti dá a nínú Cake Wallet àti àpamọ́wọ́ yìí ni hóró ti ọ̀rọ̀ méjìlá. A lè pàdánù BTC t'á ránṣẹ́ sí àpamọ́wọ́ yìí. Ẹ dá àpamọ́wọ́ títun tó ni hóró tó ni ọ̀rọ̀ mẹ́rinlélógún (Ẹ tẹ àkọsílẹ̀ tó wa l’ókè l'ọ́tún nígbàna, ẹ sì yan àwọn àpamọ́wọ́ nígbàna, ẹ sì yan Dá Àpamọ́wọ́ Títun nígbàna, ẹ sì yan Bitcoin) àti sún Bitcoin yín síbẹ̀ ní sinsìn yẹn. Àwọn àpamọ́wọ́ títun (hóró ni ọ̀rọ̀ mẹ́rinlélógún) láti Cake Wallet wa láìléwu.", - "do_not_show_me": "Kò fi eléyìí hàn mi mọ́", - "unspent_coins_title": "Àwọn owó ẹyọ t'á kò tí ì san", - "unspent_coins_details_title": "Àwọn owó ẹyọ t'á kò tí ì san", - "freeze": "Tì pa", - "frozen": "Ó l'a tì pa", - "coin_control": "Ìdarí owó ẹyọ (ìyàn nìyí)", - "address_detected": "A ti gbọ́ àdírẹ́sì", - "address_from_domain": "Àdírẹ́sì yìí wá láti ${domain} lórí Unstoppable Domains", - "add_receiver": "Fikún àdírẹ́sì mìíràn (ìyàn nìyí)", - "manage_yats": "Bójú Yats", - "yat_alert_title": "Lílò Yat láti ránṣẹ́ àti gba owó dùn ṣe pọ̀ ju lọ", - "yat_alert_content": "Àwọn olùṣàmúlò ti Cake Wallet lè fi orúkọ olùṣàmúlò t'á dá lórí emójì tó kì í jọra ránṣẹ́ àti gba gbogbo àwọn irú owó tíwọn yàn láàyò lọ́wọ́lọ́wọ́.", - "get_your_yat": "Gba Yat yín", - "connect_an_existing_yat": "So Yat wíwà", - "connect_yats": "So àwọn Yat", - "yat_address": "Àdírẹ́sì Yat", - "yat": "Yat", - "address_from_yat": "Àdírẹ́sì yìí wá láti ${emoji} lórí Yat", - "yat_error": "Àṣìṣe Yat", - "yat_error_content": "Kò sí àdírẹ́sìkádírẹ́sì tó so Yat yìí. Ẹ gbìyànjú Yat mìíràn", - "choose_address": "\n\nẸ jọ̀wọ́ yan àdírẹ́sì:", - "yat_popup_title": "Ẹ lè dá àpamọ́wọ́ yín láti emójì.", - "yat_popup_content": "Ẹ lè fi Yat yín (orúkọ olùṣàmúlò kúkurú t'á dá lórí emójì) ránṣẹ́ àti gba owó nínú Cake Wallet lọ́wọ́lọ́wọ́. Bójú Yats lórí ojú ààtò lígbàkúgbà.", - "second_intro_title": "Àdírẹ́sì kan t'á dá láti emójì tó pàṣẹ gbogbo ohun wà", - "second_intro_content": "Àdírẹ́sì kan tó dá lórí emójì tó kì í jọra ni Yat yín. Ó rọ́pò gbogbo àwọn àdírẹ́sì gígùn yín tó dá lórí ìlà mẹ́rìndínlógún ti gbogbo àwọn iye owó yín.", - "third_intro_title": "Àlàáfíà ni Yat àti àwọn ìmíìn jọ wà", - "third_intro_content": "A sì lè lo Yats níta Cake Wallet. A lè rọ́pò Àdírẹ́sì kankan àpamọ́wọ́ fún Yat!", - "learn_more": "Túbọ̀ kọ́", - "search": "Wá", - "search_language": "Wá èdè", - "search_currency": "Wá irú owó", - "new_template": "Àwòṣe títun", - "electrum_address_disclaimer": "A dá àwọn àdírẹ́sì títun ní gbogbo àwọn ìgbà t'ẹ́ lo ó kan ṣùgbọ́n ẹ lè tẹ̀síwájú lo àwọn àdírẹ́sì tẹ́lẹ̀tẹ́lẹ̀.", - "wallet_name_exists": "Ẹ ti ní àpamọ́wọ́ pẹ̀lú orúkọ̀ yẹn. Ẹ jọ̀wọ́ yàn orúkọ̀ tó yàtọ̀ tàbí pààrọ̀ orúkọ ti àpamọ́wọ́ tẹ́lẹ̀.", - "market_place": "Ọjà", - "cake_pay_title": "Àwọn káàdì ìrajà t'á lò nínú ìtajà kan ti Cake Pay", - "cake_pay_subtitle": "Ra àwọn káàdì ìrajà t'á lò nínú ìtajà kan fún owó tí kò pọ̀ (USA nìkan)", - "cake_pay_web_cards_title": "Àwọn káàdì wẹ́ẹ̀bù ti Cake Pay", - "cake_pay_web_cards_subtitle": "Ra àwọn káàdì ìrajà t'á lò nínú ìtajà kan àti àwọn káàdì náà t'á lè lò níbikíbi", - "about_cake_pay": "Cake Pay jẹ́ kí ẹ lè fi owó wẹ́ẹ̀bù ra àwọn káàdì ìrajà t'á lò nínú iye ìtajà kan. Ẹ lè san wọn láìpẹ́ nítajà 150,000 nínú Amẹ́ríkà.", - "cake_pay_account_note": "Ẹ fi àdírẹ́sì ímeèlì nìkan forúkọ sílẹ̀ k'ẹ́ rí àti ra àwọn káàdì. Ẹ lè fi owó tó kéré jù ra àwọn káàdì kan!", - "already_have_account": "Ṣé ẹ ti ní àkáǹtì?", - "create_account": "Dá àkáǹtì", - "privacy_policy": "Òfin Aládàáni", - "welcome_to_cakepay": "Ẹ káàbọ̀ sí Cake Pay!", - "sign_up": "Forúkọ sílẹ̀", - "forgot_password": "Ẹ ti gbàgbé ọ̀rọ̀ aṣínà", - "reset_password": "Tún ọ̀rọ̀ aṣínà ṣe", - "gift_cards": "Àwọn káàdì ìrajà t'á lò nínú iye kan ìtajà", - "setup_your_debit_card": "Dá àwọn káàdì ìrajà yín", - "no_id_required": "Ẹ kò nílò àmì ìdánimọ̀. Ẹ lè fikún owó àti san níbikíbi", - "how_to_use_card": "Báyìí ni wọ́n ṣe ń lo káàdì yìí.", - "purchase_gift_card": "Ra káàdì ìrajà t'á lò nínú irú kan ìtajà", - "verification": "Ìjẹ́rìísí", - "fill_code": "Ẹ jọ̀wọ́ tẹ̀ ọ̀rọ̀ ìjẹ́rìísí t'á ti ránṣẹ́ sí ímeèlì yín.", - "dont_get_code": "Ṣé ẹ ti gba ọ̀rọ̀ ìdánimọ̀?", - "resend_code": "Ẹ jọ̀wọ́ tún un ránṣé", - "debit_card": "Káàdì ìrajà", - "cakepay_prepaid_card": "Káàdì ìrajà ti CakePay", - "no_id_needed": "Ẹ kò nílò àmì ìdánimọ̀!", - "frequently_asked_questions": "Àwọn ìbéèrè la máa ń béèrè", - "debit_card_terms": "Òfin ti olùṣe àjọrò káàdì ìrajà bójú irú ọ̀nà t'á pamọ́ àti a lo òǹkà ti káàdì ìrajà yín (àti ọ̀rọ̀ ìdánimọ̀ tí káàdì náà) nínú àpamọ́wọ́ yìí.", - "please_reference_document": "Ẹ jọ̀wọ́ fi àwọn àkọsílẹ̀ l’ábẹ́ túbọ̀ mọ ìsọfúnni.", - "cardholder_agreement": "Àjọrò olùṣe káàdì ìrajà", - "e_sign_consent": "Jẹ́rìí sí lórí ayélujára", - "agree_and_continue": "Jọ Rò àti Tẹ̀síwájú", - "email_address": "Àdírẹ́sì ímeèlì", - "agree_to": "Tẹ́ ẹ bá dá àkáǹtì ẹ jọ rò ", - "and": "àti", - "enter_code": "Tẹ̀ ọ̀rọ̀", - "congratulations": "Ẹ kúuṣẹ́ ooo!", - "you_now_have_debit_card": "Ẹ ni káàdì ìrajà lọ́wọ́lọ́wọ́", - "min_amount": "kò kéré ju: ${value}", - "max_amount": "kò tóbi ju: ${value}", - "enter_amount": "Tẹ̀ iye", - "billing_address_info": "Tí ọlọ́jà bá bèèrè àdírẹ́sì sísan yín, fún òun ni àdírẹ́sì t'á ránṣẹ́ káàdì yìí sí", - "order_physical_card": "Bèèrè káàdì t'ara", - "add_value": "Fikún owó", - "activate": "Fi àyè gba", - "get_a": "Gba ", - "digital_and_physical_card": " káàdì ìrajà t'ara àti ti ayélujára", - "get_card_note": " t'ẹ lè fikún owó ayélujára. Ẹ kò nílò ìṣofúnni àfikún!", - "signup_for_card_accept_terms": "Ẹ f'orúkọ sílẹ̀ láti gba káàdì àti àjọrò.", - "add_fund_to_card": "Ẹ fikún owó sí àwọn káàdì (kò tóbi ju ${value})", - "use_card_info_two": "A pààrọ̀ owó sí owó Amẹ́ríkà tó bá wà nínú àkanti t'á ti fikún tẹ́lẹ̀tẹ́lẹ̀. A kò kó owó náà nínú owó ayélujára.", - "use_card_info_three": "Ẹ lo káàdí ayélujára lórí wẹ́ẹ̀bù tàbí ẹ lò ó lórí àwọn ẹ̀rọ̀ ìrajà tíwọn kò kò.", - "optionally_order_card": "Ẹ lè fi ìyàn bèèrè káàdì t'ara.", - "hide_details": "Dé ìsọfúnni kékeré", - "show_details": "Fi ìsọfúnni kékeré hàn", - "upto": "kò tóbi ju ${value}", - "discount": "Pamọ́ ${value}%", - "gift_card_amount": "owó ìyókù káàdì", - "bill_amount": "Iye ìwé owó", - "you_pay": "Ẹ sàn", - "tip": "Owó àfikún:", - "custom": "Ohun t'á ti pààrọ̀", - "by_cake_pay": "láti ọwọ́ Cake Pay", - "expires": "Ó parí", - "mm": "Os", - "yy": "Ọd", - "online": "Lórí ayélujára", - "offline": "kò wà lórí ayélujára", - "gift_card_number": "Òǹkà káàdì ìrajì", - "pin_number": "Òǹkà ìdánimọ̀ àdáni", - "total_saving": "Owó t'ẹ́ ti pamọ́", - "last_30_days": "Ọ̀jọ̀ mọ́gbọ̀n tó kọjà", - "avg_savings": "Ìpamọ́ l’óòrèkóòrè", - "view_all": "Wo gbogbo nǹkan kan", - "active_cards": "Àwọn káàdì títàn", - "delete_account": "Pa ìṣàmúlò", - "cards": "Àwọn káàdì", - "active": "Ó títàn", - "redeemed": "Ó lílò", - "gift_card_balance_note": "Àwọn káàdì ìrajà t'á lò nínú irú kan ìtajà tíwọn ṣì ní owó máa fihàn ḿbí", - "gift_card_redeemed_note": "Àwọn káàdì ìrajà t'á lò nínú irú kan ìtajà t'ẹ́ ti lò máa fihàn ḿbí", - "logout": "Jáde", - "add_tip": "Fún owó àfikún", - "percentageOf": "láti ${amount}", - "is_percentage": "jẹ́", - "search_category": "Wá nínú ẹgbẹ́", - "mark_as_redeemed": "Fún orúkọ lílò", - "more_options": "Ìyàn àfikún", - "awaiting_payment_confirmation": "À ń dúró de ìjẹ́rìísí àránṣẹ́", - "transaction_sent_notice": "Tí aṣàfihàn kò bá tẹ̀síwájú l'áàárín ìṣẹ́jú kan, ẹ tọ́ olùṣèwádìí àkójọpọ̀ àti ímeèlì yín wò.", - "agree": "Jọ rò", - "in_store": "A níyí", - "generating_gift_card": "À ń dá káàdì ìrajà t'á lò nínú irú kan ìtajà", - "payment_was_received": "Àránṣẹ́ yín ti dé.", - "proceed_after_one_minute": "Tí aṣàfihàn kò bá tẹ̀síwájú l'áàárín ìṣẹ́jú kan, ẹ tọ́ ímeèlì yín wò.", - "order_id": "Àmì ìdánimọ̀ ti ìbéèrè", - "gift_card_is_generated": "A ti dá káàdí ìrajà t'á lò nínú irú kan ìtajà", - "open_gift_card": "Ṣí káàdí ìrajà t'á lò nínú irú kan ìtajà", - "contact_support": "Bá ìranlọ́wọ́ sọ̀rọ̀", - "gift_cards_unavailable": "A lè fi Monero, Bitcoin, àti Litecoin nìkan ra káàdí ìrajà t'á lò nínú irú kan ìtajà lọ́wọ́lọ́wọ́", - "introducing_cake_pay": "Ẹ bá Cake Pay!", - "cake_pay_learn_more": "Láìpẹ́ ra àti lo àwọn káàdí ìrajà t'á lò nínú irú kan ìtajà nínú áàpù!\nẸ tẹ̀ òsì de ọ̀tún láti kọ́ jù.", + "authenticated": "A ti jẹ́rìísí yín", + "authentication": "Ìfẹ̀rílàdí", + "auto_generate_subaddresses": "Aṣiṣe Ibi-Afọwọkọ", "automatic": "Ó máa ń ṣàdédé", - "fixed_pair_not_supported": "A kì í ṣe k'á fi àwọn ilé pàṣípààrọ̀ yìí ṣe pàṣípààrọ̀ irú owó méji yìí", - "variable_pair_not_supported": "A kì í ṣe k'á fi àwọn ilé pàṣípààrọ̀ yìí ṣe pàṣípààrọ̀ irú owó méji yìí", - "none_of_selected_providers_can_exchange": "Àwọn ilé pàṣípààrọ̀ yíyàn kò lè ṣe pàṣípààrọ̀ yìí", - "choose_one": "Ẹ yàn kan", - "choose_from_available_options": "Ẹ yàn láti àwọn ìyàn yìí:", - "custom_redeem_amount": "Iye owó l'á máa ná", - "add_custom_redemption": "Tẹ̀ iye owó t'ẹ́ fẹ́ ná", - "remaining": "ìyókù", - "delete_wallet": "Pa àpamọ́wọ́", - "delete_wallet_confirm_message": "Ṣó dá ẹ lójú pé ẹ fẹ́ pa àpamọ́wọ́ ${wallet_name}?", - "low_fee": "Owó àfikún kékeré", - "low_fee_alert": "Ẹ ń fi owó àfikún kékeré fún àwọn àránṣẹ́ yín lágbára. Eleyìí lè pẹ́ gba àránṣẹ́ yín. Ó sì lè dá àwọn iye mìíràn t'á ṣẹ́ owó sí. Ó sì lè pa àwọn pàṣípààrọ̀. A dábàá pé k'ẹ́ lo owó àfikún títobi láti ṣe àṣejèrè.", - "ignor": "Ṣàìfiyèsí", - "use_suggested": "Lo àbá", - "do_not_share_warning_text": "Ẹ kò pín wọnyìí sí ẹnikẹ́ni. Ẹ sì kò pin wọnyìí sí ìranlọ́wọ́. Ẹnikẹ́ni lè jí owó yín! Wọ́n máa jí owó yín!", - "help": "ìranlọ́wọ́", - "all_transactions": "Gbogbo àwọn àránṣẹ́", - "all_trades": "Gbogbo àwọn pàṣípààrọ̀", - "connection_sync": "Ìkànpọ̀ àti ìbádọ́gba", - "security_and_backup": "Ìṣọ́ àti ẹ̀dà nípamọ́", - "create_backup": "Ṣẹ̀dà nípamọ́", - "privacy_settings": "Ààtò àdáni", - "privacy": "Ìdáwà", - "display_settings": "Fihàn àwọn ààtò", - "other_settings": "Àwọn ààtò mìíràn", - "require_pin_after": "Ẹ nílò òǹkà ìdánimọ̀ àdáni láàárín", - "always": "Ní gbogbo àwọn ìgbà", - "minutes_to_pin_code": "${minute} ìṣẹ́jú", - "disable_exchange": "Pa ilé pàṣípààrọ̀", - "advanced_settings": "Awọn eto ilọsiwaju", - "settings_can_be_changed_later": "Ẹ lè pààrọ̀ àwọn ààtò yìí nínú ààtò áàpù t’ó bá yá", - "add_custom_node": "Fikún apẹka títun t'ẹ́ pààrọ̀", - "disable_fiat": "Pa owó tí ìjọba pàṣẹ wa lò", - "fiat_api": "Ojú ètò áàpù owó tí ìjọba pàṣẹ wa lò", - "disabled": "Wọ́n tí a ti pa", - "enabled": "Wọ́n tíwọn ti tan", - "tor_only": "Tor nìkan", - "unmatched_currencies": "Irú owó ti àpamọ́wọ́ yín kì í ṣe irú ti yíya àmì ìlujá", - "contact_list_contacts": "Àwọn olùbásọ̀rọ̀", - "contact_list_wallets": "Àwọn àpamọ́wọ́ mi", - "bitcoin_payments_require_1_confirmation": "Àwọn àránṣẹ́ Bitcoin nílò ìjẹ́rìísí kan. Ó lè lo ìṣéjú ogun tàbí ìṣéjú jù. A dúpẹ́ fún sùúrù yín! Ẹ máa gba ímeèlì t'ó bá jẹ́rìísí àránṣẹ́ náà.", - "send_to_this_address": "Ẹ fi ${currency} ${tag}ránṣẹ́ sí àdírẹ́sì yìí", - "arrive_in_this_address": "${currency} ${tag} máa dé sí àdírẹ́sì yìí", - "do_not_send": "Ẹ kò ránṣ", - "error_dialog_content": "Àṣìṣe ti dé.\n\nẸ jọ̀wọ́, fi àkọsílẹ̀ àṣìṣe ránṣẹ́ sí ẹgbẹ́ ìranlọ́wọ́ wa kí áàpù wa bá túbọ̀ dára.", - "cold_or_recover_wallet": "Fi owo aisan tabi yiyewo owo iwe iwe", - "please_wait": "Jọwọ saa", - "sweeping_wallet": "Fi owo iwe iwe wofo", - "sweeping_wallet_alert": "Yio kọja pada si ikan yii. Kì yoo daadaa leede yii tabi owo ti o ti fi se iwe iwe naa yoo gbe.", - "invoice_details": "Iru awọn ẹya ọrọ", - "donation_link_details": "Iru awọn ẹya ọrọ ti o funni", - "anonpay_description": "Ṣe akọkọ ${type}. Awọn alabara le ${method} pẹlu eyikeyi iwo ise ati owo yoo wọle si iwe iwe yii.", - "create_invoice": "Ṣe iwe iwe", - "create_donation_link": "Ṣe kọọkan alabara asopọ", - "optional_email_hint": "Ṣeto imọ-ẹrọ iye fun owo ti o gbọdọjọ", - "optional_description": "Ṣeto ẹru iye", - "optional_name": "Ṣeto orukọ ti o ni", - "clearnet_link": "Kọja ilọ oke", - "onion_link": "Kọja ilọ alubosa", - "decimal_places_error": "Oọ̀rọ̀ ayipada ti o wa ni o dara julọ", - "edit_node": "Tun awọn ọwọnrin ṣiṣe", - "settings": "Awọn aseṣe", - "sell_monero_com_alert_content": "Kọ ju lọwọ Monero ko ṣe ni ibamu", - "error_text_input_below_minimum_limit": "Iye jọwọ ni o kere ti o wọle diẹ", - "error_text_input_above_maximum_limit": "Iye jọwọ ni o yẹ diẹ ti o wọle diẹ", - "show_market_place": "Wa Sopọ Pataki", - "prevent_screenshots": "Pese asapọ ti awọn ẹrọ eto aṣa", - "profile": "profaili", - "close": "sunmo", - "modify_2fa": "Fi iṣiro 2FA sii Cake", - "disable_cake_2fa": "Ko 2FA Cake sii", - "question_to_disable_2fa": "Ṣe o wa daadaa pe o fẹ ko 2FA Cake? Ko si itumọ ti a yoo nilo lati ranse si iwe iwe naa ati eyikeyi iṣẹ ti o ni.", - "disable": "Ko si", - "setup_2fa": "Ṣeto Cake 2FA", - "verify_with_2fa": "Ṣeẹda pẹlu Cake 2FA", - "totp_code": "Koodu TOTP", - "please_fill_totp": "Jọwọ bọ ti ẹrọ ti o wọle ni 8-digits ti o wa ni eto miiran re", - "totp_2fa_success": "Pelu ogo! Cake 2FA ti fi sii lori iwe iwe yii. Tọ, mọ iye ẹrọ miiran akojọrọ jẹki o kọ ipin eto.", - "totp_verification_success": "Ìbẹrẹ dọkita!", - "totp_2fa_failure": "Koodu ti o daju ko ri. Jọwọ jẹ koodu miiran tabi ṣiṣẹ iwe kiakia. Lo fun 2FA eto ti o ba ṣe ni jẹ 2FA ti o gba idaniloju 8-digits ati SHA512.", - "enter_totp_code": "Jọwọ pọ koodu TOTP.", - "add_secret_code": "Tabi, ṣafikun koodu aṣiri yii si ohun elo onijeri kan", - "totp_secret_code": "Koodu iye TOTP", - "setup_2fa_text": "Akara oyinbo 2FA ṣiṣẹ ni lilo TOTP bi ifosiwewe ijẹrisi keji.\n\nAkara oyinbo 2FA's TOTP nilo SHA-512 ati atilẹyin oni-nọmba 8; eyi pese aabo ti o pọ sii. Alaye diẹ sii ati awọn ohun elo atilẹyin ni a le rii ninu itọsọna naa.", - "setup_totp_recommended": "Ṣeto TOTP", - "disable_buy": "Ko iṣọrọ ọja", - "disable_sell": "Ko iṣọrọ iṣọrọ", - "cake_2fa_preset": "Cake 2FA Tito", - "narrow": "Taara", - "normal": "Deede", - "aggressive": "Onítara", - "require_for_assessing_wallet": "Beere fun wiwọle si apamọwọ", - "require_for_sends_to_non_contacts": "Beere fun fifiranṣẹ si awọn ti kii ṣe awọn olubasọrọ", - "require_for_sends_to_contacts": "Beere fun fifiranṣẹ si awọn olubasọrọ", - "require_for_sends_to_internal_wallets": "Beere fun fifiranṣẹ si awọn apamọwọ inu", - "require_for_exchanges_to_internal_wallets": "Beere fun awọn paṣipaarọ si awọn apamọwọ inu", - "require_for_adding_contacts": "Beere fun fifi awọn olubasọrọ kun", - "require_for_creating_new_wallets": "Beere fun ṣiṣẹda titun Woleti", - "require_for_all_security_and_backup_settings": "Beere fun gbogbo aabo ati awọn eto afẹyinti", + "available_balance": "Ìyókù owó tó wà níbẹ̀", "available_balance_description": "“Iwọntunwọnsi Wa” tabi “Iwọntunwọnsi Ijẹrisi” jẹ awọn owo ti o le ṣee lo lẹsẹkẹsẹ. Ti awọn owo ba han ni iwọntunwọnsi kekere ṣugbọn kii ṣe iwọntunwọnsi oke, lẹhinna o gbọdọ duro iṣẹju diẹ fun awọn owo ti nwọle lati gba awọn ijẹrisi nẹtiwọọki diẹ sii. Lẹhin ti wọn gba awọn ijẹrisi diẹ sii, wọn yoo jẹ inawo.", - "syncing_wallet_alert_title": "Apamọwọ rẹ n muṣiṣẹpọ", - "syncing_wallet_alert_content": "Iwontunws.funfun rẹ ati atokọ idunadura le ma pari titi ti yoo fi sọ “SYNCHRONIZED” ni oke. Tẹ/tẹ ni kia kia lati ni imọ siwaju sii.", - "home_screen_settings": "Awọn eto iboju ile", - "sort_by": "Sa pelu", - "search_add_token": "Wa / Fi àmi kun", - "edit_token": "Ṣatunkọ àmi", - "warning": "Ikilo", - "add_token_warning": "Ma ṣe ṣatunkọ tabi ṣafikun awọn ami bi a ti fun ni aṣẹ nipasẹ awọn scammers.\nNigbagbogbo jẹrisi awọn adirẹsi ami pẹlu awọn orisun olokiki!", - "add_token_disclaimer_check": "Mo ti jẹrisi adirẹsi adehun ami ati alaye nipa lilo orisun olokiki kan. Fifi irira tabi alaye ti ko tọ le ja si isonu ti owo.", - "token_contract_address": "Àmi guide adirẹsi", - "token_name": "Orukọ àmi fun apẹẹrẹ: Tether", - "token_symbol": "Aami aami fun apẹẹrẹ: USDT", - "token_decimal": "Àmi eleemewa", - "field_required": "E ni lati se nkan si aye yi", - "pin_at_top": "pin ${tokini} ni oke", - "invalid_input": "Iṣawọle ti ko tọ", - "fiat_balance": "Fiat Iwontunws.funfun", - "gross_balance": "Iwontunws.funfun apapọ", - "alphabetical": "Labidibi", - "generate_name": "Ṣẹda Orukọ", + "avg_savings": "Ìpamọ́ l’óòrèkóòrè", + "awaitDAppProcessing": "Fi inurere duro fun dApp lati pari sisẹ.", + "awaiting_payment_confirmation": "À ń dúró de ìjẹ́rìísí àránṣẹ́", + "backup": "Ṣẹ̀dà", + "backup_file": "Ṣẹ̀dà akọsílẹ̀", + "backup_password": "Ṣẹ̀dà ọ̀rọ̀ aṣínà", "balance_page": "Oju-iwe iwọntunwọnsi", - "share": "Pinpin", - "slidable": "Slidable", - "manage_nodes": "Ṣakoso awọn apa", - "etherscan_history": "Etherscan itan", - "template_name": "Orukọ Awoṣe", - "change_rep": "Yi Aṣoju", - "change_rep_message": "Ṣe o da ọ loju pe o fẹ yi awọn aṣoju pada?", - "unsupported_asset": "A ko ṣe atilẹyin iṣẹ yii fun dukia yii. Jọwọ ṣẹda tabi yipada si apamọwọ iru dukia atilẹyin.", - "manage_pow_nodes": "Ṣakoso awọn Nodes PoW", - "support_title_live_chat": "Atilẹyin ifiwe", - "support_description_live_chat": "Free ati sare! Ti oṣiṣẹ awọn aṣoju wa lati ṣe iranlọwọ", - "support_title_guides": "Akara oyinbo Awọn Itọsọna Awọki oyinbo", - "support_description_guides": "Iwe ati atilẹyin fun awọn ọran ti o wọpọ", - "support_title_other_links": "Awọn ọna asopọ atilẹyin miiran", - "support_description_other_links": "Darapọ mọ awọn agbegbe wa tabi de wa awọn alabaṣepọ wa nipasẹ awọn ọna miiran", - "choose_derivation": "Yan awọn apamọwọ apamọwọ", - "new_first_wallet_text": "Ni rọọrun jẹ ki o jẹ ki o jẹ ki o jẹ ki a mu", - "monero_dark_theme": "Monero Dudu Akori", + "bill_amount": "Iye ìwé owó", + "billing_address_info": "Tí ọlọ́jà bá bèèrè àdírẹ́sì sísan yín, fún òun ni àdírẹ́sì t'á ránṣẹ́ káàdì yìí sí", + "biometric_auth_reason": "Ya ìka ọwọ́ yín láti ṣe ìfẹ̀rílàdí", "bitcoin_dark_theme": "Bitcoin Dark Akori", "bitcoin_light_theme": "Bitcoin Light Akori", - "high_contrast_theme": "Akori Iyatọ giga", - "matrix_green_dark_theme": "Matrix Green Dark Akori", - "monero_light_theme": "Monero Light Akori", - "select_destination": "Jọwọ yan ibi ti o nlo fun faili afẹyinti.", - "auto_generate_subaddresses": "Aṣiṣe Ibi-Afọwọkọ", - "save_to_downloads": "Fipamọ si Awọn igbasilẹ", - "select_buy_provider_notice": "Yan olupese Ra loke. O le skii iboju yii nipa ṣiṣeto olupese rẹ ni awọn eto App.", - "onramper_option_description": "Ni kiakia Ra Crypto pẹlu ọpọlọpọ awọn ọna isanwo. Wa ni ọpọlọpọ awọn orilẹ-ede. Itankale ati awọn idiyele yatọ.", - "default_buy_provider": "Aiyipada Ra Olupese", - "ask_each_time": "Beere lọwọ kọọkan", + "bitcoin_payments_require_1_confirmation": "Àwọn àránṣẹ́ Bitcoin nílò ìjẹ́rìísí kan. Ó lè lo ìṣéjú ogun tàbí ìṣéjú jù. A dúpẹ́ fún sùúrù yín! Ẹ máa gba ímeèlì t'ó bá jẹ́rìísí àránṣẹ́ náà.", + "Blocks_remaining": "Àkójọpọ̀ ${status} kikù", + "bright_theme": "Funfun", + "buy": "Rà", + "buy_alert_content": "Lọwọlọwọ a ṣe atilẹyin rira Bitcoin, Ethereum, Litecoin, ati Monero. Jọwọ ṣẹda tabi yipada si Bitcoin, Ethereum, Litecoin, tabi apamọwọ Monero.", + "buy_bitcoin": "Ra Bitcoin", "buy_provider_unavailable": "Olupese lọwọlọwọ ko si.", - "signTransaction": "Wole Idunadura", + "buy_with": "Rà pẹ̀lú", + "by_cake_pay": "láti ọwọ́ Cake Pay", + "cake_2fa_preset": "Cake 2FA Tito", + "cake_pay_account_note": "Ẹ fi àdírẹ́sì ímeèlì nìkan forúkọ sílẹ̀ k'ẹ́ rí àti ra àwọn káàdì. Ẹ lè fi owó tó kéré jù ra àwọn káàdì kan!", + "cake_pay_learn_more": "Láìpẹ́ ra àti lo àwọn káàdí ìrajà t'á lò nínú irú kan ìtajà nínú áàpù!\nẸ tẹ̀ òsì de ọ̀tún láti kọ́ jù.", + "cake_pay_subtitle": "Ra àwọn káàdì ìrajà t'á lò nínú ìtajà kan fún owó tí kò pọ̀ (USA nìkan)", + "cake_pay_title": "Àwọn káàdì ìrajà t'á lò nínú ìtajà kan ti Cake Pay", + "cake_pay_web_cards_subtitle": "Ra àwọn káàdì ìrajà t'á lò nínú ìtajà kan àti àwọn káàdì náà t'á lè lò níbikíbi", + "cake_pay_web_cards_title": "Àwọn káàdì wẹ́ẹ̀bù ti Cake Pay", + "cake_wallet": "Cake Wallet", + "cakepay_prepaid_card": "Káàdì ìrajà ti CakePay", + "camera_consent": "Kamẹra rẹ yoo ṣee lo lati ya aworan kan fun awọn idi idanimọ nipasẹ ${provider}. Jọwọ ṣayẹwo Ilana Aṣiri wọn fun awọn alaye.", + "camera_permission_is_required": "A nilo igbanilaaye kamẹra.\nJọwọ jeki o lati app eto.", + "cancel": "Fagi lé e", + "card_address": "Àdírẹ́sì:", + "cardholder_agreement": "Àjọrò olùṣe káàdì ìrajà", + "cards": "Àwọn káàdì", + "chains": "Awọn ẹwọn", + "change": "Pààrọ̀", + "change_backup_password_alert": "Ẹ kò lè fi ọ̀rọ̀ aṣínà títun ti ẹ̀dà nípamọ́ ṣí àwọn àkọsílẹ̀ nípamọ́ tẹ́lẹ̀tẹ́lẹ̀ yín. Ẹ máa fi ọ̀rọ̀ aṣínà ti ẹ̀dà nípamọ́ títun ṣí àwọn àkọsílẹ̀ nípamọ́ títun nìkan. Ṣé ó dá ẹ lójú pé ẹ fẹ́ pààrọ̀ aṣínà ti ẹ̀dà nípamọ́?", + "change_currency": "Pààrọ̀ irú owó", + "change_current_node": "Ṣé ó dá yín lójú pé ẹ fẹ́ pààrọ̀ apẹka lọ́wọ́ sí ${node}?", + "change_current_node_title": "Pààrọ̀ apẹka lọwọ́", + "change_exchange_provider": "Pààrọ̀ Ilé Ìfowóṣòwò", + "change_language": "Pààrọ̀ èdè", + "change_language_to": "Pààrọ̀ èdè sí ${language}?", + "change_password": "Pààrọ̀ ọ̀rọ̀ aṣínà", + "change_rep": "Yi Aṣoju", + "change_rep_message": "Ṣe o da ọ loju pe o fẹ yi awọn aṣoju pada?", + "change_rep_successful": "Ni ifijišẹ yipada aṣoju", + "change_wallet_alert_content": "Ṣe ẹ fẹ́ pààrọ̀ àpamọ́wọ́ yìí sí ${wallet_name}?", + "change_wallet_alert_title": "Ẹ pààrọ̀ àpamọ́wọ́ yìí", + "choose_account": "Yan àkáǹtì", + "choose_address": "\n\nẸ jọ̀wọ́ yan àdírẹ́sì:", + "choose_derivation": "Yan awọn apamọwọ apamọwọ", + "choose_from_available_options": "Ẹ yàn láti àwọn ìyàn yìí:", + "choose_one": "Ẹ yàn kan", + "choose_relay": "Jọwọ yan yii lati lo", + "choose_wallet_currency": "Ẹ jọ̀wọ́, yàn irú owó ti àpamọ́wọ́ yín:", + "clear": "Pa gbogbo nǹkan", + "clearnet_link": "Kọja ilọ oke", + "close": "sunmo", + "coin_control": "Ìdarí owó ẹyọ (ìyàn nìyí)", + "cold_or_recover_wallet": "Fi owo aisan tabi yiyewo owo iwe iwe", + "color_theme": "Àwọn ààtò àwọ̀", + "commit_transaction_amount_fee": "Jẹ́rìí sí àránṣẹ́\nOwó: ${amount}\nIye àfikún: ${fee}", + "confirm": "Jẹ́rìísí", + "confirm_delete_template": "Ìṣe yìí máa yọ àwòṣe yìí kúrò. Ṣé ẹ fẹ́ tẹ̀síwájú?", + "confirm_delete_wallet": "Ìṣe yìí máa yọ àpamọ́wọ́ yìí kúrò. Ṣé ẹ fẹ́ tẹ̀síwájú?", + "confirm_sending": "Jẹ́rìí sí ránṣẹ́", + "confirmations": "Àwọn ẹ̀rí", + "confirmed": "A ti jẹ́rìí ẹ̀", + "confirmed_tx": "Jẹrisi", + "congratulations": "Ẹ kúuṣẹ́ ooo!", + "connect_an_existing_yat": "So Yat wíwà", + "connect_yats": "So àwọn Yat", + "connection_sync": "Ìkànpọ̀ àti ìbádọ́gba", + "connectWalletPrompt": "So apamọwọ rẹ pọ pẹlu WalletConnect lati ṣe awọn iṣowo", + "contact": "Olùbásọ̀rọ̀", + "contact_list_contacts": "Àwọn olùbásọ̀rọ̀", + "contact_list_wallets": "Àwọn àpamọ́wọ́ mi", + "contact_name": "Orúkọ olùbásọ̀rọ̀", + "contact_support": "Bá ìranlọ́wọ́ sọ̀rọ̀", + "continue_text": "Tẹ̀síwájú", + "contractName": "Orukọ adehun", + "contractSymbol": "Aami adehun", + "copied_key_to_clipboard": "Ti ṣeda ${key} sí àtẹ àkọsílẹ̀", + "copied_to_clipboard": "Jíjí wò sí àtẹ àkọsílẹ̀", + "copy": "Ṣẹ̀dà", + "copy_address": "Ṣẹ̀dà àdírẹ́sì", + "copy_id": "Ṣẹ̀dà àmì ìdánimọ̀", + "copyWalletConnectLink": "Daakọ ọna asopọ WalletConnect lati dApp ki o si lẹẹmọ nibi", + "create_account": "Dá àkáǹtì", + "create_backup": "Ṣẹ̀dà nípamọ́", + "create_donation_link": "Ṣe kọọkan alabara asopọ", + "create_invoice": "Ṣe iwe iwe", + "create_new": "Dá àpamọ́wọ́ tuntun", + "create_new_account": "Dá àkáǹtì títun", + "creating_new_wallet": "Ń dá àpamọ́wọ́ títun", + "creating_new_wallet_error": "Àṣìṣe: ${description}", + "creation_date": "Ọjọ ẹda", + "custom": "Ohun t'á ti pààrọ̀", + "custom_drag": "Aṣa (mu ati fa)", + "custom_redeem_amount": "Iye owó l'á máa ná", + "dark_theme": "Dúdú", + "debit_card": "Káàdì ìrajà", + "debit_card_terms": "Òfin ti olùṣe àjọrò káàdì ìrajà bójú irú ọ̀nà t'á pamọ́ àti a lo òǹkà ti káàdì ìrajà yín (àti ọ̀rọ̀ ìdánimọ̀ tí káàdì náà) nínú àpamọ́wọ́ yìí.", + "decimal_places_error": "Oọ̀rọ̀ ayipada ti o wa ni o dara julọ", + "default_buy_provider": "Aiyipada Ra Olupese", + "default_sell_provider": "Aiyipada Olupese Tita", + "delete": "Pa á", + "delete_account": "Pa ìṣàmúlò", + "delete_wallet": "Pa àpamọ́wọ́", + "delete_wallet_confirm_message": "Ṣó dá ẹ lójú pé ẹ fẹ́ pa àpamọ́wọ́ ${wallet_name}?", + "deleteConnectionConfirmationPrompt": "Ṣe o da ọ loju pe o fẹ paarẹ asopọ si", + "descending": "Sọkalẹ", + "description": "Apejuwe", + "destination_tag": "Orúkọ tí ìbí tó a ránṣẹ́ sí:", + "dfx_option_description": "Ra crypto pẹlu EUR & CHF. Titi di 990 € laisi afikun KYC. Fun soobu ati awọn onibara ile-iṣẹ ni Yuroopu", + "digit_pin": "-díjíìtì òǹkà ìdánimọ̀ àdáni", + "digital_and_physical_card": " káàdì ìrajà t'ara àti ti ayélujára", + "disable": "Ko si", + "disable_buy": "Ko iṣọrọ ọja", + "disable_cake_2fa": "Ko 2FA Cake sii", + "disable_exchange": "Pa ilé pàṣípààrọ̀", + "disable_fiat": "Pa owó tí ìjọba pàṣẹ wa lò", + "disable_sell": "Ko iṣọrọ iṣọrọ", + "disabled": "Wọ́n tí a ti pa", + "discount": "Pamọ́ ${value}%", + "display_settings": "Fihàn àwọn ààtò", + "displayable": "A lè ṣàfihàn ẹ̀", + "do_not_have_enough_gas_asset": "O ko ni to ${currency} lati ṣe idunadura kan pẹlu awọn ipo nẹtiwọki blockchain lọwọlọwọ. O nilo diẹ sii ${currency} lati san awọn owo nẹtiwọọki blockchain, paapaa ti o ba nfi dukia miiran ranṣẹ.", + "do_not_send": "Ẹ kò ránṣ", + "do_not_share_warning_text": "Ẹ kò pín wọnyìí sí ẹnikẹ́ni. Ẹ sì kò pin wọnyìí sí ìranlọ́wọ́. Ẹnikẹ́ni lè jí owó yín! Wọ́n máa jí owó yín!", + "do_not_show_me": "Kò fi eléyìí hàn mi mọ́", + "domain_looks_up": "Awọn wiwa agbegbe", + "donation_link_details": "Iru awọn ẹya ọrọ ti o funni", + "dont_get_code": "Ṣé ẹ ti gba ọ̀rọ̀ ìdánimọ̀?", + "e_sign_consent": "Jẹ́rìí sí lórí ayélujára", + "edit": "Pààrọ̀", + "edit_backup_password": "Pààrọ̀ ọ̀rọ̀ aṣínà", + "edit_node": "Tun awọn ọwọnrin ṣiṣe", + "edit_token": "Ṣatunkọ àmi", + "electrum_address_disclaimer": "A dá àwọn àdírẹ́sì títun ní gbogbo àwọn ìgbà t'ẹ́ lo ó kan ṣùgbọ́n ẹ lè tẹ̀síwájú lo àwọn àdírẹ́sì tẹ́lẹ̀tẹ́lẹ̀.", + "email_address": "Àdírẹ́sì ímeèlì", + "enabled": "Wọ́n tíwọn ti tan", + "enter_amount": "Tẹ̀ iye", + "enter_backup_password": "Tẹ̀ ọ̀rọ̀ aṣínà ti ẹ̀dà ḿbí", + "enter_code": "Tẹ̀ ọ̀rọ̀", + "enter_seed_phrase": "Tẹ ọrọ-iru irugbin rẹ", + "enter_totp_code": "Jọwọ pọ koodu TOTP.", + "enter_your_note": "Tẹ̀ àkọsílẹ̀ yín", + "enter_your_pin": "Tẹ̀ òǹkà ìdánimọ̀ àdáni yín", + "enter_your_pin_again": "Tún òǹkà ìdánimọ̀ àdáni yín tẹ̀", + "enterTokenID": "Tẹ ID ami sii", + "enterWalletConnectURI": "Tẹ WalletConnect URI sii", + "error": "Àṣìṣe", + "error_dialog_content": "Àṣìṣe ti dé.\n\nẸ jọ̀wọ́, fi àkọsílẹ̀ àṣìṣe ránṣẹ́ sí ẹgbẹ́ ìranlọ́wọ́ wa kí áàpù wa bá túbọ̀ dára.", + "error_text_account_name": "Orúkọ àkáǹtì lè ni nìkan nínú ẹyọ ọ̀rọ̀ àti òǹkà\nGígun rẹ̀ kò gbọ́dọ̀ kéré ju oókan. Gígun rẹ̀ sì kò gbọ́dọ̀ tóbi ju márùndínlógún.", + "error_text_address": "Àdírẹ́sì àpamọ́wọ́ gbọ́dọ̀ báramu irú owó", + "error_text_amount": "Iye lè ni nìkan nínú àwọn òǹkà", + "error_text_contact_name": "Orúkọ olùbásọ̀rọ̀ kò lè ni nínú ` , ' \" ẹyọ ọ̀rọ̀.\nIye ẹyọ ọ̀rọ̀ kò gbọ́dọ̀ kéré ju oókan. Ó sì kò gbọ́dọ̀ tóbi ju méjìlélọ́gbọ̀n.", + "error_text_crypto_currency": "Iye díjíìtì léyìn ẹsẹ kò gbọ́dọ̀ tóbi ju eéjìlá.", + "error_text_fiat": "Iye àránṣẹ́ kò tóbi ju ìyókù owó.\nIye díjíìtì léyìn ẹsẹ kò gbọ́dọ̀ tóbi ju eéjì.", + "error_text_input_above_maximum_limit": "Iye jọwọ ni o yẹ diẹ ti o wọle diẹ", + "error_text_input_below_minimum_limit": "Iye jọwọ ni o kere ti o wọle diẹ", + "error_text_keys": "Àwọn kọ́kọ́rọ́ àpamọ́wọ́ gbọ́dọ̀ ní ẹyọ ọ̀rọ̀ mẹ́rinlélọ́gọ́ta lílà mẹ́rìndínlógún", + "error_text_limits_loading_failed": "A kò tí ì ṣe pàṣípààrọ̀ tí ${provider} nítorí a ti kùnà mú àwọn ààlà wá", + "error_text_maximum_limit": "A kò tí ì ṣe pàṣípààrọ̀ tí ${provider} nítorí iye tóbi ju ${min} ${currency}", + "error_text_minimal_limit": "A kò tí ì ṣe pàṣípààrọ̀ tí ${provider} nítorí iye kéré ju ${min} ${currency}", + "error_text_node_address": "Ẹ jọ̀wọ́ tẹ̀ àdírẹ́sì iPv4", + "error_text_node_port": "Ojú ìkànpọ̀ apẹka lè ni nìkan nínú òǹkà l'áàárín òdo àti márùn-úndínlógojí lé ní ẹ̀ẹ́dẹgbẹ̀ta lé ní ọ̀kẹ́ mẹ́ta lé ní ẹ̀ẹ́dẹ́gbàta", + "error_text_node_proxy_address": "Jọwọ tẹ :, fun apẹẹrẹ 127.0.0.1:9050", + "error_text_payment_id": "Iye ẹyọ ọ̀rọ̀ nínú àmì ìdánimọ̀ àránṣẹ́ gbọ́dọ̀ wà l'áàárín aárùndínlógún dé ẹẹ́rinlélọ́gọ́ta.", + "error_text_subaddress_name": "Orúkọ àdírẹ́sì tó rẹ̀lẹ̀ kò ni nínú àmì ` , ' \"\nIye ẹyọ ọ̀rọ̀ gbọ́dọ̀ wà láàárín oókan àti ogún", + "error_text_template": "Orúkọ àwòṣe àti àdírẹ́sì kò lè ni nínú àwọn àmì ` , ' \"\nIye ẹyọ ọ̀rọ̀ náà gbọ́dọ̀ jẹ́ láàárín 1 àti 106", + "error_text_wallet_name": "Orúkọ àpamọ́wọ́ lè ni nìkan nínú àwọn òǹkà àti ẹyọ ọ̀rọ̀ àti àmì _ -\nIye ẹyọ ọ̀rọ̀ gbọ́dọ̀ wà láàárín 1 àti 33", + "error_text_xmr": "Iye XMR kò lè tóbi ju ìyókù.\nIye díjíìtì léyìn ẹsẹ kò gbọ́dọ̀ tóbi ju eéjìlá.", "errorGettingCredentials": "Kuna: Aṣiṣe lakoko gbigba awọn iwe-ẹri", "errorSigningTransaction": "Aṣiṣe kan ti waye lakoko ti o fowo si iṣowo", - "pairingInvalidEvent": "Pipọpọ Iṣẹlẹ Ti ko tọ", - "chains": "Awọn ẹwọn", - "methods": "Awọn ọna", - "events": "Awọn iṣẹlẹ", - "reject": "Kọ", - "approve": "Fi ọwọ si", - "expiresOn": "Ipari lori", - "walletConnect": "Asopọmọra apamọwọ", - "nullURIError": "URI jẹ asan", - "connectWalletPrompt": "So apamọwọ rẹ pọ pẹlu WalletConnect lati ṣe awọn iṣowo", - "newConnection": "Tuntun Asopọ", - "activeConnectionsPrompt": "Awọn asopọ ti nṣiṣe lọwọ yoo han nibi", - "deleteConnectionConfirmationPrompt": "Ṣe o da ọ loju pe o fẹ paarẹ asopọ si", + "estimated": "Ó tó a fojú díwọ̀n", + "etherscan_history": "Etherscan itan", "event": "Iṣẹlẹ", - "successful": "Aseyori", - "wouoldLikeToConnect": "yoo fẹ lati sopọ", - "message": "Ifiranṣẹ", - "do_not_have_enough_gas_asset": "O ko ni to ${currency} lati ṣe idunadura kan pẹlu awọn ipo nẹtiwọki blockchain lọwọlọwọ. O nilo diẹ sii ${currency} lati san awọn owo nẹtiwọọki blockchain, paapaa ti o ba nfi dukia miiran ranṣẹ.", - "totp_auth_url": "TOTP AUTH URL", - "awaitDAppProcessing": "Fi inurere duro fun dApp lati pari sisẹ.", - "copyWalletConnectLink": "Daakọ ọna asopọ WalletConnect lati dApp ki o si lẹẹmọ nibi", - "enterWalletConnectURI": "Tẹ WalletConnect URI sii", - "seed_key": "Bọtini Ose", - "enter_seed_phrase": "Tẹ ọrọ-iru irugbin rẹ", - "change_rep_successful": "Ni ifijišẹ yipada aṣoju", - "add_contact": "Fi olubasọrọ kun", + "events": "Awọn iṣẹlẹ", + "exchange": "Pàṣípààrọ̀", + "exchange_incorrect_current_wallet_for_xmr": "T'ẹ́ bá fẹ́ pàṣípààrọ̀ XMR láti ìyókù owó Cake Wallet yín, ẹ jọ̀wọ́ kọ́kọ́ sún àpamọ́wọ́ Monero mọ́.", + "exchange_new_template": "Àwòṣe títun", "exchange_provider_unsupported": "${providerName} ko ni atilẹyin mọ!", - "domain_looks_up": "Awọn wiwa agbegbe", - "require_for_exchanges_to_external_wallets": "Beere fun awọn paṣipaarọ si awọn apamọwọ ita", - "camera_permission_is_required": "A nilo igbanilaaye kamẹra.\nJọwọ jeki o lati app eto.", - "switchToETHWallet": "Jọwọ yipada si apamọwọ Ethereum ki o tun gbiyanju lẹẹkansi", - "order_by": "Bere fun nipasẹ", - "creation_date": "Ọjọ ẹda", + "exchange_result_confirm": "T'ẹ́ bá tẹ̀ jẹ́rìí, ẹ máa fi ${fetchingLabel} ${from} ránṣẹ́ láti àpamọ́wọ́ yín t'á pe ${walletName} sí àdírẹ́sì t'ó ṣàfihàn òun lísàlẹ̀. Tàbí ẹ lè fi àpamọ́wọ́ mìíràn yín ránṣẹ́ sí àdírẹ́sì / àmì ìlujá lísàlẹ̀.\n\nẸ jọ̀wọ́ tẹ̀ jẹ́rìí́ tẹ̀síwájú tàbí padà sọ́dọ̀ pààrọ̀ iye náà.", + "exchange_result_description": "Ẹ gbọ́dọ̀ ránṣẹ́ iye owó tó pọ̀ jù ${fetchingLabel} ${from} sí àdírẹ́sì tó ṣàfihàn òun lójú tó ń bọ̀. T'ẹ́ bá fi iye tí kò pọ̀ jù ${fetchingLabel} ${from}, a kò lè pàṣípààrọ̀ ẹ̀. A sì kò lè dá a padà fún yín.", + "exchange_result_write_down_ID": "*Ẹ jọ̀wọ́, ṣẹ̀dà àmì ìdánimọ̀ yín tó ṣàfihàn òun lókè.", + "exchange_result_write_down_trade_id": "Ẹ jọ̀wọ́, kọ àmì ìdánimọ̀ pàṣípààrọ̀ sílẹ̀ kí tẹ̀síwájú.", + "exchange_sync_alert_content": "Ẹ jọ̀wọ́ dúró kí a ti múdọ́gba àpamọ́wọ́ yín", + "expired": "Kíkú", + "expires": "Ó parí", + "expiresOn": "Ipari lori", + "export_backup": "Sún ẹ̀dà nípamọ́ síta", + "extra_id": "Àmì ìdánimọ̀ tó fikún:", + "extracted_address_content": "Ẹ máa máa fi owó ránṣẹ́ sí\n${recipient_name}", + "failed_authentication": "Ìfẹ̀rílàdí pipòfo. ${state_error}", + "faq": "Àwọn ìbéèrè l'a máa ń bèèrè", + "fetching": "ń wá", + "fiat_api": "Ojú ètò áàpù owó tí ìjọba pàṣẹ wa lò", + "fiat_balance": "Fiat Iwontunws.funfun", + "field_required": "E ni lati se nkan si aye yi", + "fill_code": "Ẹ jọ̀wọ́ tẹ̀ ọ̀rọ̀ ìjẹ́rìísí t'á ti ránṣẹ́ sí ímeèlì yín.", + "filter_by": "Ṣẹ́ láti", + "first_wallet_text": "Àpamọ́wọ́ t'á fi Monero, Bitcoin, Ethereum, Litecoin, àti Haven pamọ́ wà pa", + "fixed_pair_not_supported": "A kì í ṣe k'á fi àwọn ilé pàṣípààrọ̀ yìí ṣe pàṣípààrọ̀ irú owó méji yìí", + "fixed_rate": "Iye t'á ṣẹ́ owó sí ò ní pààrọ̀", + "fixed_rate_alert": "Ẹ lè tẹ̀ iye owó tó ń bọ̀ tí iye t'a ṣẹ́ owó sí bá is checked. Ṣé ẹ fẹ́ sún ipò ti iye t'á ṣẹ́ owó sí ò ní pààrọ̀ mọ́?", + "forgot_password": "Ẹ ti gbàgbé ọ̀rọ̀ aṣínà", + "freeze": "Tì pa", + "frequently_asked_questions": "Àwọn ìbéèrè la máa ń béèrè", + "frozen": "Ó l'a tì pa", + "full_balance": "Ìyókù owó kíkún", + "generate_name": "Ṣẹda Orukọ", + "generating_gift_card": "À ń dá káàdì ìrajà t'á lò nínú irú kan ìtajà", + "get_a": "Gba ", + "get_card_note": " t'ẹ lè fikún owó ayélujára. Ẹ kò nílò ìṣofúnni àfikún!", + "get_your_yat": "Gba Yat yín", + "gift_card_amount": "owó ìyókù káàdì", + "gift_card_balance_note": "Àwọn káàdì ìrajà t'á lò nínú irú kan ìtajà tíwọn ṣì ní owó máa fihàn ḿbí", + "gift_card_is_generated": "A ti dá káàdí ìrajà t'á lò nínú irú kan ìtajà", + "gift_card_number": "Òǹkà káàdì ìrajì", + "gift_card_redeemed_note": "Àwọn káàdì ìrajà t'á lò nínú irú kan ìtajà t'ẹ́ ti lò máa fihàn ḿbí", + "gift_cards": "Àwọn káàdì ìrajà t'á lò nínú iye kan ìtajà", + "gift_cards_unavailable": "A lè fi Monero, Bitcoin, àti Litecoin nìkan ra káàdí ìrajà t'á lò nínú irú kan ìtajà lọ́wọ́lọ́wọ́", + "got_it": "Ó dáa", + "gross_balance": "Iwontunws.funfun apapọ", "group_by_type": "Ẹgbẹ nipasẹ Iru", - "importNFTs": "Gbe awọn NFT wọle", - "noNFTYet": "Ko si awọn NFT sibẹsibẹ", - "address": "Adirẹsi", - "enterTokenID": "Tẹ ID ami sii", - "tokenID": "ID", - "name": "Oruko", - "symbol": "Aami", - "seed_phrase_length": "Gigun gbolohun irugbin", - "unavailable_balance": "Iwontunwonsi ti ko si", - "unavailable_balance_description": "Iwontunws.funfun ti ko si: Lapapọ yii pẹlu awọn owo ti o wa ni titiipa ni awọn iṣowo isunmọ ati awọn ti o ti didi ni itara ninu awọn eto iṣakoso owo rẹ. Awọn iwọntunwọnsi titiipa yoo wa ni kete ti awọn iṣowo oniwun wọn ba ti pari, lakoko ti awọn iwọntunwọnsi tio tutunini ko ni iraye si fun awọn iṣowo titi iwọ o fi pinnu lati mu wọn kuro.", - "unspent_change": "Yipada", - "tor_connection": "Tor asopọ", - "setup_warning_2fa_text": "Iwọ yoo nilo lati mu pada apamọwọ rẹ lati inu irugbin mnemonic.\n\nAtilẹyin akara oyinbo kii yoo ni anfani lati ṣe iranlọwọ fun ọ ti o ba padanu iraye si 2FA tabi awọn irugbin mnemonic rẹ.\nAkara oyinbo 2FA jẹ ijẹrisi keji fun awọn iṣe kan ninu apamọwọ. Ṣaaju lilo akara oyinbo 2FA, a ṣeduro kika nipasẹ itọsọna naa.Ko ṣe aabo bi ibi ipamọ tutu.\n\nTi o ba padanu iraye si ohun elo 2FA tabi awọn bọtini TOTP, iwọ YOO padanu iraye si apamọwọ yii. ", - "scan_qr_on_device": "Ṣe ayẹwo koodu QR yii lori ẹrọ miiran", + "haven_app": "Haven latí ọwọ́ Cake Wallet", + "haven_app_wallet_text": "Àpamọ́wọ́ Haven wà pa", + "help": "ìranlọ́wọ́", + "hidden_balance": "Ìyókù owó dídé", + "hide_details": "Dé ìsọfúnni kékeré", + "high_contrast_theme": "Akori Iyatọ giga", + "home_screen_settings": "Awọn eto iboju ile", "how_to_use": "Bawo ni lati lo", + "how_to_use_card": "Báyìí ni wọ́n ṣe ń lo káàdì yìí.", + "id": "Àmì Ìdánimọ̀: ", + "ignor": "Ṣàìfiyèsí", + "import": "gbe wọle", + "importNFTs": "Gbe awọn NFT wọle", + "in_store": "A níyí", + "incoming": "Wọ́n tó ń bọ̀", + "incorrect_seed": "Ọ̀rọ̀ tí a tẹ̀ kì í ṣe èyí.", + "introducing_cake_pay": "Ẹ bá Cake Pay!", + "invalid_input": "Iṣawọle ti ko tọ", + "invoice_details": "Iru awọn ẹya ọrọ", + "is_percentage": "jẹ́", + "last_30_days": "Ọ̀jọ̀ mọ́gbọ̀n tó kọjà", + "learn_more": "Túbọ̀ kọ́", + "light_theme": "Funfun bí eérú", + "loading_your_wallet": "A ń ṣí àpamọ́wọ́ yín", + "login": "Orúkọ", + "logout": "Jáde", + "low_fee": "Owó àfikún kékeré", + "low_fee_alert": "Ẹ ń fi owó àfikún kékeré fún àwọn àránṣẹ́ yín lágbára. Eleyìí lè pẹ́ gba àránṣẹ́ yín. Ó sì lè dá àwọn iye mìíràn t'á ṣẹ́ owó sí. Ó sì lè pa àwọn pàṣípààrọ̀. A dábàá pé k'ẹ́ lo owó àfikún títobi láti ṣe àṣejèrè.", + "manage_nodes": "Ṣakoso awọn apa", + "manage_pow_nodes": "Ṣakoso awọn Nodes PoW", + "manage_yats": "Bójú Yats", + "mark_as_redeemed": "Fún orúkọ lílò", + "market_place": "Ọjà", + "matrix_green_dark_theme": "Matrix Green Dark Akori", + "max_amount": "kò tóbi ju: ${value}", + "max_value": "kò gbọ́dọ̀ tóbi ju ${value} ${currency}", + "memo": "Àkọsílẹ̀:", + "message": "Ifiranṣẹ", + "methods": "Awọn ọna", + "min_amount": "kò kéré ju: ${value}", + "min_value": "kò gbọ́dọ̀ kéré ju ${value} ${currency}", + "minutes_to_pin_code": "${minute} ìṣẹ́jú", + "mm": "Os", + "modify_2fa": "Fi iṣiro 2FA sii Cake", + "monero_com": "Monero.com latí ọwọ́ Cake Wallet", + "monero_com_wallet_text": "Àpamọ́wọ́ Monero wà pa", + "monero_dark_theme": "Monero Dudu Akori", + "monero_light_theme": "Monero Light Akori", + "moonpay_alert_text": "Iye owó kò gbọ́dọ̀ kéré ju ${minAmount} ${fiatCurrency}", + "more_options": "Ìyàn àfikún", + "name": "Oruko", + "narrow": "Taara", + "new_first_wallet_text": "Ni rọọrun jẹ ki o jẹ ki o jẹ ki o jẹ ki a mu", + "new_node_testing": "A ń dán apẹka títun wò", + "new_subaddress_create": "Ṣe é", + "new_subaddress_label_name": "Orúkọ", + "new_subaddress_title": "Àdírẹ́sì títun", + "new_template": "Àwòṣe títun", + "new_wallet": "Àpamọ́wọ́ títun", + "newConnection": "Tuntun Asopọ", + "no_id_needed": "Ẹ kò nílò àmì ìdánimọ̀!", + "no_id_required": "Ẹ kò nílò àmì ìdánimọ̀. Ẹ lè fikún owó àti san níbikíbi", + "no_relay_on_domain": "Ko si iṣipopada fun agbegbe olumulo tabi yiyi ko si. Jọwọ yan yii lati lo.", + "no_relays": "Ko si relays", + "no_relays_message": "A ri igbasilẹ Nostr NIP-05 fun olumulo yii, ṣugbọn ko ni eyikeyi awọn iṣipopada ninu. Jọwọ sọ fun olugba lati ṣafikun awọn isunmọ si igbasilẹ Nostr wọn.", + "node_address": "Àdírẹ́sì apẹka", + "node_connection_failed": "Ìkànpọ̀ ti kùnà", + "node_connection_successful": "Ìkànpọ̀ ti dára", + "node_new": "Apẹka títun", + "node_port": "Ojú ìkànpọ̀ apẹka", + "node_reset_settings_title": "Tún àwọn ààtò ṣe", + "node_test": "Dánwò", + "nodes": "Àwọn apẹka", + "nodes_list_reset_to_default_message": "Ṣé ó dá yín lójú pé ẹ fẹ́ yí àwọn ààtò padà?", + "none_of_selected_providers_can_exchange": "Àwọn ilé pàṣípààrọ̀ yíyàn kò lè ṣe pàṣípààrọ̀ yìí", + "noNFTYet": "Ko si awọn NFT sibẹsibẹ", + "normal": "Deede", + "note_optional": "Àkọsílẹ̀ (ìyàn nìyí)", + "note_tap_to_change": "Àkọsílẹ̀ (ẹ tẹ̀ láti pààrọ̀)", + "nullURIError": "URI jẹ asan", + "offer_expires_in": "Ìrònúdábàá máa gbẹ́mìí mì ní: ", + "offline": "kò wà lórí ayélujára", + "ok": "Ó dáa", + "onion_link": "Kọja ilọ alubosa", + "online": "Lórí ayélujára", + "onramper_option_description": "Ni kiakia Ra Crypto pẹlu ọpọlọpọ awọn ọna isanwo. Wa ni ọpọlọpọ awọn orilẹ-ede. Itankale ati awọn idiyele yatọ.", + "open_gift_card": "Ṣí káàdí ìrajà t'á lò nínú irú kan ìtajà", + "optional_description": "Ṣeto ẹru iye", + "optional_email_hint": "Ṣeto imọ-ẹrọ iye fun owo ti o gbọdọjọ", + "optional_name": "Ṣeto orukọ ti o ni", + "optionally_order_card": "Ẹ lè fi ìyàn bèèrè káàdì t'ara.", + "order_by": "Bere fun nipasẹ", + "order_id": "Àmì ìdánimọ̀ ti ìbéèrè", + "order_physical_card": "Bèèrè káàdì t'ara", + "other_settings": "Àwọn ààtò mìíràn", + "outdated_electrum_wallet_description": "Àwọn àpamọ́wọ́ títun Bitcoin ti a ti dá nínú Cake Wallet lọ́wọ́lọ́wọ́. Àwọn àpamọ́wọ́ títun t'á dá nínú Cake Wallet ni hóró tó ní ọ̀rọ̀ mẹ́rinlélógún. Ẹ gbọ́dọ̀ dá àpamọ́wọ́. Ẹ sì sún gbogbo owó yín sí àpamọ́wọ́ títun náà tó dá lórí ọ̀rọ̀ mẹ́rinlélógún. Ẹ sì gbọ́dọ̀ yé lo àwọn àpamọ́wọ́ tó dá lórí hóró tó ní ọ̀rọ̀ méjìlá. Ẹ jọ̀wọ́ ṣe èyí láìpẹ́ kí ẹ ba owó yín.", + "outdated_electrum_wallet_receive_warning": "Ẹ KÒ FI BITCOIN SÍ ÀPAMỌ́WỌ́ YÌÍ t'á ti dá a nínú Cake Wallet àti àpamọ́wọ́ yìí ni hóró ti ọ̀rọ̀ méjìlá. A lè pàdánù BTC t'á ránṣẹ́ sí àpamọ́wọ́ yìí. Ẹ dá àpamọ́wọ́ títun tó ni hóró tó ni ọ̀rọ̀ mẹ́rinlélógún (Ẹ tẹ àkọsílẹ̀ tó wa l’ókè l'ọ́tún nígbàna, ẹ sì yan àwọn àpamọ́wọ́ nígbàna, ẹ sì yan Dá Àpamọ́wọ́ Títun nígbàna, ẹ sì yan Bitcoin) àti sún Bitcoin yín síbẹ̀ ní sinsìn yẹn. Àwọn àpamọ́wọ́ títun (hóró ni ọ̀rọ̀ mẹ́rinlélógún) láti Cake Wallet wa láìléwu.", + "outgoing": "Wọ́n tó ń jáde", + "overwrite_amount": "Pààrọ̀ iye owó", + "pairingInvalidEvent": "Pipọpọ Iṣẹlẹ Ti ko tọ", + "password": "Ọ̀rọ̀ aṣínà", + "paste": "Fikún ẹ̀dà yín", + "pause_wallet_creation": "Agbara lati ṣẹda Haven Wallet ti wa ni idaduro lọwọlọwọ.", + "payment_id": "Àmì ìdánimọ̀ àránṣẹ́: ", + "payment_was_received": "Àránṣẹ́ yín ti dé.", + "pending": " pípẹ́", + "percentageOf": "láti ${amount}", + "pin_at_top": "pin ${tokini} ni oke", + "pin_is_incorrect": "òǹkà ìdánimọ̀ àdáni kò yẹ́", + "pin_number": "Òǹkà ìdánimọ̀ àdáni", + "placeholder_contacts": "A máa fihàn àwọn olùbásọ̀rọ̀ yín ḿbí", + "placeholder_transactions": "A máa fihàn àwọn àránṣẹ́ yín ḿbí", + "please_fill_totp": "Jọwọ bọ ti ẹrọ ti o wọle ni 8-digits ti o wa ni eto miiran re", + "please_make_selection": "Ẹ jọ̀wọ́, yàn dá àpamọ́wọ́ yín tàbí dá àpamọ́wọ́ yín padà n’ísàlẹ̀.", + "please_reference_document": "Ẹ jọ̀wọ́ fi àwọn àkọsílẹ̀ l’ábẹ́ túbọ̀ mọ ìsọfúnni.", + "please_select": "Ẹ jọ̀wọ́ yàn:", + "please_select_backup_file": "Ẹ jọ̀wọ́ yan àkọsílẹ̀ nípamọ́ àti tẹ̀ ọ̀rọ̀ aṣínà ti ẹ̀dà.", + "please_try_to_connect_to_another_node": "Ẹ jọ̀wọ́, gbìyànjú dárapọ̀ mọ́ apẹka mìíràn yí wọlé", + "please_wait": "Jọwọ saa", + "polygonscan_history": "PolygonScan itan", + "powered_by": "Láti ọwọ́ ${title}", + "pre_seed_button_text": "Mo ti gbọ́. O fi hóró mi hàn mi", + "pre_seed_description": "Ẹ máa wo àwọn ọ̀rọ̀ ${words} lórí ojú tó ń bọ̀. Èyí ni hóró aládàáni yín tó kì í jọra. Ẹ lè fi í nìkan dá àpamọ́wọ́ yín padà sípò tí àṣìṣe tàbí ìbàjẹ́ bá ṣẹlẹ̀. Hóró yín ni ẹ gbọ́dọ̀ kọ sílẹ̀ àti pamọ́ síbí tó kò léwu níta Cake Wallet.", + "pre_seed_title": "Ó TI ṢE PÀTÀKÌ", + "prevent_screenshots": "Pese asapọ ti awọn ẹrọ eto aṣa", + "privacy": "Ìdáwà", + "privacy_policy": "Òfin Aládàáni", + "privacy_settings": "Ààtò àdáni", + "private_key": "Kọ́kọ́rọ́ àdáni", + "proceed_after_one_minute": "Tí aṣàfihàn kò bá tẹ̀síwájú l'áàárín ìṣẹ́jú kan, ẹ tọ́ ímeèlì yín wò.", + "profile": "profaili", + "provider_error": "Àṣìṣe ${provider}", + "public_key": "Kọ́kọ́rọ́ tó kò àdáni", + "purchase_gift_card": "Ra káàdì ìrajà t'á lò nínú irú kan ìtajà", + "qr_fullscreen": "Àmì ìlujá túbọ̀ máa tóbi tí o bá tẹ̀", + "qr_payment_amount": "Iye owó t'á ránṣé wà nínú àmì ìlujá yìí. Ṣé ẹ fẹ́ pààrọ̀ ẹ̀?", + "question_to_disable_2fa": "Ṣe o wa daadaa pe o fẹ ko 2FA Cake? Ko si itumọ ti a yoo nilo lati ranse si iwe iwe naa ati eyikeyi iṣẹ ti o ni.", + "receivable_balance": "Iwontunws.funfun ti o gba", + "receive": "Gbà", + "receive_amount": "Iye", + "received": "Owó t'á ti gbà", + "recipient_address": "Àdírẹ́sì olùgbà", + "reconnect": "Ṣe àtúnse", + "reconnect_alert_text": "Ṣó dá ẹ lójú pé ẹ fẹ́ ṣe àtúnse?", + "reconnection": "Àtúnṣe", + "redeemed": "Ó lílò", + "refund_address": "Àdírẹ́sì t'ẹ́ gba owó sí", + "reject": "Kọ", + "remaining": "ìyókù", + "remove": "Yọ ọ́ kúrò", + "remove_node": "Yọ apẹka kúrò", + "remove_node_message": "Ṣé ó da yín lójú pé ẹ fẹ́ yọ apẹka lọwọ́ kúrò?", + "rename": "Pààrọ̀ orúkọ", + "require_for_adding_contacts": "Beere fun fifi awọn olubasọrọ kun", + "require_for_all_security_and_backup_settings": "Beere fun gbogbo aabo ati awọn eto afẹyinti", + "require_for_assessing_wallet": "Beere fun wiwọle si apamọwọ", + "require_for_creating_new_wallets": "Beere fun ṣiṣẹda titun Woleti", + "require_for_exchanges_to_external_wallets": "Beere fun awọn paṣipaarọ si awọn apamọwọ ita", + "require_for_exchanges_to_internal_wallets": "Beere fun awọn paṣipaarọ si awọn apamọwọ inu", + "require_for_sends_to_contacts": "Beere fun fifiranṣẹ si awọn olubasọrọ", + "require_for_sends_to_internal_wallets": "Beere fun fifiranṣẹ si awọn apamọwọ inu", + "require_for_sends_to_non_contacts": "Beere fun fifiranṣẹ si awọn ti kii ṣe awọn olubasọrọ", + "require_pin_after": "Ẹ nílò òǹkà ìdánimọ̀ àdáni láàárín", + "rescan": "Tún Wá", + "resend_code": "Ẹ jọ̀wọ́ tún un ránṣé", + "reset": "Tún ṣe", + "reset_password": "Tún ọ̀rọ̀ aṣínà ṣe", + "restore_active_seed": "Hóró lọ́wọ́", + "restore_address": "Àdírẹ́sì", + "restore_bitcoin_description_from_keys": "Mú àpamọ́wọ́ yín padà láti ọ̀rọ̀ WIF t'á ti dá láti kọ́kọ́rọ́ àdáni yín", + "restore_bitcoin_description_from_seed": "Mú àpamọ́wọ́ yín padà láti àkànpọ̀ ọlọ́rọ̀ ẹ̀ẹ̀mẹrinlélógun", + "restore_bitcoin_title_from_keys": "Mú padà láti WIF", + "restore_description_from_backup": "Ẹ lè fi ẹ̀dà nípamọ́ yín mú odindi Cake Wallet áàpù padà.", + "restore_description_from_keys": "Mú àpamọ́wọ́ yín padà láti àwọn àtẹ̀ nípamọ́ láti àwọn kọ́kọ́rọ́ àdáni yín", + "restore_description_from_seed": "Ẹ mú àpamọ́wọ́ yín padà láti àkànpọ̀ ọlọ́rọ̀ ẹ̀ẹ̀marùndínlọgbọ̀n tàbí ti mẹ́talá.", + "restore_description_from_seed_keys": "Mú àpamọ́wọ́ yín padà láti hóró/kọ́kọ́rọ́ t'ẹ́ ti pamọ́ sí ibi láìléwu", + "restore_from_date_or_blockheight": "Ẹ jọ̀wọ́, tẹ̀ ìgbà ọjọ́ díẹ̀ k'ẹ́ tó ti dá àpamọ́wọ́ yìí. Tàbí ẹ lè tẹ̀ ẹ́ t'ẹ́ bá mọ gíga àkójọpọ̀.", + "restore_from_seed_placeholder": "Ẹ jọ̀wọ́ tẹ̀ hóró yín tàbí fikún ẹ̀dà hóró ḿbí.", + "restore_new_seed": "Hóró títun", + "restore_next": "Tẹ̀síwájú", + "restore_recover": "Mú padà", + "restore_restore_wallet": "Mú àpamọ́wọ́ padà", + "restore_seed_keys_restore": "Mú hóró/kọ́kọ́rọ́ padà", + "restore_spend_key_private": "kọ́kọ́rọ́ àdáni fún níná", + "restore_title_from_backup": "Fi ẹ̀dà nípamọ́ mú padà", + "restore_title_from_keys": "Fi kọ́kọ́rọ́ ṣẹ̀dá", + "restore_title_from_seed": "Fi hóró mú padà", + "restore_title_from_seed_keys": "Fi hóró/kọ́kọ́rọ́ mú padà", + "restore_view_key_private": "kọ́kọ́rọ́ ìrán àdáni", + "restore_wallet": "Mú àpamọ́wọ́ padà", + "restore_wallet_name": "Orúkọ àpamọ́wọ́", + "restore_wallet_restore_description": "Ìṣapẹrẹ mú àpamọ́wọ́ padà", + "router_no_route": "Ọ̀nà kò sí fún ${name}", + "save": "Pamọ́", + "save_backup_password": "Ẹ jọ̀wọ́ dájú pé ẹ ti pamọ́ ọ̀rọ̀ aṣínà ti ẹ̀dà nípamọ́ yín. Ti ẹ kò bá ni í, ẹ kò lè ṣí àwọn àkọsílẹ̀ nípamọ́ yín.", + "save_backup_password_alert": "Pamọ́ ọ̀rọ̀ aṣínà ti ẹ̀dà", + "save_to_downloads": "Fipamọ si Awọn igbasilẹ", + "saved_the_trade_id": "Mo ti pamọ́ àmì ìdánimọ̀ pàṣípààrọ̀", + "scan_qr_code": "Yan QR koodu", + "scan_qr_on_device": "Ṣe ayẹwo koodu QR yii lori ẹrọ miiran", + "search": "Wá", + "search_add_token": "Wa / Fi àmi kun", + "search_category": "Wá nínú ẹgbẹ́", + "search_currency": "Wá irú owó", + "search_language": "Wá èdè", + "second_intro_content": "Àdírẹ́sì kan tó dá lórí emójì tó kì í jọra ni Yat yín. Ó rọ́pò gbogbo àwọn àdírẹ́sì gígùn yín tó dá lórí ìlà mẹ́rìndínlógún ti gbogbo àwọn iye owó yín.", + "second_intro_title": "Àdírẹ́sì kan t'á dá láti emójì tó pàṣẹ gbogbo ohun wà", + "security_and_backup": "Ìṣọ́ àti ẹ̀dà nípamọ́", + "seed_alert_back": "Padà sọ́dọ̀", + "seed_alert_content": "Hóró ni ọ̀nà nìkan kí ṣẹ̀dà àpamọ́wọ́ yín. Ṣé ẹ ti kọ ọ́ sílẹ̀?", + "seed_alert_title": "Ẹ wo", + "seed_alert_yes": "Mo ti kọ ọ́", + "seed_choose": "Yan èdè hóró", "seed_hex_form": "Irú Opamọwọ apamọwọ (HOX)", + "seed_key": "Bọtini Ose", + "seed_language": "Ewu ọmọ", + "seed_language_chinese": "Èdè Ṣáínà", + "seed_language_chinese_traditional": "Kannada (ibile)", + "seed_language_czech": "Czech", + "seed_language_dutch": "Èdè Nẹ́dálaǹdì", + "seed_language_english": "Èdè Gẹ̀ẹ́sì", + "seed_language_french": "Èdè Fránsì", + "seed_language_german": "Èdè Jámánì", + "seed_language_italian": "Èdè Itálíà", + "seed_language_japanese": "Èdè Jẹ́páànì", + "seed_language_korean": "Ara ẹni", + "seed_language_next": "Tẹ̀síwájú", + "seed_language_portuguese": "Èdè Potogí", + "seed_language_russian": "Èdè Rọ́síà", + "seed_language_spanish": "Èdè Sípéènì", + "seed_phrase_length": "Gigun gbolohun irugbin", + "seed_reminder": "Ẹ jọ̀wọ́, kọ wọnyí sílẹ̀ k'ẹ́ tó pàdánù ẹ̀rọ ìbánisọ̀rọ̀ yín", + "seed_share": "Pín hóró", + "seed_title": "Hóró", "seedtype": "Irugbin-seetypu", "seedtype_legacy": "Legacy (awọn ọrọ 25)", "seedtype_polyseed": "Polyseed (awọn ọrọ 16)", - "seed_language_czech": "Czech", - "seed_language_korean": "Ara ẹni", - "seed_language_chinese_traditional": "Kannada (ibile)", - "ascending": "Goke", - "descending": "Sọkalẹ", - "dfx_option_description": "Ra crypto pẹlu EUR & CHF. Titi di 990 € laisi afikun KYC. Fun soobu ati awọn onibara ile-iṣẹ ni Yuroopu", - "polygonscan_history": "PolygonScan itan", - "wallet_seed_legacy": "Irugbin akole", - "default_sell_provider": "Aiyipada Olupese Tita", + "select_backup_file": "Select backup file", + "select_buy_provider_notice": "Yan olupese Ra loke. O le skii iboju yii nipa ṣiṣeto olupese rẹ ni awọn eto App.", + "select_destination": "Jọwọ yan ibi ti o nlo fun faili afẹyinti.", "select_sell_provider_notice": "Yan olupese ti o ta loke. O le foju iboju yii nipa tito olupese iṣẹ tita aiyipada rẹ ni awọn eto app.", - "custom_drag": "Aṣa (mu ati fa)", + "sell": "Tà", + "sell_alert_content": "Lọwọlọwọ a ṣe atilẹyin tita Bitcoin, Ethereum ati Litecoin nikan. Jọwọ ṣẹda tabi yipada si Bitcoin, Ethereum tabi apamọwọ Litecoin rẹ.", + "sell_monero_com_alert_content": "Kọ ju lọwọ Monero ko ṣe ni ibamu", + "send": "Ránṣẹ́", + "send_address": "${cryptoCurrency} àdírẹ́sì", + "send_amount": "Iye:", + "send_creating_transaction": "Ńṣe àránṣẹ́", + "send_error_currency": "Ó yẹ kí òǹkà dá wà nínu iye", + "send_error_minimum_value": "Ránṣẹ́ owó kò kéré dé 0.01", + "send_estimated_fee": "Iye àfikún l'a fojú díwọ̀n:", + "send_fee": "Owó àfikún:", + "send_name": "Orúkọ", + "send_new": "Títun", + "send_payment_id": "Àmì ìdánimọ̀ àránṣẹ́ (ìyàn nìyí)", + "send_priority": "${transactionPriority} agbára ni owó àfikún lọ́wọ́lọ́wọ́.\nẸ lè pààrọ̀ iye agbára t'ẹ fikún àránṣẹ́ lórí àwọn ààtò", + "send_sending": "Ń Ránṣẹ́...", + "send_success": "A ti ránṣẹ́ ${crypto} yín dáadáa", + "send_templates": "Àwọn àwòṣe", + "send_title": "Ránṣẹ́", + "send_to_this_address": "Ẹ fi ${currency} ${tag}ránṣẹ́ sí àdírẹ́sì yìí", + "send_xmr": "Fi XMR ránṣẹ́", + "send_your_wallet": "Àpamọ́wọ́ yín", + "sending": "Ó ń ránṣẹ́", + "sent": "Owó t'á ti ránṣẹ́", + "settings": "Awọn aseṣe", + "settings_all": "Gbogbo", + "settings_allow_biometrical_authentication": "Fi àyè gba ìfẹ̀rílàdí biometrical", + "settings_can_be_changed_later": "Ẹ lè pààrọ̀ àwọn ààtò yìí nínú ààtò áàpù t’ó bá yá", + "settings_change_language": "Pààrọ̀ èdè", + "settings_change_pin": "Pààrọ̀ òǹkà ìdánimọ̀ àdáni", + "settings_currency": "Iye owó", + "settings_current_node": "Apẹka lọ́wọ́lọ́wó", + "settings_dark_mode": "Ṣókùnkùn Áápù", + "settings_display_balance": "Ṣàfihàn ìyókù owó", + "settings_display_on_dashboard_list": "Ṣàfihàn lórí àkọsílẹ̀ tá fihàn", + "settings_fee_priority": "Bí iye àfikún ṣe ṣe pàtàkì", + "settings_nodes": "Àwọn apẹka", + "settings_none": "Kòsóhun", + "settings_only_trades": "Àwọn pàṣípààrọ̀ nìkan", + "settings_only_transactions": "Àwọn àránṣẹ́ nìkan", + "settings_personal": "Àdáni", + "settings_save_recipient_address": "Pamọ́ àdírẹ́sì olùgbà", + "settings_support": "Ìranlọ́wọ́", + "settings_terms_and_conditions": "Àwọn Òfin àti àwọn Àjọrò", + "settings_title": "Àwọn ààtò", + "settings_trades": "Àwọn pàṣípààrọ̀", + "settings_transactions": "Àwọn àránṣẹ́", + "settings_wallets": "Àwọn àpamọ́wọ́", + "setup_2fa": "Ṣeto Cake 2FA", + "setup_2fa_text": "Akara oyinbo 2FA ṣiṣẹ ni lilo TOTP bi ifosiwewe ijẹrisi keji.\n\nAkara oyinbo 2FA's TOTP nilo SHA-512 ati atilẹyin oni-nọmba 8; eyi pese aabo ti o pọ sii. Alaye diẹ sii ati awọn ohun elo atilẹyin ni a le rii ninu itọsọna naa.", + "setup_pin": "Setup òǹkà ìdánimọ̀ àdáni", + "setup_successful": "Òǹkà ìdánimọ̀ àdáni yín ti ṣe!", + "setup_totp_recommended": "Ṣeto TOTP", + "setup_warning_2fa_text": "Iwọ yoo nilo lati mu pada apamọwọ rẹ lati inu irugbin mnemonic.\n\nAtilẹyin akara oyinbo kii yoo ni anfani lati ṣe iranlọwọ fun ọ ti o ba padanu iraye si 2FA tabi awọn irugbin mnemonic rẹ.\nAkara oyinbo 2FA jẹ ijẹrisi keji fun awọn iṣe kan ninu apamọwọ. Ṣaaju lilo akara oyinbo 2FA, a ṣeduro kika nipasẹ itọsọna naa.Ko ṣe aabo bi ibi ipamọ tutu.\n\nTi o ba padanu iraye si ohun elo 2FA tabi awọn bọtini TOTP, iwọ YOO padanu iraye si apamọwọ yii. ", + "setup_your_debit_card": "Dá àwọn káàdì ìrajà yín", + "share": "Pinpin", + "share_address": "Pín àdírẹ́sì", + "show_details": "Fi ìsọfúnni kékeré hàn", + "show_keys": "Wo hóró / àwọn kọ́kọ́rọ́", + "show_market_place": "Wa Sopọ Pataki", + "show_seed": "Wo hóró", + "sign_up": "Forúkọ sílẹ̀", + "signTransaction": "Wole Idunadura", + "signup_for_card_accept_terms": "Ẹ f'orúkọ sílẹ̀ láti gba káàdì àti àjọrò.", + "slidable": "Slidable", + "sort_by": "Sa pelu", + "spend_key_private": "Kọ́kọ́rọ́ sísan (àdáni)", + "spend_key_public": "Kọ́kọ́rọ́ sísan (kò àdáni)", + "status": "Tó ń ṣẹlẹ̀: ", + "subaddress_title": "Àkọsílẹ̀ ni nínú àwọn àdírẹ́sì tíwọn rẹ̀lẹ̀", + "subaddresses": "Àwọn àdírẹ́sì kékeré", + "submit_request": "Ṣé ìbéèrè", + "successful": "Aseyori", + "support_description_guides": "Iwe ati atilẹyin fun awọn ọran ti o wọpọ", + "support_description_live_chat": "Free ati sare! Ti oṣiṣẹ awọn aṣoju wa lati ṣe iranlọwọ", + "support_description_other_links": "Darapọ mọ awọn agbegbe wa tabi de wa awọn alabaṣepọ wa nipasẹ awọn ọna miiran", + "support_title_guides": "Akara oyinbo Awọn Itọsọna Awọki oyinbo", + "support_title_live_chat": "Atilẹyin ifiwe", + "support_title_other_links": "Awọn ọna asopọ atilẹyin miiran", + "sweeping_wallet": "Fi owo iwe iwe wofo", + "sweeping_wallet_alert": "Yio kọja pada si ikan yii. Kì yoo daadaa leede yii tabi owo ti o ti fi se iwe iwe naa yoo gbe.", + "switchToETHWallet": "Jọwọ yipada si apamọwọ Ethereum ki o tun gbiyanju lẹẹkansi", "switchToEVMCompatibleWallet": "Jọwọ yipada si apamọwọ ibaramu EVM ki o tun gbiyanju lẹẹkansi (Ethereum, Polygon)", - "receivable_balance": "Iwontunws.funfun ti o gba", - "confirmed_tx": "Jẹrisi", + "symbol": "Aami", + "sync_status_attempting_sync": "Ń GBÌYÀNJÚ MÚDỌ́GBA", + "sync_status_connected": "TI DÁRAPỌ̀ MỌ́", + "sync_status_connecting": "Ń DÁRAPỌ̀ MỌ́", + "sync_status_failed_connect": "ÌKÀNPỌ̀ TI KÚ", + "sync_status_not_connected": "KÒ TI DÁRAPỌ̀ MỌ́ Ọ", + "sync_status_starting_sync": "Ń BẸ̀RẸ̀ RẸ́", + "sync_status_syncronized": "TI MÚDỌ́GBA", + "sync_status_syncronizing": "Ń MÚDỌ́GBA", + "syncing_wallet_alert_content": "Iwontunws.funfun rẹ ati atokọ idunadura le ma pari titi ti yoo fi sọ “SYNCHRONIZED” ni oke. Tẹ/tẹ ni kia kia lati ni imọ siwaju sii.", + "syncing_wallet_alert_title": "Apamọwọ rẹ n muṣiṣẹpọ", + "template": "Àwòṣe", + "template_name": "Orukọ Awoṣe", + "third_intro_content": "A sì lè lo Yats níta Cake Wallet. A lè rọ́pò Àdírẹ́sì kankan àpamọ́wọ́ fún Yat!", + "third_intro_title": "Àlàáfíà ni Yat àti àwọn ìmíìn jọ wà", + "time": "${minutes}ìṣj ${seconds}ìṣs", + "tip": "Owó àfikún:", + "today": "Lénìí", + "token_contract_address": "Àmi guide adirẹsi", + "token_decimal": "Àmi eleemewa", + "token_name": "Orukọ àmi fun apẹẹrẹ: Tether", + "token_symbol": "Aami aami fun apẹẹrẹ: USDT", + "tokenID": "ID", + "tor_connection": "Tor asopọ", + "tor_only": "Tor nìkan", + "total_saving": "Owó t'ẹ́ ti pamọ́", + "totp_2fa_failure": "Koodu ti o daju ko ri. Jọwọ jẹ koodu miiran tabi ṣiṣẹ iwe kiakia. Lo fun 2FA eto ti o ba ṣe ni jẹ 2FA ti o gba idaniloju 8-digits ati SHA512.", + "totp_2fa_success": "Pelu ogo! Cake 2FA ti fi sii lori iwe iwe yii. Tọ, mọ iye ẹrọ miiran akojọrọ jẹki o kọ ipin eto.", + "totp_auth_url": "TOTP AUTH URL", + "totp_code": "Koodu TOTP", + "totp_secret_code": "Koodu iye TOTP", + "totp_verification_success": "Ìbẹrẹ dọkita!", + "trade_details_copied": "Ti ṣeda ${title} sí àtẹ àkọsílẹ̀", + "trade_details_created_at": "Ṣíṣe ní", + "trade_details_fetching": "Ń mú wá", + "trade_details_id": "Àmì ìdánimọ̀:", + "trade_details_pair": "Àwọn irú owó t'á pàṣípààrọ̀ jọ", + "trade_details_provider": "Ilé pàṣípààrọ̀", + "trade_details_state": "Tó ń ṣẹlẹ̀", + "trade_details_title": "Ìsọfúnni pàṣípààrọ̀", + "trade_for_not_created": "A kò tí ì ṣe pàṣípààrọ̀ ${title}", + "trade_history_title": "Ìtan pàṣípààrọ̀", + "trade_id": "Pàṣípààrọ̀ àmì ìdánimọ̀:", + "trade_id_not_found": "Trade ${tradeId} ti a ko ba ri ninu ${title}.", + "trade_is_powered_by": "${provider} ń fikún pàṣípààrọ̀ yìí lágbára", + "trade_not_created": "A kò tí ì ṣe pàṣípààrọ̀ náà", + "trade_not_found": "A kò tí ì wá pàṣípààrọ̀.", + "trade_state_btc_sent": "Ti san BTC", + "trade_state_complete": "Ti ṣetán", + "trade_state_confirming": "Ń jẹ́rìí", + "trade_state_created": "Ti ṣe", + "trade_state_finished": "Ti ṣetán", + "trade_state_paid": "Ti san", + "trade_state_paid_unconfirmed": "Ti san. A kò tíì jẹ́rìí ẹ̀", + "trade_state_pending": "Pípẹ́", + "trade_state_timeout": "Ti gbẹ́mìí mì", + "trade_state_to_be_created": "Máa ṣe", + "trade_state_traded": "Ti ṣe pàṣípààrọ̀", + "trade_state_trading": "Ń ṣe pàṣípààrọ̀", + "trade_state_underpaid": "Ti san iye tó kéré jù", + "trade_state_unpaid": "Kò tíì san", + "trades": "Àwọn pàṣípààrọ̀", + "transaction_details_amount": "Iye owó", + "transaction_details_copied": "A ṣeda ${title} sí àkọsílẹ̀", + "transaction_details_date": "Ìgbà", + "transaction_details_fee": "Iye àfikún", + "transaction_details_height": "Gíga", + "transaction_details_recipient_address": "Àwọn àdírẹ́sì olùgbà", "transaction_details_source_address": "Adirẹsi orisun", - "pause_wallet_creation": "Agbara lati ṣẹda Haven Wallet ti wa ni idaduro lọwọlọwọ.", - "contractName": "Orukọ adehun", - "contractSymbol": "Aami adehun", - "description": "Apejuwe", - "camera_consent": "Kamẹra rẹ yoo ṣee lo lati ya aworan kan fun awọn idi idanimọ nipasẹ ${provider}. Jọwọ ṣayẹwo Ilana Aṣiri wọn fun awọn alaye.", - "no_relays": "Ko si relays", - "choose_relay": "Jọwọ yan yii lati lo", - "no_relays_message": "A ri igbasilẹ Nostr NIP-05 fun olumulo yii, ṣugbọn ko ni eyikeyi awọn iṣipopada ninu. Jọwọ sọ fun olugba lati ṣafikun awọn isunmọ si igbasilẹ Nostr wọn.", - "no_relay_on_domain": "Ko si iṣipopada fun agbegbe olumulo tabi yiyi ko si. Jọwọ yan yii lati lo." -} + "transaction_details_title": "Àránṣẹ́ ìsọfúnni", + "transaction_details_transaction_id": "Àmì ìdánimọ̀ àránṣẹ́", + "transaction_key": "Kọ́kọ́rọ́ pàṣípààrọ̀", + "transaction_priority_fast": "Yára", + "transaction_priority_fastest": "Yá jù lọ", + "transaction_priority_medium": "L’áàárín", + "transaction_priority_regular": "Àjùmọ̀lò", + "transaction_priority_slow": "Díẹ̀", + "transaction_sent": "Ẹ ti ránṣẹ́ ẹ̀!", + "transaction_sent_notice": "Tí aṣàfihàn kò bá tẹ̀síwájú l'áàárín ìṣẹ́jú kan, ẹ tọ́ olùṣèwádìí àkójọpọ̀ àti ímeèlì yín wò.", + "transactions": "Àwọn àránṣẹ́", + "transactions_by_date": "Àwọn àránṣẹ́ t'á ti fi aago ṣa", + "trusted": "A ti fọkàn ẹ̀ tán", + "unavailable_balance": "Iwontunwonsi ti ko si", + "unavailable_balance_description": "Iwontunws.funfun ti ko si: Lapapọ yii pẹlu awọn owo ti o wa ni titiipa ni awọn iṣowo isunmọ ati awọn ti o ti didi ni itara ninu awọn eto iṣakoso owo rẹ. Awọn iwọntunwọnsi titiipa yoo wa ni kete ti awọn iṣowo oniwun wọn ba ti pari, lakoko ti awọn iwọntunwọnsi tio tutunini ko ni iraye si fun awọn iṣowo titi iwọ o fi pinnu lati mu wọn kuro.", + "unconfirmed": "A kò tí ì jẹ́rìí ẹ̀", + "understand": "Ó ye mi", + "unmatched_currencies": "Irú owó ti àpamọ́wọ́ yín kì í ṣe irú ti yíya àmì ìlujá", + "unspent_change": "Yipada", + "unspent_coins_details_title": "Àwọn owó ẹyọ t'á kò tí ì san", + "unspent_coins_title": "Àwọn owó ẹyọ t'á kò tí ì san", + "unsupported_asset": "A ko ṣe atilẹyin iṣẹ yii fun dukia yii. Jọwọ ṣẹda tabi yipada si apamọwọ iru dukia atilẹyin.", + "upto": "kò tóbi ju ${value}", + "use": "Lo", + "use_card_info_three": "Ẹ lo káàdí ayélujára lórí wẹ́ẹ̀bù tàbí ẹ lò ó lórí àwọn ẹ̀rọ̀ ìrajà tíwọn kò kò.", + "use_card_info_two": "A pààrọ̀ owó sí owó Amẹ́ríkà tó bá wà nínú àkanti t'á ti fikún tẹ́lẹ̀tẹ́lẹ̀. A kò kó owó náà nínú owó ayélujára.", + "use_ssl": "Lo SSL", + "use_suggested": "Lo àbá", + "variable_pair_not_supported": "A kì í ṣe k'á fi àwọn ilé pàṣípààrọ̀ yìí ṣe pàṣípààrọ̀ irú owó méji yìí", + "verification": "Ìjẹ́rìísí", + "verify_with_2fa": "Ṣeẹda pẹlu Cake 2FA", + "version": "Àtúnse ${currentVersion}", + "view_all": "Wo gbogbo nǹkan kan", + "view_in_block_explorer": "Wo lórí olùṣèwádìí àkójọpọ̀", + "view_key_private": "Kọ́kọ́rọ́ ìwò (àdáni)", + "view_key_public": "Kọ́kọ́rọ́ ìwò (kò àdáni)", + "view_transaction_on": "Wo pàṣípààrọ̀ lórí ", + "wallet_keys": "Hóró/kọ́kọ́rọ́ àpamọ́wọ́", + "wallet_list_create_new_wallet": "Ṣe àpamọ́wọ́ títun", + "wallet_list_edit_wallet": "Ṣatunkọ apamọwọ", + "wallet_list_failed_to_load": "Ti kùnà ṣí́ àpamọ́wọ́ ${wallet_name}. ${error}", + "wallet_list_failed_to_remove": "Ti kùnà yọ ${wallet_name} àpamọ́wọ́ kúrò. ${error}", + "wallet_list_load_wallet": "Load àpamọ́wọ́", + "wallet_list_loading_wallet": "Ń ṣí àpamọ́wọ́ ${wallet_name}", + "wallet_list_removing_wallet": "Ń yọ àpamọ́wọ́ ${wallet_name} kúrò", + "wallet_list_restore_wallet": "Restore àpamọ́wọ́", + "wallet_list_title": "Àpamọ́wọ́ Monero", + "wallet_list_wallet_name": "Orukọ apamọwọ", + "wallet_menu": "Mẹ́nù", + "wallet_name": "Orúkọ àpamọ́wọ́", + "wallet_name_exists": "Ẹ ti ní àpamọ́wọ́ pẹ̀lú orúkọ̀ yẹn. Ẹ jọ̀wọ́ yàn orúkọ̀ tó yàtọ̀ tàbí pààrọ̀ orúkọ ti àpamọ́wọ́ tẹ́lẹ̀.", + "wallet_restoration_store_incorrect_seed_length": "Gígùn hóró tí a máa ń lò kọ́ ni èyí", + "wallet_seed": "Hóró àpamọ́wọ́", + "wallet_seed_legacy": "Irugbin akole", + "wallet_store_monero_wallet": "Àpamọ́wọ́ Monero", + "walletConnect": "Asopọmọra apamọwọ", + "wallets": "Àwọn àpamọ́wọ́", + "warning": "Ikilo", + "welcome": "Ẹ káàbọ sí", + "welcome_to_cakepay": "Ẹ káàbọ̀ sí Cake Pay!", + "widgets_address": "Àdírẹ́sì", + "widgets_or": "tàbí", + "widgets_restore_from_blockheight": "Dá padà sípò láti gíga àkójọpọ̀", + "widgets_restore_from_date": "Dá padà sípò láti ìgbà", + "widgets_seed": "Hóró", + "wouoldLikeToConnect": "yoo fẹ lati sopọ", + "write_down_backup_password": "Ẹ jọ̀wọ́ ẹ̀dà ọ̀rọ̀ aṣínà ti ẹ̀dà nípamọ́ yín tó máa ń bá yín ṣí àkọsílẹ̀ yín l'ẹ kọ sílẹ̀.", + "xlm_extra_info": "Ẹ jọ̀wọ́ ẹ kò gbàgbé pèsè àmì ìdánimọ̀ àkọsílẹ̀ t'ẹ́ ń bá ránṣẹ́ pàṣípààrọ̀ ti XLM yín sí ilé ìfowóṣòwò", + "xmr_available_balance": "Owó tó wà ḿbí", + "xmr_full_balance": "Ìyókù owó", + "xmr_hidden": "Bìbò", + "xrp_extra_info": "Ẹ jọ̀wọ́ ẹ kò gbàgbé pèsè orúkọ̀ àdírẹ́sì ti a ránṣẹ́ sí t'ẹ́ bá ránṣẹ pàṣípààrọ̀ ti XRP yín sílé ìfowóṣòwò", + "yat": "Yat", + "yat_address": "Àdírẹ́sì Yat", + "yat_alert_content": "Àwọn olùṣàmúlò ti Cake Wallet lè fi orúkọ olùṣàmúlò t'á dá lórí emójì tó kì í jọra ránṣẹ́ àti gba gbogbo àwọn irú owó tíwọn yàn láàyò lọ́wọ́lọ́wọ́.", + "yat_alert_title": "Lílò Yat láti ránṣẹ́ àti gba owó dùn ṣe pọ̀ ju lọ", + "yat_error": "Àṣìṣe Yat", + "yat_error_content": "Kò sí àdírẹ́sìkádírẹ́sì tó so Yat yìí. Ẹ gbìyànjú Yat mìíràn", + "yat_popup_content": "Ẹ lè fi Yat yín (orúkọ olùṣàmúlò kúkurú t'á dá lórí emójì) ránṣẹ́ àti gba owó nínú Cake Wallet lọ́wọ́lọ́wọ́. Bójú Yats lórí ojú ààtò lígbàkúgbà.", + "yat_popup_title": "Ẹ lè dá àpamọ́wọ́ yín láti emójì.", + "yesterday": "Lánàá", + "you_now_have_debit_card": "Ẹ ni káàdì ìrajà lọ́wọ́lọ́wọ́", + "you_pay": "Ẹ sàn", + "you_will_get": "Ṣe pàṣípààrọ̀ sí", + "you_will_send": "Ṣe pàṣípààrọ̀ láti", + "yy": "Ọd", + "zzzz": "zzzz" +} \ No newline at end of file diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 92904034b..58cb2592c 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -1,778 +1,779 @@ { - "welcome": "欢迎使用", - "cake_wallet": "Cake Wallet", - "first_wallet_text": "适用于门罗币、比特币、以太坊、莱特币和避风港的超棒钱包", - "please_make_selection": "请在下面进行选择 创建或恢复您的钱包.", - "create_new": "创建新钱包", - "restore_wallet": "恢复钱包", - "monero_com": "Monero.com by Cake Wallet", - "monero_com_wallet_text": "Awesome wallet for Monero", - "haven_app": "Haven by Cake Wallet", - "haven_app_wallet_text": "Awesome wallet for Haven", - "accounts": "账户", - "edit": "编辑", + "about_cake_pay": "Cake Pay 让您可以轻松购买带有虚拟资产的礼品卡,可立即在美国超过 150,000 家商家消费。", "account": "帐户", + "accounts": "账户", + "accounts_subaddresses": "账户和子地址", + "activate": "激活", + "active": "活跃", + "active_cards": "活动卡", + "activeConnectionsPrompt": "活动连接将出现在这里", "add": "添加", + "add_contact": "增加联系人", + "add_custom_node": "添加新的自定义节点", + "add_custom_redemption": "添加自定义兑换", + "add_fund_to_card": "向卡中添加预付资金(最多 ${value})", + "add_new_node": "添加新节点", + "add_new_word": "添加新词", + "add_receiver": "添加另一個接收器(可選)", + "add_secret_code": "或者,将此密码添加到身份验证器应用程序中", + "add_tip": "添加提示", + "add_token_disclaimer_check": "我已使用信誉良好的来源确认了代币合约地址和信息。 添加恶意或不正确的信息可能会导致资金损失。", + "add_token_warning": "请勿按照诈骗者的指示编辑或添加令牌。\n始终通过信誉良好的来源确认代币地址!", + "add_value": "增加价值", + "address": "地址", "address_book": "地址簿", - "contact": "联系", - "please_select": "请选择:", - "cancel": "取消", - "ok": "确认", - "contact_name": "联系人姓名", - "reset": "重置", - "save": "保存", + "address_book_menu": "地址簿", + "address_detected": "檢測到地址", + "address_from_domain": "此地址來自 Unstoppable Domains 上的 ${domain}", + "address_from_yat": "此地址來自 Yat 上的 ${emoji}", + "address_label": "Address label", "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": "交易", - "filter_by": "过滤", - "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": "更改币种", - "overwrite_amount": "Overwrite amount", - "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", - "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_to_get_address": "扫描二维码获取地址", - "qr_fullscreen": "点击打开全屏二维码", - "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": "从24个文字的组成码恢复您的钱包", - "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": "种子语言", - "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": "西班牙文", - "seed_language_french": "法语", - "seed_language_italian": "意大利语", - "send_title": "发送", - "send_your_wallet": "你的钱包", - "send_address": "${cryptoCurrency} 地址", - "send_payment_id": "付款编号 (可选的)", + "advanced_settings": "高级设置", + "aggressive": "过分热心", + "agree": "同意", + "agree_and_continue": "同意并继续", + "agree_to": "创建账户即表示您同意 ", "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": "名称", - "got_it": "明白", - "send_sending": "正在发送...", - "send_success": "您的${crypto}已成功发送", - "settings_title": "设定值", - "settings_nodes": "节点数", - "settings_current_node": "当前节点", - "settings_wallets": "钱包", - "settings_display_balance": "显示余额为", - "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": "创建", - "address_label": "Address label", - "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_edit_wallet": "编辑钱包", - "wallet_list_wallet_name": "钱包名称", - "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_node_proxy_address": "请输入:<端口>,例如127.0.0.1:9050", - "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 到 33 个字符之间", - "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个字符之间", + "all_trades": "所有的变化", + "all_transactions": "所有交易", + "alphabetical": "按字母顺序", + "already_have_account": "已经有账号了?", + "always": "总是", + "amount": "金额: ", + "amount_is_estimate": "收款金额为估算值", + "amount_is_guaranteed": "保证收到的金额", + "and": "和", + "anonpay_description": "生成 ${type}。收款人可以使用任何受支持的加密货币 ${method},您将在此钱包中收到资金。", + "apk_update": "APK更新", + "approve": "批准", + "arrive_in_this_address": "${currency} ${tag}将到达此地址", + "ascending": "上升", + "ask_each_time": "每次问", "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": "已连接", - "sync_status_attempting_sync": "嘗試同步", - "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}", - "extracted_address_content": "您将汇款至\n${recipient_name}", - "card_address": "地址:", - "buy": "购买", - "placeholder_transactions": "您的交易将显示在这里", - "placeholder_contacts": "您的联系人将显示在这里", - "template": "模板", - "confirm_delete_template": "此操作将刪除此模板。确定吗?", - "confirm_delete_wallet": "此操作将刪除此钱包。确定吗?", - "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", - "trusted": "值得信赖", - "color_theme": "主题", - "light_theme": "艳丽", - "bright_theme": "明亮", - "dark_theme": "黑暗", - "enter_your_note": "输入您的笔记...", - "note_optional": "注释(可选)", - "note_tap_to_change": "注释(轻按即可更改)", - "view_in_block_explorer": "View in Block Explorer", - "view_transaction_on": "View Transaction on ", - "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": "提交请求", - "buy_alert_content": "目前我们仅支持购买比特币、以太坊、莱特币和门罗币。请创建或切换到您的比特币、以太坊、莱特币或门罗币钱包。", - "sell_alert_content": "我们目前仅支持比特币、以太坊和莱特币的销售。请创建或切换到您的比特币、以太坊或莱特币钱包。", - "outdated_electrum_wallet_description": "在Cake创建的新比特币钱包现在有一个24字的种子。你必须创建一个新的比特币钱包,并将你所有的资金转移到新的24字钱包,并停止使用12字种子的钱包。请立即这样做以保证你的资金安全。", - "understand": "我已知晓", - "apk_update": "APK更新", - "buy_bitcoin": "购买比特币", - "buy_with": "一起购买", - "moonpay_alert_text": "金额的价值必须大于或等于 ${minAmount} ${fiatCurrency}", - "outdated_electrum_wallet_receive_warning": "如果这个钱包有一个 12 字的种子并且是在 Cake 中创建的,不要将比特币存入这个钱包。 任何转移到此钱包的 BTC 都可能丢失。 创建一个新的 24 字钱包(点击右上角的菜单,选择钱包,选择创建新钱包,然后选择比特币)并立即将您的 BTC 移到那里。 Cake 的新(24 字)BTC 钱包是安全的", - "do_not_show_me": "不再提示", - "unspent_coins_title": "未使用的硬幣", - "unspent_coins_details_title": "未使用代幣詳情", - "freeze": "凍結", - "frozen": "凍結的", - "coin_control": "硬幣控制(可選)", - "address_detected": "檢測到地址", - "address_from_domain": "此地址來自 Unstoppable Domains 上的 ${domain}", - "add_receiver": "添加另一個接收器(可選)", - "manage_yats": "管理 Yats", - "yat_alert_title": "使用 Yat 更輕鬆地發送和接收加密貨幣", - "yat_alert_content": "Cake Wallet 用戶現在可以使用獨一無二的基於表情符號的用戶名發送和接收他們喜歡的所有貨幣。", - "get_your_yat": "得到你的 Yat", - "connect_an_existing_yat": "連接現有 Yat", - "yat_address": "Yat 地址", - "yat": "Yat", - "connect_yats": "连接 Yats", - "address_from_yat": "此地址來自 Yat 上的 ${emoji}", - "yat_error": "Yat 誤差", - "yat_error_content": "沒有與此 Yat 相關聯的地址。 嘗試另一個 Yat", - "choose_address": "\n\n請選擇地址:", - "yat_popup_title": "您的錢包地址可以被表情化。", - "yat_popup_content": "您現在可以使用 Yat 在 Cake Wallet 中發送和接收加密貨幣 - 一個基於表情符號的簡短用戶名。 在設置屏幕上隨時管理 Yats", - "second_intro_title": "一個表情符號地址來統治他們", - "second_intro_content": "您的 Yat 是一個唯一的表情符號地址,可替換您所有貨幣的所有長十六進制地址。", - "third_intro_title": "Yat 和別人玩得很好", - "third_intro_content": "Yats 也住在 Cake Wallet 之外。 地球上任何一個錢包地址都可以用一個Yat來代替!", - "learn_more": "了解更多", - "search": "搜索", - "search_language": "搜索语言", - "search_currency": "搜索货币", - "new_template": "新模板", - "electrum_address_disclaimer": "每次您使用一个地址时,我们都会生成新地址,但之前的地址仍然有效", - "wallet_name_exists": "同名的钱包已经存在", - "market_place": "市场", - "cake_pay_title": "Cake Pay 礼品卡", - "cake_pay_subtitle": "购买打折礼品卡(仅限美国)", - "cake_pay_web_cards_title": "蛋糕支付网络卡", - "cake_pay_web_cards_subtitle": "购买全球预付卡和礼品卡", - "about_cake_pay": "Cake Pay 让您可以轻松购买带有虚拟资产的礼品卡,可立即在美国超过 150,000 家商家消费。", - "cake_pay_account_note": "只需使用電子郵件地址註冊即可查看和購買卡片。有些甚至可以打折!", - "already_have_account": "已经有账号了?", - "create_account": "创建账户", - "privacy_policy": "隐私政策", - "welcome_to_cakepay": "欢迎来到 Cake Pay!", - "sign_up": "注册", - "forgot_password": "忘记密码", - "reset_password": "重置密码", - "gift_cards": "礼品卡", - "setup_your_debit_card": "设置你的借记卡", - "no_id_required": "不需要身份证。充值并在任何地方消费", - "how_to_use_card": "如何使用这张卡", - "purchase_gift_card": "购买礼品卡", - "verification": "验证", - "fill_code": "请填写提供给您邮箱的验证码", - "didnt_get_code": "没有获取代码?", - "resend_code": "请重新发送", - "debit_card": "借记卡", - "cakepay_prepaid_card": "CakePay 预付借记卡", - "no_id_needed": "不需要 ID!", - "frequently_asked_questions": "常见问题", - "debit_card_terms": "您的支付卡号(以及与您的支付卡号对应的凭证)在此数字钱包中的存储和使用受适用的持卡人与支付卡发卡机构签订的协议的条款和条件的约束,自时不时。", - "please_reference_document": "请参考以下文档以获取更多信息。", - "cardholder_agreement": "持卡人协议", - "e_sign_consent": "电子签名同意", - "agree_and_continue": "同意并继续", - "email_address": "电子邮件地址", - "agree_to": "创建账户即表示您同意 ", - "and": "和", - "enter_code": "输入代码", - "congratulations": "恭喜!", - "you_now_have_debit_card": "你现在有一张借记卡", - "min_amount": "最小值: ${value}", - "max_amount": "最大值: ${value}", - "enter_amount": "输入金额", - "billing_address_info": "如果要求提供帐单地址,请提供您的送货地址", - "order_physical_card": "订购实体卡", - "add_value": "增加价值", - "activate": "激活", - "get_a": "得到一个", - "digital_and_physical_card": "数字和物理预付借记卡", - "get_card_note": "你可以用数字货币重新加载。不需要额外的信息!", - "signup_for_card_accept_terms": "注册卡并接受条款。", - "add_fund_to_card": "向卡中添加预付资金(最多 ${value})", - "use_card_info_two": "预付账户中的资金转换为美元,不是数字货币。", - "use_card_info_three": "在线使用电子卡或使用非接触式支付方式。", - "optionally_order_card": "可选择订购实体卡。", - "hide_details": "隐藏细节", - "show_details": "显示详细信息", - "upto": "最高 ${value}", - "discount": "节省 ${value}%", - "gift_card_amount": "礼品卡金额", - "bill_amount": "账单金额", - "you_pay": "你付钱", - "tip": "提示:", - "custom": "自定义", - "by_cake_pay": "通过 Cake Pay", - "expires": "过期", - "mm": "毫米", - "yy": "YY", - "online": "在线", - "offline": "离线", - "gift_card_number": "礼品卡号", - "pin_number": "PIN 码", - "total_saving": "总储蓄", - "last_30_days": "过去 30 天", - "avg_savings": "平均储蓄", - "view_all": "查看全部", - "active_cards": "活动卡", - "delete_account": "删除账户", - "cards": "卡片", - "active": "活跃", - "redeemed": "赎回", - "gift_card_balance_note": "有余额的礼品卡会出现在这里", - "gift_card_redeemed_note": "您兑换的礼品卡会出现在这里", - "logout": "注销", - "add_tip": "添加提示", - "percentageOf": "${amount}", - "is_percentage": "是", - "search_category": "搜索类别", - "mark_as_redeemed": "标记为已赎回", - "more_options": "更多选项", - "awaiting_payment_confirmation": "等待付款确认", - "transaction_sent_notice": "如果屏幕在 1 分钟后没有继续,请检查区块浏览器和您的电子邮件。", - "agree": "同意", - "in_store": "店内", - "generating_gift_card": "生成礼品卡", - "payment_was_received": "您的付款已收到。", - "proceed_after_one_minute": "如果屏幕在 1 分钟后没有继续,请检查您的电子邮件。", - "order_id": "订单编号", - "gift_card_is_generated": "礼品卡生成", - "open_gift_card": "打开礼品卡", - "contact_support": "联系支持", - "gift_cards_unavailable": "目前只能通过门罗币、比特币和莱特币购买礼品卡", - "background_sync_mode": "后台同步模式", - "sync_all_wallets": "同步所有钱包", - "introducing_cake_pay": "介绍 Cake Pay!", - "cake_pay_learn_more": "立即在应用中购买和兑换礼品卡!\n从左向右滑动以了解详情。", + "authenticated": "已认证", + "authentication": "认证方式", + "auto_generate_subaddresses": "自动生成子辅助", "automatic": "自动的", - "fixed_pair_not_supported": "所选交易所不支持此固定货币对", - "variable_pair_not_supported": "所选交易所不支持此变量对", - "none_of_selected_providers_can_exchange": "选定的供应商都不能进行此交换", - "choose_one": "选一个", - "choose_from_available_options": "从可用选项中选择:", - "custom_redeem_amount": "自定义兑换金额", - "add_custom_redemption": "添加自定义兑换", - "remaining": "剩余", - "delete_wallet": "删除钱包", - "delete_wallet_confirm_message": "您确定要删除 ${wallet_name} 钱包吗?", - "low_fee": "费用低", - "low_fee_alert": "您当前正在使用低网络费用优先级。这可能会导致长时间等待、不同的费率或取消交易。我们建议设置更高的费用以获得更好的体验。", - "ignor": "忽视", - "use_suggested": "使用建议", - "do_not_share_warning_text": "请勿与其他任何人分享这些信息,包括支持人员。\n\n您的资金可能而且将会被盗!", - "help": "帮助", - "all_transactions": "所有交易", - "all_trades": "所有的变化", - "connection_sync": "连接和同步", - "security_and_backup": "安全和备份", - "create_backup": "创建备份", - "privacy_settings": "隐私设置", - "privacy": "隐私", - "display_settings": "显示设置", - "other_settings": "其他设置", - "require_pin_after": "之后需要 PIN", - "always": "总是", - "minutes_to_pin_code": "${minute} 分钟", - "disable_exchange": "禁用交换", - "advanced_settings": "高级设置", - "settings_can_be_changed_later": "稍后可以在应用设置中更改这些设置", - "add_custom_node": "添加新的自定义节点", - "disable_fiat": "禁用法令", - "fiat_api": "法币API", - "disabled": "禁用", - "enabled": "启用", - "tor_only": "仅限 Tor", - "unmatched_currencies": "您当前钱包的货币与扫描的 QR 的货币不匹配", - "orbot_running_alert": "请确保 Orbot 在连接到此节点之前正在运行。", - "contact_list_contacts": "联系人", - "contact_list_wallets": "我的钱包", - "bitcoin_payments_require_1_confirmation": "比特币支付需要 1 次确认,这可能需要 20 分钟或更长时间。谢谢你的耐心!确认付款后,您将收到电子邮件。", - "send_to_this_address": "发送 ${currency} ${tag}到这个地址", - "arrive_in_this_address": "${currency} ${tag}将到达此地址", - "do_not_send": "不要发送", - "error_dialog_content": "糟糕,我们遇到了一些错误。\n\n请将崩溃报告发送给我们的支持团队,以改进应用程序。", - "scan_qr_code": "扫描二维码", - "cold_or_recover_wallet": "添加冷钱包或恢复纸钱包", - "please_wait": "请稍等", - "sweeping_wallet": "扫一扫钱包", - "sweeping_wallet_alert": "\n这应该不会花很长时间。请勿离开此屏幕,否则可能会丢失所掠取的资金", - "decimal_places_error": "小数位太多", - "edit_node": "编辑节点", - "invoice_details": "发票明细", - "donation_link_details": "捐赠链接详情", - "anonpay_description": "生成 ${type}。收款人可以使用任何受支持的加密货币 ${method},您将在此钱包中收到资金。", - "create_invoice": "创建发票", - "create_donation_link": "创建捐赠链接", - "optional_email_hint": "可选的收款人通知电子邮件", - "optional_description": "可选说明", - "optional_name": "可选收件人姓名", - "clearnet_link": "明网链接", - "onion_link": "洋葱链接", - "settings": "设置", - "sell_monero_com_alert_content": "尚不支持出售门罗币", - "error_text_input_below_minimum_limit": "金额小于最小值", - "error_text_input_above_maximum_limit": "金额大于最大值", - "show_market_place": "显示市场", - "prevent_screenshots": "防止截屏和录屏", - "profile": "轮廓", - "close": "关闭", - "modify_2fa": "修改蛋糕2FA", - "disable_cake_2fa": "禁用蛋糕 2FA", - "question_to_disable_2fa": "您确定要禁用 Cake 2FA 吗?访问钱包和某些功能将不再需要 2FA 代码。", - "disable": "停用", - "setup_2fa": "设置蛋糕 2FA", - "verify_with_2fa": "用 Cake 2FA 验证", - "totp_code": "TOTP代码", - "please_fill_totp": "请填写您其他设备上的 8 位代码", - "totp_2fa_success": "成功!为此钱包启用了 Cake 2FA。请记住保存您的助记词种子,以防您无法访问钱包。", - "totp_verification_success": "验证成功!", - "totp_2fa_failure": "不正确的代码。 请尝试不同的代码或生成新的密钥。 使用支持 8 位代码和 SHA512 的兼容 2FA 应用程序。", - "enter_totp_code": "请输入 TOTP 代码。", - "add_secret_code": "或者,将此密码添加到身份验证器应用程序中", - "totp_secret_code": "TOTP密码", - "setup_2fa_text": "Cake 2FA 使用 TOTP 作为第二个身份验证因素。\n\nCake 2FA 的 TOTP 需要 SHA-512 和 8 位数字支持;这提供了更高的安全性。更多信息和支持的应用程序可以在指南中找到。", - "setup_totp_recommended": "设置 TOTP", - "disable_buy": "禁用购买操作", - "disable_sell": "禁用卖出操作", - "cake_2fa_preset": "蛋糕 2FA 预设", - "narrow": "狭窄的", - "normal": "普通的", - "aggressive": "过分热心", - "require_for_assessing_wallet": "需要访问钱包", - "require_for_sends_to_non_contacts": "需要发送给非联系人", - "require_for_sends_to_contacts": "需要发送给联系人", - "require_for_sends_to_internal_wallets": "需要发送到内部钱包", - "require_for_exchanges_to_internal_wallets": "需要兑换到内部钱包", - "require_for_adding_contacts": "需要添加联系人", - "require_for_creating_new_wallets": "创建新钱包的要求", - "require_for_all_security_and_backup_settings": "需要所有安全和备份设置", + "available_balance": "可用余额", "available_balance_description": "可用余额是您可以使用的金额。冻结余额是您当前正在等待确认的金额。", - "syncing_wallet_alert_title": "您的钱包正在同步", - "syncing_wallet_alert_content": "您的余额和交易列表可能不完整,直到顶部显示“已同步”。单击/点击以了解更多信息。", - "home_screen_settings": "主屏幕设置", - "sort_by": "排序方式", - "search_add_token": "搜索/添加令牌", - "edit_token": "编辑令牌", - "warning": "警告", - "add_token_warning": "请勿按照诈骗者的指示编辑或添加令牌。\n始终通过信誉良好的来源确认代币地址!", - "add_token_disclaimer_check": "我已使用信誉良好的来源确认了代币合约地址和信息。 添加恶意或不正确的信息可能会导致资金损失。", - "token_contract_address": "代币合约地址", - "token_name": "代币名称例如:Tether", - "token_symbol": "代币符号例如:USDT", - "token_decimal": "令牌十进制", - "field_required": "此字段是必需的", - "pin_at_top": "将 ${token} 固定在顶部", - "invalid_input": "输入无效", - "fiat_balance": "法币余额", - "gross_balance": "毛余额", - "alphabetical": "按字母顺序", - "generate_name": "生成名称", + "avg_savings": "平均储蓄", + "awaitDAppProcessing": "请等待 dApp 处理完成。", + "awaiting_payment_confirmation": "等待付款确认", + "background_sync_mode": "后台同步模式", + "backup": "备份", + "backup_file": "备份文件", + "backup_password": "备份密码", "balance_page": "余额页", - "share": "分享", - "slidable": "可滑动", - "manage_nodes": "管理节点", - "etherscan_history": "以太扫描历史", - "template_name": "模板名称", - "change_rep": "变革代表", - "change_rep_message": "您确定要更换代表吗?", - "unsupported_asset": "我们不支持针对该资产采取此操作。请创建或切换到支持的资产类型的钱包。", - "manage_pow_nodes": "管理 PoW 节点", - "support_title_live_chat": "实时支持", - "support_description_live_chat": "免费快速!训练有素的支持代表可以协助", - "support_title_guides": "蛋糕钱包指南", - "support_description_guides": "对常见问题的文档和支持", - "support_title_other_links": "其他支持链接", - "support_description_other_links": "加入我们的社区或通过其他方法与我们联系我们的合作伙伴", - "choose_derivation": "选择钱包推导", - "new_first_wallet_text": "轻松确保您的加密货币安全", - "monero_dark_theme": "门罗币深色主题", + "bill_amount": "账单金额", + "billing_address_info": "如果要求提供帐单地址,请提供您的送货地址", + "biometric_auth_reason": "扫描指纹进行身份认证", "bitcoin_dark_theme": "比特币黑暗主题", "bitcoin_light_theme": "比特币浅色主题", - "high_contrast_theme": "高对比度主题", - "matrix_green_dark_theme": "矩阵绿暗主题", - "monero_light_theme": "门罗币浅色主题", - "select_destination": "请选择备份文件的目的地。", - "auto_generate_subaddresses": "自动生成子辅助", - "save_to_downloads": "保存到下载", - "select_buy_provider_notice": "在上面选择买入提供商。您可以通过在应用程序设置中设置默认的购买提供商来跳过此屏幕。", - "onramper_option_description": "快速使用许多付款方式购买加密货币。在大多数国家 /地区可用。利差和费用各不相同。", - "default_buy_provider": "默认购买提供商", - "ask_each_time": "每次问", + "bitcoin_payments_require_1_confirmation": "比特币支付需要 1 次确认,这可能需要 20 分钟或更长时间。谢谢你的耐心!确认付款后,您将收到电子邮件。", + "Blocks_remaining": "${status} 剩余的块", + "bright_theme": "明亮", + "buy": "购买", + "buy_alert_content": "目前我们仅支持购买比特币、以太坊、莱特币和门罗币。请创建或切换到您的比特币、以太坊、莱特币或门罗币钱包。", + "buy_bitcoin": "购买比特币", "buy_provider_unavailable": "提供者目前不可用。", - "signTransaction": "签署交易", + "buy_with": "一起购买", + "by_cake_pay": "通过 Cake Pay", + "cake_2fa_preset": "蛋糕 2FA 预设", + "cake_pay_account_note": "只需使用電子郵件地址註冊即可查看和購買卡片。有些甚至可以打折!", + "cake_pay_learn_more": "立即在应用中购买和兑换礼品卡!\n从左向右滑动以了解详情。", + "cake_pay_subtitle": "购买打折礼品卡(仅限美国)", + "cake_pay_title": "Cake Pay 礼品卡", + "cake_pay_web_cards_subtitle": "购买全球预付卡和礼品卡", + "cake_pay_web_cards_title": "蛋糕支付网络卡", + "cake_wallet": "Cake Wallet", + "cakepay_prepaid_card": "CakePay 预付借记卡", + "camera_consent": "${provider} 将使用您的相机拍摄图像以供识别之用。请查看他们的隐私政策了解详情。", + "camera_permission_is_required": "需要相机许可。\n请从应用程序设置中启用它。", + "cancel": "取消", + "card_address": "地址:", + "cardholder_agreement": "持卡人协议", + "cards": "卡片", + "chains": "链条", + "change": "更改", + "change_backup_password_alert": "您以前的备份文件将无法使用新的备份密码導入。 新的备份密码将仅用于新的备份文件。 您确定要更改备份密码吗?", + "change_currency": "更改币种", + "change_current_node": "您确定将当前节点更改为 ${node}?", + "change_current_node_title": "更改当前节点", + "change_exchange_provider": "更改交易所", + "change_language": "修改语言", + "change_language_to": "修改语言为 ${language}?", + "change_password": "更改密码", + "change_rep": "变革代表", + "change_rep_message": "您确定要更换代表吗?", + "change_rep_successful": "成功改变了代表", + "change_wallet_alert_content": "您是否想将当前钱包改为 ${wallet_name}?", + "change_wallet_alert_title": "更换当前钱包", + "choose_account": "选择账户", + "choose_address": "\n\n請選擇地址:", + "choose_derivation": "选择钱包推导", + "choose_from_available_options": "从可用选项中选择:", + "choose_one": "选一个", + "choose_relay": "请选择要使用的继电器", + "choose_wallet_currency": "请选择钱包货币:", + "clear": "清空", + "clearnet_link": "明网链接", + "close": "关闭", + "coin_control": "硬幣控制(可選)", + "cold_or_recover_wallet": "添加冷钱包或恢复纸钱包", + "color_theme": "主题", + "commit_transaction_amount_fee": "提交交易\n金额: ${amount}\n手续费: ${fee}", + "confirm": "确认", + "confirm_delete_template": "此操作将刪除此模板。确定吗?", + "confirm_delete_wallet": "此操作将刪除此钱包。确定吗?", + "confirm_sending": "确认发送", + "confirmations": "确认", + "confirmed": "确认余额", + "confirmed_tx": "确认的", + "congratulations": "恭喜!", + "connect_an_existing_yat": "連接現有 Yat", + "connect_yats": "连接 Yats", + "connection_sync": "连接和同步", + "connectWalletPrompt": "将您的钱包与 WalletConnect 连接以进行交易", + "contact": "联系", + "contact_list_contacts": "联系人", + "contact_list_wallets": "我的钱包", + "contact_name": "联系人姓名", + "contact_support": "联系支持", + "continue_text": "继续", + "contractName": "合约名称", + "contractSymbol": "合约符号", + "copied_key_to_clipboard": "复制 ${key} 到剪贴板", + "copied_to_clipboard": "复制到剪贴板", + "copy": "复制", + "copy_address": "复制地址", + "copy_id": "复制ID", + "copyWalletConnectLink": "从 dApp 复制 WalletConnect 链接并粘贴到此处", + "create_account": "创建账户", + "create_backup": "创建备份", + "create_donation_link": "创建捐赠链接", + "create_invoice": "创建发票", + "create_new": "创建新钱包", + "create_new_account": "建立新账户", + "creating_new_wallet": "创建新钱包", + "creating_new_wallet_error": "错误: ${description}", + "creation_date": "创建日期", + "custom": "自定义", + "custom_drag": "定制(保持和拖动)", + "custom_redeem_amount": "自定义兑换金额", + "dark_theme": "黑暗", + "debit_card": "借记卡", + "debit_card_terms": "您的支付卡号(以及与您的支付卡号对应的凭证)在此数字钱包中的存储和使用受适用的持卡人与支付卡发卡机构签订的协议的条款和条件的约束,自时不时。", + "decimal_places_error": "小数位太多", + "default_buy_provider": "默认购买提供商", + "default_sell_provider": "默认销售提供商", + "delete": "删除", + "delete_account": "删除账户", + "delete_wallet": "删除钱包", + "delete_wallet_confirm_message": "您确定要删除 ${wallet_name} 钱包吗?", + "deleteConnectionConfirmationPrompt": "您确定要删除与", + "descending": "下降", + "description": "描述", + "destination_tag": "目标Tag:", + "dfx_option_description": "用欧元和瑞士法郎购买加密货币。高达 990 欧元,无需额外 KYC。对于欧洲的零售和企业客户", + "didnt_get_code": "没有获取代码?", + "digit_pin": "位 PIN", + "digital_and_physical_card": "数字和物理预付借记卡", + "disable": "停用", + "disable_buy": "禁用购买操作", + "disable_cake_2fa": "禁用蛋糕 2FA", + "disable_exchange": "禁用交换", + "disable_fiat": "禁用法令", + "disable_sell": "禁用卖出操作", + "disabled": "禁用", + "discount": "节省 ${value}%", + "display_settings": "显示设置", + "displayable": "可显示", + "do_not_have_enough_gas_asset": "您没有足够的 ${currency} 来在当前的区块链网络条件下进行交易。即使您发送的是不同的资产,您也需要更多的 ${currency} 来支付区块链网络费用。", + "do_not_send": "不要发送", + "do_not_share_warning_text": "请勿与其他任何人分享这些信息,包括支持人员。\n\n您的资金可能而且将会被盗!", + "do_not_show_me": "不再提示", + "domain_looks_up": "域名查找", + "donation_link_details": "捐赠链接详情", + "e_sign_consent": "电子签名同意", + "edit": "编辑", + "edit_backup_password": "编辑备份密码", + "edit_node": "编辑节点", + "edit_token": "编辑令牌", + "electrum_address_disclaimer": "每次您使用一个地址时,我们都会生成新地址,但之前的地址仍然有效", + "email_address": "电子邮件地址", + "enabled": "启用", + "enter_amount": "输入金额", + "enter_backup_password": "在此处输入備用密码", + "enter_code": "输入代码", + "enter_seed_phrase": "输入您的种子短语", + "enter_totp_code": "请输入 TOTP 代码。", + "enter_your_note": "输入您的笔记...", + "enter_your_pin": "输入密码", + "enter_your_pin_again": "再次输入您的PIN码", + "enterTokenID": "输入令牌 ID", + "enterWalletConnectURI": "输入 WalletConnect URI", + "error": "错误", + "error_dialog_content": "糟糕,我们遇到了一些错误。\n\n请将崩溃报告发送给我们的支持团队,以改进应用程序。", + "error_text_account_name": "帐户名称只能包含字母数字\n且必须介于1到15个字符之间", + "error_text_address": "钱包地址必须与类型对应\n加密货币", + "error_text_amount": "金额只能包含数字", + "error_text_contact_name": "联系人姓名不能包含`,' \" 符号\n并且必须介于1到32个字符之间", + "error_text_crypto_currency": "小数位数\n必须小于或等于12", + "error_text_fiat": "金额不能超过可用余额.\n小数位数必须小于或等于2", + "error_text_input_above_maximum_limit": "金额大于最大值", + "error_text_input_below_minimum_limit": "金额小于最小值", + "error_text_keys": "钱包密钥只能包含16个字符的十六进制字符", + "error_text_limits_loading_failed": "未创建 ${provider} 交易。 限制加载失败", + "error_text_maximum_limit": "未创建 ${provider} 交易。 金额大于最大值:${max} ${currency}", + "error_text_minimal_limit": "未创建 ${provider} 交易。 金额小于最小值:${min} ${currency}", + "error_text_node_address": "请输入一个IPv4地址", + "error_text_node_port": "节点端口只能包含0到65535之间的数字", + "error_text_node_proxy_address": "请输入:<端口>,例如127.0.0.1:9050", + "error_text_payment_id": "付款ID只能包含16到64个字符(十六进制)", + "error_text_subaddress_name": "子地址名称不能包含`,' \" 符号\n并且必须在1到20个字符之间", + "error_text_template": "模板名称和地址不能包含`,' \" 符号\n并且必须在1到106个字符之间", + "error_text_wallet_name": "钱包名称只能包含字母、数字、_ - 符号\n并且长度必须在 1 到 33 个字符之间", + "error_text_xmr": "XMR值不能超过可用余额.\n小数位数必须小于或等于12", "errorGettingCredentials": "失败:获取凭据时出错", "errorSigningTransaction": "签署交易时发生错误", - "pairingInvalidEvent": "配对无效事件", - "chains": "链条", - "methods": "方法", - "events": "活动", - "reject": "拒绝", - "approve": "批准", - "expiresOn": "到期", - "walletConnect": "钱包连接", - "nullURIError": "URI 为空", - "connectWalletPrompt": "将您的钱包与 WalletConnect 连接以进行交易", - "newConnection": "新连接", - "activeConnectionsPrompt": "活动连接将出现在这里", - "deleteConnectionConfirmationPrompt": "您确定要删除与", + "estimated": "估计值", + "etherscan_history": "以太扫描历史", "event": "事件", - "successful": "成功的", - "wouoldLikeToConnect": "想要连接", - "message": "信息", - "do_not_have_enough_gas_asset": "您没有足够的 ${currency} 来在当前的区块链网络条件下进行交易。即使您发送的是不同的资产,您也需要更多的 ${currency} 来支付区块链网络费用。", - "totp_auth_url": "TOTP 授权 URL", - "awaitDAppProcessing": "请等待 dApp 处理完成。", - "copyWalletConnectLink": "从 dApp 复制 WalletConnect 链接并粘贴到此处", - "enterWalletConnectURI": "输入 WalletConnect URI", - "seed_key": "种子钥匙", - "enter_seed_phrase": "输入您的种子短语", - "change_rep_successful": "成功改变了代表", - "add_contact": "增加联系人", + "events": "活动", + "exchange": "兑换", + "exchange_incorrect_current_wallet_for_xmr": "如果要从Cake Wallet Monero余额中兑换XMR,请先切换到Monero钱包。", + "exchange_new_template": "新模板", "exchange_provider_unsupported": "${providerName}不再支持!", - "domain_looks_up": "域名查找", - "require_for_exchanges_to_external_wallets": "需要兑换到外部钱包", - "camera_permission_is_required": "需要相机许可。\n请从应用程序设置中启用它。", - "switchToETHWallet": "请切换到以太坊钱包并重试", - "order_by": "订购", - "creation_date": "创建日期", + "exchange_result_confirm": "点击确认 您将发送 ${fetchingLabel} ${from} 从你的钱包里 ${walletName} 到下面显示的地址。 或者您可以从外部钱包发送到以下地址/ QR码。\n\n请按确认继续或返回以更改金额", + "exchange_result_description": "您必须至少发送 ${fetchingLabel} ${from} 到下一页上显示的地址。 如果您发送的金额少于 ${fetchingLabel} ${from},则可能无法转换,因此无法退还。", + "exchange_result_write_down_ID": "*请复制或写下您上面显示的ID.", + "exchange_result_write_down_trade_id": "请复制或写下交易编号以继续.", + "exchange_sync_alert_content": "请等待,直到您的钱包同步", + "expired": "已过期", + "expires": "过期", + "expiresOn": "到期", + "export_backup": "导出备份", + "extra_id": "额外ID:", + "extracted_address_content": "您将汇款至\n${recipient_name}", + "failed_authentication": "身份验证失败. ${state_error}", + "faq": "FAQ", + "fetching": "正在获取", + "fiat_api": "法币API", + "fiat_balance": "法币余额", + "field_required": "此字段是必需的", + "fill_code": "请填写提供给您邮箱的验证码", + "filter_by": "过滤", + "first_wallet_text": "适用于门罗币、比特币、以太坊、莱特币和避风港的超棒钱包", + "fixed_pair_not_supported": "所选交易所不支持此固定货币对", + "fixed_rate": "固定汇率", + "fixed_rate_alert": "选中固定汇率模式后,您将可以输入接收金额。 您要切换到固定汇率模式吗?", + "forgot_password": "忘记密码", + "freeze": "凍結", + "frequently_asked_questions": "常见问题", + "frozen": "凍結的", + "full_balance": "全部余额", + "generate_name": "生成名称", + "generating_gift_card": "生成礼品卡", + "get_a": "得到一个", + "get_card_note": "你可以用数字货币重新加载。不需要额外的信息!", + "get_your_yat": "得到你的 Yat", + "gift_card_amount": "礼品卡金额", + "gift_card_balance_note": "有余额的礼品卡会出现在这里", + "gift_card_is_generated": "礼品卡生成", + "gift_card_number": "礼品卡号", + "gift_card_redeemed_note": "您兑换的礼品卡会出现在这里", + "gift_cards": "礼品卡", + "gift_cards_unavailable": "目前只能通过门罗币、比特币和莱特币购买礼品卡", + "got_it": "明白", + "gross_balance": "毛余额", "group_by_type": "按类型组", - "importNFTs": "导入 NFT", - "noNFTYet": "还没有 NFT", - "address": "地址", - "enterTokenID": "输入令牌 ID", - "tokenID": "ID", - "name": "姓名", - "symbol": "象征", - "seed_phrase_length": "种子短语长度", - "unavailable_balance": "不可用余额", - "unavailable_balance_description": "不可用余额:此总额包括锁定在待处理交易中的资金以及您在硬币控制设置中主动冻结的资金。一旦各自的交易完成,锁定的余额将变得可用,而冻结的余额在您决定解冻之前仍然无法进行交易。", - "unspent_change": "改变", - "tor_connection": "Tor连接", - "setup_warning_2fa_text": "Cake 2FA 是对钱包中某些操作的二次验证。它不如冷藏那么安全。\n\n如果您无法访问 2FA 应用程序或 TOTP 密钥,您将无法访问此钱包。您需要从助记词种子中恢复您的钱包。\n\n如果您无法访问 2FA 或助记词种子,Cake 支持将无法为您提供帮助。\n在使用 Cake 2FA 之前,我们建议您阅读该指南。", - "scan_qr_on_device": "在另一台设备上扫描此二维码", + "haven_app": "Haven by Cake Wallet", + "haven_app_wallet_text": "Awesome wallet for Haven", + "help": "帮助", + "hidden_balance": "隐藏余额", + "hide_details": "隐藏细节", + "high_contrast_theme": "高对比度主题", + "home_screen_settings": "主屏幕设置", "how_to_use": "如何使用", + "how_to_use_card": "如何使用这张卡", + "id": "ID: ", + "ignor": "忽视", + "import": "进口", + "importNFTs": "导入 NFT", + "in_store": "店内", + "incoming": "收到", + "incorrect_seed": "输入的文字无效。", + "introducing_cake_pay": "介绍 Cake Pay!", + "invalid_input": "输入无效", + "invoice_details": "发票明细", + "is_percentage": "是", + "last_30_days": "过去 30 天", + "learn_more": "了解更多", + "light_theme": "艳丽", + "loading_your_wallet": "加载您的钱包", + "login": "登录", + "logout": "注销", + "low_fee": "费用低", + "low_fee_alert": "您当前正在使用低网络费用优先级。这可能会导致长时间等待、不同的费率或取消交易。我们建议设置更高的费用以获得更好的体验。", + "manage_nodes": "管理节点", + "manage_pow_nodes": "管理 PoW 节点", + "manage_yats": "管理 Yats", + "mark_as_redeemed": "标记为已赎回", + "market_place": "市场", + "matrix_green_dark_theme": "矩阵绿暗主题", + "max_amount": "最大值: ${value}", + "max_value": "最大: ${value} ${currency}", + "memo": "备忘录:", + "message": "信息", + "methods": "方法", + "min_amount": "最小值: ${value}", + "min_value": "最小: ${value} ${currency}", + "minutes_to_pin_code": "${minute} 分钟", + "mm": "毫米", + "modify_2fa": "修改蛋糕2FA", + "monero_com": "Monero.com by Cake Wallet", + "monero_com_wallet_text": "Awesome wallet for Monero", + "monero_dark_theme": "门罗币深色主题", + "monero_light_theme": "门罗币浅色主题", + "moonpay_alert_text": "金额的价值必须大于或等于 ${minAmount} ${fiatCurrency}", + "more_options": "更多选项", + "name": "姓名", + "narrow": "狭窄的", + "new_first_wallet_text": "轻松确保您的加密货币安全", + "new_node_testing": "新节点测试", + "new_subaddress_create": "创建", + "new_subaddress_label_name": "标签名称", + "new_subaddress_title": "新地址", + "new_template": "新模板", + "new_wallet": "新钱包", + "newConnection": "新连接", + "no_id_needed": "不需要 ID!", + "no_id_required": "不需要身份证。充值并在任何地方消费", + "no_relay_on_domain": "用户域没有中继或中继不可用。请选择要使用的继电器。", + "no_relays": "无继电器", + "no_relays_message": "我们找到了该用户的 Nostr NIP-05 记录,但它不包含任何中继。请指示收件人将中继添加到他们的 Nostr 记录中。", + "node_address": "节点地址", + "node_connection_failed": "连接失败", + "node_connection_successful": "连接成功", + "node_new": "新节点", + "node_port": "节点端口", + "node_reset_settings_title": "重新设置", + "node_test": "测试", + "nodes": "节点", + "nodes_list_reset_to_default_message": "您确定要将设置重设为默认值吗?", + "none_of_selected_providers_can_exchange": "选定的供应商都不能进行此交换", + "noNFTYet": "还没有 NFT", + "normal": "普通的", + "note_optional": "注释(可选)", + "note_tap_to_change": "注释(轻按即可更改)", + "nullURIError": "URI 为空", + "offer_expires_in": "优惠有效期至 ", + "offline": "离线", + "ok": "确认", + "onion_link": "洋葱链接", + "online": "在线", + "onramper_option_description": "快速使用许多付款方式购买加密货币。在大多数国家 /地区可用。利差和费用各不相同。", + "open_gift_card": "打开礼品卡", + "optional_description": "可选说明", + "optional_email_hint": "可选的收款人通知电子邮件", + "optional_name": "可选收件人姓名", + "optionally_order_card": "可选择订购实体卡。", + "orbot_running_alert": "请确保 Orbot 在连接到此节点之前正在运行。", + "order_by": "订购", + "order_id": "订单编号", + "order_physical_card": "订购实体卡", + "other_settings": "其他设置", + "outdated_electrum_wallet_description": "在Cake创建的新比特币钱包现在有一个24字的种子。你必须创建一个新的比特币钱包,并将你所有的资金转移到新的24字钱包,并停止使用12字种子的钱包。请立即这样做以保证你的资金安全。", + "outdated_electrum_wallet_receive_warning": "如果这个钱包有一个 12 字的种子并且是在 Cake 中创建的,不要将比特币存入这个钱包。 任何转移到此钱包的 BTC 都可能丢失。 创建一个新的 24 字钱包(点击右上角的菜单,选择钱包,选择创建新钱包,然后选择比特币)并立即将您的 BTC 移到那里。 Cake 的新(24 字)BTC 钱包是安全的", + "outgoing": "发送", + "overwrite_amount": "Overwrite amount", + "pairingInvalidEvent": "配对无效事件", + "password": "密码", + "paste": "粘贴", + "pause_wallet_creation": "创建 Haven 钱包的功能当前已暂停。", + "payment_id": "付款 ID: ", + "payment_was_received": "您的付款已收到。", + "pending": " (待定)", + "percentageOf": "${amount}", + "pin_at_top": "将 ${token} 固定在顶部", + "pin_is_incorrect": "PIN码不正确", + "pin_number": "PIN 码", + "placeholder_contacts": "您的联系人将显示在这里", + "placeholder_transactions": "您的交易将显示在这里", + "please_fill_totp": "请填写您其他设备上的 8 位代码", + "please_make_selection": "请在下面进行选择 创建或恢复您的钱包.", + "please_reference_document": "请参考以下文档以获取更多信息。", + "please_select": "请选择:", + "please_select_backup_file": "请选择备份文件,然后输入备份密码。", + "please_try_to_connect_to_another_node": "请尝试连接到其他节点", + "please_wait": "请稍等", + "polygonscan_history": "多边形扫描历史", + "powered_by": "Powered by ${title}", + "pre_seed_button_text": "我明白。 查看种子", + "pre_seed_description": "在下一页上,您将看到${words}个文字。 这是您独有的种子,是丟失或出现故障时恢复钱包的唯一方法。 您有必须将其写下并储存在Cake Wallet应用程序以外的安全地方。", + "pre_seed_title": "重要", + "prevent_screenshots": "防止截屏和录屏", + "privacy": "隐私", + "privacy_policy": "隐私政策", + "privacy_settings": "隐私设置", + "private_key": "私钥", + "proceed_after_one_minute": "如果屏幕在 1 分钟后没有继续,请检查您的电子邮件。", + "profile": "轮廓", + "provider_error": "${provider} 错误", + "public_key": "公钥", + "purchase_gift_card": "购买礼品卡", + "qr_fullscreen": "点击打开全屏二维码", + "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", + "question_to_disable_2fa": "您确定要禁用 Cake 2FA 吗?访问钱包和某些功能将不再需要 2FA 代码。", + "receivable_balance": "应收余额", + "receive": "接收", + "receive_amount": "金额", + "received": "已收到", + "recipient_address": "收件人地址", + "reconnect": "重新连接", + "reconnect_alert_text": "您确定要重新连接吗?", + "reconnection": "重新连接", + "redeemed": "赎回", + "refund_address": "退款地址", + "reject": "拒绝", + "remaining": "剩余", + "remove": "确定", + "remove_node": "删除节点", + "remove_node_message": "您确定要删除所选节点吗?", + "rename": "重命名", + "require_for_adding_contacts": "需要添加联系人", + "require_for_all_security_and_backup_settings": "需要所有安全和备份设置", + "require_for_assessing_wallet": "需要访问钱包", + "require_for_creating_new_wallets": "创建新钱包的要求", + "require_for_exchanges_to_external_wallets": "需要兑换到外部钱包", + "require_for_exchanges_to_internal_wallets": "需要兑换到内部钱包", + "require_for_sends_to_contacts": "需要发送给联系人", + "require_for_sends_to_internal_wallets": "需要发送到内部钱包", + "require_for_sends_to_non_contacts": "需要发送给非联系人", + "require_pin_after": "之后需要 PIN", + "rescan": "重新扫描", + "resend_code": "请重新发送", + "reset": "重置", + "reset_password": "重置密码", + "restore_active_seed": "活动种子", + "restore_address": "地址", + "restore_bitcoin_description_from_keys": "从私钥中生成的WIF字符串恢复您钱包", + "restore_bitcoin_description_from_seed": "从24个文字的组成码恢复您的钱包", + "restore_bitcoin_title_from_keys": "从WIF还原", + "restore_description_from_backup": "您可以从还原整个Cake Wallet应用您的备份文件", + "restore_description_from_keys": "使用私钥恢复钱包", + "restore_description_from_seed": "从25个字中恢复您的钱包或13个字的组合码", + "restore_description_from_seed_keys": "从保存到安全地方的种子/钥匙取回钱包", + "restore_from_date_or_blockheight": "请输入您创建这个钱包前几天的日期。或者如果您知道区块高度,请输入区块高度", + "restore_from_seed_placeholder": "请在此处输入或粘贴您的代码短语", + "restore_new_seed": "新种子", + "restore_next": "下一个", + "restore_recover": "恢复", + "restore_restore_wallet": "恢复钱包", + "restore_seed_keys_restore": "种子/密钥还原", + "restore_spend_key_private": "Spend私钥", + "restore_title_from_backup": "从备份文件还原", + "restore_title_from_keys": "从密钥还原", + "restore_title_from_seed": "从种子还原", + "restore_title_from_seed_keys": "从种子/密钥还原", + "restore_view_key_private": "View私钥", + "restore_wallet": "恢复钱包", + "restore_wallet_name": "钱包名称", + "restore_wallet_restore_description": "钱包还原说明", + "router_no_route": "未定义路线 ${name}", + "save": "保存", + "save_backup_password": "请确保您已保存备份密码。 沒有它,您将无法导入备份文件。", + "save_backup_password_alert": "保存备份密码", + "save_to_downloads": "保存到下载", + "saved_the_trade_id": "我已经保存了交易编号", + "scan_qr_code": "扫描二维码", + "scan_qr_code_to_get_address": "扫描二维码获取地址", + "scan_qr_on_device": "在另一台设备上扫描此二维码", + "search": "搜索", + "search_add_token": "搜索/添加令牌", + "search_category": "搜索类别", + "search_currency": "搜索货币", + "search_language": "搜索语言", + "second_intro_content": "您的 Yat 是一個唯一的表情符號地址,可替換您所有貨幣的所有長十六進制地址。", + "second_intro_title": "一個表情符號地址來統治他們", + "security_and_backup": "安全和备份", + "seed_alert_back": "返回", + "seed_alert_content": "种子是恢复钱包的唯一方法。记住了吗?", + "seed_alert_title": "注意", + "seed_alert_yes": "确定", + "seed_choose": "选择种子语言", "seed_hex_form": "钱包种子(十六进制形式)", + "seed_key": "种子钥匙", + "seed_language": "种子语言", + "seed_language_chinese": "中文", + "seed_language_chinese_traditional": "中国传统的)", + "seed_language_czech": "捷克", + "seed_language_dutch": "荷兰文", + "seed_language_english": "英文", + "seed_language_french": "法语", + "seed_language_german": "德文", + "seed_language_italian": "意大利语", + "seed_language_japanese": "日文", + "seed_language_korean": "韩国人", + "seed_language_next": "下一个", + "seed_language_portuguese": "葡萄牙文", + "seed_language_russian": "俄文", + "seed_language_spanish": "西班牙文", + "seed_phrase_length": "种子短语长度", + "seed_reminder": "请记下这些内容,以防丟失或数据损坏", + "seed_share": "分享种子", + "seed_title": "种子", "seedtype": "籽粒", "seedtype_legacy": "遗产(25个单词)", "seedtype_polyseed": "多种物品(16个单词)", - "seed_language_czech": "捷克", - "seed_language_korean": "韩国人", - "seed_language_chinese_traditional": "中国传统的)", - "ascending": "上升", - "descending": "下降", - "dfx_option_description": "用欧元和瑞士法郎购买加密货币。高达 990 欧元,无需额外 KYC。对于欧洲的零售和企业客户", - "polygonscan_history": "多边形扫描历史", - "wallet_seed_legacy": "旧的钱包种子", - "default_sell_provider": "默认销售提供商", + "select_backup_file": "选择备份文件", + "select_buy_provider_notice": "在上面选择买入提供商。您可以通过在应用程序设置中设置默认的购买提供商来跳过此屏幕。", + "select_destination": "请选择备份文件的目的地。", "select_sell_provider_notice": "选择上面的销售提供商。您可以通过在应用程序设置中设置默认销售提供商来跳过此屏幕。", - "custom_drag": "定制(保持和拖动)", + "sell_alert_content": "我们目前仅支持比特币、以太坊和莱特币的销售。请创建或切换到您的比特币、以太坊或莱特币钱包。", + "sell_monero_com_alert_content": "尚不支持出售门罗币", + "send": "发送", + "send_address": "${cryptoCurrency} 地址", + "send_amount": "金额:", + "send_creating_transaction": "创建交易", + "send_error_currency": "货币只能包含数字", + "send_error_minimum_value": "最小金额为0.01", + "send_estimated_fee": "预估费用:", + "send_fee": "手续费:", + "send_name": "名称", + "send_new": "新建", + "send_payment_id": "付款编号 (可选的)", + "send_priority": "目前,费用设置为 ${transactionPriority} 优先.\n交易优先级可以在设置中进行调整", + "send_sending": "正在发送...", + "send_success": "您的${crypto}已成功发送", + "send_templates": "模板", + "send_title": "发送", + "send_to_this_address": "发送 ${currency} ${tag}到这个地址", + "send_xmr": "发送 XMR", + "send_your_wallet": "你的钱包", + "sending": "正在发送", + "sent": "已发送", + "settings": "设置", + "settings_all": "全部", + "settings_allow_biometrical_authentication": "允许生物识别认证", + "settings_can_be_changed_later": "稍后可以在应用设置中更改这些设置", + "settings_change_language": "修改语言", + "settings_change_pin": "更改密码", + "settings_currency": "货币", + "settings_current_node": "当前节点", + "settings_dark_mode": "黑暗模式", + "settings_display_balance": "显示余额为", + "settings_display_on_dashboard_list": "显示在仪表板上", + "settings_fee_priority": "交易优先级", + "settings_nodes": "节点数", + "settings_none": "没有", + "settings_only_trades": "只交易", + "settings_only_transactions": "仅交易", + "settings_personal": "个人", + "settings_save_recipient_address": "保存收件人地址", + "settings_support": "帮助", + "settings_terms_and_conditions": "条款和条件", + "settings_title": "设定值", + "settings_trades": "交易", + "settings_transactions": "交易情况", + "settings_wallets": "钱包", + "setup_2fa": "设置蛋糕 2FA", + "setup_2fa_text": "Cake 2FA 使用 TOTP 作为第二个身份验证因素。\n\nCake 2FA 的 TOTP 需要 SHA-512 和 8 位数字支持;这提供了更高的安全性。更多信息和支持的应用程序可以在指南中找到。", + "setup_pin": "设定PIN码", + "setup_successful": "您的PIN码已成功设置!", + "setup_totp_recommended": "设置 TOTP", + "setup_warning_2fa_text": "Cake 2FA 是对钱包中某些操作的二次验证。它不如冷藏那么安全。\n\n如果您无法访问 2FA 应用程序或 TOTP 密钥,您将无法访问此钱包。您需要从助记词种子中恢复您的钱包。\n\n如果您无法访问 2FA 或助记词种子,Cake 支持将无法为您提供帮助。\n在使用 Cake 2FA 之前,我们建议您阅读该指南。", + "setup_your_debit_card": "设置你的借记卡", + "share": "分享", + "share_address": "分享地址", + "show_details": "显示详细信息", + "show_keys": "显示种子/密钥", + "show_market_place": "显示市场", + "show_seed": "显示种子", + "sign_up": "注册", + "signTransaction": "签署交易", + "signup_for_card_accept_terms": "注册卡并接受条款。", + "slidable": "可滑动", + "sort_by": "排序方式", + "spend_key_private": "Spend 密钥 (私钥)", + "spend_key_public": "Spend 密钥 (公钥)", + "status": "状态: ", + "subaddress_title": "子地址列表", + "subaddresses": "子地址", + "submit_request": "提交请求", + "successful": "成功的", + "support_description_guides": "对常见问题的文档和支持", + "support_description_live_chat": "免费快速!训练有素的支持代表可以协助", + "support_description_other_links": "加入我们的社区或通过其他方法与我们联系我们的合作伙伴", + "support_title_guides": "蛋糕钱包指南", + "support_title_live_chat": "实时支持", + "support_title_other_links": "其他支持链接", + "sweeping_wallet": "扫一扫钱包", + "sweeping_wallet_alert": "\n这应该不会花很长时间。请勿离开此屏幕,否则可能会丢失所掠取的资金", + "switchToETHWallet": "请切换到以太坊钱包并重试", "switchToEVMCompatibleWallet": "请切换到 EVM 兼容钱包并重试(以太坊、Polygon)", - "receivable_balance": "应收余额", - "confirmed_tx": "确认的", + "symbol": "象征", + "sync_all_wallets": "同步所有钱包", + "sync_status_attempting_sync": "嘗試同步", + "sync_status_connected": "已连接", + "sync_status_connecting": "连接中", + "sync_status_failed_connect": "断线", + "sync_status_not_connected": "未连接", + "sync_status_starting_sync": "开始同步", + "sync_status_syncronized": "已同步", + "sync_status_syncronizing": "正在同步", + "syncing_wallet_alert_content": "您的余额和交易列表可能不完整,直到顶部显示“已同步”。单击/点击以了解更多信息。", + "syncing_wallet_alert_title": "您的钱包正在同步", + "template": "模板", + "template_name": "模板名称", + "third_intro_content": "Yats 也住在 Cake Wallet 之外。 地球上任何一個錢包地址都可以用一個Yat來代替!", + "third_intro_title": "Yat 和別人玩得很好", + "time": "${minutes}m ${seconds}s", + "tip": "提示:", + "today": "今天", + "token_contract_address": "代币合约地址", + "token_decimal": "令牌十进制", + "token_name": "代币名称例如:Tether", + "token_symbol": "代币符号例如:USDT", + "tokenID": "ID", + "tor_connection": "Tor连接", + "tor_only": "仅限 Tor", + "total_saving": "总储蓄", + "totp_2fa_failure": "不正确的代码。 请尝试不同的代码或生成新的密钥。 使用支持 8 位代码和 SHA512 的兼容 2FA 应用程序。", + "totp_2fa_success": "成功!为此钱包启用了 Cake 2FA。请记住保存您的助记词种子,以防您无法访问钱包。", + "totp_auth_url": "TOTP 授权 URL", + "totp_code": "TOTP代码", + "totp_secret_code": "TOTP密码", + "totp_verification_success": "验证成功!", + "trade_details_copied": "${title} 复制到剪贴板", + "trade_details_created_at": "创建于", + "trade_details_fetching": "正在获取", + "trade_details_id": "ID", + "trade_details_pair": "对", + "trade_details_provider": "提供者", + "trade_details_state": "条件", + "trade_details_title": "交易明细", + "trade_for_not_created": "交易 ${title} 未创建.", + "trade_history_title": "交易历史", + "trade_id": "交易编号:", + "trade_id_not_found": "交易方式 ${tradeId} 的 ${title} 未找到.", + "trade_is_powered_by": "该交易由 ${provider}", + "trade_not_created": "未建立交易", + "trade_not_found": "找不到交易.", + "trade_state_btc_sent": "已发送", + "trade_state_complete": "完成", + "trade_state_confirming": "确认中", + "trade_state_created": "已建立", + "trade_state_finished": "已完成", + "trade_state_paid": "已付费", + "trade_state_paid_unconfirmed": "付费未确认", + "trade_state_pending": "待定", + "trade_state_timeout": "超时", + "trade_state_to_be_created": "待创建", + "trade_state_traded": "已交易", + "trade_state_trading": "交易", + "trade_state_underpaid": "支付不足", + "trade_state_unpaid": "未付", + "trades": "交易", + "transaction_details_amount": "金额", + "transaction_details_copied": "${title} 复制到剪切板", + "transaction_details_date": "日期", + "transaction_details_fee": "手续费", + "transaction_details_height": "区块高度", + "transaction_details_recipient_address": "收件人地址", "transaction_details_source_address": "源地址", - "pause_wallet_creation": "创建 Haven 钱包的功能当前已暂停。", - "contractName": "合约名称", - "contractSymbol": "合约符号", - "description": "描述", - "camera_consent": "${provider} 将使用您的相机拍摄图像以供识别之用。请查看他们的隐私政策了解详情。", - "no_relays": "无继电器", - "choose_relay": "请选择要使用的继电器", - "no_relays_message": "我们找到了该用户的 Nostr NIP-05 记录,但它不包含任何中继。请指示收件人将中继添加到他们的 Nostr 记录中。", - "no_relay_on_domain": "用户域没有中继或中继不可用。请选择要使用的继电器。" -} + "transaction_details_title": "交易明细", + "transaction_details_transaction_id": "交易编号", + "transaction_key": "交易密码", + "transaction_priority_fast": "快速", + "transaction_priority_fastest": "最快", + "transaction_priority_medium": "中等", + "transaction_priority_regular": "常规", + "transaction_priority_slow": "慢速", + "transaction_sent": "交易已发送", + "transaction_sent_notice": "如果屏幕在 1 分钟后没有继续,请检查区块浏览器和您的电子邮件。", + "transactions": "交易情况", + "transactions_by_date": "按日期交易", + "trusted": "值得信赖", + "unavailable_balance": "不可用余额", + "unavailable_balance_description": "不可用余额:此总额包括锁定在待处理交易中的资金以及您在硬币控制设置中主动冻结的资金。一旦各自的交易完成,锁定的余额将变得可用,而冻结的余额在您决定解冻之前仍然无法进行交易。", + "unconfirmed": "未确认余额", + "understand": "我已知晓", + "unmatched_currencies": "您当前钱包的货币与扫描的 QR 的货币不匹配", + "unspent_change": "改变", + "unspent_coins_details_title": "未使用代幣詳情", + "unspent_coins_title": "未使用的硬幣", + "unsupported_asset": "我们不支持针对该资产采取此操作。请创建或切换到支持的资产类型的钱包。", + "upto": "最高 ${value}", + "use": "切换使用", + "use_card_info_three": "在线使用电子卡或使用非接触式支付方式。", + "use_card_info_two": "预付账户中的资金转换为美元,不是数字货币。", + "use_ssl": "使用SSL", + "use_suggested": "使用建议", + "variable_pair_not_supported": "所选交易所不支持此变量对", + "verification": "验证", + "verify_with_2fa": "用 Cake 2FA 验证", + "version": "版本 ${currentVersion}", + "view_all": "查看全部", + "view_in_block_explorer": "View in Block Explorer", + "view_key_private": "View 密钥(私钥)", + "view_key_public": "View 密钥(公钥)", + "view_transaction_on": "View Transaction on ", + "wallet_keys": "钱包种子/密钥", + "wallet_list_create_new_wallet": "创建新钱包", + "wallet_list_edit_wallet": "编辑钱包", + "wallet_list_failed_to_load": "加载失败 ${wallet_name} 钱包. ${error}", + "wallet_list_failed_to_remove": "删除失败 ${wallet_name} 钱包. ${error}", + "wallet_list_load_wallet": "加载钱包", + "wallet_list_loading_wallet": "载入中 ${wallet_name} 钱包", + "wallet_list_removing_wallet": "删除 ${wallet_name} 钱包", + "wallet_list_restore_wallet": "恢复钱包", + "wallet_list_title": "Monero 钱包", + "wallet_list_wallet_name": "钱包名称", + "wallet_menu": "钱包菜单", + "wallet_name": "钱包名称", + "wallet_name_exists": "同名的钱包已经存在", + "wallet_restoration_store_incorrect_seed_length": "种子长度错误", + "wallet_seed": "钱包种子", + "wallet_seed_legacy": "旧的钱包种子", + "wallet_store_monero_wallet": "Monero 钱包", + "walletConnect": "钱包连接", + "wallets": "钱包", + "warning": "警告", + "welcome": "欢迎使用", + "welcome_to_cakepay": "欢迎来到 Cake Pay!", + "widgets_address": "地址", + "widgets_or": "或者", + "widgets_restore_from_blockheight": "从块高还原", + "widgets_restore_from_date": "从日期还原", + "widgets_seed": "种子", + "wouoldLikeToConnect": "想要连接", + "write_down_backup_password": "请写下您的备份密码,该密码用于导入备份文件。", + "xlm_extra_info": "发送用于交换的XLM交易时,请不要忘记指定备忘录ID", + "xmr_available_balance": "可用余额 ", + "xmr_full_balance": "全部余额", + "xmr_hidden": "隐藏", + "xmr_to_error": "XMR.TO 错误", + "xmr_to_error_description": "无效的金额。 小数点后最多8位数字", + "xrp_extra_info": "发送用于交换的XRP交易时,请不要忘记指定目标Tag", + "yat": "Yat", + "yat_address": "Yat 地址", + "yat_alert_content": "Cake Wallet 用戶現在可以使用獨一無二的基於表情符號的用戶名發送和接收他們喜歡的所有貨幣。", + "yat_alert_title": "使用 Yat 更輕鬆地發送和接收加密貨幣", + "yat_error": "Yat 誤差", + "yat_error_content": "沒有與此 Yat 相關聯的地址。 嘗試另一個 Yat", + "yat_popup_content": "您現在可以使用 Yat 在 Cake Wallet 中發送和接收加密貨幣 - 一個基於表情符號的簡短用戶名。 在設置屏幕上隨時管理 Yats", + "yat_popup_title": "您的錢包地址可以被表情化。", + "yesterday": "昨天", + "you_now_have_debit_card": "你现在有一张借记卡", + "you_pay": "你付钱", + "you_will_get": "转换到", + "you_will_send": "转换自", + "yy": "YY", + "zzzz": "ZZZZ" +} \ No newline at end of file diff --git a/tool/append_translation.dart b/tool/append_translation.dart index 9c017f64e..ac114bf3c 100644 --- a/tool/append_translation.dart +++ b/tool/append_translation.dart @@ -13,10 +13,20 @@ void main(List args) async { print('Appending "$name": "$text"'); + // add translation to all languages: for (var lang in langs) { final fileName = getArbFileName(lang); final translation = await getTranslation(text, lang); appendStringToArbFile(fileName, name, translation); } + + print('Alphabetizing all files...'); + + for (var lang in langs) { + final fileName = getArbFileName(lang); + alphabetizeArbFile(fileName); + } + + print('Done!'); } \ No newline at end of file diff --git a/tool/utils/translation/arb_file_utils.dart b/tool/utils/translation/arb_file_utils.dart index c43de091a..b54dab423 100644 --- a/tool/utils/translation/arb_file_utils.dart +++ b/tool/utils/translation/arb_file_utils.dart @@ -47,9 +47,7 @@ Map readArbFile(File file) { } String getArbFileName(String lang) { - final shortLang = lang - .split("-") - .first; + final shortLang = lang.split("-").first; return "./res/values/strings_$shortLang.arb"; } @@ -66,3 +64,25 @@ List getMissingKeysInArbFile(String fileName, Iterable langKeys) return results; } + +void alphabetizeArbFile(String fileName) { + final file = File(fileName); + final arbObj = readArbFile(file); + + final sortedKeys = arbObj.keys.toList() + ..sort((a, b) => a.toLowerCase().compareTo(b.toLowerCase())); + final Map sortedArbObj = {}; + for (var key in sortedKeys) { + sortedArbObj[key] = arbObj[key]; + } + + final outputContent = json + .encode(sortedArbObj) + .replaceAll('","', '",\n "') + .replaceAll('{"', '{\n "') + .replaceAll('"}', '"\n}') + .replaceAll('":"', '": "') + .replaceAll('\$ {', '\${'); + + file.writeAsStringSync(outputContent); +} From d0b51cebe327dfbc17f41505e259cb668ace0043 Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Tue, 6 Feb 2024 22:44:21 +0200 Subject: [PATCH 03/30] Generic fixes (#1291) * - Update Camera purpose string for iOS - Fix address field not passing the correct currency to address book * Enhance file loading in exception handler * Fix translation consistency [skip ci] --- ios/Runner/InfoBase.plist | 2 +- lib/src/screens/send/widgets/send_card.dart | 2 +- .../send/widgets/send_template_card.dart | 72 ++++++++++--------- lib/utils/exception_handler.dart | 26 ++++--- res/values/strings_ar.arb | 5 ++ res/values/strings_bg.arb | 9 +++ res/values/strings_cs.arb | 9 +++ res/values/strings_de.arb | 4 ++ res/values/strings_es.arb | 2 + res/values/strings_fr.arb | 1 + res/values/strings_ha.arb | 21 ++++++ res/values/strings_hi.arb | 3 + res/values/strings_hr.arb | 3 + res/values/strings_id.arb | 16 +++++ res/values/strings_it.arb | 4 ++ res/values/strings_ja.arb | 2 + res/values/strings_ko.arb | 5 ++ res/values/strings_my.arb | 3 + res/values/strings_nl.arb | 2 + res/values/strings_pl.arb | 1 + res/values/strings_pt.arb | 5 ++ res/values/strings_ru.arb | 2 + res/values/strings_th.arb | 3 + res/values/strings_tl.arb | 7 ++ res/values/strings_tr.arb | 3 + res/values/strings_uk.arb | 2 + res/values/strings_ur.arb | 11 +++ res/values/strings_yo.arb | 8 +++ res/values/strings_zh.arb | 2 + tool/translation_consistence.dart | 4 +- 30 files changed, 192 insertions(+), 47 deletions(-) diff --git a/ios/Runner/InfoBase.plist b/ios/Runner/InfoBase.plist index 4f7036498..2292d0b66 100644 --- a/ios/Runner/InfoBase.plist +++ b/ios/Runner/InfoBase.plist @@ -191,7 +191,7 @@ NSCameraUsageDescription - Used for scan QR code + Used for scanning QR code and can be used to capture images for identification purposes by third-party providers. NSDocumentsFolderUsageDescription We need access to documents folder for getting access to open/save backup file NSFaceIDUsageDescription diff --git a/lib/src/screens/send/widgets/send_card.dart b/lib/src/screens/send/widgets/send_card.dart index 07fb34cb2..5f15c9c4d 100644 --- a/lib/src/screens/send/widgets/send_card.dart +++ b/lib/src/screens/send/widgets/send_card.dart @@ -189,7 +189,7 @@ class SendCardState extends State with AutomaticKeepAliveClientMixin()!.textFieldButtonColor, - borderColor: Theme.of(context).extension()!.textFieldBorderColor, - textStyle: TextStyle( - fontSize: 14, - fontWeight: FontWeight.w500, - color: Colors.white, - ), - hintStyle: TextStyle( - fontSize: 14, - fontWeight: FontWeight.w500, - color: Theme.of(context).extension()!.textFieldHintColor, - ), - validator: sendTemplateViewModel.addressValidator, + child: Observer( + builder: (context) { + return AddressTextField( + selectedCurrency: template.selectedCurrency, + controller: _addressController, + onURIScanned: (uri) { + final paymentRequest = PaymentRequest.fromUri(uri); + _addressController.text = paymentRequest.address; + _cryptoAmountController.text = paymentRequest.amount; + }, + options: [ + AddressTextFieldOption.paste, + AddressTextFieldOption.qrCode, + AddressTextFieldOption.addressBook + ], + onPushPasteButton: (context) async { + template.output.resetParsedAddress(); + await template.output.fetchParsedAddress(context); + }, + onPushAddressBookButton: (context) async { + template.output.resetParsedAddress(); + await template.output.fetchParsedAddress(context); + }, + buttonColor: Theme.of(context).extension()!.textFieldButtonColor, + borderColor: Theme.of(context).extension()!.textFieldBorderColor, + textStyle: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w500, + color: Colors.white, + ), + hintStyle: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w500, + color: Theme.of(context).extension()!.textFieldHintColor, + ), + validator: sendTemplateViewModel.addressValidator, + ); + } ), ), Padding( diff --git a/lib/utils/exception_handler.dart b/lib/utils/exception_handler.dart index 36eac4941..6e93fc5cd 100644 --- a/lib/utils/exception_handler.dart +++ b/lib/utils/exception_handler.dart @@ -16,11 +16,15 @@ import 'package:shared_preferences/shared_preferences.dart'; class ExceptionHandler { static bool _hasError = false; static const _coolDownDurationInDays = 7; + static File? _file; static void _saveException(String? error, StackTrace? stackTrace, {String? library}) async { - final appDocDir = await getApplicationDocumentsDirectory(); + if (_file == null) { + final appDocDir = await getApplicationDocumentsDirectory(); + + _file = File('${appDocDir.path}/error.txt'); + } - final file = File('${appDocDir.path}/error.txt'); final exception = { "${DateTime.now()}": { "Error": "$error\n\n", @@ -33,14 +37,14 @@ class ExceptionHandler { ==========================================================\n\n'''; /// don't save existing errors - if (file.existsSync()) { - final String fileContent = await file.readAsString(); + if (_file!.existsSync()) { + final String fileContent = await _file!.readAsString(); if (fileContent.contains("${exception.values.first}")) { return; } } - file.writeAsStringSync( + _file!.writeAsStringSync( "$exception $separator", mode: FileMode.append, ); @@ -48,16 +52,18 @@ class ExceptionHandler { static void _sendExceptionFile() async { try { - final appDocDir = await getApplicationDocumentsDirectory(); + if (_file == null) { + final appDocDir = await getApplicationDocumentsDirectory(); - final file = File('${appDocDir.path}/error.txt'); + _file = File('${appDocDir.path}/error.txt'); + } - await _addDeviceInfo(file); + await _addDeviceInfo(_file!); final MailOptions mailOptions = MailOptions( subject: 'Mobile App Issue', recipients: ['support@cakewallet.com'], - attachments: [file.path], + attachments: [_file!.path], ); final result = await FlutterMailer.send(mailOptions); @@ -67,7 +73,7 @@ class ExceptionHandler { if (result.name == MailerResponse.sent.name || result.name == MailerResponse.saved.name || result.name == MailerResponse.android.name) { - file.writeAsString("", mode: FileMode.write); + _file!.writeAsString("", mode: FileMode.write); } } catch (e, s) { _saveException(e.toString(), s); diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 6ccc3f9bf..5ed96628b 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -64,6 +64,7 @@ "avg_savings": "متوسط مدخرات", "awaitDAppProcessing": ".ﺔﺠﻟﺎﻌﻤﻟﺍ ﻦﻣ dApp ﻲﻬﺘﻨﻳ ﻰﺘﺣ ﺭﺎﻈﺘﻧﻻﺍ ﻰﺟﺮﻳ", "awaiting_payment_confirmation": "في انتظار تأكيد الدفع", + "background_sync_mode": "وضع مزامنة الخلفية", "backup": "نسخ الاحتياطي", "backup_file": "ملف النسخ الاحتياطي", "backup_password": "كلمة مرور النسخ الاحتياطي", @@ -139,6 +140,8 @@ "connection_sync": "الاتصال والمزامنة", "connectWalletPrompt": "ﺕﻼﻣﺎﻌﻤﻟﺍ ءﺍﺮﺟﻹ WalletConnect ﻊﻣ ﻚﺘﻈﻔﺤﻣ ﻞﻴﺻﻮﺘﺑ ﻢﻗ", "contact": "تواصل", + "contact_list_contacts": "جهات الاتصال", + "contact_list_wallets": "محافظ", "contact_name": "اسم جهة الاتصال", "contact_support": "اتصل بالدعم", "continue_text": "التالي", @@ -482,6 +485,7 @@ "restore_wallet": "استعادة محفظة", "restore_wallet_name": "اسم المحفظة", "restore_wallet_restore_description": "وصف استعادة المحفظة", + "robinhood_option_description": "شراء وتحويل على الفور باستخدام بطاقة الخصم الخاصة بك أو حسابك المصرفي أو رصيد Robinhood. الولايات المتحدة الأمريكية فقط.", "router_no_route": "لم يتم تحديد مسار لـ ${name}", "save": "حفظ", "save_backup_password": "يرجى التأكد من حفظ كلمة المرور الاحتياطية. لن تتمكن من استيراد ملفات النسخ الاحتياطي بدونها.", @@ -616,6 +620,7 @@ "switchToETHWallet": "ﻯﺮﺧﺃ ﺓﺮﻣ ﺔﻟﻭﺎﺤﻤﻟﺍﻭ Ethereum ﺔﻈﻔﺤﻣ ﻰﻟﺇ ﻞﻳﺪﺒﺘﻟﺍ ﻰﺟﺮﻳ", "switchToEVMCompatibleWallet": " (Ethereum، Polygon) ﻯﺮﺧﺃ ﺓﺮﻣ ﺔﻟﻭﺎﺤﻤﻟﺍﻭ EVM ﻊﻣ ﺔﻘﻓﺍﻮﺘﻣ ﺔﻈﻔﺤﻣ ﻰﻟﺇ ﻞﻳﺪﺒﺘﻟﺍ ﻰﺟﺮﻳ", "symbol": "ﺰﻣﺭ", + "sync_all_wallets": "مزامنة جميع المحافظ", "sync_status_attempting_sync": "جاري محاولة المزامنة", "sync_status_connected": "متصل", "sync_status_connecting": "يتم التوصيل", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index 783f83d55..ac94061fc 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -64,6 +64,7 @@ "avg_savings": "Средни спестявания", "awaitDAppProcessing": "Моля, изчакайте dApp да завърши обработката.", "awaiting_payment_confirmation": "Чака се потвърждение на плащането", + "background_sync_mode": "Режим на синхронизиране на фона", "backup": "Резервно копие", "backup_file": "Резервно копие", "backup_password": "Парола за възстановяване", @@ -123,6 +124,7 @@ "clearnet_link": "Clearnet връзка", "close": "затвори", "coin_control": "Управление на монетите (не е задължително)", + "cold_or_recover_wallet": "Добавете студен портфейл или възстановете хартиен портфейл", "color_theme": "Цвят", "commit_transaction_amount_fee": "Изпълняване на транзакция\nСума: ${amount}\nТакса: ${fee}", "confirm": "Потвърждаване", @@ -409,6 +411,7 @@ "please_select": "Моля, изберете:", "please_select_backup_file": "Моля, изберете резервно копие и въведете парола за възстановяване.", "please_try_to_connect_to_another_node": "Моля, опитайте се да се свържете към друг node.", + "please_wait": "Моля Изчакай", "polygonscan_history": "История на PolygonScan", "powered_by": "Powered by ${title}", "pre_seed_button_text": "Разбирам. Покажи seed", @@ -482,6 +485,7 @@ "restore_wallet": "Възстановяване на портфейл", "restore_wallet_name": "Име на портфейл", "restore_wallet_restore_description": "Описание на възстановяване на портфейл", + "robinhood_option_description": "Купете и прехвърлете незабавно с помощта на вашата дебитна карта, банкова сметка или салдо на робини. Само САЩ.", "router_no_route": "Няма дефиниран път за ${name}", "save": "Запази", "save_backup_password": "Моля, запишете своята парола за възстановяване. Импортирането на резервни копия не е възможно без нея.", @@ -489,6 +493,7 @@ "save_to_downloads": "Запазване в Изтегляния", "saved_the_trade_id": "Запазих trade ID-то", "scan_qr_code": "Сканирайте QR кода, за да получите адреса", + "scan_qr_code_to_get_address": "Сканирайте QR кода, за да получите адреса", "scan_qr_on_device": "Сканирайте този QR код на друго устройство", "search": "Търсене", "search_add_token": "Търсене/Добавяне на токен", @@ -555,6 +560,7 @@ "send_your_wallet": "Вашият портфейл", "sending": "Изпращане", "sent": "Изпратени", + "settings": "Настройки", "settings_all": "Всичко", "settings_allow_biometrical_authentication": "Позволяване на биометрично удостоверяване.", "settings_can_be_changed_later": "Тези настройки могат да бъдат променени по-късно от приложението", @@ -609,9 +615,12 @@ "support_title_guides": "Ръководства за портфейл за торта", "support_title_live_chat": "Подкрепа на живо", "support_title_other_links": "Други връзки за поддръжка", + "sweeping_wallet": "Метещ портфейл", + "sweeping_wallet_alert": "Това не трябва да отнема много време. Не оставяйте този екран или пометените средства могат да бъдат загубени.", "switchToETHWallet": "Моля, преминете към портфейл Ethereum и опитайте отново", "switchToEVMCompatibleWallet": "Моля, превключете към портфейл, съвместим с EVM, и опитайте отново (Ethereum, Polygon)", "symbol": "Символ", + "sync_all_wallets": "Синхронизирайте всички портфейли", "sync_status_attempting_sync": "ОПИТ ЗА СИНХРОНИЗАЦИЯ", "sync_status_connected": "СВЪРЗВАНЕ", "sync_status_connecting": "СВЪРЗВАНЕ", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 3f38bd277..3fbaa03d7 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -64,6 +64,7 @@ "avg_savings": "Prům. ušetřeno", "awaitDAppProcessing": "Počkejte, až dApp dokončí zpracování.", "awaiting_payment_confirmation": "Čeká se na potvrzení platby", + "background_sync_mode": "Režim synchronizace pozadí", "backup": "Záloha", "backup_file": "Soubor se zálohou", "backup_password": "Heslo pro zálohy", @@ -123,6 +124,7 @@ "clearnet_link": "Odkaz na Clearnet", "close": "zavřít", "coin_control": "Volba mincí (nepovinné)", + "cold_or_recover_wallet": "Přidejte studenou peněženku nebo obnovte papírovou peněženku", "color_theme": "Barevný motiv", "commit_transaction_amount_fee": "Odeslat transakci\nČástka: ${amount}\nPoplatek: ${fee}", "confirm": "Potvrdit", @@ -409,6 +411,7 @@ "please_select": "Zvolte si:", "please_select_backup_file": "Prosím vyberte soubor se zálohou a zadejte heslo pro zálohy.", "please_try_to_connect_to_another_node": "Zkuste se prosím připojit k jinému uzlu", + "please_wait": "Prosím, čekejte", "polygonscan_history": "Historie PolygonScan", "powered_by": "Zajišťuje ${title}", "pre_seed_button_text": "Rozumím. Ukaž mi můj seed.", @@ -482,6 +485,7 @@ "restore_wallet": "Obnovit peněženku", "restore_wallet_name": "Jméno peněženky", "restore_wallet_restore_description": "Popis obnovení peněženky", + "robinhood_option_description": "Nakupujte a převádějte okamžitě pomocí své debetní karty, bankovního účtu nebo zůstatku Robinhood. Pouze USA.", "router_no_route": "Pro ${name} není definována žádná cesta", "save": "Uložit", "save_backup_password": "Prosím ujistěte se, že máte uschováno heslo pro zálohy. Bez něj nebudete moci naimportovat soubory se zálohami.", @@ -489,6 +493,7 @@ "save_to_downloads": "Uložit do Stažených souborů", "saved_the_trade_id": "Uložil jsem si ID transakce (trade ID)", "scan_qr_code": "Naskenujte QR kód pro získání adresy", + "scan_qr_code_to_get_address": "Prohledejte QR kód a získejte adresu", "scan_qr_on_device": "Naskenujte tento QR kód na jiném zařízení", "search": "Hledat", "search_add_token": "Hledat / Přidat token", @@ -555,6 +560,7 @@ "send_your_wallet": "Vaše peněženka", "sending": "Odesílání", "sent": "Odesláno", + "settings": "Nastavení", "settings_all": "VŠE", "settings_allow_biometrical_authentication": "Povolit biometrické ověření", "settings_can_be_changed_later": "Tato nastavení mohou být změněna později v nastavení v této aplikaci", @@ -609,9 +615,12 @@ "support_title_guides": "Průvodce peněženkami dortu", "support_title_live_chat": "Živá podpora", "support_title_other_links": "Další odkazy na podporu", + "sweeping_wallet": "Zametací peněženka", + "sweeping_wallet_alert": "To by nemělo trvat dlouho. Nenechávejte tuto obrazovku, jinak mohou být ztraceny prostředky.", "switchToETHWallet": "Přejděte na peněženku Ethereum a zkuste to znovu", "switchToEVMCompatibleWallet": "Přepněte na peněženku kompatibilní s EVM a zkuste to znovu (Ethereum, Polygon)", "symbol": "Symbol", + "sync_all_wallets": "Synchronizovat všechny peněženky", "sync_status_attempting_sync": "ZAHAJUJI SYNCHR.", "sync_status_connected": "PŘIPOJENO", "sync_status_connecting": "PŘIPOJOVÁNÍ", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 8369cc5b7..b795b2037 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -44,6 +44,7 @@ "amount": "Betrag: ", "amount_is_estimate": "Der empfangene Betrag ist eine Schätzung", "amount_is_guaranteed": "Der Empfangsbetrag ist garantiert", + "and": "Und", "anonpay_description": "Generieren Sie ${type}. Der Empfänger kann ${method} mit jeder unterstützten Kryptowährung verwenden, und Sie erhalten Geld in dieser Wallet.", "apk_update": "APK-Update", "approve": "Genehmigen", @@ -62,6 +63,7 @@ "available_balance_description": "Verfügbarer Saldo ist der Betrag, den Sie sofort ausgeben können. Dieser Betrag kann sich ändern, wenn Sie eine Transaktion senden oder empfangen.", "avg_savings": "Durchschn. Einsparungen", "awaitDAppProcessing": "Bitte warten Sie, bis die dApp die Verarbeitung abgeschlossen hat.", + "awaiting_payment_confirmation": "Warten auf Zahlungsbestätigung", "background_sync_mode": "Hintergrundsynchronisierungsmodus", "backup": "Sicherung", "backup_file": "Sicherungsdatei", @@ -406,6 +408,7 @@ "please_fill_totp": "Bitte geben Sie den 8-stelligen Code ein, der auf Ihrem anderen Gerät vorhanden ist", "please_make_selection": "Bitte treffen Sie unten eine Auswahl zum Erstellen oder Wiederherstellen Ihrer Wallet.", "Please_reference_document": "Weitere Informationen finden Sie in den Dokumenten unten.", + "please_reference_document": "Bitte verweisen Sie auf die folgenden Dokumente, um weitere Informationen zu erhalten.", "please_select": "Bitte auswählen:", "please_select_backup_file": "Bitte wählen Sie die Sicherungsdatei und geben Sie das Sicherungskennwort ein.", "please_try_to_connect_to_another_node": "Bitte versuchen Sie, sich mit einem anderen Knoten zu verbinden", @@ -483,6 +486,7 @@ "restore_wallet": "Wallet wiederherstellen", "restore_wallet_name": "Walletname", "restore_wallet_restore_description": "Beschreibung zur Wallet-Wiederherstellung", + "robinhood_option_description": "Kaufen und übertragen Sie sofort mit Ihrem Debitkarten-, Bankkonto- oder Robinhood -Guthaben. Nur USA.", "router_no_route": "Keine Route definiert für ${name}", "save": "Speichern", "save_backup_password": "Bitte stellen Sie sicher, dass Sie Ihr Sicherungskennwort gespeichert haben. Ohne dieses können Sie Ihre Sicherungsdateien nicht importieren.", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 4f54e0f87..9ce0fe803 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -162,6 +162,7 @@ "creating_new_wallet": "Creando nueva billetera", "creating_new_wallet_error": "Error: ${description}", "creation_date": "Fecha de creación", + "custom": "Costumbre", "custom_drag": "Custom (mantenía y arrastre)", "custom_redeem_amount": "Cantidad de canje personalizada", "dark_theme": "Oscura", @@ -485,6 +486,7 @@ "restore_wallet": "Restaurar billetera", "restore_wallet_name": "Nombre de la billetera", "restore_wallet_restore_description": "Restaurar billetera", + "robinhood_option_description": "Compre y transfiera instantáneamente utilizando su tarjeta de débito, cuenta bancaria o saldo de Robinhood. Solo EE. UU.", "router_no_route": "No hay ruta definida para ${name}", "save": "Salvar", "save_backup_password": "Asegúrese de haber guardado su contraseña de respaldo. No podrá importar sus archivos de respaldo sin él.", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index fc72c06db..306ff79ea 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -485,6 +485,7 @@ "restore_wallet": "Restaurer un Portefeuille (Wallet)", "restore_wallet_name": "Nom du portefeuille (wallet)", "restore_wallet_restore_description": "Description de la restauration de portefeuille (wallet)", + "robinhood_option_description": "Achetez et transférez instantanément à l'aide de votre carte de débit, de votre compte bancaire ou de votre solde Robinhood. États-Unis seulement.", "router_no_route": "Aucune route définie pour ${name}", "save": "Sauvegarder", "save_backup_password": "Merci de vous assurer d'avoir bien sauvegardé votre mot de passe de sauvegarde. Vous ne pourrez pas restaurer vos fichiers de sauvegarde sans ce dernier.", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index 748c134c6..4ce0fd713 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -64,6 +64,7 @@ "avg_savings": "Matsakaici Adana", "awaitDAppProcessing": "Da fatan za a jira dApp ya gama aiki.", "awaiting_payment_confirmation": "Ana jiran Tabbacin Biyan Kuɗi", + "background_sync_mode": "Yanayin Sync", "backup": "Ajiyayyen", "backup_file": "Ajiyayyen fayil", "backup_password": "Ajiyayyen kalmar sirri", @@ -121,6 +122,7 @@ "choose_wallet_currency": "Da fatan za a zaɓi kuɗin walat:", "clear": "Share", "clearnet_link": "Lambar makomar kwayoyi", + "close": "Rufa", "coin_control": "Sarrafa tsabar kuɗi (na zaɓi)", "cold_or_recover_wallet": "Samun kashi na baya ko samun kashi na kasa", "color_theme": "Jigon launi", @@ -181,7 +183,9 @@ "didnt_get_code": "Ba a samun code?", "digit_pin": "-lambar PIN", "digital_and_physical_card": "katin zare kudi na dijital da na zahiri", + "disable": "Kashe", "disable_buy": "Kashe alama", + "disable_cake_2fa": "Musaki Cake 2FA", "disable_exchange": "Kashe musanya", "disable_fiat": "Dakatar da fiat", "disable_sell": "Kashe karbuwa", @@ -207,6 +211,7 @@ "enter_backup_password": "Shigar da kalmar wucewa ta madadin nan", "enter_code": "Shigar da lamba", "enter_seed_phrase": "Shigar da Sert Sentarku", + "enter_totp_code": "Da fatan za a shigar da lambar tnp.", "enter_your_note": "Shigar da bayanin kula…", "enter_your_pin": "Shigar da PIN", "enter_your_pin_again": "Shigar da PIN ɗinku na sake", @@ -254,6 +259,7 @@ "expiresOn": "Yana ƙarewa", "export_backup": "Ajiyayyen fitarwa", "extra_id": "Karin ID:", + "extracted_address_content": "Za ku aika da kudade zuwa\n${recipient_name}", "failed_authentication": "Binne wajen shiga. ${state_error}", "faq": "FAQ", "fetching": "Daukewa", @@ -329,6 +335,7 @@ "min_value": "Min: ${value} ${currency}", "minutes_to_pin_code": "${minute} minti", "mm": "MM", + "modify_2fa": "Gyara Cake 2FA", "monero_com": "Monero.com ta Cake Wallet", "monero_com_wallet_text": "Aikace-aikacen e-wallet ga Monero", "monero_dark_theme": "Monero Dark Jigo", @@ -378,6 +385,7 @@ "optional_email_hint": "Email na kayan taimako ga wadanda basu ba da maki", "optional_name": "Sunan mawallin zai iya ba da maki", "optionally_order_card": "Zaɓin yin odar katin zahiri.", + "orbot_running_alert": "Da fatan za a tabbata cewa orbot yana gudana kafin haɗi zuwa wannan kumburin.", "order_by": "Oda ta", "order_id": "Oda ID", "order_physical_card": "Yi Oda Katin Jiki", @@ -399,6 +407,7 @@ "pin_number": "Lambar PIN", "placeholder_contacts": "Za a nuna lambobin sadarwar ku anan", "placeholder_transactions": "Za a nuna ma'amalolin ku anan", + "please_fill_totp": "Da fatan za a cika lambar lambobi 8 da ke yanzu a kan sauran na'urarku", "please_make_selection": "Don Allah zaɓi ƙasa don ƙirƙira ko dawo da kwalinku.", "please_reference_document": "Da fatan za a nemi takaddun da ke ƙasa don ƙarin bayani.", "please_select": "Don Allah zaɓi:", @@ -416,11 +425,13 @@ "privacy_settings": "Saitunan sirri", "private_key": "Keɓaɓɓen maɓalli", "proceed_after_one_minute": "Idan allon bai ci gaba ba bayan minti 1, duba imel ɗin ku.", + "profile": "Rabin fuska", "provider_error": "${provider} kuskure", "public_key": "Maɓallin jama'a", "purchase_gift_card": "Katin Kyautar Sayi", "qr_fullscreen": "Matsa don buɗe lambar QR na cikakken allo", "qr_payment_amount": "Wannan QR code yana da adadin kuɗi. Kuna so ku overwrite wannan adadi?", + "question_to_disable_2fa": "Ka tabbata cewa kana son kashe cake 2fa? Ba za a sake buƙatar lambar 2FA ba don samun damar yin walat da takamaiman ayyuka.", "receivable_balance": "Daidaituwa da daidaituwa", "receive": "Samu", "receive_amount": "Adadi", @@ -476,6 +487,7 @@ "restore_wallet": "Dawo da Kwalinku", "restore_wallet_name": "Sunan kwalinku", "restore_wallet_restore_description": "Bayanin dawo da walat", + "robinhood_option_description": "Sayi da Canja wurin nan take amfani da katin debit, asusun banki, ko ma'aunin raraki. Amurka kawai.", "router_no_route": "Babu wata hanya da aka bayyana don ${name}", "save": "Ajiye", "save_backup_password": "Da fatan za a tabbatar cewa kun adana kalmar sirrin ajiyar ku. Ba za ku iya shigo da fayilolin ajiyar ku ba tare da shi ba.", @@ -483,6 +495,7 @@ "save_to_downloads": "Ajiye zuwa Zazzagewa", "saved_the_trade_id": "Na ajiye ID na ciniki", "scan_qr_code": "Gani QR kodin", + "scan_qr_code_to_get_address": "Duba lambar QR don samun adireshin", "scan_qr_on_device": "Duba wannan lambar QR akan wata na'ura", "search": "Bincika", "search_add_token": "Bincika / Ƙara alama", @@ -573,6 +586,7 @@ "settings_trades": "Cinikai", "settings_transactions": "Ma'amaloli", "settings_wallets": "Wallets", + "setup_2fa": "Saiti 2FA", "setup_2fa_text": "Cake 2FA yana aiki ta amfani da TOTP azaman ƙimar tabbatarwa ta biyu.\n\nCake 2FA's TOTP yana buƙatar tallafin lambobi SHA-512 da 8; wannan yana ba da ƙarin tsaro. Ana iya samun ƙarin bayani da ƙa'idodi masu goyan baya a cikin jagorar.", "setup_pin": "Saita PIN", "setup_successful": "An saita PIN ɗinku da nasara!", @@ -608,6 +622,7 @@ "switchToETHWallet": "Da fatan za a canza zuwa walat ɗin Ethereum kuma a sake gwadawa", "switchToEVMCompatibleWallet": "Da fatan za a canza zuwa walat ɗin EVM mai jituwa kuma a sake gwadawa (Ethereum, Polygon)", "symbol": "Alama", + "sync_all_wallets": "Sync Duk Wallet", "sync_status_attempting_sync": "KWAFI", "sync_status_connected": "HANNU", "sync_status_connecting": "HADA", @@ -633,7 +648,12 @@ "tor_connection": "Tor haɗin gwiwa", "tor_only": "Tor kawai", "total_saving": "Jimlar Adana", + "totp_2fa_failure": "Ba daidai ba. Da fatan za a gwada wata lamba ta daban ko samar da sabon maɓallin asirin. Yi amfani da aikace-aikacen da ya dace 2FA wanda ke tallafawa lambobin lambobi 8 da Sha512.", + "totp_2fa_success": "Nasara! Cake 2FA ya dogara da wannan waljin. Ka tuna domin adana zuriyar mnemmonic naka idan ka rasa damar walat.", "totp_auth_url": "TOTP AUTH URL", + "totp_code": "Lambar totp", + "totp_secret_code": "Lambar sirri", + "totp_verification_success": "Tabbatar cin nasara!", "trade_details_copied": "${title} an kwafa zuwa cikin kwafin", "trade_details_created_at": "An ƙirƙira a", "trade_details_fetching": "Daukewa", @@ -701,6 +721,7 @@ "use_suggested": "Amfani da Shawarwari", "variable_pair_not_supported": "Ba a samun goyan bayan wannan m biyu tare da zaɓaɓɓun musayar", "verification": "tabbatar", + "verify_with_2fa": "Tabbatar da Cake 2FA", "version": "Sigar ${currentVersion}", "view_all": "Duba duka", "view_in_block_explorer": "Dubo a cikin Block Explorer", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 53347a69a..a6335e3ed 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -39,6 +39,7 @@ "all_trades": "सभी व्यापार", "all_transactions": "सभी लेन - देन", "alphabetical": "वर्णमाला", + "already_have_account": "क्या आपके पास पहले से एक खाता मौजूद है?", "always": "हमेशा", "amount": "रकम: ", "amount_is_estimate": "प्राप्त राशि एक अनुमान है", @@ -397,6 +398,7 @@ "pause_wallet_creation": "हेवन वॉलेट बनाने की क्षमता फिलहाल रुकी हुई है।", "payment_id": "भुगतान ID: ", "Payment_was_received": "आपका भुगतान प्राप्त हो गया था।", + "payment_was_received": "आपका भुगतान प्राप्त हुआ था।", "pending": " (अपूर्ण)", "percentageOf": "${amount} का", "pin_at_top": "शीर्ष पर ${token} पिन करें", @@ -485,6 +487,7 @@ "restore_wallet": "वॉलेट को पुनर्स्थापित करें", "restore_wallet_name": "बटुए का नाम", "restore_wallet_restore_description": "बटुआ विवरण पुनर्स्थापित करें", + "robinhood_option_description": "अपने डेबिट कार्ड, बैंक खाते या रॉबिनहुड बैलेंस का उपयोग करके तुरंत खरीदें और स्थानांतरित करें। केवल यूएसए।", "router_no_route": "के लिए कोई मार्ग निर्धारित नहीं है ${name}", "save": "बचाना", "save_backup_password": "कृपया सुनिश्चित करें कि आपने अपना बैकअप पासवर्ड सहेज लिया है। आप इसके बिना अपनी बैकअप फ़ाइलों को आयात नहीं कर पाएंगे।", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 7d251e867..e95c027d9 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -108,6 +108,7 @@ "change_language": "Promijeni jezik", "change_language_to": "Promijeni jezik u ${language}?", "change_password": "Promijeni lozinku", + "change_rep": "Promijenite reprezentativan", "change_rep_message": "Jeste li sigurni da želite promijeniti predstavnika?", "change_rep_successful": "Uspješno promijenjena reprezentativna", "change_wallet_alert_content": "Želite li promijeniti trenutni novčanik u ${wallet_name}?", @@ -484,6 +485,7 @@ "restore_wallet": "Oporavi novčanik", "restore_wallet_name": "Ime novčanika", "restore_wallet_restore_description": "Opis oporavka novčanika", + "robinhood_option_description": "Kupite i prebacite odmah pomoću svoje debitne kartice, bankovnog računa ili robinhood salda. Samo SAD.", "router_no_route": "Nije definirana ruta za ${name}", "save": "Spremi", "save_backup_password": "Molimo pobrinite se da spremite svoju lozinku za sigurnosnu kopiju. Bez nje nećete moći uvesti datoteke sigurnosne kopije.", @@ -608,6 +610,7 @@ "submit_request": "podnesi zahtjev", "successful": "Uspješno", "support_description_guides": "Dokumentacija i podrška za uobičajena pitanja", + "support_description_live_chat": "Besplatno i brzo! Obučeni predstavnici podrške dostupni su za pomoć", "support_description_other_links": "Pridružite se našim zajednicama ili nam dosegnu naše partnere drugim metodama", "support_title_guides": "Vodiči za torte", "support_title_live_chat": "Podrška uživo", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index 464483eab..d9ee117ad 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -48,6 +48,7 @@ "anonpay_description": "Hasilkan ${type}. Penerima dapat ${method} dengan cryptocurrency apa pun yang didukung, dan Anda akan menerima dana di dompet ini.", "apk_update": "Pembaruan APK", "approve": "Menyetujui", + "arrive_in_this_address": "${currency} ${tag} akan tiba di alamat ini", "ascending": "Naik", "ask_each_time": "Tanyakan setiap kali", "auth_store_ban_timeout": "ban_timeout", @@ -63,6 +64,7 @@ "avg_savings": "Rata-rata Pembayaran", "awaitDAppProcessing": "Mohon tunggu hingga dApp menyelesaikan pemrosesan.", "awaiting_payment_confirmation": "Menunggu Konfirmasi Pembayaran", + "background_sync_mode": "Mode Sinkronisasi Latar Belakang", "backup": "Cadangan", "backup_file": "File cadangan", "backup_password": "Kata sandi cadangan", @@ -72,6 +74,7 @@ "biometric_auth_reason": "Pindai sidik jari Anda untuk mengautentikasi", "bitcoin_dark_theme": "Tema Gelap Bitcoin", "bitcoin_light_theme": "Tema Cahaya Bitcoin", + "bitcoin_payments_require_1_confirmation": "Pembayaran Bitcoin memerlukan 1 konfirmasi, yang bisa memakan waktu 20 menit atau lebih. Terima kasih atas kesabaran Anda! Anda akan diemail saat pembayaran dikonfirmasi.", "Blocks_remaining": "${status} Blok Tersisa", "bright_theme": "Cerah", "buy": "Beli", @@ -121,6 +124,7 @@ "clearnet_link": "Tautan clearnet", "close": "Menutup", "coin_control": "Kontrol koin (opsional)", + "cold_or_recover_wallet": "Tambahkan dompet dingin atau pulihkan dompet kertas", "color_theme": "Tema warna", "commit_transaction_amount_fee": "Lakukan transaksi\nJumlah: ${amount}\nBiaya: ${fee}", "confirm": "Konfirmasi", @@ -190,6 +194,7 @@ "display_settings": "Pengaturan tampilan", "displayable": "Dapat ditampilkan", "do_not_have_enough_gas_asset": "Anda tidak memiliki cukup ${currency} untuk melakukan transaksi dengan kondisi jaringan blockchain saat ini. Anda memerlukan lebih banyak ${currency} untuk membayar biaya jaringan blockchain, meskipun Anda mengirimkan aset yang berbeda.", + "do_not_send": "Jangan kirim", "do_not_share_warning_text": "Jangan berikan ini pada siapapun, termasuk dukungan.\n\nDana Anda bisa dan akan dicuri!", "do_not_show_me": "Jangan tampilkan ini lagi", "domain_looks_up": "Pencarian domain", @@ -213,6 +218,7 @@ "enterTokenID": "Masukkan ID tokennya", "enterWalletConnectURI": "Masukkan URI WalletConnect", "error": "Kesalahan", + "error_dialog_content": "Ups, kami mendapat kesalahan.\n\nSilakan kirim laporan crash ke tim dukungan kami untuk membuat aplikasi lebih baik.", "error_text_account_name": "Nama akun hanya dapat berisi huruf, angka\ndan harus antara 1 dan 15 karakter panjang", "error_text_address": "Alamat dompet harus sesuai dengan tipe\nmata uang kripto", "error_text_amount": "Jumlah hanya dapat berisi angka", @@ -253,6 +259,7 @@ "expiresOn": "Kadaluarsa pada", "export_backup": "Ekspor cadangan", "extra_id": "ID tambahan:", + "extracted_address_content": "Anda akan mengirim dana ke\n${recipient_name}", "failed_authentication": "Otentikasi gagal. ${state_error}", "faq": "Pertanyaan yang Sering Diajukan", "fetching": "Mengambil", @@ -406,6 +413,7 @@ "please_select": "Silakan pilih:", "please_select_backup_file": "Silakan pilih file cadangan dan masukkan kata sandi cadangan.", "please_try_to_connect_to_another_node": "Silakan coba untuk terhubung ke node lain", + "please_wait": "Harap tunggu", "polygonscan_history": "Sejarah PolygonScan", "powered_by": "Didukung oleh ${title}", "pre_seed_button_text": "Saya mengerti. Tampilkan seed saya", @@ -464,6 +472,7 @@ "restore_description_from_seed": "Pulihkan dompet Anda dari kombinasi kode 25 atau 13 kata", "restore_description_from_seed_keys": "Dapatkan kembali dompet Anda dari seed/kunci yang Anda simpan di tempat yang aman", "restore_from_date_atau_blockheight": "Silakan masukkan tanggal beberapa hari sebelum Anda membuat dompet ini. Atau jika Anda tahu blockheight, silakan masukkannya sebagai gantinya", + "restore_from_date_or_blockheight": "Harap masukkan tanggal beberapa hari sebelum Anda membuat dompet ini. Atau jika Anda tahu blockheight, silakan masukkan sebagai gantinya", "restore_from_seed_placeholder": "Silakan masukkan atau tempel seed Anda di sini", "restore_new_seed": "Seed baru", "restore_next": "Selanjutnya", @@ -479,6 +488,7 @@ "restore_wallet": "Pulihkan Dompet", "restore_wallet_name": "Nama dompet", "restore_wallet_restore_description": "Deskripsi pemulihan dompet", + "robinhood_option_description": "Beli dan transfer secara instan menggunakan kartu debit, rekening bank, atau saldo robinhood Anda. Hanya AS.", "router_no_route": "Tidak ada rute yang ditentukan untuk ${name}", "save": "Simpan", "save_backup_password": "Pastikan Anda telah menyimpan kata sandi cadangan Anda. Anda tidak akan dapat mengimpor file cadangan Anda tanpa itu.", @@ -486,6 +496,7 @@ "save_to_downloads": "Simpan ke Unduhan", "saved_the_trade_id": "Saya telah menyimpan ID perdagangan", "scan_qr_code": "Scan kode QR untuk mendapatkan alamat", + "scan_qr_code_to_get_address": "Pindai kode QR untuk mendapatkan alamat", "scan_qr_on_device": "Pindai kode QR ini di perangkat lain", "search": "Cari", "search_add_token": "Cari / Tambahkan token", @@ -547,10 +558,12 @@ "send_success": "${crypto}mu berhasil dikirim", "send_templates": "Template", "send_title": "Kirim", + "send_to_this_address": "Kirim ${currency} ${tag} ke alamat ini", "send_xmr": "Kirim XMR", "send_your_wallet": "Dompetmu", "sending": "Mengirim", "sent": "Dikirim", + "settings": "Pengaturan", "settings_all": "SEMUA", "settings_allow_biometrical_authentication": "Izinkan otentikasi biometrik", "settings_can_be_changed_later": "Pengaturan ini dapat diubah nanti di pengaturan aplikasi", @@ -605,9 +618,12 @@ "support_title_guides": "Panduan Dompet Kue", "support_title_live_chat": "Dukungan langsung", "support_title_other_links": "Tautan dukungan lainnya", + "sweeping_wallet": "Dompet menyapu", + "sweeping_wallet_alert": "Ini seharusnya tidak memakan waktu lama. Jangan tinggalkan layar ini atau dana swept mungkin hilang.", "switchToETHWallet": "Silakan beralih ke dompet Ethereum dan coba lagi", "switchToEVMCompatibleWallet": "Silakan beralih ke dompet yang kompatibel dengan EVM dan coba lagi (Ethereum, Polygon)", "symbol": "Simbol", + "sync_all_wallets": "Sinkronkan semua dompet", "sync_status_attempting_sync": "MENCOBA SINKRONISASI", "sync_status_connected": "TERHUBUNG", "sync_status_connecting": "MENGHUBUNGKAN", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 729b8c9c8..ca5716c07 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -63,6 +63,7 @@ "available_balance_description": "Il saldo disponibile è il saldo totale meno i fondi congelati. I fondi congelati sono fondi che sono stati inviati ma non sono ancora stati confermati.", "avg_savings": "Risparmio medio", "awaitDAppProcessing": "Attendi gentilmente che la dApp termini l'elaborazione.", + "awaiting_payment_confirmation": "In attesa di conferma del pagamento", "background_sync_mode": "Modalità di sincronizzazione in background", "backup": "Backup", "backup_file": "Backup file", @@ -134,6 +135,7 @@ "confirmed": "Saldo confermato", "confirmed_tx": "Confermato", "congratulation": "Congratulazioni!", + "congratulations": "Congratulazioni!", "connect_an_existing_yat": "Collegare un Yat esistente", "connect_yats": "Connetti Yats", "connection_sync": "Connessione e sincronizzazione", @@ -382,6 +384,7 @@ "optional_email_hint": "Email di notifica del beneficiario facoltativa", "optional_name": "Nome del destinatario facoltativo", "optional_order_card": "Ordina facoltativamente una carta fisica.", + "optionally_order_card": "Ordina facoltativamente una carta fisica.", "orbot_running_alert": "Assicurati che Orbot sia in esecuzione prima di connetterti a questo nodo.", "order_by": "Ordinato da", "order_id": "ID ordine", @@ -484,6 +487,7 @@ "restore_wallet": "Recupera Portafoglio", "restore_wallet_name": "Nome Portafoglio", "restore_wallet_restore_description": "Descrizione recupero Portafoglio", + "robinhood_option_description": "Acquista e trasferisci istantaneamente utilizzando la carta di debito, il conto bancario o il saldo di Robinhood. Solo USA.", "router_no_route": "Nessun percorso definito per ${name}", "save": "Salva", "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.", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 710a78088..5c5d3e3a1 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -279,6 +279,7 @@ "full_balance": "フルバランス", "generate_name": "名前の生成", "generated_gift_card": "ギフトカードの生成", + "generating_gift_card": "ギフトカードの生成", "get_a": "Get a", "get_card_note": "デジタル通貨でリロードできます。追加情報は必要ありません!", "get_your_yat": "あなたのYatを入手してください", @@ -485,6 +486,7 @@ "restore_wallet": "ウォレットを復元", "restore_wallet_name": "ウォレット名", "restore_wallet_restore_description": "ウォレットの復元", + "robinhood_option_description": "デビットカード、銀行口座、またはロビンフッドバランスを使用して、即座に購入して転送します。アメリカのみ。", "router_no_route": "ルートが定義されていません ${name}", "save": "セーブ", "save_backup_password": "バックアップパスワードが保存されていることを確認してください。 それなしではバックアップファイルをインポートすることはできません。", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index f0970ac43..81b582200 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -108,6 +108,8 @@ "change_language": "언어 변경", "change_language_to": "언어를로 변경 ${language}?", "change_password": "비밀번호 변경", + "change_rep": "대표를 변경하십시오", + "change_rep_message": "대표를 바꾸고 싶습니까?", "change_rep_successful": "대리인이 성공적으로 변경되었습니다", "change_wallet_alert_content": "현재 지갑을 다음으로 변경 하시겠습니까 ${wallet_name}?", "change_wallet_alert_title": "현재 지갑 변경", @@ -406,6 +408,7 @@ "please_fill_totp": "다른 기기에 있는 8자리 코드를 입력하세요.", "please_make_selection": "아래에서 선택하십시오 지갑 만들기 또는 복구.", "Please_reference_document": "자세한 내용은 아래 문서를 참조하십시오.", + "please_reference_document": "자세한 내용은 아래 문서를 참조하십시오.", "please_select": "선택 해주세요:", "please_select_backup_file": "백업 파일을 선택하고 백업 암호를 입력하십시오.", "please_try_to_connect_to_another_node": "다른 노드에 연결을 시도하십시오", @@ -483,6 +486,7 @@ "restore_wallet": "월렛 복원", "restore_wallet_name": "지갑 이름", "restore_wallet_restore_description": "월렛 복원 설명", + "robinhood_option_description": "직불 카드, 은행 계좌 또는 Robinhood 잔액을 사용하여 즉시 구매 및 양도하십시오. 미국 만.", "router_no_route": "에 정의 된 경로가 없습니다 ${name}", "save": "구하다", "save_backup_password": "백업 암호를 저장했는지 확인하십시오. 그것 없이는 백업 파일을 가져올 수 없습니다.", @@ -774,5 +778,6 @@ "you_will_get": "로 변환하다", "you_will_send": "다음에서 변환", "YY": "YY", + "yy": "YY", "zzzz": "zzzz" } \ No newline at end of file diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index fecec9f18..5094b1898 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -64,6 +64,7 @@ "avg_savings": "ပျမ်းမျှ စုဆောင်းငွေ", "awaitDAppProcessing": "ကျေးဇူးပြု၍ dApp ကို စီမံလုပ်ဆောင်ခြင်း အပြီးသတ်ရန် စောင့်ပါ။", "awaiting_payment_confirmation": "ငွေပေးချေမှု အတည်ပြုချက်ကို စောင့်မျှော်နေပါသည်။", + "background_sync_mode": "နောက်ခံထပ်တူပြုခြင်း mode ကို", "backup": "မိတ္တူ", "backup_file": "အရန်ဖိုင်", "backup_password": "စကားဝှက်ကို အရန်သိမ်းဆည်းပါ။", @@ -484,6 +485,7 @@ "restore_wallet": "ပိုက်ဆံအိတ်ကို ပြန်ယူပါ။", "restore_wallet_name": "ပိုက်ဆံအိတ်နာမည်", "restore_wallet_restore_description": "Wallet ပြန်လည်ရယူသည့် ဖော်ပြချက်", + "robinhood_option_description": "သင်၏ဒက်ဘစ်ကဒ်, ဘဏ်အကောင့်, ယူအက်စ်အေသာ။", "router_no_route": "${name} အတွက် သတ်မှတ်ထားသော လမ်းကြောင်းမရှိပါ", "save": "သိမ်းဆည်းပါ။", "save_backup_password": "သင်၏ အရန်စကားဝှက်ကို သိမ်းဆည်းထားကြောင်း သေချာပါစေ။ ၎င်းမပါဘဲ သင်၏ အရန်ဖိုင်များကို တင်သွင်းနိုင်မည် မဟုတ်ပါ။", @@ -618,6 +620,7 @@ "switchToETHWallet": "ကျေးဇူးပြု၍ Ethereum ပိုက်ဆံအိတ်သို့ ပြောင်းပြီး ထပ်စမ်းကြည့်ပါ။", "switchToEVMCompatibleWallet": "ကျေးဇူးပြု၍ EVM တွဲဖက်သုံးနိုင်သော ပိုက်ဆံအိတ်သို့ ပြောင်းပြီး ထပ်စမ်းကြည့်ပါ (Ethereum၊ Polygon)", "symbol": "သင်္ကေတ", + "sync_all_wallets": "အားလုံးပိုက်ဆံအိတ်စည်းညှိ", "sync_status_attempting_sync": "ချိန်ကိုက်ခြင်းကို ကြိုးစားနေသည်။", "sync_status_connected": "ချိတ်ဆက်ထားသည်။", "sync_status_connecting": "ချိတ်ဆက်ခြင်း။", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 225c7fc42..3aa4a3e4b 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -63,6 +63,7 @@ "available_balance_description": "Beschikbaar saldo is het saldo dat u kunt uitgeven. Het kan lager zijn dan uw totale saldo als u onlangs geld hebt verzonden.", "avg_savings": "Gem. besparingen", "awaitDAppProcessing": "Wacht tot de dApp klaar is met verwerken.", + "awaiting_payment_confirmation": "In afwachting van betalingsbevestiging", "background_sync_mode": "Achtergrondsynchronisatiemodus", "backup": "Back-up", "backup_file": "Backup bestand", @@ -484,6 +485,7 @@ "restore_wallet": "Portemonnee herstellen", "restore_wallet_name": "Portemonnee naam", "restore_wallet_restore_description": "Portemonnee-herstelbeschrijving", + "robinhood_option_description": "Koop en zet direct over op uw bankpas, bankrekening of Robinhood -saldo. Alleen VS.", "router_no_route": "Geen route gedefinieerd voor ${name}", "save": "Opslaan", "save_backup_password": "Zorg ervoor dat u uw reservewachtwoord heeft opgeslagen. Zonder dit kunt u uw back-upbestanden niet importeren.", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index f7293c754..8e3d3bffe 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -485,6 +485,7 @@ "restore_wallet": "Przywróć portfel", "restore_wallet_name": "Nazwa portfela", "restore_wallet_restore_description": "Przywracanie portfela", + "robinhood_option_description": "Kup i przenieś natychmiast za pomocą karty debetowej, konta bankowego lub salda Robinhood. Tylko USA.", "router_no_route": "Brak zdefiniowanej trasy dla ${name}", "save": "Zapisz", "save_backup_password": "Upewnij się, że zapisałeś swoje hasło kopii zapasowej. Bez tego nie będziesz mógł zaimportować pliku kopii zapasowej.", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 1f80c62d9..f00f02c01 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -63,6 +63,7 @@ "available_balance_description": "Seu saldo disponível é o saldo total menos o saldo congelado. O saldo congelado é o saldo que você não pode gastar, mas que ainda não foi confirmado na blockchain. O saldo congelado é geralmente o resultado de transações recentes.", "avg_savings": "Poupança média", "awaitDAppProcessing": "Aguarde até que o dApp termine o processamento.", + "awaiting_payment_confirmation": "Aguardando confirmação de pagamento", "background_sync_mode": "Modo de sincronização em segundo plano", "backup": "Cópia de segurança", "backup_file": "Arquivo de backup", @@ -322,6 +323,7 @@ "manage_nodes": "Gerenciar nós", "manage_pow_nodes": "Gerenciar nós PoW", "manage_yats": "Gerenciar Yats", + "mark_as_redeemed": "Marque como resgatado", "mark_as_redemed": "Marcar como resgatado", "market_place": "Mercado", "matrix_green_dark_theme": "Tema escuro verde matrix", @@ -382,6 +384,7 @@ "optional_description": "Descrição opcional", "optional_email_hint": "E-mail opcional de notificação do beneficiário", "optional_name": "Nome do destinatário opcional", + "optionally_order_card": "Opcionalmente encomende um cartão físico.", "orbot_running_alert": "Certifique-se de que o Orbot esteja em execução antes de se conectar a este nó.", "order_by": "Ordenar por", "order_id": "ID do pedido", @@ -484,6 +487,7 @@ "restore_wallet": "Restaurar carteira", "restore_wallet_name": "Nome da carteira", "restore_wallet_restore_description": "Restauração da carteira", + "robinhood_option_description": "Compre e transfira instantaneamente usando seu cartão de débito, conta bancária ou saldo de Robinhood. EUA apenas.", "router_no_route": "Nenhuma rota definida para ${name}", "save": "Salvar", "save_backup_password": "Certifique-se de que salvou sua senha de backup. Você não poderá importar seus arquivos de backup sem ele.", @@ -595,6 +599,7 @@ "show_keys": "Mostrar semente/chaves", "show_market_place": "Mostrar mercado", "show_seed": "Mostrar semente", + "sign_up": "Inscrever-se", "signTransaction": "Assinar transação", "signup_for_card_accept_terms": "Cadastre-se no cartão e aceite os termos.", "slidable": "Deslizável", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 7fccaa5bd..b8e70ee1f 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -382,6 +382,7 @@ "optional_description": "Дополнительное описание", "optional_email_hint": "Необязательное электронное письмо с уведомлением получателя платежа", "optional_name": "Необязательное имя получателя", + "optionally_order_card": "При желании заказать физическую карту.", "optionly_order_card": "При желании закажите физическую карту.", "orbot_running_alert": "Перед подключением к этому узлу убедитесь, что Orbot запущен.", "order_by": "Сортировать по", @@ -485,6 +486,7 @@ "restore_wallet": "Восстановить кошелёк", "restore_wallet_name": "Имя кошелька", "restore_wallet_restore_description": "Описание восстановления кошелька", + "robinhood_option_description": "Покупайте и перенесите мгновенно, используя свою дебетовую карту, банковский счет или баланс Robinhood. Только США.", "router_no_route": "Не установлен маршрут для ${name}", "save": "Сохранить", "save_backup_password": "Убедитесь, что вы сохранили пароль резервной копии. Без него вы не сможете импортировать файлы резервных копий.", diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index e1f187bd3..1975556ca 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -64,6 +64,7 @@ "avg_savings": "ประหยัดเฉลี่ย", "awaitDAppProcessing": "โปรดรอให้ dApp ประมวลผลเสร็จสิ้น", "awaiting_payment_confirmation": "รอการยืนยันการชำระเงิน", + "background_sync_mode": "โหมดซิงค์พื้นหลัง", "backup": "สำรองข้อมูล", "backup_file": "ไฟล์สำรองข้อมูล", "backup_password": "รหัสผ่านสำรองข้อมูล", @@ -484,6 +485,7 @@ "restore_wallet": "กู้กระเป๋า", "restore_wallet_name": "ชื่อกระเป๋า", "restore_wallet_restore_description": "คำอธิบายการกู้กระเป๋า", + "robinhood_option_description": "ซื้อและโอนทันทีโดยใช้บัตรเดบิตบัญชีธนาคารหรือยอดคงเหลือของ Robinhood สหรัฐอเมริกาเท่านั้น", "router_no_route": "ไม่มีเส้นทางที่กำหนดไว้สำหรับ ${name}", "save": "บันทึก", "save_backup_password": "โปรดตรวจสอบให้แน่ใจว่าคุณได้บันทึกรหัสผ่านสำรองข้อมูลแล้ว คุณจะไม่สามารถนำเข้าไฟล์สำรองข้อมูลของคุณโดยไม่ใช้รหัสผ่านนั้น", @@ -618,6 +620,7 @@ "switchToETHWallet": "โปรดเปลี่ยนไปใช้กระเป๋าเงิน Ethereum แล้วลองอีกครั้ง", "switchToEVMCompatibleWallet": "โปรดเปลี่ยนไปใช้กระเป๋าเงินที่รองรับ EVM แล้วลองอีกครั้ง (Ethereum, Polygon)", "symbol": "เครื่องหมาย", + "sync_all_wallets": "ซิงค์กระเป๋าเงินทั้งหมด", "sync_status_attempting_sync": "พยายามซิงโครไนซ์", "sync_status_connected": "เชื่อมต่อแล้ว", "sync_status_connecting": "กำลังเชื่อมต่อ", diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index ce3f0123c..06c56f5ee 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -108,11 +108,14 @@ "change_language": "Baguhin ang wika", "change_language_to": "Baguhin ang wika sa ${language}?", "change_password": "Palitan ANG password", + "change_rep": "Baguhin ang kinatawan", + "change_rep_message": "Sigurado ka bang nais mong baguhin ang mga kinatawan?", "change_rep_successful": "Matagumpay na nagbago ng kinatawan", "change_wallet_alert_content": "Nais mo bang baguhin ang kasalukuyang pitaka sa ${wallet_name}?", "change_wallet_alert_title": "Baguhin ang kasalukuyang pitaka", "choose_account": "Pumili ng account", "choose_address": "Mangyaring piliin ang address:", + "choose_derivation": "Piliin ang derivation ng Wallet", "choose_from_available_options": "Pumili mula sa magagamit na mga pagpipilian:", "choose_one": "Pumili ng isa", "choose_relay": "Mangyaring pumili ng relay na gagamitin", @@ -318,6 +321,7 @@ "low_fee": "Mababang bayad", "low_fee_alert": "Kasalukuyan kang gumagamit ng isang mababang priyoridad sa bayad sa network. Maaari itong maging sanhi ng mahabang paghihintay, iba't ibang mga rate, o kanselahin ang mga trading. Inirerekumenda namin ang pagtatakda ng isang mas mataas na bayad para sa isang mas mahusay na karanasan.", "manage_nodes": "Pamahalaan ang mga node", + "manage_pow_nodes": "Pamahalaan ang mga POW node", "manage_yats": "Pamahalaan ang mga yats", "mark_as_redeemed": "Markahan bilang tinubos", "market_place": "Marketplace", @@ -340,6 +344,7 @@ "more_options": "Higit pang mga pagpipilian", "name": "Pangalan", "narrow": "Makitid", + "new_first_wallet_text": "Panatilihing ligtas ang iyong crypto, piraso ng cake", "new_node_testing": "Bagong pagsubok sa node", "new_subaddress_create": "Lumikha", "new_subaddress_label_name": "Pangalan ng label", @@ -524,6 +529,7 @@ "seed_reminder": "Mangyaring isulat ang mga ito kung sakaling mawala ka o punasan ang iyong telepono", "seed_share": "Magbahagi ng binhi", "seed_title": "Binhi", + "seedtype": "Seedtype", "seedtype_legacy": "Pamana (25 salita)", "seedtype_polyseed": "Polyseed (16 na salita)", "select_backup_file": "Piliin ang backup file", @@ -704,6 +710,7 @@ "unspent_change": "Baguhin", "unspent_coins_details_title": "Mga Detalye ng Unspent Coins", "unspent_coins_title": "Unspent barya", + "unsupported_asset": "Hindi namin sinusuportahan ang pagkilos na ito para sa asset na ito. Mangyaring lumikha o lumipat sa isang pitaka ng isang suportadong uri ng pag -aari.", "upto": "Hanggang sa ${value}", "use": "Lumipat sa", "use_card_info_three": "Gamitin ang digital card online o sa mga pamamaraan ng pagbabayad na walang contact.", diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index eeaaf3a40..e85adaa21 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -64,6 +64,7 @@ "avg_savings": "Ortalama Tasarruf", "awaitDAppProcessing": "Lütfen dApp'in işlemeyi bitirmesini bekleyin.", "awaiting_payment_confirmation": "Ödemenin onaylanması bekleniyor", + "background_sync_mode": "Arka Plan Senkronizasyon Modu", "backup": "Yedek", "backup_file": "Yedek dosyası", "backup_password": "Yedek parolası", @@ -484,6 +485,7 @@ "restore_wallet": "Cüzdanı Geri Döndür", "restore_wallet_name": "Cüzdan ismi", "restore_wallet_restore_description": "Cüzdan geri döndürme açıklaması", + "robinhood_option_description": "Banka kartınızı, banka hesabınızı veya Robinhood bakiyenizi kullanarak anında satın alın ve aktarın. Sadece ABD.", "router_no_route": "${name} için rota tanımlanmadı", "save": "Kaydet", "save_backup_password": "Lütfen yedekleme parolanı kaydettiğinden emin ol. Bu parola olmadan yedekleme dosyasını içe aktaramazsın.", @@ -618,6 +620,7 @@ "switchToETHWallet": "Lütfen bir Ethereum cüzdanına geçin ve tekrar deneyin", "switchToEVMCompatibleWallet": "Lütfen EVM uyumlu bir cüzdana geçin ve tekrar deneyin (Ethereum, Polygon)", "symbol": "Sembol", + "sync_all_wallets": "Tüm cüzdanları senkronize edin", "sync_status_attempting_sync": "SENKRONİZE EDİLMEYE ÇALIŞILIYOR", "sync_status_connected": "BAĞLANILDI", "sync_status_connecting": "BAĞLANILIYOR", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 59f21ab87..74d260674 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -439,6 +439,7 @@ "reconnect_alert_text": "Ви хочете перепідключитися?", "reconnection": "Перепідключення", "redeeded": "Викуплено", + "redeemed": "Викуплений", "refund_address": "Адреса повернення коштів", "reject": "Відхиляти", "remaining": "залишилося", @@ -485,6 +486,7 @@ "restore_wallet": "Відновити гаманець", "restore_wallet_name": "Ім'я гаманця", "restore_wallet_restore_description": "Опис відновлюваного гаманця", + "robinhood_option_description": "Купуйте та перенесіть миттєво за допомогою дебетової картки, банківського рахунку або балансу Робінства. Тільки США.", "router_no_route": "Не встановлено маршрут для ${name}", "save": "Зберегти", "save_backup_password": "Переконайтеся, що ви зберегли свій пароль резервної копії. Без нього ви не зможете імпортувати файли резервних копій.", diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index 713b676c4..e141fd8b3 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -64,6 +64,7 @@ "avg_savings": "اوسط بچت", "awaitDAppProcessing": "۔ﮟﯾﺮﮐ ﺭﺎﻈﺘﻧﺍ ﺎﮐ ﮯﻧﻮﮨ ﻞﻤﮑﻣ ﮓﻨﺴﯿﺳﻭﺮﭘ ﮯﮐ dApp ﻡﺮﮐ ﮦﺍﺮﺑ", "awaiting_payment_confirmation": "ادائیگی کی تصدیق کے منتظر", + "background_sync_mode": "پس منظر کی مطابقت پذیری کا موڈ", "backup": "بیک اپ", "backup_file": "بیک اپ فائل", "backup_password": "بیک اپ پاس ورڈ", @@ -73,6 +74,7 @@ "biometric_auth_reason": "تصدیق کرنے کے لیے اپنے فنگر پرنٹ کو اسکین کریں۔", "bitcoin_dark_theme": "بٹ کوائن ڈارک تھیم", "bitcoin_light_theme": "بٹ کوائن لائٹ تھیم", + "bitcoin_payments_require_1_confirmation": "بٹ کوائن کی ادائیگی میں 1 تصدیق کی ضرورت ہوتی ہے ، جس میں 20 منٹ یا اس سے زیادہ وقت لگ سکتا ہے۔ آپ کے صبر کا شکریہ! ادائیگی کی تصدیق ہونے پر آپ کو ای میل کیا جائے گا۔", "Blocks_remaining": "${status} بلاکس باقی ہیں۔", "bright_theme": "روشن", "buy": "خریدنے", @@ -122,6 +124,7 @@ "clearnet_link": "کلیرنیٹ لنک", "close": "بند کریں", "coin_control": "سکے کنٹرول (اختیاری)", + "cold_or_recover_wallet": "ٹھنڈا پرس ڈالیں یا کاغذ کا پرس بازیافت کریں", "color_theme": "رنگین تھیم", "commit_transaction_amount_fee": "لین دین کا ارتکاب کریں\\nرقم: ${amount}\\nفیس: ${fee}", "confirm": "تصدیق کریں۔", @@ -256,6 +259,7 @@ "expiresOn": "ﺩﺎﻌﯿﻣ ﯽﻣﺎﺘﺘﺧﺍ", "export_backup": "بیک اپ برآمد کریں۔", "extra_id": "اضافی ID:", + "extracted_address_content": "آپ فنڈز بھیج رہے ہوں گے\n${recipient_name}", "failed_authentication": "ناکام تصدیق۔ ${state_error}", "faq": "عمومی سوالات", "fetching": "لا رہا ہے۔", @@ -409,6 +413,7 @@ "please_select": "براہ مہربانی منتخب کریں:", "please_select_backup_file": "براہ کرم بیک اپ فائل منتخب کریں اور بیک اپ پاس ورڈ درج کریں۔", "please_try_to_connect_to_another_node": "براہ کرم کسی دوسرے نوڈ سے جڑنے کی کوشش کریں۔", + "please_wait": "برائے مہربانی انتظار کریں", "polygonscan_history": "ﺦﯾﺭﺎﺗ ﯽﮐ ﻦﯿﮑﺳﺍ ﻥﻮﮔ ﯽﻟﻮﭘ", "powered_by": "${title} کے ذریعے تقویت یافتہ", "pre_seed_button_text": "میں سمجھتا ہوں۔ مجھے میرا بیج دکھاؤ", @@ -482,6 +487,7 @@ "restore_wallet": "والیٹ کو بحال کریں۔", "restore_wallet_name": "بٹوے کا نام", "restore_wallet_restore_description": "والیٹ کی بحالی کی تفصیل", + "robinhood_option_description": "اپنے ڈیبٹ کارڈ ، بینک اکاؤنٹ ، یا رابن ہڈ بیلنس کا استعمال کرتے ہوئے فوری طور پر خریدیں اور منتقلی کریں۔ صرف USA", "router_no_route": "${name} کے لیے کوئی راستہ متعین نہیں ہے", "save": "محفوظ کریں۔", "save_backup_password": "براہ کرم یقینی بنائیں کہ آپ نے اپنا بیک اپ پاس ورڈ محفوظ کر لیا ہے۔ آپ اس کے بغیر اپنی بیک اپ فائلیں درآمد نہیں کر سکیں گے۔", @@ -489,6 +495,7 @@ "save_to_downloads": "۔ﮟﯾﺮﮐ ﻅﻮﻔﺤﻣ ﮟﯿﻣ ﺯﮈﻮﻟ ﻥﺅﺍﮈ", "saved_the_trade_id": "میں نے تجارتی ID محفوظ کر لی ہے۔", "scan_qr_code": "پتہ حاصل کرنے کے لیے QR کوڈ اسکین کریں۔", + "scan_qr_code_to_get_address": "پتہ حاصل کرنے کے لئے QR کوڈ کو اسکین کریں", "scan_qr_on_device": " ۔ﮟﯾﺮﮐ ﻦﯿﮑﺳﺍ ﺮﭘ ﺲﺋﺍﻮﯾﮈ ﺭﻭﺍ ﯽﺴﮐ ﻮﮐ ﮈﻮﮐ QR ﺱﺍ", "search": "تلاش کریں۔", "search_add_token": "تلاش کریں / ٹوکن شامل کریں۔", @@ -555,6 +562,7 @@ "send_your_wallet": "آپ کا بٹوہ", "sending": "بھیج رہا ہے۔", "sent": "بھیجا", + "settings": "ترتیبات", "settings_all": "تمام", "settings_allow_biometrical_authentication": "بایومیٹریکل تصدیق کی اجازت دیں۔", "settings_can_be_changed_later": "ان ترتیبات کو بعد میں ایپ کی ترتیبات میں تبدیل کیا جا سکتا ہے۔", @@ -609,9 +617,12 @@ "support_title_guides": "کیک پرس گائڈز", "support_title_live_chat": "براہ راست مدد", "support_title_other_links": "دوسرے سپورٹ لنکس", + "sweeping_wallet": "جھاڑو دینے والا پرس", + "sweeping_wallet_alert": "اس میں زیادہ وقت نہیں لینا چاہئے۔ اس اسکرین کو مت چھوڑیں یا بہہ جانے والے فنڈز ضائع ہوسکتے ہیں۔", "switchToETHWallet": "۔ﮟﯾﺮﮐ ﺶﺷﻮﮐ ﮦﺭﺎﺑﻭﺩ ﺭﻭﺍ ﮟﯾﺮﮐ ﭻﺋﻮﺳ ﺮﭘ ﭧﯿﻟﺍﻭ Ethereum ﻡﺮﮐ ﮦﺍﺮﺑ", "switchToEVMCompatibleWallet": "(Ethereum, Polygon) ﮟﯾﺮﮐ ﺶﺷﻮﮐ ﮦﺭﺎﺑﻭﺩ ﺭﻭﺍ ﮟﯾﺮﮐ ﭻﺋﻮﺳ ﺮﭘ ﭧﯿﻟﺍﻭ ﮯﻟﺍﻭ ﮯﻨﮭﮐﺭ ﺖﻘﺑﺎﻄﻣ ", "symbol": "ﺖﻣﻼﻋ", + "sync_all_wallets": "تمام بٹوے کو ہم آہنگ کریں", "sync_status_attempting_sync": "ہم آہنگی کی کوشش کر رہا ہے۔", "sync_status_connected": "منسلک", "sync_status_connecting": "جڑ رہا ہے۔", diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index 355800e72..360bef8c6 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -64,6 +64,7 @@ "avg_savings": "Ìpamọ́ l’óòrèkóòrè", "awaitDAppProcessing": "Fi inurere duro fun dApp lati pari sisẹ.", "awaiting_payment_confirmation": "À ń dúró de ìjẹ́rìísí àránṣẹ́", + "background_sync_mode": "Ipo amuṣiṣẹpọ abẹlẹ", "backup": "Ṣẹ̀dà", "backup_file": "Ṣẹ̀dà akọsílẹ̀", "backup_password": "Ṣẹ̀dà ọ̀rọ̀ aṣínà", @@ -179,6 +180,7 @@ "description": "Apejuwe", "destination_tag": "Orúkọ tí ìbí tó a ránṣẹ́ sí:", "dfx_option_description": "Ra crypto pẹlu EUR & CHF. Titi di 990 € laisi afikun KYC. Fun soobu ati awọn onibara ile-iṣẹ ni Yuroopu", + "didnt_get_code": "Ko gba koodu?", "digit_pin": "-díjíìtì òǹkà ìdánimọ̀ àdáni", "digital_and_physical_card": " káàdì ìrajà t'ara àti ti ayélujára", "disable": "Ko si", @@ -382,6 +384,7 @@ "optional_email_hint": "Ṣeto imọ-ẹrọ iye fun owo ti o gbọdọjọ", "optional_name": "Ṣeto orukọ ti o ni", "optionally_order_card": "Ẹ lè fi ìyàn bèèrè káàdì t'ara.", + "orbot_running_alert": "Jọwọ rii daju pe Orbot ti wa ni nṣiṣẹ ṣaaju ailorukọ si oju-ipade yii.", "order_by": "Bere fun nipasẹ", "order_id": "Àmì ìdánimọ̀ ti ìbéèrè", "order_physical_card": "Bèèrè káàdì t'ara", @@ -483,6 +486,7 @@ "restore_wallet": "Mú àpamọ́wọ́ padà", "restore_wallet_name": "Orúkọ àpamọ́wọ́", "restore_wallet_restore_description": "Ìṣapẹrẹ mú àpamọ́wọ́ padà", + "robinhood_option_description": "Ra ati Gbe lesekese lilo kaadi debiti rẹ, akọọlẹ banki, tabi iwọntunwọnsi robinrere. USA nikan.", "router_no_route": "Ọ̀nà kò sí fún ${name}", "save": "Pamọ́", "save_backup_password": "Ẹ jọ̀wọ́ dájú pé ẹ ti pamọ́ ọ̀rọ̀ aṣínà ti ẹ̀dà nípamọ́ yín. Ti ẹ kò bá ni í, ẹ kò lè ṣí àwọn àkọsílẹ̀ nípamọ́ yín.", @@ -490,6 +494,7 @@ "save_to_downloads": "Fipamọ si Awọn igbasilẹ", "saved_the_trade_id": "Mo ti pamọ́ àmì ìdánimọ̀ pàṣípààrọ̀", "scan_qr_code": "Yan QR koodu", + "scan_qr_code_to_get_address": "Ṣayẹwo koodu QR naa lati gba adirẹsi naa", "scan_qr_on_device": "Ṣe ayẹwo koodu QR yii lori ẹrọ miiran", "search": "Wá", "search_add_token": "Wa / Fi àmi kun", @@ -616,6 +621,7 @@ "switchToETHWallet": "Jọwọ yipada si apamọwọ Ethereum ki o tun gbiyanju lẹẹkansi", "switchToEVMCompatibleWallet": "Jọwọ yipada si apamọwọ ibaramu EVM ki o tun gbiyanju lẹẹkansi (Ethereum, Polygon)", "symbol": "Aami", + "sync_all_wallets": "Muṣiṣẹpọ gbogbo awọn Woleti", "sync_status_attempting_sync": "Ń GBÌYÀNJÚ MÚDỌ́GBA", "sync_status_connected": "TI DÁRAPỌ̀ MỌ́", "sync_status_connecting": "Ń DÁRAPỌ̀ MỌ́", @@ -755,6 +761,8 @@ "xmr_available_balance": "Owó tó wà ḿbí", "xmr_full_balance": "Ìyókù owó", "xmr_hidden": "Bìbò", + "xmr_to_error": "XMR.To aṣiṣe", + "xmr_to_error_description": "Iye ti ko wulo. Iwọn to pọju 8 nọmba lẹhin aaye eleemewa", "xrp_extra_info": "Ẹ jọ̀wọ́ ẹ kò gbàgbé pèsè orúkọ̀ àdírẹ́sì ti a ránṣẹ́ sí t'ẹ́ bá ránṣẹ pàṣípààrọ̀ ti XRP yín sílé ìfowóṣòwò", "yat": "Yat", "yat_address": "Àdírẹ́sì Yat", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 58cb2592c..e91d35922 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -485,6 +485,7 @@ "restore_wallet": "恢复钱包", "restore_wallet_name": "钱包名称", "restore_wallet_restore_description": "钱包还原说明", + "robinhood_option_description": "使用您的借记卡,银行帐户或罗比林余额立即购买和转移。仅美国。", "router_no_route": "未定义路线 ${name}", "save": "保存", "save_backup_password": "请确保您已保存备份密码。 沒有它,您将无法导入备份文件。", @@ -535,6 +536,7 @@ "select_buy_provider_notice": "在上面选择买入提供商。您可以通过在应用程序设置中设置默认的购买提供商来跳过此屏幕。", "select_destination": "请选择备份文件的目的地。", "select_sell_provider_notice": "选择上面的销售提供商。您可以通过在应用程序设置中设置默认销售提供商来跳过此屏幕。", + "sell": "卖", "sell_alert_content": "我们目前仅支持比特币、以太坊和莱特币的销售。请创建或切换到您的比特币、以太坊或莱特币钱包。", "sell_monero_com_alert_content": "尚不支持出售门罗币", "send": "发送", diff --git a/tool/translation_consistence.dart b/tool/translation_consistence.dart index 04f64dfc8..7f3ac130e 100644 --- a/tool/translation_consistence.dart +++ b/tool/translation_consistence.dart @@ -30,8 +30,10 @@ void main(List args) async { missingDefaults[key] = arbObj[key] as String; }); - if (missingDefaults.isNotEmpty) + if (missingDefaults.isNotEmpty) { await appendTranslations(lang, missingDefaults); + alphabetizeArbFile(fileName); + } } } } From e4ddf82e690d76931f969a4bf0e3780fb32eb536 Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Tue, 6 Feb 2024 22:53:20 +0200 Subject: [PATCH 04/30] Remove unused translation zzzz [skip ci] (#1292) --- res/values/strings_ar.arb | 3 +-- res/values/strings_bg.arb | 3 +-- res/values/strings_cs.arb | 3 +-- res/values/strings_de.arb | 3 +-- res/values/strings_en.arb | 3 +-- res/values/strings_es.arb | 3 +-- res/values/strings_fr.arb | 3 +-- res/values/strings_ha.arb | 3 +-- res/values/strings_hi.arb | 3 +-- res/values/strings_hr.arb | 3 +-- res/values/strings_id.arb | 3 +-- res/values/strings_it.arb | 3 +-- res/values/strings_ja.arb | 3 +-- res/values/strings_ko.arb | 3 +-- res/values/strings_my.arb | 3 +-- res/values/strings_nl.arb | 3 +-- res/values/strings_pl.arb | 3 +-- res/values/strings_pt.arb | 3 +-- res/values/strings_ru.arb | 3 +-- res/values/strings_th.arb | 3 +-- res/values/strings_tl.arb | 3 +-- res/values/strings_tr.arb | 3 +-- res/values/strings_uk.arb | 3 +-- res/values/strings_ur.arb | 3 +-- res/values/strings_yo.arb | 3 +-- res/values/strings_zh.arb | 3 +-- 26 files changed, 26 insertions(+), 52 deletions(-) diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 5ed96628b..8ad38bc83 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -776,6 +776,5 @@ "you_pay": "انت تدفع", "you_will_get": "حول الى", "you_will_send": "تحويل من", - "yy": "YY", - "zzzz": "ززز" + "yy": "YY" } \ No newline at end of file diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index ac94061fc..1190a53ce 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -776,6 +776,5 @@ "you_pay": "Вие плащате", "you_will_get": "Обръщане в", "you_will_send": "Обръщане от", - "yy": "гг", - "zzzz": "zzzz" + "yy": "гг" } \ No newline at end of file diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 3fbaa03d7..db6d2103c 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -776,6 +776,5 @@ "you_pay": "Zaplatíte", "you_will_get": "Směnit na", "you_will_send": "Směnit z", - "yy": "YY", - "zzzz": "Zzzz" + "yy": "YY" } \ No newline at end of file diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index b795b2037..46c8a3c13 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -779,6 +779,5 @@ "you_pay": "Sie bezahlen", "you_will_get": "Konvertieren zu", "you_will_send": "Konvertieren von", - "yy": "YY", - "zzzz": "Zzzz" + "yy": "YY" } \ No newline at end of file diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index c596cde10..a6ea6e39a 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -776,6 +776,5 @@ "you_pay": "You Pay", "you_will_get": "Convert to", "you_will_send": "Convert from", - "yy": "YY", - "zzzz": "zzzz" + "yy": "YY" } \ No newline at end of file diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 9ce0fe803..9e719d812 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -777,6 +777,5 @@ "you_pay": "Tú pagas", "you_will_get": "Convertir a", "you_will_send": "Convertir de", - "yy": "YY", - "zzzz": "zzzz" + "yy": "YY" } \ No newline at end of file diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index 306ff79ea..b4c4d9eb6 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -776,6 +776,5 @@ "you_pay": "Vous payez", "you_will_get": "Convertir vers", "you_will_send": "Convertir depuis", - "yy": "AA", - "zzzz": "zzzz" + "yy": "AA" } \ No newline at end of file diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index 4ce0fd713..06b212e94 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -778,6 +778,5 @@ "you_pay": "Ka Bayar", "you_will_get": "Maida zuwa", "you_will_send": "Maida daga", - "yy": "YY", - "zzzz": "zzzz" + "yy": "YY" } \ No newline at end of file diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index a6335e3ed..f553608f7 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -778,6 +778,5 @@ "you_pay": "आप भुगतान करते हैं", "you_will_get": "में बदलें", "you_will_send": "से रूपांतरित करें", - "yy": "वाईवाई", - "zzzz": "ज़ज़्ज़" + "yy": "वाईवाई" } \ No newline at end of file diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index e95c027d9..b388df74f 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -776,6 +776,5 @@ "you_pay": "Vi plaćate", "you_will_get": "Razmijeni u", "you_will_send": "Razmijeni iz", - "yy": "GG", - "zzzz": "zzzz" + "yy": "GG" } \ No newline at end of file diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index d9ee117ad..84cfd8a5d 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -779,6 +779,5 @@ "you_pay": "Anda Membayar", "you_will_get": "Konversi ke", "you_will_send": "Konversi dari", - "yy": "YY", - "zzzz": "zzzz" + "yy": "YY" } \ No newline at end of file diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index ca5716c07..33209fb34 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -779,6 +779,5 @@ "you_pay": "Tu paghi", "you_will_get": "Converti a", "you_will_send": "Conveti da", - "yy": "YY", - "zzzz": "Zzzz" + "yy": "YY" } \ No newline at end of file diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 5c5d3e3a1..3cb1f64f6 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -777,6 +777,5 @@ "you_pay": "あなたが支払う", "you_will_get": "に変換", "you_will_send": "から変換", - "yy": "YY", - "zzzz": "zzzz" + "yy": "YY" } \ No newline at end of file diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index 81b582200..74afac094 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -778,6 +778,5 @@ "you_will_get": "로 변환하다", "you_will_send": "다음에서 변환", "YY": "YY", - "yy": "YY", - "zzzz": "zzzz" + "yy": "YY" } \ No newline at end of file diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index 5094b1898..6109908c1 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -776,6 +776,5 @@ "you_pay": "သင်ပေးချေပါ။", "you_will_get": "သို့ပြောင်းပါ။", "you_will_send": "မှပြောင်းပါ။", - "yy": "YY", - "zzzz": "မိုးခေဇဇ်" + "yy": "YY" } \ No newline at end of file diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 3aa4a3e4b..03090db7e 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -777,6 +777,5 @@ "you_pay": "U betaalt", "you_will_get": "Converteren naar", "you_will_send": "Converteren van", - "yy": "JJ", - "zzzz": "Zzzz" + "yy": "JJ" } \ No newline at end of file diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 8e3d3bffe..bafb9f151 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -776,6 +776,5 @@ "you_pay": "Płacisz", "you_will_get": "Konwertuj na", "you_will_send": "Konwertuj z", - "yy": "RR", - "zzzz": "Zzzz" + "yy": "RR" } \ No newline at end of file diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index f00f02c01..694a2be92 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -779,6 +779,5 @@ "you_pay": "Você paga", "you_will_get": "Converter para", "you_will_send": "Converter de", - "yy": "aa", - "zzzz": "ZZZZ" + "yy": "aa" } \ No newline at end of file diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index b8e70ee1f..480f3ea68 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -777,6 +777,5 @@ "you_pay": "Вы платите", "you_will_get": "Конвертировать в", "you_will_send": "Конвертировать из", - "yy": "ГГ", - "zzzz": "zzzz" + "yy": "ГГ" } \ No newline at end of file diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index 1975556ca..fd08d332d 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -776,6 +776,5 @@ "you_pay": "คุณจ่าย", "you_will_get": "แปลงเป็น", "you_will_send": "แปลงจาก", - "yy": "ปี", - "zzzz": "zzzz" + "yy": "ปี" } \ No newline at end of file diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index 06c56f5ee..2759eaabe 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -776,6 +776,5 @@ "you_pay": "Magbabayad ka", "you_will_get": "Mag -convert sa", "you_will_send": "I -convert mula sa", - "yy": "YY", - "zzzz": "Zzzz" + "yy": "YY" } \ No newline at end of file diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index e85adaa21..c8af1fbd3 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -776,6 +776,5 @@ "you_pay": "Şu kadar ödeyeceksin: ", "you_will_get": "Biçimine dönüştür:", "you_will_send": "Biçiminden dönüştür:", - "yy": "YY", - "zzzz": "zzzz" + "yy": "YY" } \ No newline at end of file diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 74d260674..7007ec86c 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -777,6 +777,5 @@ "you_pay": "Ви платите", "you_will_get": "Конвертувати в", "you_will_send": "Конвертувати з", - "yy": "YY", - "zzzz": "ZZZZ" + "yy": "YY" } \ No newline at end of file diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index e141fd8b3..5233e473b 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -778,6 +778,5 @@ "you_pay": "تم ادا کرو", "you_will_get": "میں تبدیل کریں۔", "you_will_send": "سے تبدیل کریں۔", - "yy": "YY", - "zzzz": "زیڈز" + "yy": "YY" } \ No newline at end of file diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index 360bef8c6..95349e63a 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -777,6 +777,5 @@ "you_pay": "Ẹ sàn", "you_will_get": "Ṣe pàṣípààrọ̀ sí", "you_will_send": "Ṣe pàṣípààrọ̀ láti", - "yy": "Ọd", - "zzzz": "zzzz" + "yy": "Ọd" } \ No newline at end of file diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index e91d35922..22792d307 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -776,6 +776,5 @@ "you_pay": "你付钱", "you_will_get": "转换到", "you_will_send": "转换自", - "yy": "YY", - "zzzz": "ZZZZ" + "yy": "YY" } \ No newline at end of file From 26fe28891debf378dbacfb6417f40dbfdccf2716 Mon Sep 17 00:00:00 2001 From: Matthew Fosse Date: Wed, 7 Feb 2024 07:44:29 -0800 Subject: [PATCH 05/30] Cw 528 backup wallet files (#1281) * monero wallet backup changes * [skipci] updates * monero fixes * start work for bitcoin/eth * cleanup * [skipci] more cleanup * add all other coins * merge fixes * add corrupted test * build for testing * actually be able to test monero * review fixes * more review fixes --- cw_bitcoin/lib/bitcoin_wallet_service.dart | 54 +++++++------ cw_bitcoin/lib/electrum_wallet.dart | 3 - cw_bitcoin/lib/litecoin_wallet_service.dart | 22 ++++-- .../lib/src/bitcoin_cash_wallet_service.dart | 22 ++++-- cw_core/lib/monero_wallet_utils.dart | 19 ++++- cw_core/lib/wallet_service.dart | 23 +++++- cw_ethereum/lib/ethereum_wallet_service.dart | 32 ++++++-- cw_haven/lib/haven_wallet_service.dart | 1 + cw_monero/lib/monero_wallet.dart | 64 ++++++++++++--- cw_monero/lib/monero_wallet_service.dart | 77 +++++++++---------- cw_nano/lib/nano_wallet_service.dart | 32 ++++++-- cw_polygon/lib/polygon_wallet_service.dart | 32 ++++++-- 12 files changed, 264 insertions(+), 117 deletions(-) diff --git a/cw_bitcoin/lib/bitcoin_wallet_service.dart b/cw_bitcoin/lib/bitcoin_wallet_service.dart index 3a97e0682..736ec1044 100644 --- a/cw_bitcoin/lib/bitcoin_wallet_service.dart +++ b/cw_bitcoin/lib/bitcoin_wallet_service.dart @@ -12,10 +12,8 @@ import 'package:cw_core/wallet_type.dart'; import 'package:hive/hive.dart'; import 'package:collection/collection.dart'; -class BitcoinWalletService extends WalletService< - BitcoinNewWalletCredentials, - BitcoinRestoreWalletFromSeedCredentials, - BitcoinRestoreWalletFromWIFCredentials> { +class BitcoinWalletService extends WalletService { BitcoinWalletService(this.walletInfoSource, this.unspentCoinsInfoSource); final Box walletInfoSource; @@ -42,28 +40,41 @@ class BitcoinWalletService extends WalletService< @override Future openWallet(String name, String password) async { - final walletInfo = walletInfoSource.values.firstWhereOrNull( - (info) => info.id == WalletBase.idFor(name, getType()))!; - final wallet = await BitcoinWalletBase.open( - password: password, name: name, walletInfo: walletInfo, - unspentCoinsInfo: unspentCoinsInfoSource); - await wallet.init(); - return wallet; + final walletInfo = walletInfoSource.values + .firstWhereOrNull((info) => info.id == WalletBase.idFor(name, getType()))!; + try { + final wallet = await BitcoinWalletBase.open( + password: password, + name: name, + walletInfo: walletInfo, + unspentCoinsInfo: unspentCoinsInfoSource); + await wallet.init(); + saveBackup(name); + return wallet; + } catch (_) { + await restoreWalletFilesFromBackup(name); + final wallet = await BitcoinWalletBase.open( + password: password, + name: name, + walletInfo: walletInfo, + unspentCoinsInfo: unspentCoinsInfoSource); + await wallet.init(); + return wallet; + } } @override Future remove(String wallet) async { - File(await pathForWalletDir(name: wallet, type: getType())) - .delete(recursive: true); - final walletInfo = walletInfoSource.values.firstWhereOrNull( - (info) => info.id == WalletBase.idFor(wallet, getType()))!; + File(await pathForWalletDir(name: wallet, type: getType())).delete(recursive: true); + final walletInfo = walletInfoSource.values + .firstWhereOrNull((info) => info.id == WalletBase.idFor(wallet, getType()))!; await walletInfoSource.delete(walletInfo.key); } @override Future rename(String currentName, String password, String newName) async { - final currentWalletInfo = walletInfoSource.values.firstWhereOrNull( - (info) => info.id == WalletBase.idFor(currentName, getType()))!; + final currentWalletInfo = walletInfoSource.values + .firstWhereOrNull((info) => info.id == WalletBase.idFor(currentName, getType()))!; final currentWallet = await BitcoinWalletBase.open( password: password, name: currentName, @@ -71,6 +82,7 @@ class BitcoinWalletService extends WalletService< unspentCoinsInfo: unspentCoinsInfoSource); await currentWallet.renameWalletFiles(newName); + await saveBackup(newName); final newWalletInfo = currentWalletInfo; newWalletInfo.id = WalletBase.idFor(newName, getType()); @@ -80,13 +92,11 @@ class BitcoinWalletService extends WalletService< } @override - Future restoreFromKeys( - BitcoinRestoreWalletFromWIFCredentials credentials) async => + Future restoreFromKeys(BitcoinRestoreWalletFromWIFCredentials credentials) async => throw UnimplementedError(); @override - Future restoreFromSeed( - BitcoinRestoreWalletFromSeedCredentials credentials) async { + Future restoreFromSeed(BitcoinRestoreWalletFromSeedCredentials credentials) async { if (!validateMnemonic(credentials.mnemonic)) { throw BitcoinMnemonicIsIncorrectException(); } @@ -100,4 +110,4 @@ class BitcoinWalletService extends WalletService< await wallet.init(); return wallet; } -} \ No newline at end of file +} diff --git a/cw_bitcoin/lib/electrum_wallet.dart b/cw_bitcoin/lib/electrum_wallet.dart index 6be525a1f..8a41c1733 100644 --- a/cw_bitcoin/lib/electrum_wallet.dart +++ b/cw_bitcoin/lib/electrum_wallet.dart @@ -601,8 +601,6 @@ abstract class ElectrumWalletBase electrumClient.getHistory(scriptHash).then((history) => {scriptHash: history})); final historyResults = await Future.wait(histories); - - historyResults.forEach((history) { history.entries.forEach((historyItem) { if (historyItem.value.isNotEmpty) { @@ -622,7 +620,6 @@ abstract class ElectrumWalletBase } } - addressHashes.forEach((sh, addressRecord) { addressRecord.txCount = newTxCounts[sh] ?? 0; }); diff --git a/cw_bitcoin/lib/litecoin_wallet_service.dart b/cw_bitcoin/lib/litecoin_wallet_service.dart index b13ac7a7f..69d1dfc7e 100644 --- a/cw_bitcoin/lib/litecoin_wallet_service.dart +++ b/cw_bitcoin/lib/litecoin_wallet_service.dart @@ -45,11 +45,22 @@ class LitecoinWalletService extends WalletService< Future openWallet(String name, String password) async { final walletInfo = walletInfoSource.values.firstWhereOrNull( (info) => info.id == WalletBase.idFor(name, getType()))!; - final wallet = await LitecoinWalletBase.open( - password: password, name: name, walletInfo: walletInfo, - unspentCoinsInfo: unspentCoinsInfoSource); - await wallet.init(); - return wallet; + + try { + final wallet = await LitecoinWalletBase.open( + password: password, name: name, walletInfo: walletInfo, + unspentCoinsInfo: unspentCoinsInfoSource); + await wallet.init(); + saveBackup(name); + return wallet; + } catch (_) { + await restoreWalletFilesFromBackup(name); + final wallet = await LitecoinWalletBase.open( + password: password, name: name, walletInfo: walletInfo, + unspentCoinsInfo: unspentCoinsInfoSource); + await wallet.init(); + return wallet; + } } @override @@ -72,6 +83,7 @@ class LitecoinWalletService extends WalletService< unspentCoinsInfo: unspentCoinsInfoSource); await currentWallet.renameWalletFiles(newName); + await saveBackup(newName); final newWalletInfo = currentWalletInfo; newWalletInfo.id = WalletBase.idFor(newName, getType()); diff --git a/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet_service.dart b/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet_service.dart index 8cc469a3a..f66e38ca7 100644 --- a/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet_service.dart +++ b/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet_service.dart @@ -51,11 +51,22 @@ class BitcoinCashWalletService extends WalletService openWallet(String name, String password) async { final walletInfo = walletInfoSource.values.firstWhereOrNull( (info) => info.id == WalletBase.idFor(name, getType()))!; - final wallet = await BitcoinCashWalletBase.open( - password: password, name: name, walletInfo: walletInfo, - unspentCoinsInfo: unspentCoinsInfoSource); - await wallet.init(); - return wallet; + + try { + final wallet = await BitcoinCashWalletBase.open( + password: password, name: name, walletInfo: walletInfo, + unspentCoinsInfo: unspentCoinsInfoSource); + await wallet.init(); + saveBackup(name); + return wallet; + } catch(_) { + await restoreWalletFilesFromBackup(name); + final wallet = await BitcoinCashWalletBase.open( + password: password, name: name, walletInfo: walletInfo, + unspentCoinsInfo: unspentCoinsInfoSource); + await wallet.init(); + return wallet; + } } @override @@ -78,6 +89,7 @@ class BitcoinCashWalletService extends WalletService restoreWalletFiles(String name) async { } } +Future resetCache(String name) async { + await removeCache(name); + + final walletDirPath = await pathForWalletDir(name: name, type: WalletType.monero); + final cacheFilePath = '$walletDirPath/$name'; + final backupCacheFile = File(backupFileName(cacheFilePath)); + if (backupCacheFile.existsSync()) { + await backupCacheFile.copy(cacheFilePath); + } +} + Future backupWalletFilesExists(String name) async { final walletDirPath = await pathForWalletDir(name: name, type: WalletType.monero); final cacheFilePath = '$walletDirPath/$name'; @@ -63,9 +74,9 @@ Future backupWalletFilesExists(String name) async { final backupKeysFile = File(backupFileName(keysFilePath)); final backupAddressListFile = File(backupFileName(addressListFilePath)); - return backupCacheFile.existsSync() - && backupKeysFile.existsSync() - && backupAddressListFile.existsSync(); + return backupCacheFile.existsSync() && + backupKeysFile.existsSync() && + backupAddressListFile.existsSync(); } Future removeCache(String name) async { @@ -85,4 +96,4 @@ Future restoreOrResetWalletFiles(String name) async { } removeCache(name); -} \ No newline at end of file +} diff --git a/cw_core/lib/wallet_service.dart b/cw_core/lib/wallet_service.dart index f6d0ca192..3b4908386 100644 --- a/cw_core/lib/wallet_service.dart +++ b/cw_core/lib/wallet_service.dart @@ -1,7 +1,8 @@ -import 'package:cw_core/node.dart'; +import 'dart:io'; + +import 'package:cw_core/pathForWallet.dart'; import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/wallet_credentials.dart'; -import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_type.dart'; abstract class WalletService remove(String wallet); Future rename(String currentName, String password, String newName); + + Future restoreWalletFilesFromBackup(String name) async { + final backupWalletDirPath = await pathForWalletDir(name: "$name.backup", type: getType()); + final walletDirPath = await pathForWalletDir(name: name, type: getType()); + + if (File(backupWalletDirPath).existsSync()) { + await File(backupWalletDirPath).copy(walletDirPath); + } + } + + Future saveBackup(String name) async { + final backupWalletDirPath = await pathForWalletDir(name: "$name.backup", type: getType()); + final walletDirPath = await pathForWalletDir(name: name, type: getType()); + + if (File(walletDirPath).existsSync()) { + await File(walletDirPath).copy(backupWalletDirPath); + } + } } diff --git a/cw_ethereum/lib/ethereum_wallet_service.dart b/cw_ethereum/lib/ethereum_wallet_service.dart index 1cd776867..5e8c22718 100644 --- a/cw_ethereum/lib/ethereum_wallet_service.dart +++ b/cw_ethereum/lib/ethereum_wallet_service.dart @@ -39,16 +39,31 @@ class EthereumWalletService extends EVMChainWalletService { Future openWallet(String name, String password) async { final walletInfo = walletInfoSource.values.firstWhere((info) => info.id == WalletBase.idFor(name, getType())); - final wallet = await EthereumWallet.open( - name: name, - password: password, - walletInfo: walletInfo, - ); - await wallet.init(); - await wallet.save(); + try { + final wallet = await EthereumWallet.open( + name: name, + password: password, + walletInfo: walletInfo, + ); - return wallet; + await wallet.init(); + await wallet.save(); + saveBackup(name); + return wallet; + } catch (_) { + + await restoreWalletFilesFromBackup(name); + + final wallet = await EthereumWallet.open( + name: name, + password: password, + walletInfo: walletInfo, + ); + await wallet.init(); + await wallet.save(); + return wallet; + } } @override @@ -59,6 +74,7 @@ class EthereumWalletService extends EVMChainWalletService { password: password, name: currentName, walletInfo: currentWalletInfo); await currentWallet.renameWalletFiles(newName); + await saveBackup(newName); final newWalletInfo = currentWalletInfo; newWalletInfo.id = WalletBase.idFor(newName, getType()); diff --git a/cw_haven/lib/haven_wallet_service.dart b/cw_haven/lib/haven_wallet_service.dart index 0bc20d2a0..dd7713e08 100644 --- a/cw_haven/lib/haven_wallet_service.dart +++ b/cw_haven/lib/haven_wallet_service.dart @@ -163,6 +163,7 @@ class HavenWalletService extends WalletService< final currentWallet = HavenWallet(walletInfo: currentWalletInfo); await currentWallet.renameWalletFiles(newName); + await saveBackup(newName); final newWalletInfo = currentWalletInfo; newWalletInfo.id = WalletBase.idFor(newName, getType()); diff --git a/cw_monero/lib/monero_wallet.dart b/cw_monero/lib/monero_wallet.dart index 4b71fb5ff..1a34e4bd6 100644 --- a/cw_monero/lib/monero_wallet.dart +++ b/cw_monero/lib/monero_wallet.dart @@ -36,6 +36,8 @@ import 'package:mobx/mobx.dart'; part 'monero_wallet.g.dart'; const moneroBlockSize = 1000; +// not sure if this should just be 0 but setting it higher feels safer / should catch more cases: +const MIN_RESTORE_HEIGHT = 1000; class MoneroWallet = MoneroWalletBase with _$MoneroWallet; @@ -79,7 +81,7 @@ abstract class MoneroWalletBase Box unspentCoinsInfo; - void Function(FlutterErrorDetails)? _onError; + void Function(FlutterErrorDetails)? onError; @override late MoneroWalletAddresses walletAddresses; @@ -171,7 +173,26 @@ abstract class MoneroWalletBase Future startSync() async { try { _setInitialHeight(); - } catch (_) {} + } catch (_) { + // our restore height wasn't correct, so lets see if using the backup works: + try { + await resetCache(name); + _setInitialHeight(); + } catch (e) { + // we still couldn't get a valid height from the backup?!: + // try to use the date instead: + try { + _setHeightFromDate(); + } catch (e, s) { + // we still couldn't get a valid sync height :/ + onError?.call(FlutterErrorDetails( + exception: e, + stack: s, + library: this.runtimeType.toString(), + )); + } + } + } try { syncStatus = AttemptingSyncStatus(); @@ -339,6 +360,8 @@ abstract class MoneroWalletBase if (currentAddressListFile.existsSync()) { await currentAddressListFile.rename('$newWalletPath.address.txt'); } + + await backupWalletFiles(newWalletName); } catch (e) { final currentWalletPath = await pathForWallet(name: name, type: type); @@ -402,9 +425,7 @@ abstract class MoneroWalletBase if (coin.spent == 0) { final unspent = MoneroUnspent.fromCoinsInfoRow(coin); if (unspent.hash.isNotEmpty) { - unspent.isChange = transaction_history - .getTransaction(unspent.hash) - .direction == 1; + unspent.isChange = transaction_history.getTransaction(unspent.hash).direction == 1; } unspentCoins.add(unspent); } @@ -418,7 +439,7 @@ abstract class MoneroWalletBase if (unspentCoins.isNotEmpty) { unspentCoins.forEach((coin) { final coinInfoList = unspentCoinsInfo.values.where((element) => - element.walletId.contains(id) && + element.walletId.contains(id) && element.accountIndex == walletAddresses.account!.id && element.keyImage!.contains(coin.keyImage!)); @@ -438,7 +459,7 @@ abstract class MoneroWalletBase _askForUpdateBalance(); } catch (e, s) { print(e.toString()); - _onError?.call(FlutterErrorDetails( + onError?.call(FlutterErrorDetails( exception: e, stack: s, library: this.runtimeType.toString(), @@ -534,18 +555,36 @@ abstract class MoneroWalletBase _listener = monero_wallet.setListeners(_onNewBlock, _onNewTransaction); } + // check if the height is correct: void _setInitialHeight() { if (walletInfo.isRecovery) { return; } - final currentHeight = monero_wallet.getCurrentHeight(); + final height = monero_wallet.getCurrentHeight(); - if (currentHeight <= 1) { - final height = _getHeightByDate(walletInfo.date); + if (height > MIN_RESTORE_HEIGHT) { + // the restore height is probably correct, so we do nothing: + return; + } + + throw Exception("height isn't > $MIN_RESTORE_HEIGHT!"); + } + + void _setHeightFromDate() { + if (walletInfo.isRecovery) { + return; + } + + final height = _getHeightByDate(walletInfo.date); + + if (height > MIN_RESTORE_HEIGHT) { monero_wallet.setRecoveringFromSeed(isRecovery: true); monero_wallet.setRefreshFromBlockHeight(height: height); + return; } + + throw Exception("height isn't > $MIN_RESTORE_HEIGHT!"); } int _getHeightDistance(DateTime date) { @@ -561,7 +600,8 @@ abstract class MoneroWalletBase final heightDistance = _getHeightDistance(date); if (nodeHeight <= 0) { - return 0; + // the node returned 0 (an error state), so lets just restore from cache: + throw Exception("nodeHeight is <= 0!"); } return nodeHeight - heightDistance; @@ -650,7 +690,7 @@ abstract class MoneroWalletBase } @override - void setExceptionHandler(void Function(FlutterErrorDetails) onError) => _onError = onError; + void setExceptionHandler(void Function(FlutterErrorDetails) e) => onError = e; @override String signMessage(String message, {String? address}) { diff --git a/cw_monero/lib/monero_wallet_service.dart b/cw_monero/lib/monero_wallet_service.dart index 9b9e254d0..3dea7fc0e 100644 --- a/cw_monero/lib/monero_wallet_service.dart +++ b/cw_monero/lib/monero_wallet_service.dart @@ -11,11 +11,13 @@ import 'package:cw_core/get_height_by_date.dart'; import 'package:cw_monero/api/exceptions/wallet_opening_exception.dart'; import 'package:cw_monero/api/wallet_manager.dart' as monero_wallet_manager; import 'package:cw_monero/monero_wallet.dart'; +import 'package:flutter/widgets.dart'; import 'package:hive/hive.dart'; import 'package:polyseed/polyseed.dart'; class MoneroNewWalletCredentials extends WalletCredentials { - MoneroNewWalletCredentials({required String name, required this.language, required this.isPolyseed, String? password}) + MoneroNewWalletCredentials( + {required String name, required this.language, required this.isPolyseed, String? password}) : super(name: name, password: password); final String language; @@ -52,10 +54,8 @@ class MoneroRestoreWalletFromKeysCredentials extends WalletCredentials { final String spendKey; } -class MoneroWalletService extends WalletService< - MoneroNewWalletCredentials, - MoneroRestoreWalletFromSeedCredentials, - MoneroRestoreWalletFromKeysCredentials> { +class MoneroWalletService extends WalletService { MoneroWalletService(this.walletInfoSource, this.unspentCoinsInfoSource); final Box walletInfoSource; @@ -112,6 +112,7 @@ class MoneroWalletService extends WalletService< @override Future openWallet(String name, String password) async { + MoneroWallet? wallet; try { final path = await pathForWallet(name: name, type: getType()); @@ -119,11 +120,10 @@ class MoneroWalletService extends WalletService< await repairOldAndroidWallet(name); } - await monero_wallet_manager - .openWalletAsync({'path': path, 'password': password}); - final walletInfo = walletInfoSource.values.firstWhere( - (info) => info.id == WalletBase.idFor(name, getType())); - final wallet = MoneroWallet(walletInfo: walletInfo, unspentCoinsInfo: unspentCoinsInfoSource); + await monero_wallet_manager.openWalletAsync({'path': path, 'password': password}); + final walletInfo = walletInfoSource.values + .firstWhere((info) => info.id == WalletBase.idFor(name, getType())); + wallet = MoneroWallet(walletInfo: walletInfo, unspentCoinsInfo: unspentCoinsInfoSource); final isValid = wallet.walletAddresses.validate(); if (!isValid) { @@ -135,7 +135,7 @@ class MoneroWalletService extends WalletService< await wallet.init(); return wallet; - } catch (e) { + } catch (e, s) { // TODO: Implement Exception for wallet list service. final bool isBadAlloc = e.toString().contains('bad_alloc') || @@ -156,16 +156,18 @@ class MoneroWalletService extends WalletService< final bool invalidSignature = e.toString().contains('invalid signature') || (e is WalletOpeningException && e.message.contains('invalid signature')); - if (isBadAlloc || - doesNotCorrespond || - isMissingCacheFilesIOS || - isMissingCacheFilesAndroid || - invalidSignature) { - await restoreOrResetWalletFiles(name); - return openWallet(name, password); + if (!isBadAlloc && + !doesNotCorrespond && + !isMissingCacheFilesIOS && + !isMissingCacheFilesAndroid && + !invalidSignature && + wallet != null && + wallet.onError != null) { + wallet.onError!(FlutterErrorDetails(exception: e, stack: s)); } - rethrow; + await restoreOrResetWalletFiles(name); + return openWallet(name, password); } } @@ -185,10 +187,9 @@ class MoneroWalletService extends WalletService< } @override - Future rename( - String currentName, String password, String newName) async { - final currentWalletInfo = walletInfoSource.values.firstWhere( - (info) => info.id == WalletBase.idFor(currentName, getType())); + Future rename(String currentName, String password, String newName) async { + final currentWalletInfo = walletInfoSource.values + .firstWhere((info) => info.id == WalletBase.idFor(currentName, getType())); final currentWallet = MoneroWallet(walletInfo: currentWalletInfo, unspentCoinsInfo: unspentCoinsInfoSource); @@ -202,8 +203,7 @@ class MoneroWalletService extends WalletService< } @override - Future restoreFromKeys( - MoneroRestoreWalletFromKeysCredentials credentials) async { + Future restoreFromKeys(MoneroRestoreWalletFromKeysCredentials credentials) async { try { final path = await pathForWallet(name: credentials.name, type: getType()); await monero_wallet_manager.restoreFromKeys( @@ -227,9 +227,7 @@ class MoneroWalletService extends WalletService< } @override - Future restoreFromSeed( - MoneroRestoreWalletFromSeedCredentials credentials) async { - + Future restoreFromSeed(MoneroRestoreWalletFromSeedCredentials credentials) async { // Restore from Polyseed if (Polyseed.isValidSeed(credentials.mnemonic)) { return restoreFromPolyseed(credentials); @@ -254,14 +252,16 @@ class MoneroWalletService extends WalletService< } } - Future restoreFromPolyseed(MoneroRestoreWalletFromSeedCredentials credentials) async { + Future restoreFromPolyseed( + MoneroRestoreWalletFromSeedCredentials credentials) async { try { final path = await pathForWallet(name: credentials.name, type: getType()); final polyseedCoin = PolyseedCoin.POLYSEED_MONERO; final lang = PolyseedLang.getByPhrase(credentials.mnemonic); final polyseed = Polyseed.decode(credentials.mnemonic, lang, polyseedCoin); - return _restoreFromPolyseed(path, credentials.password!, polyseed, credentials.walletInfo!, lang); + return _restoreFromPolyseed( + path, credentials.password!, polyseed, credentials.walletInfo!, lang); } catch (e) { // TODO: Implement Exception for wallet list service. print('MoneroWalletsManager Error: $e'); @@ -269,11 +269,11 @@ class MoneroWalletService extends WalletService< } } - Future _restoreFromPolyseed(String path, String password, Polyseed polyseed, - WalletInfo walletInfo, PolyseedLang lang, + Future _restoreFromPolyseed( + String path, String password, Polyseed polyseed, WalletInfo walletInfo, PolyseedLang lang, {PolyseedCoin coin = PolyseedCoin.POLYSEED_MONERO, int? overrideHeight}) async { - final height = overrideHeight ?? getMoneroHeigthByDate( - date: DateTime.fromMillisecondsSinceEpoch(polyseed.birthday * 1000)); + final height = overrideHeight ?? + getMoneroHeigthByDate(date: DateTime.fromMillisecondsSinceEpoch(polyseed.birthday * 1000)); final spendKey = polyseed.generateKey(coin, 32).toHexString(); final seed = polyseed.encode(lang, coin); @@ -288,8 +288,7 @@ class MoneroWalletService extends WalletService< restoreHeight: height, spendKey: spendKey); - final wallet = MoneroWallet( - walletInfo: walletInfo, unspentCoinsInfo: unspentCoinsInfoSource); + final wallet = MoneroWallet(walletInfo: walletInfo, unspentCoinsInfo: unspentCoinsInfoSource); await wallet.init(); return wallet; @@ -301,16 +300,14 @@ class MoneroWalletService extends WalletService< return; } - final oldAndroidWalletDirPath = - await outdatedAndroidPathForWalletDir(name: name); + final oldAndroidWalletDirPath = await outdatedAndroidPathForWalletDir(name: name); final dir = Directory(oldAndroidWalletDirPath); if (!dir.existsSync()) { return; } - final newWalletDirPath = - await pathForWalletDir(name: name, type: getType()); + final newWalletDirPath = await pathForWalletDir(name: name, type: getType()); dir.listSync().forEach((f) { final file = File(f.path); diff --git a/cw_nano/lib/nano_wallet_service.dart b/cw_nano/lib/nano_wallet_service.dart index 7a66f8c9f..a76f0393d 100644 --- a/cw_nano/lib/nano_wallet_service.dart +++ b/cw_nano/lib/nano_wallet_service.dart @@ -69,6 +69,7 @@ class NanoWalletService extends WalletService openWallet(String name, String password) async { final walletInfo = walletInfoSource.values.firstWhere((info) => info.id == WalletBase.idFor(name, getType())); - final wallet = await NanoWalletBase.open( - name: name, - password: password, - walletInfo: walletInfo, - ); - await wallet.init(); - await wallet.save(); - return wallet; + try { + final wallet = await NanoWalletBase.open( + name: name, + password: password, + walletInfo: walletInfo, + ); + + await wallet.init(); + await wallet.save(); + saveBackup(name); + return wallet; + } catch (_) { + await restoreWalletFilesFromBackup(name); + final wallet = await NanoWalletBase.open( + name: name, + password: password, + walletInfo: walletInfo, + ); + + await wallet.init(); + await wallet.save(); + return wallet; + } } } diff --git a/cw_polygon/lib/polygon_wallet_service.dart b/cw_polygon/lib/polygon_wallet_service.dart index 451dc7288..0199a1552 100644 --- a/cw_polygon/lib/polygon_wallet_service.dart +++ b/cw_polygon/lib/polygon_wallet_service.dart @@ -42,16 +42,31 @@ class PolygonWalletService extends EVMChainWalletService { Future openWallet(String name, String password) async { final walletInfo = walletInfoSource.values.firstWhere((info) => info.id == WalletBase.idFor(name, getType())); - final wallet = await PolygonWallet.open( - name: name, - password: password, - walletInfo: walletInfo, - ); - await wallet.init(); - await wallet.save(); + try { + final wallet = await PolygonWallet.open( + name: name, + password: password, + walletInfo: walletInfo, + ); - return wallet; + await wallet.init(); + await wallet.save(); + saveBackup(name); + return wallet; + } catch (_) { + await restoreWalletFilesFromBackup(name); + + final wallet = await PolygonWallet.open( + name: name, + password: password, + walletInfo: walletInfo, + ); + + await wallet.init(); + await wallet.save(); + return wallet; + } } @override @@ -100,6 +115,7 @@ class PolygonWalletService extends EVMChainWalletService { password: password, name: currentName, walletInfo: currentWalletInfo); await currentWallet.renameWalletFiles(newName); + await saveBackup(newName); final newWalletInfo = currentWalletInfo; newWalletInfo.id = WalletBase.idFor(newName, getType()); From 0832e62719bbf413985c8df0e6e644548730a10a Mon Sep 17 00:00:00 2001 From: Serhii Date: Thu, 8 Feb 2024 00:10:44 +0200 Subject: [PATCH 06/30] fix generate new electrum address (#1294) * add side address validation * Remove auto size text [skip ci] --------- Co-authored-by: OmarHatem --- cw_bitcoin/lib/bitcoin_address_record.dart | 2 +- cw_bitcoin/lib/electrum_wallet_addresses.dart | 15 ++++++++++++++- lib/bitcoin/cw_bitcoin.dart | 2 +- lib/src/screens/receive/widgets/qr_widget.dart | 5 +---- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/cw_bitcoin/lib/bitcoin_address_record.dart b/cw_bitcoin/lib/bitcoin_address_record.dart index f2cd63904..676edb4a5 100644 --- a/cw_bitcoin/lib/bitcoin_address_record.dart +++ b/cw_bitcoin/lib/bitcoin_address_record.dart @@ -28,7 +28,7 @@ class BitcoinAddressRecord { } final String address; - final bool isHidden; + bool isHidden; final int index; int _txCount; int _balance; diff --git a/cw_bitcoin/lib/electrum_wallet_addresses.dart b/cw_bitcoin/lib/electrum_wallet_addresses.dart index a60a7e8ec..850d58f40 100644 --- a/cw_bitcoin/lib/electrum_wallet_addresses.dart +++ b/cw_bitcoin/lib/electrum_wallet_addresses.dart @@ -53,7 +53,7 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { String get address { if (isEnabledAutoGenerateSubaddress) { if (receiveAddresses.isEmpty) { - final newAddress = generateNewAddress().address; + final newAddress = generateNewAddress(hd: mainHd).address; return walletInfo.type == WalletType.bitcoinCash ? toCashAddr(newAddress) : newAddress; } final receiveAddress = receiveAddresses.first.address; @@ -215,6 +215,13 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { List addrs; if (addresses.isNotEmpty) { + + + if(!isHidden) { + final receiveAddressesList = addresses.where((addr) => !addr.isHidden).toList(); + validateSideHdAddresses(receiveAddressesList); + } + addrs = addresses.where((addr) => addr.isHidden == isHidden).toList(); } else { addrs = await _createNewAddresses( @@ -296,4 +303,10 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { final transactionHistory = await electrumClient.getHistory(sh); return transactionHistory.isNotEmpty; } + + void validateSideHdAddresses(List addrWithTransactions) { + addrWithTransactions.forEach((element) { + if (element.address != getAddress(index: element.index, hd: mainHd)) element.isHidden = true; + }); + } } diff --git a/lib/bitcoin/cw_bitcoin.dart b/lib/bitcoin/cw_bitcoin.dart index 6836cc4dc..688825013 100644 --- a/lib/bitcoin/cw_bitcoin.dart +++ b/lib/bitcoin/cw_bitcoin.dart @@ -65,7 +65,7 @@ class CWBitcoin extends Bitcoin { @override Future generateNewAddress(Object wallet, String label) async { final bitcoinWallet = wallet as ElectrumWallet; - await bitcoinWallet.walletAddresses.generateNewAddress(label: label); + await bitcoinWallet.walletAddresses.generateNewAddress(label: label, hd: bitcoinWallet.hd); await wallet.save(); } diff --git a/lib/src/screens/receive/widgets/qr_widget.dart b/lib/src/screens/receive/widgets/qr_widget.dart index bedb3b526..bbfd4d5c1 100644 --- a/lib/src/screens/receive/widgets/qr_widget.dart +++ b/lib/src/screens/receive/widgets/qr_widget.dart @@ -1,4 +1,3 @@ -import 'package:auto_size_text/auto_size_text.dart'; import 'package:cake_wallet/entities/qr_view_data.dart'; import 'package:cake_wallet/themes/extensions/qr_code_theme.dart'; import 'package:cake_wallet/routes.dart'; @@ -7,7 +6,6 @@ import 'package:cake_wallet/src/screens/receive/widgets/currency_input_field.dar import 'package:cake_wallet/utils/brightness_util.dart'; import 'package:cake_wallet/utils/show_bar.dart'; import 'package:cake_wallet/utils/show_pop_up.dart'; -import 'package:cw_core/wallet_type.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_mobx/flutter_mobx.dart'; @@ -146,10 +144,9 @@ class QRWidget extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, children: [ Expanded( - child: AutoSizeText( + child: Text( addressListViewModel.address.address, textAlign: TextAlign.center, - maxLines: addressListViewModel.wallet.type == WalletType.monero ? 2 : 1, style: TextStyle( fontSize: 15, fontWeight: FontWeight.w500, From d6e10bdbd57561f51ba33be9741bdee1ba1319ca Mon Sep 17 00:00:00 2001 From: Adegoke David <64401859+Blazebrain@users.noreply.github.com> Date: Fri, 9 Feb 2024 00:11:41 +0100 Subject: [PATCH 07/30] CW-572-Disable-battery-optimization (#1285) * feat: Disable battery optimization on android * fix: Add permission to androidmanifestbase file * Increase the frequency of app running in background on aggressive mode * Revert the sync mode frequency [skip ci] * Fix translation * increase frequency to 1 hour --------- Co-authored-by: OmarHatem --- android/app/src/main/AndroidManifestBase.xml | 1 + .../cakewallet/cake_wallet/MainActivity.java | 30 ++++++++++++++ .../com/cakewallet/haven/MainActivity.java | 30 ++++++++++++++ .../java/com/monero/app/MainActivity.java | 30 ++++++++++++++ cw_core/lib/battery_optimization_native.dart | 22 ++++++++++ .../settings/connection_sync_page.dart | 41 +++++++++++++++---- lib/view_model/settings/sync_mode.dart | 2 +- res/values/strings_ar.arb | 2 + res/values/strings_bg.arb | 2 + res/values/strings_cs.arb | 2 + res/values/strings_de.arb | 2 + res/values/strings_en.arb | 2 + res/values/strings_es.arb | 2 + res/values/strings_fr.arb | 2 + res/values/strings_ha.arb | 2 + res/values/strings_hi.arb | 2 + res/values/strings_hr.arb | 2 + res/values/strings_id.arb | 2 + res/values/strings_it.arb | 2 + res/values/strings_ja.arb | 2 + res/values/strings_ko.arb | 2 + res/values/strings_my.arb | 2 + res/values/strings_nl.arb | 2 + res/values/strings_pl.arb | 2 + res/values/strings_pt.arb | 2 + res/values/strings_ru.arb | 2 + res/values/strings_th.arb | 2 + res/values/strings_tl.arb | 2 + res/values/strings_tr.arb | 2 + res/values/strings_uk.arb | 2 + res/values/strings_ur.arb | 2 + res/values/strings_yo.arb | 2 + res/values/strings_zh.arb | 2 + 33 files changed, 200 insertions(+), 8 deletions(-) create mode 100644 cw_core/lib/battery_optimization_native.dart diff --git a/android/app/src/main/AndroidManifestBase.xml b/android/app/src/main/AndroidManifestBase.xml index 2dceca577..180190914 100644 --- a/android/app/src/main/AndroidManifestBase.xml +++ b/android/app/src/main/AndroidManifestBase.xml @@ -8,6 +8,7 @@ + result.success(null)); + break; + case "isBatteryOptimizationDisabled": + boolean isDisabled = isBatteryOptimizationDisabled(); + handler.post(() -> result.success(isDisabled)); + break; default: handler.post(() -> result.notImplemented()); } @@ -89,4 +101,22 @@ public class MainActivity extends FlutterFragmentActivity { } }); } + + private void disableBatteryOptimization() { + String packageName = getPackageName(); + PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE); + if (!pm.isIgnoringBatteryOptimizations(packageName)) { + Intent intent = new Intent(); + intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS); + intent.setData(Uri.parse("package:" + packageName)); + startActivity(intent); + } + } + + private boolean isBatteryOptimizationDisabled() { + String packageName = getPackageName(); + PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE); + return pm.isIgnoringBatteryOptimizations(packageName); + } + } \ No newline at end of file diff --git a/android/app/src/main/java/com/cakewallet/haven/MainActivity.java b/android/app/src/main/java/com/cakewallet/haven/MainActivity.java index 8c13d1f8d..d0a465d22 100644 --- a/android/app/src/main/java/com/cakewallet/haven/MainActivity.java +++ b/android/app/src/main/java/com/cakewallet/haven/MainActivity.java @@ -14,6 +14,10 @@ import android.os.Build; import android.os.Handler; import android.os.Looper; import android.view.WindowManager; +import android.content.Intent; +import android.net.Uri; +import android.os.PowerManager; +import android.provider.Settings; import com.unstoppabledomains.resolution.DomainResolution; import com.unstoppabledomains.resolution.Resolution; @@ -55,6 +59,14 @@ public class MainActivity extends FlutterFragmentActivity { handler.post(() -> result.success("")); } break; + case "disableBatteryOptimization": + disableBatteryOptimization(); + handler.post(() -> result.success(null)); + break; + case "isBatteryOptimizationDisabled": + boolean isDisabled = isBatteryOptimizationDisabled(); + handler.post(() -> result.success(isDisabled)); + break; default: handler.post(() -> result.notImplemented()); } @@ -79,4 +91,22 @@ public class MainActivity extends FlutterFragmentActivity { } }); } + + private void disableBatteryOptimization() { + String packageName = getPackageName(); + PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE); + if (!pm.isIgnoringBatteryOptimizations(packageName)) { + Intent intent = new Intent(); + intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS); + intent.setData(Uri.parse("package:" + packageName)); + startActivity(intent); + } + } + + private boolean isBatteryOptimizationDisabled() { + String packageName = getPackageName(); + PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE); + return pm.isIgnoringBatteryOptimizations(packageName); + } + } \ No newline at end of file diff --git a/android/app/src/main/java/com/monero/app/MainActivity.java b/android/app/src/main/java/com/monero/app/MainActivity.java index 73914c43c..49c368ec7 100644 --- a/android/app/src/main/java/com/monero/app/MainActivity.java +++ b/android/app/src/main/java/com/monero/app/MainActivity.java @@ -14,6 +14,10 @@ import android.os.Build; import android.os.Handler; import android.os.Looper; import android.view.WindowManager; +import android.content.Intent; +import android.net.Uri; +import android.os.PowerManager; +import android.provider.Settings; import com.unstoppabledomains.resolution.DomainResolution; import com.unstoppabledomains.resolution.Resolution; @@ -64,6 +68,14 @@ public class MainActivity extends FlutterFragmentActivity { getWindow().clearFlags(WindowManager.LayoutParams.FLAG_SECURE); } break; + case "disableBatteryOptimization": + disableBatteryOptimization(); + handler.post(() -> result.success(null)); + break; + case "isBatteryOptimizationDisabled": + boolean isDisabled = isBatteryOptimizationDisabled(); + handler.post(() -> result.success(isDisabled)); + break; default: handler.post(() -> result.notImplemented()); } @@ -88,4 +100,22 @@ public class MainActivity extends FlutterFragmentActivity { } }); } + + private void disableBatteryOptimization() { + String packageName = getPackageName(); + PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE); + if (!pm.isIgnoringBatteryOptimizations(packageName)) { + Intent intent = new Intent(); + intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS); + intent.setData(Uri.parse("package:" + packageName)); + startActivity(intent); + } + } + + private boolean isBatteryOptimizationDisabled() { + String packageName = getPackageName(); + PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE); + return pm.isIgnoringBatteryOptimizations(packageName); + } + } \ No newline at end of file diff --git a/cw_core/lib/battery_optimization_native.dart b/cw_core/lib/battery_optimization_native.dart new file mode 100644 index 000000000..edd04d3f4 --- /dev/null +++ b/cw_core/lib/battery_optimization_native.dart @@ -0,0 +1,22 @@ +import 'package:flutter/services.dart'; + +const MethodChannel _channel = MethodChannel('com.cake_wallet/native_utils'); + +Future requestDisableBatteryOptimization() async { + try { + await _channel.invokeMethod('disableBatteryOptimization'); + } on PlatformException catch (e) { + print("Failed to disable battery optimization: '${e.message}'."); + } +} + +Future isBatteryOptimizationDisabled() async { + try { + final bool isDisabled = await _channel.invokeMethod('isBatteryOptimizationDisabled') as bool; + print('It\'s actually disabled? $isDisabled'); + return isDisabled; + } on PlatformException catch (e) { + print("Failed to check battery optimization status: '${e.message}'."); + return false; + } +} diff --git a/lib/src/screens/settings/connection_sync_page.dart b/lib/src/screens/settings/connection_sync_page.dart index bec2e6296..45d44d443 100644 --- a/lib/src/screens/settings/connection_sync_page.dart +++ b/lib/src/screens/settings/connection_sync_page.dart @@ -1,3 +1,5 @@ +import 'dart:io'; + import 'package:cake_wallet/reactions/wallet_connect.dart'; import 'package:cake_wallet/src/screens/settings/widgets/settings_cell_with_arrow.dart'; import 'package:cake_wallet/src/screens/settings/widgets/settings_picker_cell.dart'; @@ -8,6 +10,7 @@ import 'package:cake_wallet/utils/feature_flag.dart'; import 'package:cake_wallet/utils/show_pop_up.dart'; import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart'; import 'package:cake_wallet/view_model/settings/sync_mode.dart'; +import 'package:cw_core/battery_optimization_native.dart'; import 'package:flutter/material.dart'; import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/generated/i18n.dart'; @@ -45,12 +48,37 @@ class ConnectionSyncPage extends BasePage { if (DeviceInfo.instance.isMobile) ...[ Observer(builder: (context) { return SettingsPickerCell( - title: S.current.background_sync_mode, - items: SyncMode.all, - displayItem: (SyncMode syncMode) => syncMode.name, - selectedItem: dashboardViewModel.syncMode, - onItemSelected: dashboardViewModel.setSyncMode, - ); + title: S.current.background_sync_mode, + items: SyncMode.all, + displayItem: (SyncMode syncMode) => syncMode.name, + selectedItem: dashboardViewModel.syncMode, + onItemSelected: (syncMode) async { + dashboardViewModel.setSyncMode(syncMode); + + if (syncMode.type != SyncType.disabled) { + final isDisabled = await isBatteryOptimizationDisabled(); + + if (isDisabled || Platform.isIOS) return; + + await showPopUp( + context: context, + builder: (BuildContext dialogContext) { + return AlertWithTwoActions( + alertTitle: S.current.disableBatteryOptimization, + alertContent: S.current.disableBatteryOptimizationDescription, + leftButtonText: S.of(context).cancel, + rightButtonText: S.of(context).ok, + actionLeftButton: () => Navigator.of(dialogContext).pop(), + actionRightButton: () async { + await requestDisableBatteryOptimization(); + + Navigator.of(dialogContext).pop(); + }, + ); + }, + ); + } + }); }), const StandardListSeparator(padding: EdgeInsets.symmetric(horizontal: 24)), Observer(builder: (context) { @@ -99,7 +127,6 @@ class ConnectionSyncPage extends BasePage { ); } - Future _presentReconnectAlert(BuildContext context) async { await showPopUp( context: context, diff --git a/lib/view_model/settings/sync_mode.dart b/lib/view_model/settings/sync_mode.dart index 1153e2f32..37e400acb 100644 --- a/lib/view_model/settings/sync_mode.dart +++ b/lib/view_model/settings/sync_mode.dart @@ -10,6 +10,6 @@ class SyncMode { static final all = [ SyncMode("Disabled", SyncType.disabled, Duration.zero), SyncMode("Unobtrusive", SyncType.unobtrusive, Duration(days: 1)), - SyncMode("Aggressive", SyncType.aggressive, Duration(hours: 6)), + SyncMode("Aggressive", SyncType.aggressive, Duration(hours: 1)), ]; } diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 8ad38bc83..553262f79 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -189,6 +189,8 @@ "disable_exchange": "تعطيل التبادل", "disable_fiat": "تعطيل fiat", "disable_sell": "قم بتعطيل إجراء البيع", + "disableBatteryOptimization": "تعطيل تحسين البطارية", + "disableBatteryOptimizationDescription": "هل تريد تعطيل تحسين البطارية من أجل جعل الخلفية مزامنة تعمل بحرية وسلاسة؟", "disabled": "معطلة", "discount": "وفر ${value}٪", "display_settings": "اعدادات العرض", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index 1190a53ce..8d89f463b 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -189,6 +189,8 @@ "disable_exchange": "Деактивиране на борса", "disable_fiat": "Деактивиране на fiat", "disable_sell": "Деактивирайте действието за продажба", + "disableBatteryOptimization": "Деактивирайте оптимизацията на батерията", + "disableBatteryOptimizationDescription": "Искате ли да деактивирате оптимизацията на батерията, за да направите синхронизирането на фона да работи по -свободно и гладко?", "disabled": "Деактивирано", "discount": "Спестете ${value}%", "display_settings": "Настройки на екрана", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index db6d2103c..e81eab570 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -189,6 +189,8 @@ "disable_exchange": "Zakázat směnárny", "disable_fiat": "Zakázat fiat", "disable_sell": "Zakázat akci prodeje", + "disableBatteryOptimization": "Zakázat optimalizaci baterie", + "disableBatteryOptimizationDescription": "Chcete deaktivovat optimalizaci baterie, aby se synchronizovala pozadí volně a hladce?", "disabled": "Zakázáno", "discount": "Ušetříte ${value}%", "display_settings": "Nastavení zobrazení", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 46c8a3c13..3ca972af4 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -189,6 +189,8 @@ "disable_exchange": "Exchange deaktivieren", "disable_fiat": "Fiat deaktivieren", "disable_sell": "Verkaufsaktion deaktivieren", + "disableBatteryOptimization": "Batterieoptimierung deaktivieren", + "disableBatteryOptimizationDescription": "Möchten Sie die Batterieoptimierung deaktivieren, um die Hintergrundsynchronisierung freier und reibungsloser zu gestalten?", "disabled": "Deaktiviert", "discount": "${value} % sparen", "display_settings": "Anzeigeeinstellungen", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index a6ea6e39a..2db7602c1 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -189,6 +189,8 @@ "disable_exchange": "Disable exchange", "disable_fiat": "Disable fiat", "disable_sell": "Disable sell action", + "disableBatteryOptimization": "Disable Battery Optimization", + "disableBatteryOptimizationDescription": "Do you want to disable battery optimization in order to make background sync run more freely and smoothly?", "disabled": "Disabled", "discount": "Save ${value}%", "display_settings": "Display settings", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 9e719d812..5ca5ff4d3 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -189,6 +189,8 @@ "disable_exchange": "Deshabilitar intercambio", "disable_fiat": "Deshabilitar fiat", "disable_sell": "Desactivar acción de venta", + "disableBatteryOptimization": "Deshabilitar la optimización de la batería", + "disableBatteryOptimizationDescription": "¿Desea deshabilitar la optimización de la batería para que la sincronización de fondo se ejecute más libremente y sin problemas?", "disabled": "Desactivado", "discount": "Ahorra ${value}%", "display_settings": "Configuración de pantalla", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index b4c4d9eb6..aee967d21 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -189,6 +189,8 @@ "disable_exchange": "Désactiver l'échange", "disable_fiat": "Désactiver les montants en fiat", "disable_sell": "Désactiver l'action de vente", + "disableBatteryOptimization": "Désactiver l'optimisation de la batterie", + "disableBatteryOptimizationDescription": "Voulez-vous désactiver l'optimisation de la batterie afin de faire fonctionner la synchronisation d'arrière-plan plus librement et en douceur?", "disabled": "Désactivé", "discount": "Économisez ${value}%", "display_settings": "Paramètres d'affichage", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index 06b212e94..dfffa8a8b 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -189,6 +189,8 @@ "disable_exchange": "Kashe musanya", "disable_fiat": "Dakatar da fiat", "disable_sell": "Kashe karbuwa", + "disableBatteryOptimization": "Kashe ingantawa baturi", + "disableBatteryOptimizationDescription": "Shin kana son kashe ingantawa baturi don yin setnc bankwali gudu da yar kyauta da kyau?", "disabled": "tsaya", "discount": "Ajiye ${value}%", "display_settings": "Nuni saituna", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index f553608f7..e67b00726 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -189,6 +189,8 @@ "disable_exchange": "एक्सचेंज अक्षम करें", "disable_fiat": "िएट को अक्षम करें", "disable_sell": "बेचने की कार्रवाई अक्षम करें", + "disableBatteryOptimization": "बैटरी अनुकूलन अक्षम करें", + "disableBatteryOptimizationDescription": "क्या आप बैकग्राउंड सिंक को अधिक स्वतंत्र और सुचारू रूप से चलाने के लिए बैटरी ऑप्टिमाइज़ेशन को अक्षम करना चाहते हैं?", "disabled": "अक्षम", "discount": "${value}% बचाएं", "display_settings": "प्रदर्शन सेटिंग्स", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index b388df74f..c2fee8420 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -189,6 +189,8 @@ "disable_exchange": "Onemogući exchange", "disable_fiat": "Isključi, fiat", "disable_sell": "Onemogući akciju prodaje", + "disableBatteryOptimization": "Onemogući optimizaciju baterije", + "disableBatteryOptimizationDescription": "Želite li onemogućiti optimizaciju baterije kako bi se pozadinska sinkronizacija radila slobodnije i glatko?", "disabled": "Onemogućeno", "discount": "Uštedite ${value}%", "display_settings": "Postavke zaslona", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index 84cfd8a5d..28a7df3c9 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -189,6 +189,8 @@ "disable_exchange": "Nonaktifkan pertukaran", "disable_fiat": "Nonaktifkan fiat", "disable_sell": "Nonaktifkan aksi jual", + "disableBatteryOptimization": "Nonaktifkan optimasi baterai", + "disableBatteryOptimizationDescription": "Apakah Anda ingin menonaktifkan optimasi baterai untuk membuat sinkronisasi latar belakang berjalan lebih bebas dan lancar?", "disabled": "Dinonaktifkan", "discount": "Hemat ${value}%", "display_settings": "Pengaturan tampilan", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 33209fb34..42f0b8d86 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -190,6 +190,8 @@ "disable_exchange": "Disabilita scambio", "disable_fiat": "Disabilita fiat", "disable_sell": "Disabilita l'azione di vendita", + "disableBatteryOptimization": "Disabilita l'ottimizzazione della batteria", + "disableBatteryOptimizationDescription": "Vuoi disabilitare l'ottimizzazione della batteria per far funzionare la sincronizzazione in background più libera e senza intoppi?", "disabled": "Disabilitato", "discount": "Risparmia ${value}%", "display_settings": "Impostazioni di visualizzazione", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 3cb1f64f6..f4b014909 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -189,6 +189,8 @@ "disable_exchange": "交換を無効にする", "disable_fiat": "フィアットを無効にする", "disable_sell": "販売アクションを無効にする", + "disableBatteryOptimization": "バッテリーの最適化を無効にします", + "disableBatteryOptimizationDescription": "バックグラウンドシンクをより自由かつスムーズに実行するために、バッテリーの最適化を無効にしたいですか?", "disabled": "無効", "discount": "${value}%を節約", "display_settings": "表示設定", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index 74afac094..7af7376ce 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -189,6 +189,8 @@ "disable_exchange": "교환 비활성화", "disable_fiat": "법정화폐 비활성화", "disable_sell": "판매 조치 비활성화", + "disableBatteryOptimization": "배터리 최적화를 비활성화합니다", + "disableBatteryOptimizationDescription": "백그라운드 동기화를보다 자유롭고 매끄럽게 실행하기 위해 배터리 최적화를 비활성화하고 싶습니까?", "disabled": "장애가 있는", "discount": "${value}% 절약", "display_settings": "디스플레이 설정", diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index 6109908c1..6cba70ab2 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -189,6 +189,8 @@ "disable_exchange": "လဲလှယ်မှုကို ပိတ်ပါ။", "disable_fiat": "Fiat ကိုပိတ်ပါ။", "disable_sell": "ရောင်းချခြင်းလုပ်ဆောင်ချက်ကို ပိတ်ပါ။", + "disableBatteryOptimization": "ဘက်ထရီ optimization ကိုပိတ်ပါ", + "disableBatteryOptimizationDescription": "နောက်ခံထပ်တူပြုခြင်းနှင့်ချောချောမွေ့မွေ့ပြုလုပ်နိုင်ရန်ဘက်ထရီ optimization ကိုသင်ပိတ်ထားလိုပါသလား။", "disabled": "မသန်စွမ်း", "discount": "${value}% ချွေတာ", "display_settings": "ပြသရန် ဆက်တင်များ", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 03090db7e..19451da27 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -189,6 +189,8 @@ "disable_exchange": "Uitwisseling uitschakelen", "disable_fiat": "Schakel Fiat uit", "disable_sell": "Verkoopactie uitschakelen", + "disableBatteryOptimization": "Schakel de batterijoptimalisatie uit", + "disableBatteryOptimizationDescription": "Wilt u de optimalisatie van de batterij uitschakelen om achtergrondsynchronisatie te laten werken, vrijer en soepeler?", "disabled": "Gehandicapt", "discount": "Bespaar ${value}%", "display_settings": "Weergave-instellingen", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index bafb9f151..74aafd014 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -189,6 +189,8 @@ "disable_exchange": "Wyłącz wymianę", "disable_fiat": "Wyłącz waluty FIAT", "disable_sell": "Wyłącz akcję sprzedaży", + "disableBatteryOptimization": "Wyłącz optymalizację baterii", + "disableBatteryOptimizationDescription": "Czy chcesz wyłączyć optymalizację baterii, aby synchronizacja tła działała swobodniej i płynnie?", "disabled": "Wyłączone", "discount": "Zaoszczędź ${value}%", "display_settings": "Ustawienia wyświetlania", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 694a2be92..53d93fe75 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -189,6 +189,8 @@ "disable_exchange": "Desativar troca", "disable_fiat": "Desativar fiat", "disable_sell": "Desativar ação de venda", + "disableBatteryOptimization": "Desative a otimização da bateria", + "disableBatteryOptimizationDescription": "Deseja desativar a otimização da bateria para fazer a sincronização de fundo funcionar de forma mais livre e suave?", "disabled": "Desabilitado", "discount": "Economize ${value}%", "display_settings": "Configurações de exibição", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 480f3ea68..89a25db06 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -189,6 +189,8 @@ "disable_exchange": "Отключить обмен", "disable_fiat": "Отключить фиат", "disable_sell": "Отключить действие продажи", + "disableBatteryOptimization": "Отключить оптимизацию батареи", + "disableBatteryOptimizationDescription": "Вы хотите отключить оптимизацию батареи, чтобы сделать фона синхронизации более свободно и плавно?", "disabled": "Отключено", "discount": "Сэкономьте ${value}%", "display_settings": "Настройки отображения", diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index fd08d332d..ef8992329 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -189,6 +189,8 @@ "disable_exchange": "ปิดใช้งานการแลกเปลี่ยน", "disable_fiat": "ปิดใช้งานสกุลเงินตรา", "disable_sell": "ปิดการใช้งานการขาย", + "disableBatteryOptimization": "ปิดใช้งานการเพิ่มประสิทธิภาพแบตเตอรี่", + "disableBatteryOptimizationDescription": "คุณต้องการปิดใช้งานการเพิ่มประสิทธิภาพแบตเตอรี่เพื่อให้การซิงค์พื้นหลังทำงานได้อย่างอิสระและราบรื่นมากขึ้นหรือไม่?", "disabled": "ปิดใช้งาน", "discount": "ประหยัด ${value}%", "display_settings": "การตั้งค่าการแสดงผล", diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index 2759eaabe..55b6adb51 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -189,6 +189,8 @@ "disable_exchange": "Huwag paganahin ang palitan", "disable_fiat": "Huwag paganahin ang Fiat", "disable_sell": "Huwag paganahin ang pagkilos ng pagbebenta", + "disableBatteryOptimization": "Huwag paganahin ang pag -optimize ng baterya", + "disableBatteryOptimizationDescription": "Nais mo bang huwag paganahin ang pag -optimize ng baterya upang gawing mas malaya at maayos ang pag -sync ng background?", "disabled": "Hindi pinagana", "discount": "Makatipid ng ${value}%", "display_settings": "Mga setting ng pagpapakita", diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index c8af1fbd3..e6cab5027 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -189,6 +189,8 @@ "disable_exchange": "Borsayı devre dışı bırak", "disable_fiat": "İtibari paraları devre dışı bırak", "disable_sell": "Satış işlemini devre dışı bırak", + "disableBatteryOptimization": "Pil optimizasyonunu devre dışı bırakın", + "disableBatteryOptimizationDescription": "Arka plan senkronizasyonunu daha özgür ve sorunsuz bir şekilde çalıştırmak için pil optimizasyonunu devre dışı bırakmak istiyor musunuz?", "disabled": "Devre dışı", "discount": "%${value} tasarruf et", "display_settings": "Görüntü ayarları", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 7007ec86c..e81d97021 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -189,6 +189,8 @@ "disable_exchange": "Вимкнути exchange", "disable_fiat": "Вимкнути фиат", "disable_sell": "Вимкнути дію продажу", + "disableBatteryOptimization": "Вимкнути оптимізацію акумулятора", + "disableBatteryOptimizationDescription": "Ви хочете відключити оптимізацію акумулятора, щоб зробити фонову синхронізацію більш вільно та плавно?", "disabled": "Вимкнено", "discount": "Зекономте ${value}%", "display_settings": "Налаштування дисплея", diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index 5233e473b..465fac003 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -189,6 +189,8 @@ "disable_exchange": "تبادلے کو غیر فعال کریں۔", "disable_fiat": "فیاٹ کو غیر فعال کریں۔", "disable_sell": "فروخت کی کارروائی کو غیر فعال کریں۔", + "disableBatteryOptimization": "بیٹری کی اصلاح کو غیر فعال کریں", + "disableBatteryOptimizationDescription": "کیا آپ پس منظر کی مطابقت پذیری کو زیادہ آزادانہ اور آسانی سے چلانے کے لئے بیٹری کی اصلاح کو غیر فعال کرنا چاہتے ہیں؟", "disabled": "معذور", "discount": "${value}% بچائیں", "display_settings": "ڈسپلے کی ترتیبات", diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index 95349e63a..c88f488cd 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -189,6 +189,8 @@ "disable_exchange": "Pa ilé pàṣípààrọ̀", "disable_fiat": "Pa owó tí ìjọba pàṣẹ wa lò", "disable_sell": "Ko iṣọrọ iṣọrọ", + "disableBatteryOptimization": "Mu Ifasi batiri", + "disableBatteryOptimizationDescription": "Ṣe o fẹ lati mu iṣapelo batiri si lati le ṣiṣe ayẹwo ẹhin ati laisiyonu?", "disabled": "Wọ́n tí a ti pa", "discount": "Pamọ́ ${value}%", "display_settings": "Fihàn àwọn ààtò", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 22792d307..7e05d4471 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -189,6 +189,8 @@ "disable_exchange": "禁用交换", "disable_fiat": "禁用法令", "disable_sell": "禁用卖出操作", + "disableBatteryOptimization": "禁用电池优化", + "disableBatteryOptimizationDescription": "您是否要禁用电池优化以使背景同步更加自由,平稳地运行?", "disabled": "禁用", "discount": "节省 ${value}%", "display_settings": "显示设置", From d6af37df067d49068ce763ea0c1c567eed5d5e74 Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Sun, 11 Feb 2024 02:04:46 +0200 Subject: [PATCH 08/30] New versions (#1295) --- assets/text/Monerocom_Release_Notes.txt | 4 ++-- assets/text/Release_Notes.txt | 7 ++++--- lib/src/screens/settings/connection_sync_page.dart | 4 +++- lib/view_model/settings/sync_mode.dart | 4 ++-- scripts/android/app_env.sh | 8 ++++---- scripts/ios/app_env.sh | 8 ++++---- scripts/macos/app_env.sh | 8 ++++---- tool/configure.dart | 8 ++++---- 8 files changed, 27 insertions(+), 24 deletions(-) diff --git a/assets/text/Monerocom_Release_Notes.txt b/assets/text/Monerocom_Release_Notes.txt index 2b783ee1e..7cf786332 100644 --- a/assets/text/Monerocom_Release_Notes.txt +++ b/assets/text/Monerocom_Release_Notes.txt @@ -1,3 +1,3 @@ -Security and Privacy enhancements -Usability enhancements +Improve wallet recovery and error tolerance +Enhance Background sync for Monero wallets Bug fixes \ No newline at end of file diff --git a/assets/text/Release_Notes.txt b/assets/text/Release_Notes.txt index 411ed609b..2f5130bea 100644 --- a/assets/text/Release_Notes.txt +++ b/assets/text/Release_Notes.txt @@ -1,4 +1,5 @@ -List previously used Bitcoin addresses -Security and Privacy enhancements -Usability enhancements +Bitcoin transactions fixes and enhancements +EVM wallets enhancements (Ethereum and Polygon) +Improve wallet recovery and error tolerance +Enhance Background sync for Monero wallets Bug fixes \ No newline at end of file diff --git a/lib/src/screens/settings/connection_sync_page.dart b/lib/src/screens/settings/connection_sync_page.dart index 45d44d443..803a65913 100644 --- a/lib/src/screens/settings/connection_sync_page.dart +++ b/lib/src/screens/settings/connection_sync_page.dart @@ -55,10 +55,12 @@ class ConnectionSyncPage extends BasePage { onItemSelected: (syncMode) async { dashboardViewModel.setSyncMode(syncMode); + if (Platform.isIOS) return; + if (syncMode.type != SyncType.disabled) { final isDisabled = await isBatteryOptimizationDisabled(); - if (isDisabled || Platform.isIOS) return; + if (isDisabled) return; await showPopUp( context: context, diff --git a/lib/view_model/settings/sync_mode.dart b/lib/view_model/settings/sync_mode.dart index 37e400acb..ac3ac8717 100644 --- a/lib/view_model/settings/sync_mode.dart +++ b/lib/view_model/settings/sync_mode.dart @@ -9,7 +9,7 @@ class SyncMode { static final all = [ SyncMode("Disabled", SyncType.disabled, Duration.zero), - SyncMode("Unobtrusive", SyncType.unobtrusive, Duration(days: 1)), - SyncMode("Aggressive", SyncType.aggressive, Duration(hours: 1)), + SyncMode("Unobtrusive", SyncType.unobtrusive, Duration(hours: 12)), + SyncMode("Aggressive", SyncType.aggressive, Duration(hours: 3)), ]; } diff --git a/scripts/android/app_env.sh b/scripts/android/app_env.sh index 8de5be02c..f659239e7 100644 --- a/scripts/android/app_env.sh +++ b/scripts/android/app_env.sh @@ -15,15 +15,15 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN) APP_ANDROID_TYPE=$1 MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="1.10.2" -MONERO_COM_BUILD_NUMBER=74 +MONERO_COM_VERSION="1.10.3" +MONERO_COM_BUILD_NUMBER=75 MONERO_COM_BUNDLE_ID="com.monero.app" MONERO_COM_PACKAGE="com.monero.app" MONERO_COM_SCHEME="monero.com" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="4.13.2" -CAKEWALLET_BUILD_NUMBER=191 +CAKEWALLET_VERSION="4.13.3" +CAKEWALLET_BUILD_NUMBER=192 CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet" CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet" CAKEWALLET_SCHEME="cakewallet" diff --git a/scripts/ios/app_env.sh b/scripts/ios/app_env.sh index c7d62a40a..bb4ca77f8 100644 --- a/scripts/ios/app_env.sh +++ b/scripts/ios/app_env.sh @@ -13,13 +13,13 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN) APP_IOS_TYPE=$1 MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="1.10.2" -MONERO_COM_BUILD_NUMBER=72 +MONERO_COM_VERSION="1.10.3" +MONERO_COM_BUILD_NUMBER=73 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="4.13.2" -CAKEWALLET_BUILD_NUMBER=210 +CAKEWALLET_VERSION="4.13.3" +CAKEWALLET_BUILD_NUMBER=212 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" HAVEN_NAME="Haven" diff --git a/scripts/macos/app_env.sh b/scripts/macos/app_env.sh index c2c7493af..49edd9acb 100755 --- a/scripts/macos/app_env.sh +++ b/scripts/macos/app_env.sh @@ -16,13 +16,13 @@ if [ -n "$1" ]; then fi MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="1.0.2" -MONERO_COM_BUILD_NUMBER=4 +MONERO_COM_VERSION="1.0.3" +MONERO_COM_BUILD_NUMBER=5 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="1.6.2" -CAKEWALLET_BUILD_NUMBER=52 +CAKEWALLET_VERSION="1.6.3" +CAKEWALLET_BUILD_NUMBER=53 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then diff --git a/tool/configure.dart b/tool/configure.dart index 8297d8a39..408a6f6b1 100644 --- a/tool/configure.dart +++ b/tool/configure.dart @@ -525,6 +525,8 @@ import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/wallet_credentials.dart'; import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_service.dart'; +import 'package:hive/hive.dart'; +import 'package:web3dart/web3dart.dart'; """; const ethereumCWHeaders = """ @@ -540,8 +542,6 @@ import 'package:cw_ethereum/ethereum_wallet.dart'; import 'package:cw_ethereum/ethereum_wallet_service.dart'; import 'package:eth_sig_util/util/utils.dart'; -import 'package:hive/hive.dart'; -import 'package:web3dart/web3dart.dart'; """; const ethereumCwPart = "part 'cw_ethereum.dart';"; @@ -617,6 +617,8 @@ import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/wallet_credentials.dart'; import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_service.dart'; +import 'package:hive/hive.dart'; +import 'package:web3dart/web3dart.dart'; """; const polygonCWHeaders = """ @@ -631,8 +633,6 @@ import 'package:cw_polygon/polygon_client.dart'; import 'package:cw_polygon/polygon_wallet.dart'; import 'package:cw_polygon/polygon_wallet_service.dart'; -import 'package:hive/hive.dart'; -import 'package:web3dart/web3dart.dart'; import 'package:eth_sig_util/util/utils.dart'; """; From 5a7ea87543e4790e5346d8ce844f8460527d2b6d Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Thu, 22 Feb 2024 15:39:39 -0500 Subject: [PATCH 09/30] UI fixes (#1301) * Remove StandardListSeparator from Security and backup page * Remove StandardListSeparator from Connection and sync page * Remove StandardListSeparator from Other settings page --- lib/src/screens/settings/connection_sync_page.dart | 7 ------- lib/src/screens/settings/other_settings_page.dart | 1 - lib/src/screens/settings/security_backup_page.dart | 3 --- 3 files changed, 11 deletions(-) diff --git a/lib/src/screens/settings/connection_sync_page.dart b/lib/src/screens/settings/connection_sync_page.dart index 803a65913..ce27cd104 100644 --- a/lib/src/screens/settings/connection_sync_page.dart +++ b/lib/src/screens/settings/connection_sync_page.dart @@ -38,13 +38,11 @@ class ConnectionSyncPage extends BasePage { title: S.current.reconnect, handler: (context) => _presentReconnectAlert(context), ), - const StandardListSeparator(padding: EdgeInsets.symmetric(horizontal: 24)), if (dashboardViewModel.hasRescan) ...[ SettingsCellWithArrow( title: S.current.rescan, handler: (context) => Navigator.of(context).pushNamed(Routes.rescan), ), - const StandardListSeparator(padding: EdgeInsets.symmetric(horizontal: 24)), if (DeviceInfo.instance.isMobile) ...[ Observer(builder: (context) { return SettingsPickerCell( @@ -82,7 +80,6 @@ class ConnectionSyncPage extends BasePage { } }); }), - const StandardListSeparator(padding: EdgeInsets.symmetric(horizontal: 24)), Observer(builder: (context) { return SettingsSwitcherCell( title: S.current.sync_all_wallets, @@ -90,14 +87,12 @@ class ConnectionSyncPage extends BasePage { onValueChange: (_, bool value) => dashboardViewModel.setSyncAll(value), ); }), - const StandardListSeparator(padding: EdgeInsets.symmetric(horizontal: 24)), ], ], SettingsCellWithArrow( title: S.current.manage_nodes, handler: (context) => Navigator.of(context).pushNamed(Routes.manageNodes), ), - const StandardListSeparator(padding: EdgeInsets.symmetric(horizontal: 24)), Observer( builder: (context) { if (!dashboardViewModel.hasPowNodes) return const SizedBox(); @@ -108,7 +103,6 @@ class ConnectionSyncPage extends BasePage { title: S.current.manage_pow_nodes, handler: (context) => Navigator.of(context).pushNamed(Routes.managePowNodes), ), - const StandardListSeparator(padding: EdgeInsets.symmetric(horizontal: 24)), ], ); }, @@ -117,7 +111,6 @@ class ConnectionSyncPage extends BasePage { WalletConnectTile( onTap: () => Navigator.of(context).pushNamed(Routes.walletConnectConnectionsListing), ), - const StandardListSeparator(padding: EdgeInsets.symmetric(horizontal: 24)), ], if (FeatureFlag.isInAppTorEnabled) SettingsCellWithArrow( diff --git a/lib/src/screens/settings/other_settings_page.dart b/lib/src/screens/settings/other_settings_page.dart index c58523185..c88804147 100644 --- a/lib/src/screens/settings/other_settings_page.dart +++ b/lib/src/screens/settings/other_settings_page.dart @@ -61,7 +61,6 @@ class OtherSettingsPage extends BasePage { handler: (BuildContext context) => Navigator.of(context).pushNamed(Routes.readDisclaimer), ), - StandardListSeparator(padding: EdgeInsets.symmetric(horizontal: 24)), Spacer(), SettingsVersionCell( title: S.of(context).version(_otherSettingsViewModel.currentVersion)), diff --git a/lib/src/screens/settings/security_backup_page.dart b/lib/src/screens/settings/security_backup_page.dart index 56ba049ba..e559e9b15 100644 --- a/lib/src/screens/settings/security_backup_page.dart +++ b/lib/src/screens/settings/security_backup_page.dart @@ -37,7 +37,6 @@ class SecurityBackupPage extends BasePage { .shouldRequireTOTP2FAForAllSecurityAndBackupSettings, ), ), - StandardListSeparator(padding: EdgeInsets.symmetric(horizontal: 24)), SettingsCellWithArrow( title: S.current.create_backup, handler: (_) => _authService.authenticateAction( @@ -47,7 +46,6 @@ class SecurityBackupPage extends BasePage { .shouldRequireTOTP2FAForAllSecurityAndBackupSettings, ), ), - StandardListSeparator(padding: EdgeInsets.symmetric(horizontal: 24)), SettingsCellWithArrow( title: S.current.settings_change_pin, handler: (_) => _authService.authenticateAction( @@ -60,7 +58,6 @@ class SecurityBackupPage extends BasePage { .shouldRequireTOTP2FAForAllSecurityAndBackupSettings, ), ), - StandardListSeparator(padding: EdgeInsets.symmetric(horizontal: 24)), if (DeviceInfo.instance.isMobile) Observer(builder: (_) { return SettingsSwitcherCell( From 109bba43013b90270bb556d954a34102ec7a4c30 Mon Sep 17 00:00:00 2001 From: Adegoke David <64401859+Blazebrain@users.noreply.github.com> Date: Fri, 23 Feb 2024 14:39:19 +0100 Subject: [PATCH 10/30] CW-555-Add-Solana-Wallet (#1272) * chore: Create cw_solana package and clean up files * feat: Add Solana Wallet - Create, Restore form seed, restore from Key, Restore from QR, Send, Receive, transaction history, spl tokens * fix: Make transactions file specific to solana only for solana transactions * chore: Revert inject app details script * fix: Fix issue with node and switch current node to main beta instead of testnet * fix: Fix merge conflicts and adjust migration version * fix: Fetch spl token error Signed-off-by: Blazebrain * fix: Diplay and activate spl tokens bug * fix: Review and fixes * fix: reverted formatting for cryptocurrency class * fix: Review comments, split sending flow into signing and sending separately, fix issues * fix: Revert throwing unimplenented error * chore: Fix comment * chore: Fix comment * fix: Errors in flow * Update provider_types.dart [skip ci] * fix: Issues with solana wallet * Update solana_wallet.dart [skip ci] * fix: Review comments * fix: Date time config * fix: Revert bash script for app details * fix: Error with balance, displaying fees, fixing sent or received identifier bug, displaying token symbol with token transaction item in transactions list * fix: Issues with address validation when sending spl tokens and walletconnect initial setup * fix: Issues with sending, fetching transactions history, almost wrapping up walletconnect * fix: Adjust imports that would affect monerocom building successfully * fix: Refine transaction direction and continue work on walletconnect * feat: Display SPL token transfers in the transaction history and finally settle the transaction direction * fix: Delay in transactions history dispaly, show native token transactions first, then process spl token transactions * feat: Switch node and revert solana chain id to previous id * fix: Remove print statement * fix: Remove await for transactions, fetch all transaction histories instantly and adjust solana send success message * chore: Code refactoring and streamlined wallet type check for solana send success message * fix: Make timeout error for node silent and add spl token images --------- Signed-off-by: Blazebrain Co-authored-by: Omar Hatem --- .github/workflows/pr_test_build.yml | 31 +- .gitignore | 3 + android/app/src/main/AndroidManifestBase.xml | 1 + assets/images/avdo_icon.png | Bin 0 -> 55363 bytes assets/images/bonk_icon.png | Bin 0 -> 55872 bytes assets/images/gmt_icon.png | Bin 0 -> 16590 bytes assets/images/hnt_icon.png | Bin 0 -> 10492 bytes assets/images/ray_icon.png | Bin 0 -> 15614 bytes assets/solana_node_list.yml | 4 + cw_core/lib/crypto_currency.dart | 7 +- cw_core/lib/currency_for_wallet_type.dart | 2 + cw_core/lib/hive_type_ids.dart | 3 +- cw_core/lib/node.dart | 25 +- cw_core/lib/pathForWallet.dart | 1 - cw_core/lib/wallet_type.dart | 16 +- cw_solana/.gitignore | 30 + cw_solana/.metadata | 10 + cw_solana/CHANGELOG.md | 3 + cw_solana/LICENSE | 1 + cw_solana/README.md | 39 + cw_solana/analysis_options.yaml | 4 + cw_solana/lib/cw_solana.dart | 7 + cw_solana/lib/default_spl_tokens.dart | 109 + cw_solana/lib/file.dart | 39 + cw_solana/lib/pending_solana_transaction.dart | 43 + cw_solana/lib/solana_balance.dart | 39 + cw_solana/lib/solana_client.dart | 477 ++++ cw_solana/lib/solana_exceptions.dart | 21 + cw_solana/lib/solana_mnemonics.dart | 2058 +++++++++++++++++ .../lib/solana_transaction_credentials.dart | 12 + cw_solana/lib/solana_transaction_history.dart | 78 + cw_solana/lib/solana_transaction_info.dart | 78 + cw_solana/lib/solana_transaction_model.dart | 47 + cw_solana/lib/solana_wallet.dart | 510 ++++ cw_solana/lib/solana_wallet_addresses.dart | 33 + .../solana_wallet_creation_credentials.dart | 29 + cw_solana/lib/solana_wallet_service.dart | 118 + cw_solana/lib/spl_token.dart | 146 ++ cw_solana/pubspec.yaml | 37 + cw_solana/test/cw_solana_test.dart | 12 + ios/Runner/InfoBase.plist | 10 + lib/core/address_validator.dart | 17 +- lib/core/seed_validator.dart | 3 + .../{ => chain_service}/chain_service.dart | 0 .../{ => chain_service/eth}/evm_chain_id.dart | 2 +- .../eth}/evm_chain_service.dart | 6 +- .../solana/entities/solana_sign_message.dart | 28 + .../entities/solana_sign_transaction.dart | 106 + .../chain_service/solana/solana_chain_id.dart | 27 + .../solana/solana_chain_service.dart | 177 ++ .../wallet_connect_key_service.dart | 14 +- .../wallet_connect/web3wallet_service.dart | 44 +- lib/di.dart | 5 +- lib/entities/default_settings_migration.dart | 45 +- lib/entities/node_list.dart | 21 +- lib/entities/preferences_key.dart | 1 + lib/entities/priority_for_wallet_type.dart | 9 +- lib/entities/provider_types.dart | 9 + lib/ethereum/cw_ethereum.dart | 11 +- lib/main.dart | 4 +- lib/polygon/cw_polygon.dart | 10 +- lib/reactions/fiat_rate_update.dart | 10 +- lib/reactions/on_current_wallet_change.dart | 10 +- lib/reactions/wallet_connect.dart | 19 +- lib/solana/cw_solana.dart | 118 + .../desktop_wallet_selection_dropdown.dart | 3 + .../screens/dashboard/edit_token_page.dart | 48 +- .../screens/dashboard/home_settings_page.dart | 22 +- .../screens/dashboard/pages/balance_page.dart | 16 +- .../dashboard/pages/nft_details_page.dart | 4 +- .../dashboard/widgets/menu_widget.dart | 36 +- .../dashboard/widgets/nft_tile_widget.dart | 5 +- lib/src/screens/send/send_page.dart | 12 +- lib/src/screens/send/widgets/send_card.dart | 2 +- .../settings/connection_sync_page.dart | 2 +- .../screens/settings/other_settings_page.dart | 2 +- .../widgets/pairing_item_widget.dart | 12 +- .../screens/wallet_list/wallet_list_page.dart | 3 + .../cake_image_widget.dart} | 32 +- lib/store/app_store.dart | 2 +- lib/store/settings_store.dart | 16 +- .../advanced_privacy_settings_view_model.dart | 5 +- .../dashboard/balance_view_model.dart | 120 +- .../dashboard/home_settings_view_model.dart | 78 +- .../dashboard/transaction_list_item.dart | 9 + .../exchange/exchange_view_model.dart | 4 + .../node_list/node_list_view_model.dart | 3 + .../restore/restore_from_qr_vm.dart | 7 + .../restore/wallet_restore_from_qr_code.dart | 9 + lib/view_model/send/output.dart | 9 +- .../send/send_template_view_model.dart | 3 +- lib/view_model/send/send_view_model.dart | 14 +- .../settings/other_settings_view_model.dart | 29 +- .../transaction_details_view_model.dart | 24 + .../wallet_address_list_view_model.dart | 26 + lib/view_model/wallet_keys_view_model.dart | 5 +- lib/view_model/wallet_new_vm.dart | 33 +- lib/view_model/wallet_restore_view_model.dart | 45 +- model_generator.sh | 1 + pubspec_base.yaml | 2 + res/values/strings_ar.arb | 5 +- res/values/strings_bg.arb | 5 +- res/values/strings_cs.arb | 5 +- res/values/strings_de.arb | 5 +- res/values/strings_en.arb | 5 +- res/values/strings_es.arb | 5 +- res/values/strings_fr.arb | 5 +- res/values/strings_ha.arb | 5 +- res/values/strings_hi.arb | 5 +- res/values/strings_hr.arb | 5 +- res/values/strings_id.arb | 5 +- res/values/strings_it.arb | 5 +- res/values/strings_ja.arb | 5 +- res/values/strings_ko.arb | 5 +- res/values/strings_my.arb | 5 +- res/values/strings_nl.arb | 5 +- res/values/strings_pl.arb | 5 +- res/values/strings_pt.arb | 5 +- res/values/strings_ru.arb | 5 +- res/values/strings_th.arb | 5 +- res/values/strings_tl.arb | 5 +- res/values/strings_tr.arb | 5 +- res/values/strings_uk.arb | 5 +- res/values/strings_ur.arb | 5 +- res/values/strings_yo.arb | 5 +- res/values/strings_zh.arb | 5 +- scripts/android/pubspec_gen.sh | 2 +- scripts/ios/app_config.sh | 2 +- scripts/macos/app_config.sh | 2 +- tool/configure.dart | 113 +- tool/generate_secrets_config.dart | 20 +- tool/import_secrets_config.dart | 14 + tool/utils/secret_key.dart | 4 + 133 files changed, 5356 insertions(+), 353 deletions(-) create mode 100644 assets/images/avdo_icon.png create mode 100644 assets/images/bonk_icon.png create mode 100644 assets/images/gmt_icon.png create mode 100644 assets/images/hnt_icon.png create mode 100644 assets/images/ray_icon.png create mode 100644 assets/solana_node_list.yml create mode 100644 cw_solana/.gitignore create mode 100644 cw_solana/.metadata create mode 100644 cw_solana/CHANGELOG.md create mode 100644 cw_solana/LICENSE create mode 100644 cw_solana/README.md create mode 100644 cw_solana/analysis_options.yaml create mode 100644 cw_solana/lib/cw_solana.dart create mode 100644 cw_solana/lib/default_spl_tokens.dart create mode 100644 cw_solana/lib/file.dart create mode 100644 cw_solana/lib/pending_solana_transaction.dart create mode 100644 cw_solana/lib/solana_balance.dart create mode 100644 cw_solana/lib/solana_client.dart create mode 100644 cw_solana/lib/solana_exceptions.dart create mode 100644 cw_solana/lib/solana_mnemonics.dart create mode 100644 cw_solana/lib/solana_transaction_credentials.dart create mode 100644 cw_solana/lib/solana_transaction_history.dart create mode 100644 cw_solana/lib/solana_transaction_info.dart create mode 100644 cw_solana/lib/solana_transaction_model.dart create mode 100644 cw_solana/lib/solana_wallet.dart create mode 100644 cw_solana/lib/solana_wallet_addresses.dart create mode 100644 cw_solana/lib/solana_wallet_creation_credentials.dart create mode 100644 cw_solana/lib/solana_wallet_service.dart create mode 100644 cw_solana/lib/spl_token.dart create mode 100644 cw_solana/pubspec.yaml create mode 100644 cw_solana/test/cw_solana_test.dart rename lib/core/wallet_connect/{ => chain_service}/chain_service.dart (100%) rename lib/core/wallet_connect/{ => chain_service/eth}/evm_chain_id.dart (86%) rename lib/core/wallet_connect/{ => chain_service/eth}/evm_chain_service.dart (98%) create mode 100644 lib/core/wallet_connect/chain_service/solana/entities/solana_sign_message.dart create mode 100644 lib/core/wallet_connect/chain_service/solana/entities/solana_sign_transaction.dart create mode 100644 lib/core/wallet_connect/chain_service/solana/solana_chain_id.dart create mode 100644 lib/core/wallet_connect/chain_service/solana/solana_chain_service.dart create mode 100644 lib/solana/cw_solana.dart rename lib/src/{screens/dashboard/widgets/nft_image_tile_widget.dart => widgets/cake_image_widget.dart} (51%) diff --git a/.github/workflows/pr_test_build.yml b/.github/workflows/pr_test_build.yml index 88dd2c1eb..b5fe24f18 100644 --- a/.github/workflows/pr_test_build.yml +++ b/.github/workflows/pr_test_build.yml @@ -6,9 +6,9 @@ on: workflow_dispatch: inputs: branch: - description: 'Branch name to build' + description: "Branch name to build" required: true - default: 'main' + default: "main" jobs: PR_test_build: @@ -111,6 +111,7 @@ jobs: cd cw_haven && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. cd cw_bitcoin_cash && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. cd cw_nano && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. + cd cw_solana && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. cd cw_ethereum && flutter pub get && cd .. cd cw_polygon && flutter pub get && cd .. flutter packages pub run build_runner build --delete-conflicting-outputs @@ -120,6 +121,7 @@ jobs: cd /opt/android/cake_wallet touch lib/.secrets.g.dart touch cw_evm/lib/.secrets.g.dart + touch cw_solana/lib/.secrets.g.dart echo "const salt = '${{ secrets.SALT }}';" > lib/.secrets.g.dart echo "const keychainSalt = '${{ secrets.KEY_CHAIN_SALT }}';" >> lib/.secrets.g.dart echo "const key = '${{ secrets.KEY }}';" >> lib/.secrets.g.dart @@ -154,6 +156,7 @@ jobs: echo "const walletConnectProjectId = '${{ secrets.WALLET_CONNECT_PROJECT_ID }}';" >> lib/.secrets.g.dart echo "const moralisApiKey = '${{ secrets.MORALIS_API_KEY }}';" >> lib/.secrets.g.dart echo "const polygonScanApiKey = '${{ secrets.POLYGON_SCAN_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart + echo "const ankrApiKey = '${{ secrets.ANKR_API_KEY }}';" >> cw_solana/lib/.secrets.g.dart - name: Rename app run: echo -e "id=com.cakewallet.test\nname=${{ env.BRANCH_NAME }}" > /opt/android/cake_wallet/android/app.properties @@ -163,18 +166,18 @@ jobs: cd /opt/android/cake_wallet flutter build apk --release -# - name: Push to App Center -# run: | -# echo 'Installing App Center CLI tools' -# npm install -g appcenter-cli -# echo "Publishing test to App Center" -# appcenter distribute release \ -# --group "Testers" \ -# --file "/opt/android/cake_wallet/build/app/outputs/apk/release/app-release.apk" \ -# --release-notes ${{ env.BRANCH_NAME }} \ -# --app Cake-Labs/Cake-Wallet \ -# --token ${{ secrets.APP_CENTER_TOKEN }} \ -# --quiet + # - name: Push to App Center + # run: | + # echo 'Installing App Center CLI tools' + # npm install -g appcenter-cli + # echo "Publishing test to App Center" + # appcenter distribute release \ + # --group "Testers" \ + # --file "/opt/android/cake_wallet/build/app/outputs/apk/release/app-release.apk" \ + # --release-notes ${{ env.BRANCH_NAME }} \ + # --app Cake-Labs/Cake-Wallet \ + # --token ${{ secrets.APP_CENTER_TOKEN }} \ + # --quiet - name: Rename apk file run: | diff --git a/.gitignore b/.gitignore index f084f8d0d..25edfcfb0 100644 --- a/.gitignore +++ b/.gitignore @@ -92,8 +92,10 @@ android/key.properties **/tool/.secrets-config.json **/tool/.evm-secrets-config.json **/tool/.ethereum-secrets-config.json +**/tool/.solana-secrets-config.json **/lib/.secrets.g.dart **/cw_evm/lib/.secrets.g.dart +**/cw_solana/lib/.secrets.g.dart vendor/ @@ -128,6 +130,7 @@ lib/ethereum/ethereum.dart lib/bitcoin_cash/bitcoin_cash.dart lib/nano/nano.dart lib/polygon/polygon.dart +lib/solana/solana.dart ios/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_180.png ios/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_120.png diff --git a/android/app/src/main/AndroidManifestBase.xml b/android/app/src/main/AndroidManifestBase.xml index 180190914..eea9b5521 100644 --- a/android/app/src/main/AndroidManifestBase.xml +++ b/android/app/src/main/AndroidManifestBase.xml @@ -66,6 +66,7 @@ + 3hD3zX(XYhkdT;8=(e#jwlS7_ zw`JLutYYb@*Vp?kyZ`ylnVFrv_r52|g+RjEtGBy%`_4DtIo~-m6VR`x|FP-5kDarq zl%Yj&IcN_kUTwF>%cj@v^DRueDBag4c}DCmx;O!z<9Kj;o(+7Zc0)J-9E zM@#cHOXH>0*b?7DvX_4J&l zUjytpPU}Cj=IWTDi@6Z5W7us52(!a+DwpxIq zqX%0pmaBb^G}y2bMe({ILu)fZ_|;$gb4Ne@8em5;J@wCPn4ReDAu|-0wbg#XuL9RG zfX%M!s;-ZY7HEWLA1nidV^l0gW>oBg*HJE;ap%bLa%)pvVg^1RV5{67$Ndxr z*HSsU?v-DB;#&IkH0ktffK4)O{MR*$f;haI3)BbsEiI}v+jLp}t?-{{N-!NbJVb>; znfeCC7)TQWs6w$!{S2bXry%vG#xFIehWeb$7IgJkugg(0FK091l)$S6wwlWT8_`!X znO`$ot?AbQtC%+b`=#&TV)J%3|JGnV!BaJmrUDy4wEy5B^)iqS92%mLkqKd@qnmr(Xk%r|s8VwkRq^ zAB^JY9sEMtvCTKpsFI;-fNf}aLIAb@;1KOMfI7NKKS4b+OMP8dRvTnF=RQtg761qU z1M6Tw|2Hg@N@W@{*DaMI8XO*<>~b|X;oKdqjnpo412s41YqFd^_YuGr&{u*W`0ACP zUALD04^RK60mi^u6Gf#Dat(jAha;*K5h}M~nqY?7cVK{a?Czue2Zm_)C;-*mSVwit z5-7O!21G5qO+lld!U9It4UwgO3k)L#y6%?E4nd9Oo`F#ZxUum9jgA$mr*9;=v7ovb zU<>Z6y`_<+cQ)}~FkH48Y!&8k!e+W(RAzA`2tW7AFRc3t{U4nEPXcV`HJ803ipy{3 zg0&_sR>a|= zzhplCp90vjUl&E`WAI}P`$tD3*bG?A7t+_#22|xJY zsa$^nS*!B=Rm)YN)ngAcvmNRgrb7(2!#$G&u35m=Letu(23wU$8Bu>6(&tJK2%ef_dEnIQP9D5f=@(N`N(q-^yxgX-}o_ljtdOj_aqDu@7`ZA~kDKK)ouUMqPwtMdYZQOi-=V~*sj{S<+(^>^w)#e}3{}tA%4c0W^ zx9#kqXS#bO-j|yA_jU%@+!<}u+1}^?HWk={IJh>Bq7VOX$?*SQ1F(JHe#M#~h_B%f zwa9L(AS(wp0PBHAcFJE&{!4%fIE#VR%7R4-C}zk1%dF*t(%r9jufuFMKE7ce?b_2X zfp+rV8-$RBvpZ-;XEW8z#Z0GX^+!SQ@t6O@qo1W;@#$9{V0}Njy1i5=ToWOdg(=Y~ zQgnr-LG~f;xOW?E+uoBpN5=S8^JcV*?@${^M89S&N}Vqa+T{Q*;e~)b$Dx zo;7PF;Pim&9S@-4I}8sO-228flTF6Ob33K7qY8jkfNdScA+y;-zfx@WD+jPc-?P3} zu*hz!WG(#J&3?d7Z`;HQVLBggdV4c1oTVSMCQ#hAO0WeUbI=RMT46Rr`KBg!{tVU| zo7|VG1Zq?$P`NPSwns%?=lOq^6c$=~|cR(kAv-=l%uyXBa=CJs#3)iaP91w0l+p|tDL!Z|TK zWN$GAt^#k*H8je;fp=m2k?om`-I##+hoX^=tIf8_B!w0^_> z)VphH$kTBPrpw=|)GJSM<7{VIDrZZa3Y_ zCZRJ2c>V^hc2GC05V^p3PqtfUImBxl& zP}Zv2X09_dQlQ)Keunn!8%n*`1+&^|{;W1iavG@$Z2Vt$CJ0}3$zT6+n~cBo0Ap~i zj-t}-{81#XRqbdFn%mVz_T$^%o-fvFWl$|R<8%R3LtCqNM`>2Y zRGOHe$G-dD%phZ8($zHGD$XC&S~mMVTVE^8WGP$UK)I%7{oB|~0fP=8D>K-NBZF*q zjz90Ll{#PQUIWSXyzS0s*la9SvzZY=6l94yY{AC6zmq}s75XKeeyIW0_oFM{!M@ft zSWXM>$>J6U)lEO!lwvKg)#5pw%w9QqAzACBmtRhEPCm)pOYGg7cS3Kv>+_$jy2fP7 z^ekAb7NCyC*UHubXib!5u;q-uR~jBtF~f2`He&P;g9$#ihbRvJE}Ss(DDmYjPI&0D?7T*H;vs%IG=9HfIA zH_(m;A2=q~f^P=DiYoT2yjP0K%#h>sd?|#vh9=52w=&DIdC8SjacF?bV?&hT?OkWT zjF*RLbk8$1y7OtqUg24>mc2H4`(fIg>vFVc_B3i_lj8Yetwsjc(hJTLaLK*x z+(nyjzgsRW}HsC;)UriF>ff`QdbY9YGc;JmRH1;ULFSBEhJTdF=PApx zUqO_MMT$y=>PjGlZ`I(wBL1+i$_z81EHpME+e*wrQK?8V&pt?x#@EWQ7?W#hV|Hty zmL(@qwyBjobkNw|Z8Wy)X(|u*9W!hB@18u6fz5utb}Mb)(d)h&l*SVm&yc=Fs8(+4nAVAg?;1=SMU%VVSL1CFzwH6i9-TrPTS zS^*A^Ve+k=)OFq!=7U7$;-LdYvHt)~?B7m>{o9V2wUP($SechMZ9Yi%+}q7;mVE2^ zFd1jI$$eCsic(G@>d$1NOV0l#0ogANz!+SM7+gOh^uI1sT(!?V_wNw1(B3pm!liSk z*H#FR2)3Y#wHg>$%c_7C>0cBk4p8^)+QnkU_uRR1T#&OY%TF-C$YUn}3Sh#VZ>Z-& zU1YUzM8Jd@%YFgQH7Fp!UYVS-u&RIc?*9B|^PdIG1cuU;GIbyBqXn&vq7?d|1jw>= zb;3$nHa#=>dO5Z{!Jsp$A|tyd$XbqDMJ-ELCLaUuB{JVAG+^T?V*hMn4_APDHy;yg z1wq9JG~0W6N9p$4w@Bkp`#C$?8tAzB)8zZ7IvcWJlSZBKJ1_d!ga6}Q%KcIR3`(Ig zmr)8UriqE7u-2Am4!b*sNw{=w7v-OaxK`_|nY8fC(>-8C!YHy!7`noPY533~dg$w4 zuL3E6(ZKO80IQyX3bU>-G9u<-VPsVNBoZJsC@6V<1e7!RoB#^vfFDKWh|9PF#@;KI z!D_zGWB~}!*zH)~Um$wf_wS;wTy;L3$CXda&mwHabIjnua>RhLjFM&f9*Sb7jseHu zQ)U}srW;}KO*oK+e2+~Fms8_{6PYRV$;ZLFl1eE3u122tIh6+w9W!hBzuD)6KX%W( z+iBCL18y7C#S<4#7r(4lM?6+xJpW_&e}(=Br~h$)0bF622AAKY1g7AB|8QO6Z}Bv( zt%(-RnnuqDYhgO;&A&mN3+5YOmGwLoz=8?5{l5EX|5H!7+7<=6p|ypYr%x9KDl#*T z4-Ck@3Xnj8$p9U|gkUlbEppte$Y6?uJtjoLR{%bDh49rkZ=|RDN9j*bUqEj^ai+w- zAXH$6zZT}})I0@{n6aV)m}^{~J!D46Hn4n;;5VC=V6)Q50JDFhP@=PaRy`6p7g zxg+^d(m`q2nbX4$U8gMfELh8JulQ~Arh~Nh=bPR4glt(aRDDZ}FkzAX9)PL<|7SvzUVT9T!DpY1 za=dQu5hk6@&Ir7JTqQwZzA^dx;oH~I_n+P?+dsH+KF{+csEmT{gEq|OBnE~#!#*3< zqmue$0w(x>A;6|U%P>e|_S?$i!~FX&S${CsF_Y@&oj|#1^OBFo@344y2bKHwa$IeI z;_)G2yxi>Lsd!*Z;`7;?pVWK|sEYac|Gj$$=$4x{I=>7cTRf+Ox;h#?aLK=JJ&5CX zp8G!pvi~uF9Tm8K__z}@ke~~H3(Xx;K%rw}t(hkrC)*Bg*}`U8jymVhWgn@5mR)oa z)wL$UV)$CSAAO7tJ+oEL1;46+0n;+0OA7qN@Gy<^_6oqVY(4>0@ZoX|b;3yFEP?=7 zShju)t_OcDhcqb$5teZ-fDpigsU<;ZBI7^V8l7}Ifa0+h%uOs07bE)U{oCl4U59mN z_K7}n)^YR)=d2L5Q;r8?GT36IOfi_^V$r=904yVb!#y<#TfvNk91j^j%;Y3SmSJ{- za#|z?Es~5^zmyf0)Vxd+BId%T_f0 zzP;>^fysIfCtc4SH=jkAj;16K?K7F2gF*IZzj%=Sj{xjQ;Hp##;mjUCZ-$rxGCd2{ zg5R_96_?YDOS3E% zhUw=sh3$#G2kDRRdq&JcDP2Z*_`s^U%wTgA01!^tG?bYu1AvL5NHR8LE{==XA?28_ z16C72v0nzTl{w%XO|Zzo?+a{}X>1i!6M{y>V1s#E)7Rp2<>#G5xvnL8@30Q|_j3PU zn%MD(ocm~4i-@R}Uv|T_>uZ3l(Ua~e4L0`4&i%7{ze2yj=@$;LBY_K<)&Q4foQAqQ zEip;D&z7}XXU?S4UVF7LjQCk__Ddyt;2Ynj(Z0Ua`D{%JP&ah~SRDeM(LOZ;AxboL zcF4H^GN^}RgG1_b@o_No>RXz{jKs2lXl#s4#1Zwij9&t8*UvrHP5=1NCjBk+9+;<(oVJuca{3ZwExu1MR}u#!$=(P7yn3T13Tut= ze&gbo3FtGSiXR*U1IxwCY5*EcNceP_2HsxBtWg*hpv7Lshx}m{Yh3km0T$l5FmRYf zttD($-17vL`gR@_Yt{1CU?$#w_cOHl=>xV@2*8%j>#PMXbpc{}=UKl%ko`gdhB#N4 z2_EAoT_hV~_m50ZZ9G6X{p@LXTj)ai`1xI89zGk^!rx^Vo-eap2_G4?ZAL%xp)FhK z@$0TL-%GCI$un(ko%VsvH z40BX~#Dy1$zEP1?y;510Q2@)Lpu&uI849DpPvc|8 z2US%x0BbnmBL3afrBP&ju+aFreD&eOG_m_J2KLwyS*s?)@pR{Hn;B&L-7A2pxNKg> zq)f&ve=39Q7ZNA?g#k>!6=rUyFj`%!0oPMtuAgnvn+gy@LgbI`PxcyaZ-t#;AkFC=4|u!E68nY!))B$#DQ7SSZW>VneHlA<@K;Y!e1#@YO9ioquc7d$eo@lQ^Tk z^~8?*C>rfKD%NuB=B?k!*3T9TGX7`Yj8>XIqopR3Vc4Z?U2gHIA71-{<}Ut105*8z z>#pHH??^=f&7XsZhUhy#e9ZMnhye03RtvQ$|FOrl5G+20#SA%psUR0o)>7&H(AKTO zTo4&xK8b+Ak~^4blw(-Tvb?QBmzWSNl~J9WFpy9R}=aE>}i^2~lY_NfY^ zV;bjTV99`ZTyX2#+673qZB~)lPTFE2dxB>RBwryMLOvb?>z|+6OM6BN$wO1}J|aPVb1zA}X zmNEc=9~Qv0WKe>+upR4RU90g9ZIns(fv04x zS`2p=gKX=@r0WGR|JllsjRvC|;MzXD@jnL6)T#cpCW08$QI3@(x*1i^2R8 z)4{_-^xYq=6GaGHz+B7bF}T8K-w&a@d%Q^aGN>I*)&cw}Bix&k3P|uECV%BBYTx(@%9>T@M$S@7;-6!Y5_7-LcuvN?egls>2U_|^6 z_*yNq=1?7<3jiyM`8Z7Dy@#cBu?105UK0Om??{opzU2V@XnT)~C@E{~Ojd5VJyVlffxHNKT=?UelhG{m^dqy4;W%tQudzzh|al-0_kgA_0@ z0jRKv&9A7a!UuyYD2@uC!p08SKPn7MH~$bWE(JFEH8nqL(h0-?whuFWa{5=@(+34v@(U(Sj(&BonNTie*&(uc8-d zdO;a%=%(LT!_RZOtoS1<@H8=Ar2n|)9w)^+voH*gnYHwb1d*KvAhYmBdOvrwX9ql4&Km|n1D`qhQ85=MU z@fRWod@le_Ql&aNWyZ3kNDU3hUzerfR|Wy4SnKB;K>hmWgY?kBp$Y&U9c%e!<3C-n zlwN;a7uiA=1W9dgujy~g3J6%1uWwPXA)q|U>MAS%n1V17a}Y^lqau!rMGy)In*_u# z2Zg0%|5o+y45(l>26ZiJt`|oVHtRZpvR%h>PPXYtAOz&iXHM6NVM5n&?bz-*d zdgM{svUaUp7baZWY-KI@T41Oq1`)&!_*s}mU}5lKd#O-l01k*CA;1D7!3-Q3RiBKH zuWxN*P<6;(sE6YNeFjuf!c_L2D?m2P4E6Ob2kE-*9?uLklh0ag@{t*wFE!zHmZN05 z5jZx!H$w9S>9FCBV<%ENo7WG$)yo!$5P zZ#_)Chc(3xF2{;R(>a!!CBKD+16vfo>eN5D>v>NOe!&1XaLZdB3(@Q(oxg$wy6*aQ zwDlRSnZQ`^x!`-*J33m{nz!;~I+?``fM6?|e`PKZ{d*4xFu*(rE{l*6D6_S&zlE3; z{4D^crE8iL%3+q`k?oEw448>Cwk_ zxP7I$2^Z{RVJ-ZfYrrM!h?S`i4z*b0$`4& zy;i`&M}~baFqo)?U^NII%w{khNdnoXYXO*&08m_3bI^!P0HkDYu=%GK9C!|8Jk4^7aIzxfaqCsaIXZOYT~h0{!Vq?C*g z(PP!`-+3xMkJIxGu#um=1i2EFYVpvr6YhY0W%ka}8 zmdqPFJE^&AhMZ%Rfi*rj;3~_hSWB9vuzL8&V1fSNo~LN{2%Ayt%OMy{L*t%_7gT?h z=6Zd9qZ7$`Hk01RPEky6TCtG6_>xlvM56Se6*E$t%ngM`2@DZbhF`@6AO02;K>)}4 zMt(Mi@B4^}*w8K@g3lF=4H#fF$Tl=@5uZ!;ZBjoB%oQoKhX56X3=67k1KPpx`@p&h zcr$}#n&)bXsQ_6tvX6nbfu>?D^1gw+_uj)JbR&bzPP3;q(Sn(+T7D`FEdKl1l^B>3*78Va39H8%g_kL;Hg$cl#KePRqSc@vbWmAcA+Qfd> zqwH_pzE(|*e2&^@bunX&GjImPcWRwJP4WO?BEt5D*$6NJn3$0U)yyU$*bD52_*ESe zd}q#->yNSuIBuA1D%L{4xK4btY0_2NKivBS{li_4vwu=naA8L{+%W%!#;PnonHq8m zCUiNC7YH8=-63FLbH6SSvJ=yabac)I^lFU})!sL&0ni zD%jsr&Z9MC27V|9wP-6Dv3H| zGsC{*bJRn!WDuHlR7%rNrm%UAJ|FI#RoWnLKsL%C>)%LIv6jDXf8VxYAKiP)({9s} zIc+q(twBp@MfN=#4zF7AduyK;f9!b$*znrlzMb!KjjVX4p@r=n!0PXFAFvi{A-*Mo$Mh~~cU2f3q#jlt z-+SwNx_?h^^&7|E<_3LFBNOQ_0pI~(NQHuM0iOYW*jP~kTH{=wyJ#7`;rJO;DQLh< z42>)=svrLqlMbu}Gtn>?GUg$@2Vge%T%!XD9GGN^*-?4=@J+@nZ&T?S>#D$&W`=?YzUFv76{CNpNKW_jVz4P54isRrjak>LL`R(SL z9;FRW?ozXjKi={MGmcF$L~mE{VJ&hYz}Z!dk3_42b5gnZj7ez!*cU zYj}tT_}cGWyP2LI99I=EpHW7FxmWPwTP?=Nnow0uz|@%6^^!LJB< zC=(k=p4{EyW}n%zm#)9|0e3NE#y2jZu$=l57%!$&fdQJVVLMK>ID0-Qh1G^B#G1!v_yYrp08em2YaM zCI(iH*%3m=#9*K4#fjy2c0%8A&sKUG(mOIzikkW)6Pny$cv|aw;dcNC-~pf-OmloI zYQQuEK&`0=->r!Y=E#`%U2iyHCjIlJtF-cx_FAFK#(=2{A5}mn0pU@Xyz459yh&|h zc|JhFg;L1Am9$_+A}?5t1IRGx5E~PJifWi-U`qIB0PMtovRNjtAi^#fm4)c^H^fHv98x6N9W>^B7}eE&^ob!414i&kMFee*$47_r~X z&PG}w=~S_=#p&N5dew^eJ~vbGc>&ny-S5AhZ*Wc8V~lBVV1&N$mD`Np#ShcbOtU&# z=xABXY@*e#x|+IvQfq^yNz|4l4*po2~Xl1F|_W0tTCHhyw2kzk}hdX^3@z%>oo)M1n6fElk4CUwoXLI@dmv ztYRs-h9;pF?@G->O=pU2Cj5l9PWEel$`6yT`@CzBQ?0)7j-F5wXvkRMw^E)^Qo%5QuII#8CO+E;bP)a=7lZ?gAo4@_V#FcO%^ z`cqaJ#6Ix9BBQ?ISSWi%b1nc8;A9}a`;@&#uEcux56Y&2;R1DaAgp1_ofbs?TVKuvCw}pU?cbqiIXx!^ z>wD}&?R68ho!@jjd9pkfAA4vM-Eo_?27upn+`Q>*?PQLcwe+v<)YR4@=HAkaU&O)P z8PfmYlh35dI6QKLMD?WSu2B=Xj`Dx)DV%*RMj8A3*Vn~EXuxyl8q zWs(K?7V*6x%Y(gwFfYL1hm&hS+&~>4U_Ahv=M9r#_$9onI^~?&0AZj7^q3n2ny?GA zaI}9=z#-rwfJ>!x2pqC*z}3{*#tL;&{4FH!Ld-yB228@F7A9Bwp-)5jSt#H`dv-`> z2ju_8*>fGRhIV(0?}e_<{&q9htgVg8QZVZ*i@~hJJfdy01TYAE0$63+iD$*jtz2jS z^LI{~M}M$<8nxHu+-v5jNmY!PGtSUv_LoQan>9ndjnf|>#&~o@i|JWR&)P&Bd+4KU_{Kh)G7Zh&TW)-S z<6ix;shMlxxzpPch9;^o0sVrl>r2i*pHBac*K0$?i7^2P{HC~!J~aBIM_shNYGJ^P zvFwi2sOHW#ITrikTxfyZ96-_DA}Zp<@Q5VwqC0?5meFAnrp!T}p>Vd$nk_ko z1^#{b;C^Af#%a@e`&{`#BM0^}n;lZIW9D4?@xf90`s3SFtN?h*rXeJr3qF(WPsHC2 zMz=v{`x~}tS^<}WPy@&(FQjk1?qYi7j2zX6>3a>h0HgoG2s5N|2pKq*E3^!N)W(V} zn|c8<pu&EU`3<#+D>UqvE#Y~Ah#qoy zre3=vC=Za&rd6h+C&||{m`ZFa_8ruWmf^9I#KuC81r2Mqf8Z5Mf-l^#Z7m(+6wtGr zMj!se+k-eC|C=M;n{C{tDFzuLZJA`8-Bt{ z;32m!x<+g6XyrH;|2{g-U}-h^gBoXZ;9>zI&t{c0H5t~dcd!&nIP#|XNxsoBoHU3;&{;CzTSQHS8Ys>F3+(eC8$$$-G2VADF+s&d)E=W^ zD2B{nU@6QJWG;^;-`o4ZL9WHz>j+s;DIjrPmh=gJRZ-1C!f&B66~G*`DHxX2bi|=e z%Z0UK6Pl2&4A_s0CpIz2`f9S44IjD0bG&A@Xm0!7IvO2TQ*q9;Mw;E(n2I#n(KWNV z(&EMMJT}4OSuxnyV}JS%u0uYQX0MQ?&m!IU{X6)t4q-a8y_wpY>W_-G>*@X|6Ur|*Fpj>SZ(Cc0om3vdyZsefXPMgTeHR zgwdF_nx^UZg0KOZ9qCQ@9(8TT97Og;QB}lD-o(1B9jhNcz&89QzLx<~kTu`lFdsk` z#xiRo*^IE504vU#?SUweL2kOTmar*&L;gL(>>BkZOjyBM6}{kywbDMliFR!{q%1bh zEY{kf4Ss!#ivQt zz80n>=ba}3WvO8yG1qA-3q~lhg$aU3gn;hQ2nUrL*!;^&f-Y_bjU{oaG0R*W_Znv( z3yHw3d|t$bh7KI0s*X4rv?9GTdkyc~E6r2H|6(RXuTX=#cc|3gHA@5!$n%5UyCnsv zzO9q)MxEARSZmbC@5mbj;6^8sS{$ZhzT%aeXK$^`(7RX8ruUt{l3KX1NxBl*G7<~0 z@ycy?)V6Z)c5=ifIyDcob;@kgLRkaK0RSf=MvF@Djh&((M&o@{9zGz)hb&}d z*w2zpmGq8iHR7; zIcWkJgk@9kbFv*EiQ&5eSedd|6<80le9j2L@or|)W!hq0m~29mkL!--Z}H@$tVOAq zS4`7pwbE=BjrQ;ClWjXW5PjU7R;p&d@EzN)x$NVM-}%#SI?Cyo0XFvd$3DhSxyasO zV1$jq{vig~MrRhxpWa55S>?7Y=-(h!LqNP(eBQb0cuTin^>QG_HQuxCF*&Zjxls~z z!B$`=#Idjpa}de7*ayrdX-g&x9+?@4Zy{p?%q0q$$DZhe5V?k!2KVfe>m!Q;A_f%0 z!cf1APy%yM+L7(rE}+Y|v{K`YIdcDJ^bXQD&t53YyV+U3b$1`n{hFmwXMh*fc$oo7 z4&m>fv6O!26b=ED$Hnnv!jsr@!&`^5{VhL(~hf*skXN2jpvqb?qu_6b4O~ z0DXLZHq-0Snwhti(3@|gnuO7)VKZA0@IQjg^$2jGM3D#>01W~${g;}Ir zWqBQ$AF+nV0JCXyCxhjzx4u= zHVOM=SfIwP+0uDufqk#S@Br1dPZJZRIN0kdlZ}0&^al^_pbcztNKn}fCLzoQKa8*S zN9UbD?^@hK(>glkCp6p7wN2AtDhGjctz9aM2P(Oj2M<=U7Bb|a4r&vSdQ}Rgc}Rnr zP7pQ3hZ=Emx`-Ik15}e%XazMNrSdV%g%}o^n^@lqiXj?9T41RJkLE7}34k&Usu;ot zlN`f3DeN&)p{S62cl!YXRHCRrG=ac^ieLstMs?1p${I%*S%%dZmou`D01ol6x)lP} z*sz%NDI)&Z22g%Y)~W;>rp=Gv8A?E9RRHdSa_Em|cVL5@xZrbQIGuF<2p+ z`A}dppV!rzGGQiTE&JP&bI+9qjM_;};BpMN-F1hw9EOio-_od~ zl<+m{TbjfND@k*cyyO>-4`~w!fD8Ursc68({)>VuPOc9VmVwg5u`TqGfmXEN!t^wN19 zbP_wsCvh_1eK<&|Y)@BQih=VmM- z`x2!qHFK~u3jvTudh82UF#^6>9zFG%EVjak^p8;+PYi0p?&BZq_$ z0`{*m%`;UkEDTA5N%&kr<8%QQ5_Pc;GUY|sh_xwBkZqA3ykeMfG0cQ|)h*(p2d+Sw zj6oI$=#zg!8iRtVLeLbLEXoL*0Z8&LA^?j)mgVAJ3S}ShwMwks=9i0DgKi=s0T~3H z6F8jk5KYEfB@h_f7a4bOh?UN!d`Xx z?E!+y_Qni@{opIt)1DpsWOE1C&~vA?9+9;y&|n&_e%VJxUXlI@5MaKvfX)FBCSL(2V(9vzCR@khvkS4gW4Vg{*W!OM}@a z`G?7Xf7VWqNmHpp#JcI=_O3@*GY^sO1L{8(R~wj~M@Gc_;Z>JV_147d>ALbHE>t-ifO zx>+0V>yebGdInlU$8?e6G1sx8*f4FTjG^_(>wZrEwr;0fx0Nf1HfDictP0+LV32xBY0dPe)l2C$GqTjs)yAgfxIBAcSSd)o9~EFiS0N;`fN=OQxtC}P zsn1$!D%PpbWlTXS!~!(5^BI>sf4KP}>qh5X#n82i)FK61w0B&=nO z3bMePyRd_{ZP;&EEEX2)Xv$NXiy+CwAEcvTv7-hU)9>5m;|pIZxS$|Dxb|TOqUp>u zS=-I^6s+YhAK17-GA=S%)15L;02hP=>2r_)Ho>MLf`7>9fZqj{s%z4b9}5gdNbkrk zoM46n7`0DB?UcsWl=zD-s}VdN>+ci43w;$fFrY@+Bt-v&NQXjvYvkZw31&CXnJ*&9 z@ZKF_A~x|l1dp+UyBVBA^nKH>$V(S=(m$TRlsem5=?mM3=x=}a2;H}TP&%@i-%>|E zdc`W~9<9*3m#nE5n5>6DUzg-G#swQhCew+i8Yg5-MEsDOxy&n=r2Q7c*FqdjI$70B zj%c*kAyj}?uUQuXiyUGKvfou6Ij9*N3^XzO#J>Wd4x_6nG5;iP#%u;qA>Jh>BKuwu z#0*vqHU8Bm!iIJkz6Cu&J1*p|!MVQr5Bnvqss{F- znOK1aL|Cq7MRC!Q6vd+gSYh)&z5`@KamIlQfA?-@g>T1RBXtKft+g@nC8l64|F=V% zo~H4``)U5!=TYa9Wz@U<8J@SvZ^BR*0Gtau6hxSM=*JykLPwy8gCULqMG>Ngn3D`v z8LD++JY}ZB7ehR4VgTS8lMDyvX56}`l5Rr+SL7qrv%O$TXwjD2|qa{p+FSIS`6fyp4vfA?CYW1fAex-tcl)(8fc!sL^_p`%nQE%js0V63bxS#mgU!N>(&pI zH{c1AN+z_GjR8v#Rs`I`q(H=hmx%zg&-71dUTpHQBh$7DS@0AmtR;$KUR6P~I*v<5 z2;u$4`&rEC7xsb3LCDrXGZdJEr4ePcdIcKHzbKjz89u-ev*^9FG@w#A*eZgUF{)-8 zwn@`}bZpb4_aQzPz}BGbCCl)&P(f(glq)k5crL4&m?@G98|K|1999fue_?KtN7BGE zDc}G;-`7%0pp&iC#jEN5CB1@07F32JKk| z=e3h&cN{U3qqzMGYxt}#YeQ>c4%o7Cc-xO|aVE_?7B-}nvZ;-enz_$4Z&VTGa6()`%{JS35i3Auf;VlBzQEY#QD&k3&I5kT!89mtU_f4(}5_i zRTySJj==@95HT*au|j}Zz;)w;^ury!3N8eMk%hq^8RYZqKh#4n>d1;}2yo$CWBaz# zh64li%xIAw?c-Xyqyg2BJ=jfy<3(y?)$<=OULkQAn12WfAU!GD*rJ0a1SAb32|eZJ za;EQ$36S7E^%FTBz(bZrPE(*{mQ0DPFr~1U07tt8z;9N_kU|3W zj{yhuPCBVU$Dd#Um!#Y1nw$tb1zBM^EsW!GFK93+Ifk-c5~*HBPa#+krZHup=};O# z&WIGRAhG#|_JfgTeZ-o<5oRM}{ssm}%1XlO)|Io%Wdl$HlpxE&^X8NJRBhy1Pa`-k z&qh?OC??E?Uz)kHJh+!*f$URbGZH5n@?m1ao3fkbosK`boH`D%wqc`-US8mBd0B(`+mBC2Dw7`@|J_C+`}st&Y*mI7ZnaB z`GSG*tMt9;*YsH{{q^*Ze0vNNgpp26lYS|5#WDAOV|xN)CMxi>!y6r>ylArQk;xHi z_Blighys#3$lEaxV79^dRE+{M@v*Rt*-JXD5p%GpGCZ;`AZW0dK@d8^RwytcXau3@ z3mzt+0hzV|!ziA{2SZ*VfE3%bspK6XxEvw49BG;qd~USw6o0Br+SW7FcPHC3#w0W> zCS^6#s&Tlij*X_nEG=MPd*7t2RjD*CTsDoiJas^BY;Y_9pFm*0F%x5oDX}5qxAUKm z(InH93>I(y*F|v{d_{p_M>^pG&gR)2*WGGFgn$-s+$)RWYo=f=`&-+*c{KlwGez=7 zf$v;;oUlmGGnAEE}7M;XDym|iH$ z=+h9xwL;VYI2+nKMT*B@3lKX1&=39OVFedbn9!oQ93|iyGo8+`8Mv0&>WXO@YUF~Q z=fE>^B&TzYcGZG58sy`4vmbz#+w<8W9xRmUi35Ff(b73IFI$ws>q6<1a8z0sBkMx$ zQF_B2OBhPB5KKEVl$?wX|0JL}Z+L+?!3Cu7)5jw_i)j}zMYr+`>HnL*nu zDU@i!UoySz<{Dfdh0)o0=RuAeLA zRuT;GtmqS@JZ>1>2bk}hCE`a@a~3WCTbG{=WAf!=>G>?!|-WpO_w)4f4{w__UHYh{GhnuNK8$y(d^I^!~` z36}Buw;tKV;9{Svj-RjSfeVSAV>%F?Tw(%B)7lBq78M(h+Y&*Z{yN zlQ6iH@kl@!mBeNg_L9f7T7d0|0e~%&d9RTO9x|pGfHYx7zLcJY^<9OHixMEk%38`? zabhmUu~Qo7%xl+H;~`kAoHjI!#l?63_Q^0bCBXQ0KB%_8f=mBq=%JtAZ2+ap;gML2 z%rg3lmq8i83U&ZCo(^r=sGwlhfX`Ga>Tp5u#Q-AY7D73MfFaG|`8Q;0piLMgdIXj& zYuSu@^mhoK4qdVVP?*48xyD9G>Rs2phyM8f?aEvQ(|!vkBEV$?6b&ASnuWn&yRUDQ z{^O}VRN&w+zG|MO_iR%u2zWaqfk@pQz}eD|u&0 z4drdKyOnJgNb)`wD}%=9#I$VuEC69d_6ssi=H6{r*tSeqUaG)6ALUulY1rrc`VU+sz3E(bVG>iWDj0Lj)Pgs@w_T~fRd_#jJ zW6!0Q{jh@D85IWl#gKSallK2EOx3ERnAEo!fuhOyU3jmNk>^KT;1}kc0;}j+L!Hx_q|(Os85%EFk%$sV=4v_?fJM372bHxlIvWOCfA2$1UT$x$KO$?{f)8J4 z#)->?xkNNE>~(na(}ul5VJ{o!l6yeQW!WC+Ab8oVJgAz9b#hC{9||NeF84j z;<$Hh$T%jcRUbWbA+79clNa;RyEikN8P*7>%0#qD$cgh=Ubr zaM_?wfMt9p3nsF_^7jFY4R@Q89*S?Lqn#pjF>6xR^36y5o!-@?WuE7uiKxn?H=pwD zbSwblGhD5#W#~0j^RRovCRae99v+Fc?DFhYtM%QY`8aAuzAZ@VJzF-)jUxrBY?^<= zJS>;Az#u>z8FenhAh5!U_-7LnDM=pp3C2RK3vU}~P)Oc|tPY@I+Hts-J}(1i$7&kF zuFM%T5ic1HC7H=u8GIi(bpc)bnzQMvFI!3Hb?H#Ae|*7-^vQFUNanlr;MCA09d{y+ zP)*dt$NJJ`r%68I04tMkyzwy#JPM1+d>qSUQkW8R(T|T2@&oZ5a*dh-mGfpJaHv^j zfP?^WY|KOm8)!OWm`eZ^X>OvJdZ7^I=fUF=u(zaYBWBnnv39x2#7XPs%VuoNOQ*xiZ50`u4_3?Doa=XXmu?!u_nOc z17E*7Ad}Q9HnW-6{7qQP2g(*xTWz?Ns-Djs}zR^>GK$r4bAuM z$R^V9OxjF5sWC_QzwT7}qjQg=^XIhFOJ_CGkFH!v+urk1`oq=pY5kr9^r9a>K{xH{ zmkwp1)Q5v;NQk{msKWEWXH;qSO~k%tCV2qL$3EDL_R{XEL+O zX`~7wm`mDVH5o943b+Vjh#6KXR6yxo5E50JLSDAq}$P)h#cJ-O2{BhE{7z`dQG=Kv#R}Ii8~-S0zEN4S^zcL=7_+n!+XoS3DelO8j50wr)EZx*i##)trS!YLsGZRNkabh02&%{>`tJTEX z3|6K!nt~IFG>!{TuKc#oy^d#+ouNQ0o?lAkLS0{8XBfaTnNV`ij-Bb%pfqhV+6$~@w4I7nA6Mnz* znMgpT@4RTtzO1&(f*FTpX$WbUi;$qJeycS7mu!y6G?*+qvrkM#VJNMX1Y}m&@N)>w zK8Ct90If?#QS{71N;6Tpe-o7lwo$2P9hDBPm#z_x#9BV!>Ny5h#}zPG4CGmi;>6HM zz{Y0c)r+PCn5c&oEh5KYkrdi}&ukZZ#Eb#+kWn!;gC(Hb`{;wzedle`N|+45dbesG zV>W98fhu%Z_R8c!dB}v}A^{wh%M~5g0GJ`RGppfuh#O^LvaB#?X>3?}fBOD*bY~q& ztt{rC?bbSPdvYpM8!L;Md>!rVS7Ahe$omX%Tns)}JBAP{8&QH;@5W~i(7!&q&AjNq zfsHKK5Q*e-{`Xa9$}<80e|+a=vJ{q*y#ZB8GT2p&NP|iQ3ESBW%sCM<(0rtl$%TheArvMlsGBpyalq;~zSq@P=a4Pz?eF+>OnNIP&e&sDbN+nR%ByJ+Q! ziWnHM*?nTmhU6)VW#l40Bc1qIv+_u+RcSi5wyHHC-A@#~@9llUe71P?lmIKmrK@B6 z@w|_?W20rSz?0@DXRS)m^>5!wTYq*FZM^ooG8aaM)NBBIfw2OOUkQ7OPi9yRewe;N z5j^DHU_*z#LYdbQMfg79YXN9@D~NZ2xv>2}l%b~%m_GBQzd`eS@cD3oqSnYy_Kym< z-ms*T+N@O1`@QG1#j@KCn|C{K*>n8O!)*HX45nDi0?2N-XnrTXm;EHhHZyy zO7b2ZN(xjQsQK}!d$-W19_*I>4rR`nzZoMyS)qhW&TrrFFn#@rU1}zV%2I*rA=jF4 z+Qv!DGnjG0INDV;fCOJj*eQq%lPSm~`$Cw@WbWk3dXv&f(u@WZ2WA=OSw;aPa=YGV z5ZGl!f>jRDH-|F~VM11#i3UKCQ3zAa6&sMr6enh7L^Tw`_^4Pb#c+I{_LjW*VLXqO zjhIzoE5<=^)sz4Wqv$HlUyCUASZv4BTO62LjCnW}Yq@1(w~7SM4}c_Fv=Ub4(exfX z7?xwlWEnL9DFGmyabdDjF?DVUPG_^yxeZiC*SOB#9_VttNf*NzlECXz| z@Apt&$DiM`nL3&qY2Di{r0cFYiSB&ES@hAfm(cqCy&Tgzn1D+Zu8;1Dw1{Wi_n0Gv~NP|S84IcXx^Xn>SWTIvf3#RBzC!P zY2L3{K4CU#6d6hzFO}hiF@=>vH5FsCpZISqD z`+k`KH!FktWjjxx{DL)9x8yPrJSJl;A8>W~P~u`CMxo(Kq!fGDO2D>eQh>$VKhw_6 z?P{y`k@3NL_U)I{D6mXDUqG|wkIY(Nlcs6YWq(uMOnY2~bT`qq;>>B{TZDY)#1HnA0)WBs8a`sh8+H~=K3Um#6SFtu@f?Mp2A zV>_h#-?`Zgr|a#jf0I7>@Xx32+p6b9)s1WfX7-Ebw$XQAxst{{aw&cH%9CkTN4=_{ zfz(jc&#dsp$M%}|Wl2D#2+oVCD9n_x+iYKi%0R+gp%Eoa4^I>-kRY#1a!@uROR=`K zaU_5t0k33tkzu7$#sI=F7hWGsMeAod<otVJ}{T|CK_ltD!x=!R))>+zV*haVN5rJt7IW1G{$6p^fXEk0L>1E-<#43z>ke zR{pX0WYWw6H<~x><&A)084P)d;)n6JA_iv2=TtH;6^wdWrYAAFrr$+%#(=|isb;{X zZ=8LrZ3o4_B2x)CK$&|p@d59*fd1w2-E`&h1$5!u4st%2_XR|{pV3BtfANX*M{76I zUAubdU)JrU_np2--?d{cOKJL^e!TUdo)4E|Gx_4hbLp11U80)ad#?A*T(}5kkTx;8=y6lv!WxmbV?!Jk&U`6-;44gGXByt?6f% z$pe@Lm2wpWMoc*`-_Qh?!CErnA$q74slTL5h9u!~QGtf*^E_C#Hhq+IRb4htdFTPh zfye+YiV^_Xz72yg`QW~j#nX;~Q8xV^H|H^6wxiDk$+!K^Ri`@X{&#MEQcT9c1FB^* zY){!Cd@31T1wm)DKrRe$p*cwL=x$n2KOtapewk@PgiQFj#DJ7svUX7zeNYKIg$5vz zw0@K(`0`khG5c(-UG!g+hAYxaz!m4-Ivp86YB{vIjA{ z#P4KvZGgqb|MEa4>}8abCU4lBBL$gT=FByx#EVvG9wU-i^ea=5Nuo42lL=fw#PtMd zVoGKl80|FxI(^BJ$nxlvEL8OQikm0WY%cP{LU=bKG zLwy}hyjAv)_FE!m5ZT6(>Svb}tn%8*-fJ#Sd ztV|yzW*)i**YA-b7b0q&IVo%Tpv6A*xljk|18Kwo`PPR8Ti=haUXub?am#1c*ub)% z!Eq4mWeP{V?Pp>V*7BEim>)8dx?X1F;6B4xwlu~LNNFZB%Vd}=P|*A0h75+l=N15h z$s%O{Sr#TUou}}!449yAzQT_(ZzJ{qLLPhRgFExW0m?FyGZVdi&4Gw@?HC;Q*oe|! zfR|snY$mv*$FuVB*$d22>=_A#dcZ#b?HdjDAHfHCSj6YAwVgc zcTXyEIDe?@gUPU%1s;{j`940_JP^43%|TPfwVe6L02|WWL<$p21cO^l#agigEC-#l zh9p8sd#2Rnia@kRE@8JvQE82pp26(Y!H7Ua;(CeFq!l)UQ^24k$8ES5@mjD{)5YU;Rb)7L)F zsFW#LVJ23*WSDlpas4B%;)(5f&9y9>efmWw(!w@vR{!pso=8kW16KU|ww3de`yw?% zPx#lh^o2)u(w!`n{K3zjpqGB*4(gxK_@5~~^ww2NOu<4*5SpeSf3TUfPm6J34DIwY z6p+bdTeiw3Y$eNO{f5GDmN^1bz-@mRv9d>O`^G3+Gt;t8*{Od5Ajejb2cX#bR*6rP z056sKPH_qZzVB6SCPr@G2!p&A$C9#%%G-9ZItgp}fXy0`0CALqFjXJhiQnBS{R;MT z#PO;mbHlP&M2Gh7bD$A{V+z)?!C&}a`R0}sW1thy(#UYad_)eoa(%BrS%%ZvG+{Lh zGJs1!DGZlM*e#nepb8|j!*)0mn97lC$1zi}S2!8yEL&ADoG*kV1ZGUX0s8Cvx29OD zlA#dH{?4mUmqP|v(fsY3*1O;Aet&-936c%sf5!faBK^T_8|l(-KS*DAbT{=&!(h|h z02lCu9S!vMQx_6sc~uRu!?3x}MoMxF@xAjZZe-1k!$iykCVAP&@S!JKm?r#ks*G(> zOd7Cut&7P7e)YY8(R8QCuw#_=zwFPXW};X%4tNT(N){snHg}zw6$ls+)h=HXNfrUgjY zi^!OMo_QFO$5guPm@HIP(E`YEYhL&EsCrUVed@k#bl2`a^8te7T%qoR z#Z@y}>CZ3Ftot8t+0W+UcHP$~m$<+Gc*UvdQ%iv=N!QxwB3s2Il#(2^H#X4^-gF`V zwQ_hU(t98dI5OVh1EDP!@;!^B4IxcNd@hMG*|bXlO8_RKax6fyewKay$j@R=wbzQ3 z-9)Icpb5-t#dRxLEUL{Sj+xScaj)M3%VuMEps)goe=LU0HHFZ9%S_XBnvAs)zf9M2 zURf?vNGT3ehFipbSbG96iWkL3IkYT>?y7AjMtv?bC2RSBlhGjUlRNWppYx$?`F21H zEZ7Wd1%}Bid)aNC|3!wq9FxIRlQm`WC(bm! zV$9%bqMKfGhV*lom}?clq>Am7e#gFP`8zj1B^~3q>MgK=dIMO#uRpusIJ#)TH2M8g zcW+MQd2{_MPnb=&zV$q6Z!jHT;$G4DD7tpDUA@V7D^dUWIQ18h)uGQE+N^eIpQVYr zA}-iO-i%3W66qZ#VL+}w!c6RP0t26+La#6f33~*A-A?541r0znIX6)VmCa&j2F8(n zpHUJ#rZi(sZu)tQLsXNse87}3tdsqQ*rzZ;rGdSZvQ`SPvB}Ofi4bLH#RQZ#V`#Pf zGWNtL*7(e2eXxUj_q+0y&t|4%Egx`}!N~JZ#t!ZCfRr$mp5HJS8C5a0t-}8TsNy&c zK(k#;#ZXyInaucSJh#c<*5(C!X51A^yJ+R~Cc`cYFeD^{HU9MMMahodvk=AAKnuJV z>jRCa3m0@6Q0R||iI~i|{(rn;m6(G4?1%mKjgPx?+Dl!uXgY2By_e8Gy!2$cctHoo zKUD_fisj-(GwDBH`yys7?F8suKfIlV5H$5i?8}$sLj$T3X^cskE6iy)LZtVMKBJZ1 zV{0DTO2aTz>@6qTNh|5dE9eF+DOJ!do1ifnut+aau`rwSwLJeUu3)hgyHFZPllHlR zxm2Wy?gyx_=Ls6$dN++ebqf^_K0{NnmTx*{C^DVlkTiy^p5$e%79$`ND|=NIq_N=< z$1GOhAPXj%WSQswZJVim@o|)GFat8c{~8^3pwa8c(w9&a#D=i~ave&#atFmJ-QR}T zy_6`8u}%Dy<&r0g#HIzSnvyGLv`haO2_xxCSUJ5p4H$D>eANr*bTP)Y@2-MvRup$E=#!Rt*TA zb`IG_h*sGQohiA1)xAGCcNy8izfr2zAL{30CM5gf365W_KRnEGyj7%Z?GV#N^E&BE zFF%zP!a7OR{nS0rNbKu@cU+{gEmx_S*$hZS_4?95DvoH3Ahquv{C(dSen&t_M zQe_JJNZ*C%um;p2eQu2MzAf~Da~9L*@83q(J$;bp-E`G*4h6&zJMyMW>L3}hBpXSt zp!SQQz3fI7G`KA+XN?SBj!jRRhOI&$K;~PS2!;UCMnt06cnYzLaHv=iH~^(frw=d- zIysR8W1K4d32;)3Lq0HSY>(XqDnJxZeonC#_1Msu_wrI)YM58Ya$H%K$JhPEj|k13 z4Qeb{uKn5%UAb8{qh(6g3MfbcF04@3EGUr;f*W)SVjMd^&H_XN%mN@S=+;ca?1IWx zs)w)T8funwP=wg{V);7hyAWLzpwZ;X*W5*^$z1cE-#CL-cC{+21g3vJ{_y92`yuva zO3VuNlJvW&^gBOUCsMjKKjCNH z{HAlv^M>Y{L@w8lSNg|Gbk={}K|A_Kh1DK<_Zn);*O|btYUtWP(wMcT$EN@dE75@s zOY*1x>#g+ozCkuQ>*$g9UrLKQ&<|oxE3&LjQG#h`3XK7ke6f=4*Ijc81zcX|pR$i( zF)MtCSs57snK+oOgkvk$<2sRL#K3%lw9p~JXp_IF<=gsWrYwoz7*n;cWq*&8eQU6m zZcYORy(UAZmwQG3Di{s425VW9Q9}icsisDXvpV!`{g`$^o}S`v3$WV>Y4-Mw7_j{K zn>wI+0}C8;I~u2Ct-yjapbCI_6}vGJEr3jA&mSjnsMp`g1enRNogR;70ye-LWK2)C zkx>ne4UhCJ*w^yA?Jd^?nos`9J%+I;1u~3)@^3F$!60fE|7(B+iQm0t1KofInzkx6 zm4U4Z0HOs9IJEOxIkTD9o3$y55iY**X=By=*a(H?GF46rut)!_k9TVKO~jsqJ#_ES@0A@ISfZcX-f%?L!qhZlj;1J; zw1%A+=;2zhXaJI!c!8%N0yyeddBJ9rN=1~IlaAG-O92BaIGbQClgS~2CzQ=#exzz> zfH8ad1-|EJ8|j;y_E$W8QuqNF0LRMe4ivtD?b`q~&arZ)j!wV+;2^nb+x{NJ?tlm1 zb)oo$+BLMX<1@+o2Wx!dj!pE5JGG(fm#;jX-hTQ5lOokDETw%Fs(&RtMa8C%LiDe} zCgJDrf0BOxClAZ<|8@0w^!76s3In0HTpd^;R-emuPhB)X2`CXY%(64_0IW;`n!qZB z#!?Y5I+lw}EX@D{=PR52r10XTHe(|&Y-V4XVKalS>UddP!9>aLN5fi{;hN5Pjk(vN zWZ2_d4Bh|TNmoy~0lVF`#|KyCn1r^V#$~TLh%M|!>C@&T-f`AsvvNFn0H~qRB|a5Vl2uf(FInlFsJ7~to~Mdy zMWbfqp}5(0QL4gLJnc|zAD!zlip|8*ltY1*ky`T%{aVd6C47UZ(BKq^`-IE zNes-!!PJ4bo!n@Ud2-gWg&S?JY8A5Nn4};jz^Vb*&||Hz#x?!@{Nvs5wVuiu8X+On z&Sz{FYI|1ZNdZqJZb}L@*<&g|;8LMts>*yPAE0qf=8OI7rGS{ePW8U}R|E|r z3cRuqhq*~v%b!(CFl9KGO)5uk3MEG^_Dn-F2gdi1R>PU8S+l&lz0$H{N_!UdL5-|86@o)R6Sj#`A;>Q&5aQR>o zV6v(B333k zm6_5Ozi zuLMRVYgO*&zd#?TlkGbd1M<{AUZmH4??LjJU4a#N+XDKp*PLO}qyl=)x9?YV(pD-G zzv6I&6wIuqN3j&&-8&-R^5P|3WU6CxeWSJoDw{ioaA{5CnSMmJYc$tobya~U$2@6J zP-0IqH5F6?CV&LJSL*rfU7!h_4Q&8oKdM-n7{xVld+bY%{#FD#z3|9fn~ot zx+hsf75AH4Z| z+1}khLcf30<0+6M{&vUCy|i}Q0b0BD5UtzaN9zyt%BNV=(P$)kQy5VRMV{gyn_>qb zEsF{8ENdnGz*BA3a%>lq-vHA2JC*yI^V9^Ee-AZTE3N=cT${D3j!%OR19((^Pm%2> zVJ+>c&-5A`X}C%H>$J)66sEq5&6hS0Z2Lh7k}^pcrYP{Xd8|We2Ff)xQ&ld7y#5vz(QJ`4yEb9keX z-g@#px@h4v4`}28CIOWF>ws0m)J(Pq2H=!tC-MO2T_@SM);W{yE*m5EK9H$=GR+;% z$4UXL)?Wx6`6P`n^_gP;EYf%g`KDBCVp5)&;>g{yZ4dOokeoYk_niht@;nI; zgA~J61FpvPD!>_gjE735(0jms5b{4}inTmYRh|Rm+2!iBpPHmBB`+qM4o;W{@XSCh z3zM@};1%GYMqw)s^--nYR0SwX%sIWTj|bn>3q00}$vZ&>0F%P&p0}dFA_4asPwkrm zEEUgE1(3>R4=}Y@E1>ktuRNYNiLd06q4j?6>^?*v|M>>GWBZ}Wuj$yq`#tv09jEpM zNWc1MH!W&!zS2L-nCiUw_UkxCe=)styoWp zEe*Cb;9^QMU*PWN*|1h66O~!$z}VRsC8yXwAOqb;(NVBhOs+?2{k~!PTYz+AKs;Nx zJq8;Y88r+>Qvf0jvLJ;pbDdJ*=vj;GeI&jZnQaL}c?FPs08tHK1u7W0j!BYhyzjJy z^o6U@Rtzu-9Ce$Qq$7f0n9e{kzl zMofySCTmrlH>OD$uEsss_}Q~%txAye-2J08c#gnY3Ff`*BUkDOhT5j3@ueU;e@aTg4>3 z_3h_N-;1?OJUd;qpwoa$e>egn!;YJofWiGfIUuUos1~?VJ5K?w2E$wc7he;@Bfa`t_bIrl&h4{STn&yY zu=xeA@;9nr4R3!!3fBM~|M^>K9R|y=zu63nqy*EQJ9{_`FhG`F)*l#j;KGhboUWG1 zO|4&*Ll}GeCifFp9P1Z)y|3h)a&H>EI${oC7`%0mu`9Mc`R78xJ$QVxLpsNmwxkp`n@w2$?_K-?snIQ z>AevBnK-aivR3jusWNJTMTXg`_Km&$h@LOj>OAcdIc@84E9K>kAKp*ZalDrQdRBW`zRstyXf~T0w&mTDFIC|S@i@fUu zN$v0U^U*<6%cM(9{+F)YH?G(o*Vw1x)?wnk^y~N1ruV)`26F%6L)%3m^e5c&C-2^p z0s+qR_iIih-_)zACfa*;W??0Wq8j^>JMZ)5YiYBlidRXLG8a=mSLM1lNw*aV;^k#{ zCZgZrjn@7)Q@D2Kd!@M;P}9N_spIrZsddG<)VO#hH63?4)9%bFGtiobKKo2&%B2{} z+gJ1TC=JAbs?R~*xye6X_j&6n^R(w&qBMI{F-TBzk!tPc&lUTun%zPFblEDh0rjsv zx`WNdJpJ&k=ezq$fvXl6DocY`n6-3N{2o*uTLX+WfG8mQ#=Z3V?>{WcAeasP=_8<= zK0Z0$zh8EWgh0qE+#VG;ra7h@!m8svpgM5HQ)j;WtmS26WLr9@>La;xQPtn5;`r3$ zdJEIB(!@k`gB!>WrbeMSDa3jlO~zW4epTg!#*i;8YgH?R_HWAc^simPX0JScCVl;h z-Ra{~C#u-w?-CzjpVWRtpSfZck*VoE|G*ad{U5KR0S;Dv@WSKiuU>pI$Gn~-*CEbS zz>;l~0L5M~u5p|X##;9pd;102tOheCba(LYFJCELDE!&E%joM*?xwqT>S!ew&hMnR zteB&{6vq_|W6oELiT)>8s}gXPQ*m@Sb#AJ8ye{W#B@eWzbEJ+9QsuuEU|)Is ztOQ^_8fq|5dfn_>#SoRp=(XOydJzYcXGnh--Mypq|89FqSop&?uA_@NF#A`RoN2ZFDsjBlOmQ2O(ar$?j!1Vuq`6+I@fDAobowL*&A1BRN zYG&F~3T*mw8Zh)i`C75b9h?L#l~ZweXv*{Y_mFS!Oiafd$%_r+I9g{on|xEzsfeK& zq9r)8LRcC&Saq`r06kFnK(dGp1DaYP^!5#opb%QqQM&-t=MIBOkH7MSS(>R{0f^K? zq#h{saJ9F)^8~IC|K%koksV{}_kX%h`pdBQ{hQx=fK9LhUGv(rSWKwX1H1z6rr6sU zSG?)i&m{0ZcI+d{KbQA6_7-XsIwT|~1-ypoHVL@&Pn-fv6~k2&+QbR+3iY#82>rHO z0u75!9hU`Fk zRZ~n=ewbH)5Ip|k!`l-k^6p2Wa(0oI4Vpm!EOlH4}&r&g^s^UuUIY7nq z$$PdY!0^qvqwX8SKVRj(^b2DxKdzNl0`=L)dwZs2EerDIj;8dxvdm>z3?R#vO4;sg zrsVCUA1MVu$bzwLI-JD2@~^rj!a>0DaS(xl+wbN#>DHq!rF`;;rw_`7;eJ2O+W z)bcxrhv|-O2Tk^j+<@6nOW$w);6Zw3(W~gcUVRpw{?9j4cb^%{iwvmz$@E3<0OQ66 zbHkk^`}sHSmSd{vo2Ay1jgaNP!M-ZSG^;Z49N>u3Ol#P!LXIcDaQlGsk8@yqK76gT zIFSOjy$AD+ON9wl2rJJ|M3sJ+ouvEk(0fMnezP5yf2Diq<~Qp`>o4$x(NscH)2I5r zpoATQ8X!X-2Vq^4y9gSuRhnZC1Qh@|DuuAtzLeZg3Ro6|v9}*pUl;$t2eVA%Uk^=M z05r@y`o|;~jAhLsyh!%_{DWJi@LhHCTvh^45_$Xc4{mm4`0b}J)=oOh8D^S}{)>H}XE$J++q{09>Y?kk8gsD>xg z8^_9Ia!|aMAA5~oQ(>?Nn}#2TQ?r(DmQ{Cy#lJJa0*oklG$1%y)~dO01z;VUCHEP7 zK#gOsVj%S3)J9);aGRKk*KbaDPztaiZ*Wn&0&W$XeeLym1((^Uf2<^c7KPaHNqx-PA2lJ5~laV`LYCSF|pT~blA6%7_x9<&G4$}Khoj(a{*#aGq&ydb1 zlg{tU-Zpw(St~h@K1ae@X$G_V5ANDd13S0tzEN~U*78A?Z}b30p)nDSWg^c?hQT63 zX~s-+i&A3;!eBu-Icxa`FRT~(u>k8+8ku|bN*2GT4-&jV|Dz)78#f+`@p;$m(* zro`N}We(+AJNYCJlt0TA%wt{9h&0f?}hW)=)$?i1i$bElA(!$I{MoBUG%OW z-eH)`fW-Q27F<%eqY7YolVhw3_KN+#G2OYVm)^U2ehO5UJse;>;UzZ1w90u+=eEx) zYkAw{w3V#oZC4;wfRgOKM`o?qW8Jz&Kg~+Ja<`@-X-{30&$lNx^Sv{-W z1HCr|-hx?1L&&$EzKDMK=JV;}KYvORc0X|L3AA$NbY{Vg25`)ZvpQTMyyF?mcGmC0 zO4$RM={Aql+}qJRLZ82XyLqOq<~)%M=&)+`bXwTnOpDr@Im9r7-m<)%u3I*pu9vRC ztxsl5M+!Y~RiI1CoY~hdn>SPKhv|m9cJ)$H+K9+6s21F=z?*k38ACc+MEpFnRvKV6 zSc@#^;)GZ$KkEGJ&Rc=7bakUGD>%B-Qf!9 z=kLnV=J#JpU%vW$I`hl7u^Bm>_+)mpm~zIN+*8%{O>8eTEGH8NUML6bFTwmeJSni;`{4=wTEGXhP5mLiuYKmA zvJ)w&Rg=y7Rd<=0|%kS)tzB?HC`zF<=D-Jl1aNRjl?O8xBi{?<=7)AwJ0 zF@5>vtLf6O-LAifW>n8AaG7P(e}5v51eEkQPc^}1Cx{&v%rz!;Qo0QZ2I3y*NzToZOd*#0I|kOuw9lbT>rBeD%#bDl;~Q_G zSO%fe^EePxp0~0O4SP>VVy&P;rnkTQW}?!zmQ5Ll$_%eVI@lk!iyyXrhkJ38fy-VS zajK6ar!Zww#SXX_YY#Pe9Mx46Tss-ROPI#8mjOg*L6o6X49uO!0FTdq{gcno=V#T^ z@14Dz{^CVv&?nYDuIKSnzEj}Jm}AT48Xl8P0jw&~!tQGdql{2ufV6YCNH=WXD-AP| zLUeLxBfXr3oB7RkdgxJr=~!4xMvf_)VjgQ2hQBPy5GE@FO{)Md_a4Knd#=e?%iq@4 z)#AO9th_&MWFMP-_-{5`D`)L^)wTVDH@v2wx3!a3kfb|A!(h_ESq&Dc#aj8<%PGfm zEJF&Z{SUyE`gT?OS_V{3a0sRb%%rR}8N>PK@b-&cHV0~WGeTxYo0CilEdRdE>-GP* z6$5UqEGBpb`Gv-G@^^Lxv_we`n`N&knTe{eV;Mr&Dnp;VZ#!Ll+%o#Ja~IQfPi&S} z#>u|1_iif04;vtL0?5?ha?4(UOTY$`ut?wBxSu|H?>4WUn=;wovRU~lzP~pdH{G#6>4ei@AC2PgznXz1#QV{E?(nM5`E7P4+i;+$G zb!QQ)DdQ4;gEWhn0vxzJ!DJSuA_a}Lzca0~Yk;6K{mI`(HLph%=cqb9OwN%2qCj20 zoYU;<_nIr#kvTpS%f~_aN8GDw@>$E(CgwBRSLPQyuLMR>y@2eF?Yqo2N%=^h-<|{S z3Z@k@Vq&8(!c@%G>5QO#*3Nk}JJ)3ckpAHjde`@EqqsOi|MBvb(snCVhy;kHpQEy6 zF2iJHD}YS$OpZ0RYJ!LB8Ti0+(8lxi&O4LJ=55P+J{u&-|}ADFsj8G{9k!+AJN=X^g@x= zU}4iVs`85hujE##e#yD3a}6u@^{-#WaJ79h`BT;f0a#hpv&GYzlEUQU;7F`hS=-Bm z0U9ut7st*P&Q{P^bI^?BSalLtkO2TMUR9YUMKSq)SekVM>(qfOjXaAtN>u&wB6qE=2NCO%Lp!~uo?KxjjAG3loVdqp{ZfW zKfiAqy>wp3QL`1raaAj0!vhIZ86X64l8fjnc`J07?ai}H5699?yx!x$p4}$RvNmhk zZ4fu=o9fKtWLzcXhJ_M|K3FHO-M+BEHd`_Fqdi&9bZ(DebII2DHCW5fe2+P(92Z8D z!jA{#+7~QlnIx#eIJRM@d=s1b9#(?O?rTw!zK7(Tc3(=ZJLU~cIgib;l8he8{a-A7 z`UPIe@>nbOYIuLHER?n|#sJtjZ)z~FJ2v@)WD0#IIjH7&%yJZYbJ=5@>U;R&!`;%n zYBBRtb3yEK5la+S74|CA&CKN?lL_I1jLKq1%zXC& zn*vbfzLYRg<#wuVdZx|9z*uX7KsNw6K(?r}krK8G$VKKStL2H(@6Fo}&Ftft3!IGQ zWfjA~Fo|I($=A#z6;kCj;?xCbO6D{`c=s(EX(-dl(*1?h20Nu>R6T$i;DU)*E>Cif z>ho3p_HQpffd=1uG2Q+8)970-KZX9}tR-~C!VYG#7Gr^!_le2NzV~OCi$|0BZVPv1 zk52NRH3?mC*_em1n*A13n97V|oX@gXVmb$E9y*3h1FCXc+B~cm0Vi<&bH-L+X$E7V zqnq!vyRur&QEa*gh94GA%375mumIColkvk^X4N>Jl7cl^d#&IIzE*<@<7p9!Wset7MUev?n9Px<(EuWk4O?c< zHIG;(JM`qzg2kDBzL{t5vJx;ZkW3CR)$PT65LTR1w#Q0bQE19_ zKo>2Vm7F)C$qRM*-PPPI-ASu0V{#I06B7d{Co=Fhj8zqt4ZCL4w96VH17e3i11!0m z0tzFGVp(c7K7N83vs9!XZ{A1W*wjmFPFzm!XZc=OtmK)5sr#SeSt_0%y-c;{)PDq86|6X9gR{~FJ3S$IR+rJF(|NBm`y4pfB*#+ zIgO~K%H`U?mVNp60t0G%LXRn%S{VS$=jo5uZlLZ12k1{%O{bMszNTZyLU~=S{C5#73`JtAZ7e8nX_x{J}H3lw^{3y6YnkO zxFG0AetgqGI4Nt9XM#ykZ%lg}f`l0xe$Z*0P)ukSBU&079`7a%(Y z6$01Z<*^Yp$JjcF80=uO-#u+9{l>Ccp16@d$7`2Pr{6qrRstSt?imx$`B~(%M+JM8 zBO_9BnJh(Wg^&?CV$}_FyOrz{@#4vAe?aTM|KGIZf&1ye#trn$op(&hTE1f0H9zU* zEzY(WKxLdCCK(-Jc!%951u*zwd?Ve?<~0`x=l6+WebAe5s^AKEV`Uz&ku?*A*|LcVSZB<@ zoQZ?g)hDxs~4bo{eoEw?XES1j&gKs7R3jWVc8 zVkY9J()buxRCOXc{L?uL>3f&2pqI_>q!lb0ox?T%OSy3V_oXM&r_WvD%r_M&)K{ux zFIWx$OjN;M0dF1*98z>@`*e-2xKJ+m$}P5LcxV!=)Y&|=GOfh+$G{0>y)uH{w(kCiZGN_>ww zj*rE(X32DI+Hc$U*ghiztt|nn@4w+3S-xoDbb84(cXBZKu>acZKa%18duJ|@>%8)~ zS<>b#*~eROh1==assvoC1yjlgI&&yz>)HzKlLNvUvlU zOoK3Z;JFfdu4rAb_`|Mqn#$;l39Bg+ z5yf6vat#_ODO+Tj%-k~eNwP7bbdOE~B;$JpngS(2;_r-O%H@<}B+-^VO1+eL_{qePaewa(PEEIH% zZh#=nknd}yeVs|-T48$K?d$nPZk#1bixYvgL$l^%=orlcSpgX)AoR_{Ffv>J^dpE`s!mlY8Ti*8*8F%msJv9dBUt@ zM_aOLO-BGsH7MeW_4MYQgX8qacWjnsCja)5<>`H^Kp!VeXu#FhR8N<)iBuXLmNFoK z8X0CLD@wNzWo9*)iMBvShMBC{SGg=Epj|exti<$-T-l3E!56>2tN;x8d&9?)TLX|v z%3fG575(LsEazKVX~9`%Q`_9RwDiJ@=&av-7tLI;Vp3nLk~zgZT;TQJk!v;SQNFkV zRWWm|{}!tNrtdboHi>3?wFeqsn#_(!qt!K8E5%Mh0z%m8nT``Fzu;2JcAP-I8W@uY z7_y+j!+9XYmH>uzVvhTv-}cT!9<_HzzJGK(x0DyyjOs!Hfy;bXmS9$-;M@^T3T!l z;T0^nyx9W13Xndy%sXat>~~horl!)E6sl}fyL2&KE{yYXtGw&N@Nfd4vhk_N^Qp)* zCoviCB4)_@*UHNRCN^rIpUL6Oz*1zsXTTbdvKM}bd5H6enLxl6vPfjXh-=PSwc31R zHSx3c4K!={NmUG1$y#<9=3zs#6~5pPH#^qS4o3xS-T8U%Ugy8caFTC!ox6~yzR*O$ z#lw6So0PRY(=pS@z?yqL*L2h63SsjC@y#rYS=O@sFglPKzyUNat;sgy@YqxR%+N#w z0>gT-0i4Yqj~zx_QwB-^C+h}e$RR}I%cQql+dwj5GW0U_wa0f!KO9vBI!G7tuk(K0 zydU7Zaz={|pb*!7`4)(i0wx8>saY#oPN@5Lf3}g?Y>fW)f@QRzrQX}mlq&yPM)IHE zkf)EFJWJHWOmhb_*O0JProLI;^2A`j98ejxInFqXehS@y}~>S*S2RZ!7REiehs`<{BL0#Mbg6`LDhbkgkPJ=J$n z$~+9MiI`?DOf>p=Ta8&Xn>W1Q`mv97GnMze*KTO@N_&7(eK>wOB0XfTr!U zUS#AcSj%U)XmFc(2{~=;3Knae%`d55k28ZyU^%n`hZQ+Ul|liQRSdJCE>{9MYg3Hu z{-kE0ZgQeT;4RBjDLeVNNy}3A7p{PR4qYf-Q*aW$4D3aSbRCK7`lbSDUl6< zCMC&~20?170++Y%(d0@S;}s_^ zWL3I@3Pb%=9v`Rg?-`+Y-ue{nIy~ggy`g7>-gxsyx@A`%IY4>fDo2{Rj%{TpRFDA2 zR*DuB&NXrVR@o?rSz#|s833xFf(k%YE|#6TSTw#D=DDYys;>a$&R9P?A9?hMtYw$y z9ydbnf~7n#HdBb0&otF>6HI51+e>qDj5DOk$~Tr{?i zA8_2zDUoeyt1L#&%%e&c1K_fT#jweMOc{!tZ{-UqVosVH7n9SdNOH>9D1WBZsXt%< z=X@|Rc4Q3VRWsYjITO-Dx=>4ZJ zN(0-UYO)cTnqsp3Y^4#Wf3LCcNAG@y)*l+BKR$f{2aj9z2Ru{WH27q2o!r?>e{<>S zq85(#9u(%vwN0bH#89_fxL0so@82&up1ySPahg5_rha&5ilJ~SQT50Gs#rFrp%E&u zU&h9~{3KsB^%R84SU4|^M+^M2S(Z-$P_fwJ*vkM9>{Z{|>MBF&2$!dw4?l85*0MmG zd;E;#{WZ*_IId7}`5DIshpWs(xi6Yzn)9Zcn8BicU+BO?msmNAS*8Wcpk@KcCS$Fj z0&LOHb~(3Xc9gYiv!H$!vr$8$@=*d3$4~}LBu=dURZ}r^HE#M^T9V?D-n)ROq~MYJ z#50wn)PA;*N80&0SsHrV$_1uSdTqI6M-zW>AdAugV!4+%U8rLnL_tP{G#mc@k`w8o zd7VekMpJ^vt_11d{kdX#@6Vs6zOe#*@x?6Nw=|-ey8wsSjBKmV(>Gpw5w+IW(|FGT zDFgYAF1lw=FAcB{hx7fz1xx8AbKB{~bKB_eIDm|4_t1n6f^NZ8O1dTR)jnZ0d

! zSq5@5sb3A2!tnr4kwGt&E`NJ0<6Hon`dfJQS+iX$%vmR?2`qWB#;w`==6aeoyUn~-F1NXM`PKkgY~v98x2d`9b5vuR6ku{w5q-r)zs(I}eY|hj4FUnm zo{Y7~_l@wf$M^GF9G3#9=ToW=n--BDS3?FxU{aQ0NN{DjF}k{xssG8HyX2A*gt%L|=TUo4&q& zxBIByx%yNQKF9~eRLhgCyV@n55>zsokNO0gb)SB!hZfIUK%Y8$DG}I}3w>L21O52T zFQz#;{@#c8Nz4o2DsjP_=<9K(Y0e~KMXMddnOBC2YN3>k$tO}eg8*WNuu`l(l6-$7 ztw$;LVBlnwr6OjzY(6JI!+M67OL8uab>a8|-*?CiiVD)o^zHNJ^E^+#FS@TV?Dfpu z_a2e8tna?~r`mdSb-fMoR=j)lz260)&= zR%BhKxWWgEQed>EqZCn-c7qWc(W|eUEK`|&FpT}9zggyzfUwOk%qH9Q1Tw$-C+lhb z{y|wqT+tSH%J53Dq^V~-(I?a$je4bA{xRVA8W!gJhq)$G$L(bpI z&oh^6e(O((4^>t`geG2T6+Wi|n)mIShInTs#Mn$T8!%Ir?-`~h0EPXrt_%lpF2~!8 z4lDvLQub1JCZOJ(yJ)n(e@fP}uQbad(7Y28^DwTP<$z^G3HjDhT>dIeGG%Cr>7TCK zvj0O@FTI)q>f*rf+r-`^tytzQVO3GYWCq8W=VPt5?!U(NU|i?E~OqP z&BNz%VuukdgvBB=URl;KojE;~qX{%I;!X2-?CyZ?Hm}F+(E}esb{Kw zzDa+#4_~>j_*gj|vJ~$EqsMUJzI}Hez3bdn^okWr=yeO*X+b}R_+M0uRAnC+lI#JOB?plS2(_Qc&sQF{mAP1baGq014?A$REBNfA7NXTfrE6Y zakB#VHw(jBVajqiB0t@$_=rq*I{n!>?|LImGEE6E zOuv8CaT9#HtNjm%`zrB6HqX#bs4T!HW34LFF=k-#&5F~DWKq;m5t}9@lgk$x)i5wD z7NuE?Z15R3WV;q5Wii)w%+^k}JR8!HGG`S-V@*+%+@?#JqGTP}7his~o5o8~jY1wL zpmOYH{V)qOuk~`6af~*>1^atX@1slkBhGBpJ`As1+C?k7TIkm99{xR^;>!f-Ij+HQ zah!l#ny;7+a$uTGn5HfGowrYLC30$KBOM=3P%{VGA!OuQJEp@K8>2e9ZXh1o>^jCOGijyL}t&-?W9xQI7hUy>>qKxC2w{ z%CiqNQa6JCKkX$aGH^|IZuN6X+V7Enp#1-DpZKRA-#pbLM&*qiMsf= zbMZ`SoTk15(WrpcDp@P8vFt>lUpdPHi#6TZEll9UI-hJ&6bE`FFqAZ%n7GC?(6r<-}kSY zM{hfU%LC~eSou!+NSvCr?D{-@mQyb|-n`QsMNP+%VUFZILwG4i zi-X1Q>844hBQhAK4_>vjfiJqo|Bzxw3yZax>%q2;CTFe6xjaDV42CAUxj+pPhWAOe z*9w!GIW!BMH&Z&1*)cS#pvWY7Z*CdBRL02bSqth|0R{gAvu%86{4VTw?u=&oEXTlp|0Fhr zI;T-xCo8)7I(la3ZmKh*m1;APvQz)Wf6l5%wX=VOzP9P0e5?1JJeL;KYi%zQx&fE? z>4;tN@e&-)gr3ru&Y%DY!E!JM0S*9cd}LhC2|xjKk_MGku#Jz7%RVSySjIUZ$*;Kl za!ELj3gdDeiJKiIYuWX)E?eQ)E6TGpAJ#cM1WrT>uFWid&zES5DN9E)g@w;XrQ8Sk zUAOBiRumUTxRx6lqxu%@Mi|WmB0Iu;4c5|vYycFEx}K+0uz)F}XSd*#PGU=e6YjJJ zIMmLu_McHQ=};(7B~#)nc2?In5PTp zw9-#scMbz=oWA(zR{HUly$rZV}hB+rA(QEkKe#v01+lJ|9BbufuV3duoR{`{tZk9@WM14860sS zJ?ZkxsAIu=>RPgp&BN{V*!4d>YSyyr^TEV6g^bxN&a{wo2V&FWL-sD$l;-{Es7ypm zTfh9`Yl1j@hb{m1$okesnzekM+pioX-D6V)z|w&8wxMWq?H$z5VMUQ`-Qo^D(SG?| zL>mO)v!=E~cqMCqV@CW5GA6OK9LTboghblkM(lyWyy&vlSOT($(&nO=g!%&g-?2V0 zQJ@q4<>%5m~;f;Q1FeU%&A9Zkkh{qnochMVYEl5}zsL=gt^#i4vI6b+D7` zpvI6sD%gB|otSt4Ze3G@n5JMQFc(;Kj2RrqH8eMhA_?#{aNG_IH8G~3Typ+-w3KI@ z6azknxq1Qit^fEr_id+QExUf{ThDR;i*hpIu%!=`WQ5xqDT;FO~jIGWnOjs<%T0w%&lqnfDF|ZcmY4q$lUXGE1gHbWn zrju^%GnTEq`mV0wZ7*hqJDY>7j{DAb2o17fBzMW z7x4vF``dA2`j3}_ zB0iTfDQ)2|TmLMQ?K&h;WK_U_0@oowITlb^K5)Pb42aadQp$@>-|}`H%PYIu=&oHo zl97>m3AK!YO0boUFBB+^XR@F zJ{L3ZBdqqFJgt=$2IDk#XfJ*6*2n2j?%hgv>>U&}lT6^<-8a9WpY83ZHy$^WG9^|1 zz*=A_ECW3M$zg^b2Iea{)NpEBy?{W#g&aY?rcKDrGPnSQ$h9mc^F0DF1x2i2M#?i= zf%!&Ur&F-YZ-J++ARfN2Q90M%!rSC?}w}= zjvSG-Fd;N>_T?w>GpZCFWjgtj`{OX%N;F=ZKmPZR3Sc1}!&HvTA5YSzVwap;<%-kV%gfs zk@|7wqmugzB$*E$sVOA@b?dn82t6J<(8lWc(08vsUHg5vc6r)9G#|nH>sOZm8ak{& zFHl_QzVzag=u4NKMvG_8p?gOg=~d@lK)1Z>DthagE0pbw68YoJyXkjsUPtr3bQ@j% z{rl-t_dU(R$bNdFZ=6MuHp)$#Px-EeR6p-Ts-JTl%j`2GbK$e+A4jcV9#-Ps|KkU! zcW}^T--I+cZUA5Q&1h30@`T_2=&miY4RKFNTVmh`0}yy82d|H9CW@msRX#-1;G>!plgxUz!HGMsy<$(t2G$)o_H$mTdk?%b|d zDdUvgxwDU6_TLXA;IWgBwbX9`rDS$qyl`Fz{p8iBN|)2Wd+SDNMzXM@mF{`dIpROe z`QlB9np!#epf$?o%4zLl#+I4g&}`%fFF%FOWfSkaTMp5OOjDWHah&bb=PsuE`1d#7 zveCP}AQ5e>B8rJY^{1>fzGcaDmskt1{mWB(>7Uo_l6}8(>2g}ZYO*kqm~09*vg%$G zrvwd5b&YD`jWJsRhyc{cz_9$@(9$G+8~iTZQ)6qh02{!?G6K_JIZOc7dB6E~{W66y z6=Jxe?%A=E?)%!ekH}h9)`wa6(zl)MUT-PvA{{lwNP4!ghXJ$KA6-I6IUN&&Vakt3 zALbX>uW3`JV53rIbEbc9uiGyu(v+-~>OufhVH=-lLTX(JXco1$3i6BipGIY}Kp9B^ z1IB^r61tZJ07=(tl4Ma%KxcpjAlX{fv6ukQNQ(egWE?bHCk|y!=rWR81KTc~*G_+S z?o#`-I#;olw`|$L`|U#XFUW=OUmn|KMj|2F(K|^0{J>^vo*1ADyP7mNP}pu<=TS4u zGPW1Ar(SmE*YE40yLRlOdogSgzt;~j`+!+qy{MDsHRJ_|{bL1}>F(GnG{^#zSvAte z(s=m`kM5)${i9;09pKx1%}r0zKl3)+dkZu93RXM;2r!ORwhbB(hIv<+W``XBE(jF> zNj9GsQxM=P8^sW82XNt-hUO+Q5pgaE9Joy!XFuO5S6r^I8CDOJ=Pw^Udto|efGz&;S_T(=&H^jRMvkd(Pp_DZwqONz zP%+O`tTG*4L1%SpLM3pac%gfnaepG&rXqn6Pyn1*1d2#UMv3&*h)EckeMQL#l=ZBA zSvKv+Y>jH>q$el*4#mvKmvV0za~`~8GjIdzLw|POaU2|;?SN{ZJB_fw{~@VR;?!5J z0Hk+cvBxIl`Llk|(;jF2sIr1(*TA@l4Dfw+4{3#U(lk~O**|-zcZ^*8&YFpstk7ba zv8;)^AAWELUB9!RUd;l}(}%SKqZcilMn7daUrafejSN7^yeO!$=XV}zW&V1j0s=4s zE)E2b3b@L`PS|&3P&?7VzIaA}t)77f6LPqJ$g$zVGftuaJG=*p~)-r|6u}Uk0DTd{*V@=W;X(q- zJDa89<4$zxU5=BcIbrBxT9WlqHrq409iaNtyEfAhGi?jY@_)=R!GAh?G36LcU>qoc z0L(bYr;;FY(ok2jDw-RVjo5zzYe5Md=^qy5v9Yy9EH%i_*|!Z>{X5%RZ+I!^8BwT2tG{5I6W(XoeCC< z;t!`I@j4H2jAj_ETy43Sh^JsJ@@i?by}>_-+DIPc-1Pp`*o*L8waT0^Yf?83p5o{x8r ztXxILA44`a2Mwd)jTHMpG$4y2^@$WzU^2rzWX(IvL`C-!tx2k;Vm7%K4{X9(k!FXZ zcYZa&iqft~6R48*UugdS)7PIZJ?FaPQ$Cp~v^;~Me)6i-^uALUGD8i}$zQvl-gDa~ z+QG3z^!a|{w!?JAb?fQI?OMsGsb*Q065psYQ0?9?88F3kVzU;yCk_l4<`3xP8SRv9 zXrKq|$dr zZ_-mY-$v`MyO9}ifR4mk_LEHKIN!qMvs{@jl^eaXn3#xsU;Vjq^l^F?(@_VSYfWsa zeK-o^$9z9SNQfQjL*0jH<}!2h<7NG5CPgm+mifokF60V-%pePzPR7A(Ic}9~do4rh z{Q)w7O1sQK;m;_@gtdzLi0rV&7zj_c;WxxK3i3NxPWLG!=XLiLQ_`R^C(Ng*P?C8p z+ojPcn2b%Bn;2x5fA;}xZsM3Ha_{TC46469f3XzazrJrP{mnz&vi!}#{nDM9d8>(! zYwt>8+HhtD~neARYs9d3&QU%r1_x38=`NGvg_U)@+R9#2*XH zc0Oirp-i7xzn4D0X1OSP1ti~^{q^A(pChx>&2T3Gc&J}Uqu zSsJV!BE~h?J0S6}ruJ4bAtCeQoUQC{t-SK(Y6jkWpO}vQhx(;5f98H`7RD(MRRYUy z&(&qL)yV{phD>&0v^L`taIy{6atLvzV;_dUp2E zX#a?LBA&;}Q?gc^Vh>&~_H%gbZi)ui^COPxeh@DhKtcUnCZA-W@PHI3YWCUTdGdy# zifZBs3k3#9@Tv02{$MH}Top_SCX34x*im%x@EA1tji+x36W1|EHVxinvk9T6h#N6nrZ9 zf>rHk|s2uh6rco)f?@mE-W^ zOrhPr-D|skT3)+r;N$rU{x>P}sbbGVQDQyVWNzLQFn@ zE+p$i#Ta;;|r&`*$RAN zB2FZBm~{*kB=t7%Ge?q?tC{!QwI|uRpk~HotVMD1!TfFZfy0(XgbWX90-kNA%(OGK zrKy~#M2SfVHY*y?DX7HkWWO%9ppr(AU?mjPJXI=vaV_vih`SX`!@E$-#n`Ni%4phHUAA0~ebdbw>7#dT)$X>564tUzO1k7x%(DBE}x*U1?+!+OyG%lc$KuqG@RW7@~QScN^Q|6#oyC(jD+33foeBfCTLh6$;r3SdOCLihjp3st)9K3D&dlfWL5ZNSxXtWPN zfeDy1{uLUdqRp5OIsi*rKO10`(l^^|I{n1?z(Dm)jRG1dgNU=izd{)pIM^d5U^B00 zc>56hUl1&iuGQMrDcSc!Jp%$R_*_s9wQW}{%yrIN-{ioB_FYhx0j`1l2k60X|KO-u zOPG+=Ti-N9l0vDFNt=Y`Zyc4^HlF@BpQYzGJud*$Gld_I;&OK)*(YGzyJ;`Kd<}Hs zNyEa?vR1-!(dd3N{E^D{>>X=i4;f_BPZN;ozLA1Tn$W|pE^B{`0lJsV>+k4a9fboX zCYdheQuh&80Xz{FVgqmpH`)kK098hka-Hr1U>8w{G&Xa?RV(RFPG6w;i{>4qrc{MO zes!D%7A6Ch6x(G@H|Ah71H9SwIr(|ha6ymddC9ElTxjd*L9X<)+klcM!5dKJ3`h%V z3X*9h?k;Hle1HS&$g%)SK{y#?;Gk(p6PtGc+z0~&OqOGiv`p)e;Pc?&UTyl%%3~`t z*BDFhP!F3sTIHBQX1ej=(F9y?OTZOZfa{)XzQsTtKPuL;pj&m(GHUN?cJH+~mT{np zqs0FTqPRaOXP%R3Xs725U}7r9!8;=lSavS4$+7E6&mV(OqnRyJvX&1v2odF;$Jh!S zmX|Dv!9K{kPG@#&Cu_=4WKyjHV_ySQVh+~pB>+0i0vuHX`-!6$5D{IIf-(_?Q30~}2t zE+wWUgJtEs8I)^mqKD9=gnvGh1&`5zL0Y%tfP%_06#(VfDmI{tyqKGJQ~YOkQyu*S zo4>DHwOB+In13+o>e#nyo!%)XWB-A}BFO`M4J>v*=#Us!ITj#6O&mDbE9xMaE>~Z# z>qgK3xXwKixW>khinZ+PTDE##N|G;(nHZ^M0&)cxkN)w7bDx`OXs73o!FW3J5AR;f zW`UP+pMY&_V2pM>vD@t%n9QW9SgX=}gzr^4{3wHLNIH(e;1SY?1qwGnHuDS$n`S5A z28iOwFcsRAjS2XIut69N%oX!C3~w73$EIYhD!&mXaKVTLSp_jn7zLd%KT8@%v&=ZZ zxt^|j#VPdTt4^o$XSbzUi>Ml0mZAJqCdX)oX^Q2a%*0Z20c;|7~HVgcJ3(M#4Idu_z@9HyX&Ae%13Jx>4kon#^bGrCi01*HO z6|tSSA#(>{Lv{yD!nT>yB;BcZuV%Qn&FGYD4XjIRW%D{#y!6EaF8MA7T=?F|+<5dy zH!8S}lC>~F&;WbcsWi@Ip=h7YR9dbt%;?(2bN=Bun}&9JUIB*b%s;;SV|<%yE5YoAzJ|Cf$MH&u7Q2~kD9eG!6ZE6 z(i7b}ib8SRmP?zdVUxkj-4kQV2E{b3n0y zYcmZxqU~7OWWKw?6x&)TPHIxGR)vpKJn*oLF%~w>VbidV3pz|RHp!&F3#wqEf(Ra9 zt^m$?5j_*Z)I@)IO}suX`^5g&vEZf(V37xUS&al#VZKrPG6A|ta+P6pDA`xPW$gaG ze%TCq<0(t%j;*`td(ZUHcefo%Gl*aC1LKEDz_*;-r`^u%)xw)TcfnFRqpOALSgm{L z(1aT zImuwhj3Ix@6XW_3`5I-66q>8!ORK+u<=I>(ylmlgdN=zu)3PxgW^v)rsPP9wV`SKh zs^pE`Y?VWk*7S`_j+frAiuH~3kB{!4Z>`@!hevgwiPNSx(ebVIbo#U=y6@mH^-Pqi zz|~Tpr8lgYM}Kkt3G{*0i)b-}vNVWb@0hS(6N?e>sfrU5G;~OPCgcr*wUF}&p#xz6 zybGi_K_vu;26Fw-(u23#+X^r(MT8kOz~G98Pk z+`o%0%h3cBVO~u-1Y(Wv1u-HB^I|?qTQtu^r7G5{1RR;3V;MkWLk##PW;L|pEm8&} zK@Rl^xUdg~Uqxp#g`q)$u!7}@!2tnhhM5?nL}po>K$mED?>I=e9UP(iIm|IwFr5h% zOrMK6lM87CiTA9SMek?E*~WN!^9_&E;K+ozS8{*<^0fJM#r$^K+&@llUAslLoyjKZ znH&Uv(ZVh|p}kQWOhTQ5pCkQcuy2KA-awj-j0k|FUqY7U8`{(qAL$=7>K{q7f0&37 z10Jd&_64&wBJHVfK>RfOY2jzBe&rR^I%|g9AVxgd_1Jpq+ux&Oe%WvDJ;#w)3zG$x zRSdDu#6VH|bunpVWE=l#j@Vb4F8a6U)ikuz3kony_kZfVYxvJQ?1TAWYiw(v6V6@6 zwVM(tUS-Kh=DMMRwS3m70%EeS_*XnueE6%DvmEcxY2{4w3sCG@p<`CPGP| z!ik&(+lqzBS*v1QSdl?g8Xc4#o5~Y97{i^02$(8IG6ooi_boTPI}pk^`>BrKyhVu zyYE{+q=V0NQzfv7j?7wiI`L|$2LgX9UbTqwrjJ>VlP;0z}15Q;+b!FHBDQ%KyS!)5y1*47Xmu|;`13`+mD&G z>;yr>2UlURz-GD43&l;?tY+!TsJ|E&7+ha^LBNIS1qawAA6wgh`^VN?k`E>x<6^X^ zGV^|j{muU7mE{Pkh505_=^|vP>FC{0%^vUFS+H*V4#l-jDzU zvOSbQ6#7`Yp&n=U=~cEe=3Wc474ix38%#d^Ef$7D<^@C##JT$S9hU7H=V}pFJhWr4 zw&61O(79+no%#CLX!mP)4p=M5qRH2bMFBBm{ZDR90qAI13lqSViggW4uq1C{uhqsH zgDPNfedPrM7p4~+V3+{1dp>pEt5{{bonK_T&tjMWvTcv;pe3g+lyw=wgZ-7_gb5}d z1#4BRe$hCaYK_xGWRO}CAVYU>TubI=p1`K#ESlK)2n!+uLKX1@T2qgS|D?<}CY`7d zWOzOYwr3pBCcMah0<^#^JK~M)vZ{(wce-qx*f3m>Vk-B0oMu1=%E)^Srdw+Sko|;L zH~GtT8Xp_)AEL1i?d=JD2?96+`wy!57Nc=wo|V2%VIP=w<80~;9#){>gmul$lEHyS zlrRw?&x6(KTbd+e1N&jygfTZ`^KDkV>?O2>%|e-MI++Qxpd9SmxS1aL(G6@CkGs$5 zKg3k5g{cx;69eN^8Z%=zi)ol*xiZejxzEbpD^+yY8Nkop%ZA^0)Jw zH60)%CgY(Uz4Gi!PV+#9zU?N)j+(W6hMU-aFJ(IyQ+CD)rX!tB1{~sLLB4@9jU56qiEWLID9~7r2dg2d9E}Z|<{JD&DEXnXm2?{t zWDJ7^9)lTHLeSeS>tBkgnzdqM%E+>sIjK}M0bJx-0-V~}M6)@dyl=FSfD0F{Gh*>r zkyf?ViA;`Rea6{;8b(YD%+t>AqeWX5!+(O$guj^JS3zC}hyXf>8e{uZ>_8hXq(|Xi zpcW$jl>kdCjwNTGX~1QI@A3`uWQHrH^*7y0&)oZvD=WvsS`akgb9K2sHQ;lNF}Q4F zS^x0ZfGuEf{pa(p7}lCz5Sf0m>A%+Q+W)Rg<{#h}cy&@ECDc8_J{cNowoY%+;b{XM zs4t32E?aym)^b(7`K>(K#|q*e%G9?B0|je!V@FOIZXzEX6>_? zSl287E%UbW_^_}Sgba*V97i@t8VGP9ZXh99hDXJi!3|ARVqZyWYyKT0L}uA%Dv8R- zDkA$+CDU3rWLAN&5$5tz=)o#k4B5jh1z#w`+Y6(k!ZLE3EKs1cP54U|kO0`Ny9bQJ z6Jl^PjeBuzemNJyx16$o&BEz4%;p{#$g*rxN4o}x_a727Py@uwN?p?gTv&%cH3+eS z?*&2!g2nLJki7x67D?%W<6sv0tYyIgR$FxHDGDxhA0glhC9ZYv*S;g{MRe?}W!1uI zvs&G@iM~-5nku?B4?Kv4!8==Ce9c$r7c~7s0fywIRGfucZwRz!cw4~3;PZQY=OD5PkDHf`j;zzom= z0fN?Q(nPjVL$Zy=Zu}@6Te2!e67}Yr%U$k^yE`}MocowN!zD#Zltjurz;I?~xUbpy z<~!#*=bnqg$EQ}QjP;t7IL5e(i+dx)dUdigUk&9iW@n8X$N8!Xl;Lw3?&-)gl3*NH zQA52bX8CUIa!au+?u#?fsFM;MXP`2`sw{v3S4I#RIj2S~sjCQJSqoq#bmih4Q|X&e zcWo6shPkfu1;vJyUy`@g=e6<+%CP9C_J8k^u442=6pO=jZUUVs{a5}R?(3Uh2E z%O?;#^d9tG>k)AEtu3-44FZlzq3C(~^w%^rFk4Z@JiQ0C6^J#)ISJp`*(s-S#ozSY zyYIt?|M6c4@)_$ISQ=}Q#W271rLTR#FWv<(0?{2>^0@lm37G1gj);Yb;bZh4$piwyymzj_i% z$#EHjVQdv?>Xf;w(F@$bGvJcZBy#8?lKWUpC-Hd3cjXW~1f1OTB-Cu&4Ds&mJl!gR z!Hvcsapn`K>)OiO`KeKeHn*WGGtF*m^@cW>LzYXNJB?z+6iVT;iA+9~f@od6oOc-6 zf#RRk#00Ko9}7zO#_?jGy5!IIOe>jWPd7|nye#|4<4vJqQ#*h6#Pv~R)q-Iy!(c)VY~-n3)g*!BdQyUzlFYO} zJ(XZ^l}dgr$jTtf?If)m*`16Bq88!IJMY5TcR!S=0J!tGN=PR~+uY?}VpJZU@zfZx#$YcaIvPzVU zsobWJ&iHrjMOX_$E+oe`2(04N6?43lO@f1LRn_%~EHI5kI6qdop_3O6kEJjC8uDY8 zIr$tE8e}&uS6{58D56VQz}GJ%(fw&`L#1*G*$!he>gQNMaX`?tI+IYsSO;p5Em0b$ zAwBx}=3Zc{i1yd97Q0&C-lzMvH+IU#s8d(3@jjci!%ST@*-`67J!)*0yS>w>l|azbkAlthBX z9Ca%S=+>|xYn5X-5jb9i%C=rvPv{lZ5SR$ZYi>0L`#Yb3`1Z#kd+j{T4u6IMN-A_= z`?)I`fS8)jp^KM++8UaL9@V!h2MR6<8pJB-CQhfRhal#$BDIiCc`|<45QEhCxCJC( zLQefz!|!K+2qEC8edH>R{pP#`oW)u^OJr0kiX_Qb@I>QzRu-wwP=ZQ?POaebCK^s+ zfF*i$YRtY*3+Hgdz8??3U9`InFtR-a zvcG#OfhUFB#YW-i87hJQ(6ELxzq)`qnLKpUkO`0%NVK_;K~^$%*o9e(Z64sj0Fs#q z6~aioNe1Gs2HKpOgG;JkvF-G_1aW)IN z2|b&S%54P)ZIDaR-|*Z|2H`H-ssI?-p1=Rq(c|BKau`qiafc^d*EtLyY?nU025EE~ zw?Ea(;s;%z(Z+fd98lg*&Cc(m0k9}*@nfqRW9Gxx*d?sqd_Pn+Zj?ZaRF?g`6kFMB z5~#l5#CA?jYfF;9r<db@kIiGJzkcuC2N&6@0T|hye|UcgLAJ*e-m91a>nZ0lPF$Jh z*zCbC-Dl#midu}zXnx;m3U&+2VlBHGgVq#hbU}Sp+hNu8@ z*PAarjxm|DKg?pFz;^DVOU!5weR;ddmsK^y5eQNA(G%dQ9MFwet1Qsex`eMmvDVE0 z4>8E18`>dx?qrC){JF1W6}?PQLrL}IAZ3z2bd>8I!GO+F+XcmR(I6v+R7CzNmdYqA z;TavY1F|e3IF@kkKz8Od!eOM&J#`UVr)|@=C4xBW{4ocsIhejob&6jw2AcrGV-uLKn2pP)?w+liaV|JzKnS!uvq& z6V^6ZZek8&v05(U;`mSjOTRzm%}9W;mAOJL=X(L*v(rkk7BLnvSAexp(aerc;kn^S z=ByN#uvUCA9I1c))n!jBbf;`p1B~n|-}~Um8{dBNgi{j7@g$ofVH<3uGM;?Ko?j8s7dEaJcf+w88K^Y7>v73k@yi& z!)PdPq_)|J&5W?&Gp+CX>B3-#D=Z8cg(c5RRE1nbu-wEvGAZ>;*6!fN;Dc@a@-$434#9noZ-Mq+Ip~h3!0Bi~*D(ia%$v|u zx65Iz8?C`|>9h#JYM>e-V{&SAm^&pQz$&Bi82yjhCZlQ+zm z3`z3By6EQt5dYB7l&LG%Vfy+QwB7GdJV!Yznzdx)^jQWK4I8m@SS!g|W&4#*{D8EBNiUJ=$(Ygb(hazaEU#}lyh z*e5c*&E2O8a=>A!sE!NcveE1CAV>q;AaL|!IgZR`tFT)rg4+UA#k*iuI{C(%ypMnt zWGNp=E6G~q0&YiFFf6@OwS5{D!nst|gxmZz_{Qm|G>!UgT;~XiUxyJ~t1jLuXKMyv z+J65ZKNxu9ubw=LSL3VrL-c^{lRJLyYF_%Budg!dkYi zNq~_lm+|1SZ$0s!uIIgia$JwRq0a|fAzy+sA6$gX2)3RtbVA40R`WWw8|rwO9Z$ma zl}VlyZfUF){2xDV(ifhTyQLg2OfC$pzKi9yjmTlx$}#UP|J7zS0Z=9eGtr8=(b%kI zv()WkEsC+Wt6uP7U{M#~q&m;xN(}7|a;cnrrvxfP{cV5zvo*z9wyjx!Y1{jQ4^H5! z_t>`{8^9mskbQRzgDsQF!Dqib4;OxY6?#KJi?`PElAXyw;@UJ%F$5@M0K?0TC8$(+jD?Xi|^YaU?Q_Wt0bfnzWA4MLHJzU-EJ{X4Fm zJEN(TPW{h0xbQIo?a?66Y8qm^6wqay8ARa}cd5!OU0&b3GZTg&gFj)2P~Ips9M!0E9oOkjkM3a%HS$-f+n~4IFxe01u$u}MHz&Y6U^y z13BE+Qk{q7NSgaNC*f(u!Da%$gwv2$4 zxFY*^7+{sV;rU>rI>N)9fBM>r&1|w7?4AOcw&(tNhS+`&I_4~0BFDjU@<{Z?2y;6YrVhYf1X=pEe$GKhhr-;YSP2*_4te&OgCr({Y_%o;ZF>^Uqn=xEy$e!OJw1IzVv!ZDb9 zpkpt?kjYtyQj0aUZyqZ-KA5QVi6+O(rPIr1Epqv&HjqF?>vEtXOX7J*;Z29)SJ0(w z>NA)kZ80BgsCEvz;2iGR|JpFzqjpaNjO+!eHVzy+&^PFTd&qIcey)JH0oamLX*h}Q zqvM=o_mO}`>}Ffz#s*%3>Ab}(5MV2^syOE2W@I^#00_8y9?t~o znCHmPBmrvZNIlOMMhr{wF}0tr>qx|p$rfQP0#FMAiNHi_yM!rhBm&K1ieq+SR`&5Q z_;DaSVAh;q{dqtPx{=DmTl?=_U}?MO0j6#55suIL5om|;cYaa0&VGE{xD>DvtI

  • v*`zg#&ou{TaF`J$%qsv&w)?yO6Zd zMWun()Lw5&vb0erEZq&OwWACFb^+y*8|!vLp;QIAI91%&Lrts_ay2nXi)pK_&~`B` zx6X(cVxCNIyMLaZ3mdnqYh3({ap>4m2bERCPz~(*#pu>jUZ2`j-8B_oe zsta~hC@3_s`Ya|7Cme7GOJ4Ei9p5-H44*S|VBO&7-|X8Tahw-Rp6Js#8r!>ZtSib{ zU?0tQrol$*FyNMA`8>(mNp9*{5)qiXIu14U^<0;jO(waQJhf<}$Fx5=HV)0*n_=qW z72Fqrh7EDP#;a>%5O1hl_WNg1O3x;92r6o+o#te)|DF9IBaXi_$YS8{!_P5X%!`*j z7Y277y!XV5rP?~cEc^L^J{m#&BAykL`Jr*SU<V~DitN)#y^7|G58)_T!1qZ&Wz^-q?XoRw>god`tPWH$I2oe+r1?JEm5{k_DH zBixtKF+KWuW~*|x4zL>-#%hfis}aan9Bj@4`>GWP=RG%o00@XPv|TLFR7M#HFihxw z0{a}R`|UEphO+w*##ui?f0jTs4C_|b)&aH*3xRF7Lka9fz*Y`e%LUs)Zki3YvaXvs zX8qqX!8ZT%IY)8hEw^GFR7_Fdc*F~TS_+5Osdr4q(3|y8EKyRrt%UQj<2pl5Nen$R@ZK=2+lt#d!0v)+;JG5w=sAL$t0Dj%bwO~~EKJe% zAh3GWeq%QR8$JpJ%t1DyO_y9fH&KM#km@~&AMi!gasb-6FAC19 z$0cC>W9yTDF>Vfwg)Nk(7B&>_f+?o;!MsbM%e$40`{$1z({W#F$-UrX=$24wFq&9| ztF~Q)HbAGYntxB%QhR^5rIp{&a0)&?&t0Fkl6gPFWz~e2TXfu1T-@{FRUWSk1m3u; zG)GEuoCOsn{{N@$fq((jzlG1smTFtuO56$;qr@L5W}=(KAG9O~cI`&UGSvy2Q^*yp z2l4Wxn8`)#omIh!_^&z`Khsp;gD+<@Qw|V}N8nni273PX*zT^GfBW&frni|ElirRZ z2~L6xOB_b5e>qB+i?lW1_Hp)@~Nj>}n_bSD=)}7DPhrdroZf{4ZCREm?Q2(sV-SD1SQwMZ$X#EhtWF$s^Fh?(i zr{b*9A~pjO{Va!vGeQj|I~~PUbYCa^+RKw4m&^eHO19TTFTFM-eR^9i zl?&lbCvyx>L)Jvnsii4#o00mU*CtzOg057vlgC6u#EgEwQ85VoppteS9fxa>Zc+=M zg%A$hT&u+mL2 z*8@0k?BIo44z#fx!$0ic_{E>Bh&nt*z85Q`_w!fV8y8;-l6eNa*-=)_%s`4$lDDEqkh>)sGO5e!nT)#VkK&)sZ1h7eJ z8l(%o38Y7T<}vnv&=sry^5v|_zuG3L*j1z$fx=%W;1ER%7nnt6y;@G?*?3Dk+otM& zEX$QCdU&?97$O*##+Ive%k$RQAfH|chXDyg;xNNk1&_~R%yshpTI4R1U->(2GSWqL z7H|HHo3w1?GBVQY`7~plp=HE3f3ipebYa`dEE$=uEk-lNieW4Z>(>lGK0{#&P zRic74!>;TS79vNf@%Uh0``j&#mAL(x);d?70^;iM4aqAW&EL>pEtTW45?@-gse!=- z-dwc;KKhM5z3I2Y&&#{w#&GJNY^yxnOw$}?P$|ggNSf!8YiHJ{WUS)d-~HFYYql?p zu`*5h^Q>Qkb3Y(Moh>eks?^Ysfn&;bxBGEn~NK1e(??`9W_UDN!z7FIYn9 zP>v5n(->*@^Pn&E5a+&;dwOhz*J_%!#lo%cKbfZT!Zx44vZ42r?!zzIis}#puVB33Px>cwd?h zKllk-g0k9}wBAtk(MY!+21FS5ghH?A%A74q_sJU7e^_cq#99%4Oks=WX-&~wpyHt^ zCef3G(%)x>5@@FsJY$kQ{hfv?Bnh@2dR(y(kN?F>-3?F4XZddfy(%q&Ebyn_W(NdZ zJTZ3j4um>N12OBAwqg~`gPWsj6cI_Rr;gBlk`Q7RIyoeuif_@mmtvt4)rX6SO%1P5 zkeD$z1PVXuHHW@Nw0~1Oee7pD`#^_)D}<)QFlixbSm_F_Nd%SQXDnnlLDGXS>C+t% z-drRTI`yat-v31Hvx^gLmf|twG?B9MOxi^-b4A)+wf^C;>0z@SAmF@X+U4Ten{>YN zx{&MCQ5>A>bZJ6WK}9+6ijoW=+Q{&ve16goi#vAp(+$p}K+fhK>(3xkJ3qc%MmmEZ zhaGXKiiwGwrHx)CpH>fEL~eRGpE2-A)`Q)j#?X%<=EqXjaELlImr2>Gct=K3HTD>s zMz-~Uth`qthn?S>L6Rd<+8Ag$h zx3m9pkL0clX_&zYi|<$2bRWO&G;J$`j){)qkPc*8)$NdcI)7#4MX9)T#;}W0q7YF_ zzYsV@sN)kZB*YK7iPn*yl%+6?Nd>X|;9B`~RBA)h%Y7(5*JN{LZB4BYshV|?x7WCz zpI7U6}6o$`bD;&fEp)P`s>`CLCmC7`8O&p{bUNkLylirAVa) zhBL-qGloy`xg(uz_F(%O>cN_h{Y^*;km=tPJo_{y+(X<7`kocW3zzyM&!q!Nsh_vq z4}|rFw<)}%mks?NGD{JY3OV1-OkbFL^3xz8xK^lH?#(fn*`4dqP-q44e??bf7LnIi_!W}S zK0kcE-6(N{efVENa$dpw?Yqn%R91^x>@|7>#~}2k%^EU(#%@CsTWHsS>~n1)Dk#UAc-iUY?_Poke(;n& z2LFV4UiCnrAr*L6r;u?yM>eP+ySV-nMRbEV+!g9pC#~P8Y_Do6xjBDem1oKdFj~1( zgEDdIk0isX4-aQois89oByR3*J-b%`K9LTkVg(&ux32i!FxauE){ryf%Js)^cR*O z6hWmc4gf}7lU$Z0LFXekPf6|qd6J`;v+2HL?} zyMa1yzE#YK9B$DuJIhs8DMS-_6aAD&GIdT^V$_=ke3>=+_w)Btz7NJ1a5GU6F;ERu z#~yD0^PgVlI7iW%P_TW9^#;6#H2zkcpl-HWI@M&oC}v(WF@nVkythpc z;}JTUyo9Z5(7CmuMVQLLzo`fSi&uP1bbnatSrvbW%1a1x;7qPxPVRlD#fWCz@%QfU zfiI*`SfN~EEL`|$^VMj+O}np?Fi*XzpoPC-3lC|f9kJ15tdj_GXlV%juJ|^-l5hyz zCk?!wG#2J-G8Xzz!C|nFSEt zMTC*^3}F5iikR@WqlULip*X6j(c7;PncbjO0U9-b__;=m)FGV&DP(prEuV`PnXF70 zwz}@@Z4a-!svm~p{JCmAxoS=kPB7(q7P&2dz4AZa&zBMY+?k`ctq;^diEi9S?hDQ<;cQNK;r zrxO3gnB$>96eq&>4pOSM%pK%^1V038#j#1xKU(WoUTpoTO}R>>sleXL2QW?cwG%A1 z)EUIvsO#CAzRSc(5G91~#V_*vyuFIUIH08lr{RXms(wtbQ@y18xaf8ATh%~Z~l zg@Vk0V6^d=O&~o8XJy%!>||>w?p1l3jfUu)tMtDdbL>3)PU-nj`!9~=4x%f1#f+oA z8o85`@~HvsyQ;s5CnGC|+WB#OLq?|y!S3GcMHX=Ye4(?iyn9-)}q+M=$v z(@wM&E37l@(FqO-d|RK0!h*!X&+O>oP;FXv!Os-B+-9wbiH2e6LknI4#o5(gJz?Tg zHSUP&%M)upGG3B@LyF}zc>@qJvihN%Y#>Uk)-4~%_ddSijkhyV4ggca<4)$s->&WK z*y>Z243t3CE}rDOi;wU1;sfAh+t7d`xF6lUeU>mO*%w$+28HUk_c z*iaKYb@WEnK(c%-Ff3AIC!Qp9b%-G5BWD^=(Qok{M>3@!>RWyLyvLK#VXjR zZ@AoF4^f6f?ElC+P|OrJ{2RPcVc5wGCMIvBf=HC01Q1^~oxPePNH1}%-6$RPOwlP} zUAIkHPSORC@xV3*G^e1+NH+@*snUs-T;^cn+|kw3&zRL2IxiQt!pk^21HkBs@^!nm z;cAV!n24~6jk@{kG`|PdY7rsH6Njjk44PpcK-rqH5Lz=$QA~8E5Cvz@*AHQ}}^_wdB{z zTlf@Qy6mntX+9#!+QO>%uF<@24na8VsSxcOD!o8s;!Z-9HTH(dQK=I0l)qG4w-+4} z?)hI+m~`FMxk$R_^H=%V_nUb%6yUG7UZuy3rQ3NfE}tVPm^wd=cidV3^S)uZpk%*w z$>2p_HVKmlU(LBMS%#g?;Yx@@%Hh}x+;p^aIGMekwfg&4qDf_{x(GU8U zo>~36a{^f{pYZEkwyAxrh>%X3d;vz4UL39q~??X5S8_NSaf;MG3j zAP$+@&bM;*J03EGPsOS?_6P?nL+94&!V>f<#kUUHYAh4@yUN}gd3qe)$m0&+|3wh~ zxnVyUd{6^860W)C$O8%CL3U&e&Unn2?$;iH6F z8?mUeLqS}0K1&Q>k8LjjEPPJTwrM3QZ(3E(0!gE^lkmr|LVxTE=N8BIZkukhtyf#~ ztc^H76eRe6FxQk-XkV9(}@cn^LJn z{lh#w4ww9aP}cc&80rMfme}i%<6{Lvhr)PB8gy;-=pJNvfByv9RXr*st2H`HE9ie=LF)=$QL!E}EYLo1>{gCJxP33UI^xzO^ z8rVEZd^i+y0o?)?(U%~qyq3Q@J0Eqh1M+QBPVh6nCs_zR4dOoa7EB5`swWYKf8c-j zYEH!mly}7-6tSe?%TF-wsGgJO++R{afV!Nyo;OzNO7d@eq1HSBBK?U%+N^(G{JFL` zZN`b4qWk3?2iFg4*bw61ng87(6p$rfjV#^!KYNu#2a-Kp?SX5JM4;B(@&!>Xn|&K1 zAZVZgvjD@^GO%80^($fkO9@0eG(m79awK6nuJtf%W;Qo?0&%~d3n?G5V5ovHWZlC^ zuzvUH_O#f3Jx)d&HV##EN`kip?G79orJie}Zjly=`EbFdYU$+fEHd7r)n}CFeE1$936rR)2M1ThMgy~4Q5zSaj{Bt8nA05 z0NTGc1qR!0^Tu?o^|)BFX~3e_NJkFH7v!6aNg=AbP$N-QiIxJRP>=lb&v%DDsNZE? zQ2a#SzwKUPlGS&9zE`XuHfXR>a0q^6eC8Fk8f#IBXrB%%btgP#Fd9p~g$q-ue460>95O!EW^zp~m?YD*& zXd-8!9I{sHciu)GN4GksAV~4={@a|}&_z2ufQ-8CsH?!=I6WWCLS;D9m^zB8SHw@2 zbb%@;`*Vuy{&gfH1|5C-=F~mK{E%J_p1+Ku!uM6BJuW6p_Kbc81h!=MUg9G)h{D&s z?{b&CR$n4J`w!ecQ66*iRDf?u6LVOjbADZU6DNpl@!r(~7i$J@d@nn{>F9i_?8|*g zbz`os709zQdq1m2(Z%4j-~au3|NFh}#n5NnVOwxh>^qcBq6Tk~5yoD+W?*39+GX1m z_(BLE+c@1+w<*pNTq-EI8I=x}Nx^R8TLwTgI33iH5a<`AyXbOIOsv!CM9a-Hruv;b z=^FtY4>RRj0BOk54?3V(j9Ec|06N{xi|fg*NjFB=w;3NXSW=)$&|xHGo+5@KhRtGl z!q#j>CcCFk%+22rlsxJlP*`RyeGSB&>vXm;Qe#U}B{>h5X`dJe?c}K~^m-ix2+btk zcz!G)_UL3yt{^IyQ5?Mk0$MLcc84|P<6`gN<2mr;S3a-Q%j(^X6KKQtO2Ja(Wd<{U zTFQ4nEzVNiK3$ycjwls=kSrTR?N(#6<@21?=T*gyeV=aw7iWd$5`3hROgg{LQZ+0q3#b`hRRI zj-QU?_W6}3*{SYYdcWj{X$v5*!{ouBL;W)PEBi8=-tL{|>?fvwJg>GdrCr!X-}x5?=_cw)Hm*D|exz6VxI zRMcS+2X7jW6^tw9W#oW%-^TABczV6|ZS9Q)_z$gFy6w%%xIVjWyWeQ{85waeE*=^M z$sB*9dc&fQwCgfRQ<{`qnIZ@Vk-pl`#(3l{FkAW&Hn}Y^ii(5&xKhORu86p z5zFW&mAFV}C}{8%dvAvKy829zIE04r_UvvI zP=?~H!SAA*N##|3wMrcdK)XmJa1XX3Zl%LYtr?$QJ^Y;6`IdohQmc`M`g^^R5g(T{ z)5EXbB+*0vWn-7CttrC?RIiPFPnco;#&Dqof*{vCFmBskOX+DLiaZ?%-9K(0`*Tsz zLUnwWm41FPEo%MB`QC?EQ&Xsbn^_>Tc>?2Gd1p#{QJ78u8ilLO zNz?tIeENC-6_PCng~<#RpOfQXi9ROsc7xkn89cA~&jmc-LILlNJ)&{@7aS=^bo*V< z|Gc0&4!ZNqIUxKAG3}c@EvuTV0Vo+a!v1Zq+WEA&6Y(dWk`?_lZ5xq|) z1-w6>;!Vp4P3`Q{ztvJ74)a}uuzM3K@$4Obd<#SHvfR}ICFfsg69X>~iRt^!Dzwp{ z-NM~qM`;=K{u)kZNPV6wF+6?|!Tv^T=wK*>b;V{WE@e$TNBP=oFU!IE>U- zoqrF~KcRxDq1PLQx6}^{h?mAh2Txz&RyePg>bk?2PKwqX^9IgnOd&hLku4wJgg`A$=E%4#9vFDx?k712BhgQo7-F5ZxRDgGv73AEEH) zVAe*RZ^3AhkC7{qOf=>7KCEULBc_2G-`@PgpbSjoANC>$N|{89Jj^2Eu8%15I$?dH za8aXS>R4lWR6VvGLshzM!dqI{;9{B%bS+1^SYZsxd6F-xtwNzr$Msh;w#}!dA|Aup zcVbAdOz&7AYIvE|*%)zpHhz^~wgOtje)GK~BA~O*^Ju6!rCbdL4iLKBduSVTZJs>@ z_%g`_a-6#7 z$uY8HO8fCEs{ZAekma`GwM)XcsZG`xrl`<_o7I2P_&XDnmm`BSs=+9K2VVfLq*bnv zPo!3pH284fwYKO4#yf`+u zYfIoe)iH_G^i(X9(MI~7eJ*MJB^q~EAZC*84x63xrh@~T6TFIx)@6T?3tz&hoWv7J zhWfK06X-Y-h&X>Q^0=OVRg;R)kq#tlSDX7S9=ccxtM#Ci3g>ktd6A+p+jC%ck4hq5 zzq~Az8J!Q1&1>6rlnw%r$LRLrI#Fpo_(Ex=PIO#$G4r;;=|XGvv95p$8xHSX$QrBmQU`8G=N+i`zEj%>Y0 zIsT5Y=N&+0zKrqXTAmyFzKrVMQ?hV3RBT5yCi384$@v{u%j(}8olG!K9LXORh!Jhx zy4P236jGyT66vp=gRL1M(__wBXu3O&Px<>A3RkeyNYr`LeI+9Ml)D2|_fABl{Zls& z_ulA-HWZ;FJl(E;PJYtpa*M;Lxj!EyXb0T19Y?+@DA?A_qqbGhd&s5s#$c$Zb;-#f z+b^BjD8^H+$)9_kX?b)$UKmTg&jysrB+f}^(gGwgU{1sh1*874$$pOfzw?!nH{Zin zPySS4>crRtG2$`af>d_$q9JSqWU}+^%^lw8wBJtk+VnIoofpsb3=c`1yM*zp9%g$$ zfzEISK36#QOd~B+a2gqx>aazBiAS3`x=t86R|fNN^(nL6Fl`l*FO;*zdU`Wl1qtNL zX;I<0y4+ELL0jf#u3P=(M+7=bfH|x1*AI+09Lg!QkcINI(g1F?Lb9RTVuFNE-KZN} zm?#>4I_8?D?IzdQZr-z7c)#->?7$Dzs_)!g+ z5WreiFO>I%6HLc>j=A)OyCd?JFIe?9W_3Gs<5+Hg7vzLJ6 zYGpgDuRfJ4Cs_Q0ih22WY}It22RgHpI}4C_mWzt-c~T zEtufDL)c0riJ??%-=m-<088#La(HO>Rc-*2Fcmp=N)`&`?q+1A@sK*JAnUJlp{(9A z`Ein7R+12++p&l%JbRH0-8|rEPF(=eVmXs9DXluT1&!DLTBIWD@0%2y&+TU+=pG*#cW5R z*FoY7_@K(OHf1sZC7C*9GS2z}s+eN6!c+7n?P>oVNWcG?I&YK% zf{Aj%W4G6v+{5z&eK9=a8kP;!T;%)1md~3c_6m3?7*|rJ6qa?xH4>-gGVA*E<00&V zv+&w^n*`G|ykex_kH$_aRBy^yH;gm3;RW6BPDjkx+B;{@PTynMvdnY{<$iWF3c$ z$0_`2Oj9+|lfAx(UP}#!K4R$K7P=KVCI z30EoA7t`5$WvB7f)zGJCP>U1O%*cG)ycJ6C@#HJO+(hYXHvbqHZDQf<}um7j|$l z?TMG&E~|96HIO;|Psw93k#%D8UF?XI%2*i4XZP;S_7KFe%mBSZ?zNV`IvtW~eC34v z@StDW!P;P2c7(euc?JYMmYGwS<3TcH)KNe>ctxCy${z_pI5{rte3q(W;(LhbX*Dg= zA7by5h1}ioyg4JZpUxO}q!7~y684luj&p9){r%zl)(?$uUO9N{o^-IxguvXWoq_6^>W*I*b2tbur*cxeV(A;(3uO9e=0rB=e3^cgi8dUzJ zl0H5V+9g8_u9Asyu{95>(}|0TtXw%FuImoQefZWveq)e0iQ6&T@kdeoTMGZ~;))>F z>i!Na$U!RqcWxZ|S&dNne%EZQHZ^9c@;!K-&5F7jO_6p1ifT9%wbafg1`pTH6`K5l zY9S}&&sd(O#GH5ve~zGrqOr;#nQSAX+!SKHqic zuIV}MENq1aI3tgP?o1(_+!ZHHn!%6LjcWhz@%x-(nz`lmPmridddW6g)K%^1qHZ%VvBE36vG1G3}g*a3a;-FezOqq%fn4W7&cX3aE5 zdhrr>wM+4Lu74{6uG?6*LOEsoet;te#>kni_Deh-Rt)fmcWs>kguE8nBCyZN9i}TUIS->6E1sFtjSkc6drc0d$<@be_jU%O1kaMMZK*tY zBwe1dLsX3|IK{}=@`;Y&uqZSf**b7pR4xb&GHqHQ8NUle%W3)IN0&9$->h`kHsb}N z=pwLmr?rh6xi>|pN7AT4=^>GF9`}Zv=e<&W{x#=(9yT70(RH8+vgC3`tO-t#u!&`$ zh6Kc$>$4}R2gmBHSI>RZA}{G49+3SQ60b?l%d_zd4=`?a{mJ+BvFNqc!=$Y76wdIH z0L}Cw@~5cly?YpBR4MM?(WeCv1^^zbAD93p&{#haK83Gza$blc${$^SWgtE(PEJ!+y!JEK(HzzXuMR6h_FQoomrcE7)iq_3(WoT`144m#yB*CObuz3iMI0S!m^<)Xd< zBQY<-qAuJ9gvy03yp#$dE96CL+nodE-ZL!8v@2Kp?ak7N#q_$IMIC}})b4L9a>m~I zfWb8DKv_PZMBzXT-oLyJl+n)(xv<=J%B(GMutjRfcR(r1mc%JV_QX6iRpg8qukQ-f z2j>iJB=WtRthf_&eSlJ2EbDf#S6^BDJ}h+ttrZ7c3EA7PrLXe#Z!VVwLlK7Q7S@wV z=8dU*@d7JrP+&Fgq=Ez~zN7*zocw-BCnAB$+avay$*N-%bSPDStNM{OaQI}e) z@a^@V2M2pgiT&??bItR9-V(#=AZhh_?a73)zf%xGH3d(7f6)ejW3z#Ys}}*wGlJb} zR-ojAGeTu#n(H%J8Z5jo!;J2+})3a;nRE1!6!Fl(e=BaNxlNif#GZj2! z>Ec$=+g2dE?9l};X+@2sRw_-G^!jn(kBTUauOqbV!P>sLdeU5wpMn40Aj%`utYJwK z^C>bG8@<|onZy_LG$E3C8e5QnJMW?zOmIMiOEsT>rDu$4atW8#E8SH}4fpj?t4^BK z2)WQXXAv9d?uq+rCsSo+zjCRT5r0=AM#com+~1?L%5wj>7x?*wu}}p@tAkv6WMyUf zQ=Xj>T1$L=P7{qAQA<^Hk;jB<8KL0?-_YQ#=S7+_|ErVD@7QW1PU=7NK3f1sJKP357amqTs_U;< z6CUse(=?NVG|5>?p!AsIR)33OoE_iIVnZ<71@%Zu>L0wz{fdTwv!(2?$H!oK-~i0;s@pntR5Bva_Hx;{lJidGbt{PMBU3^gr8J6B+MPKJ}~h5+>& zlI5tAN2zY-^vG#+yYENMxiNE7VmOVh_{ z`hf-fG#PMoRXv^r_FCs{U_#4|m7}p0)#rTG^fPwEoVnHTQ_0mUWQ3c5ZIQ^| z>qpqJW$S({*yC4|UkN<1#*&2Am40I@|0G-t6c-JJRJnP&0+Miaf+t}5xNj#XG$Jt`kY)p(;ddvq}!$VGcee7Ls z%ls;I6OW{3x+l??Xb%xF<5=3@^1B19@yxx>5>ewJ7ANL&SWZrg+x|= z&VT+^v)`ITSMF|Wrb{CaV9Fnz$&;@}qdE73-9AX;#Xf#5H5QzaI~ywAo( z;0mtj9HJxg%!-;<#hQI;DY{DtYS937)ZG0AMlA`4QzEKetBWzo>SBA$Pys)5_ivI1 zGieTK*e!3o%08N94_ z5qWvlRn4e!7PI?Uomj`a-0!A2Y%^2+B*)dNeJjfubH|BRL(8X=b4J0)X5%i@qcRV% z$x6?V%fnm7#NFj>uGql$NjNXR^3d+Y3Oq_O-Xo$N{Cd!S6{`*v;h>zG%2uoYdeL=) z6qny8Y0fdTyWE2UR`=db(ms(_{$)2ym?uHDv6p8?n**gs`VEpA3?{ zF0uuS_ljG-GS+2t=XXT(!LK;4z1Eh`EbqMeNC(ZA1TfIny0Z(f@_BXLhHjXMp&xbg zZTz_~UiSXrQB}GL51bbLsLS*8rj1Aku?BOKx$3fyC=AlLMeOV4;h-{AqEV2^9g&^& zrt*p>#f*kLQUhWueXN6BQGEJ0{_aeYzrSwkruk=)V$J)-e7c+KFbG^R>8`vyv9K*p zPTb$@M4KR(s;njdibcA5gs)&Xjsj!tb%o4yGs$cN^A}2n5E?A{gP&(dDvkX#eFt#C z7Q`Uti`2fq$ZI^1YUR@Lp*j8#!%&PU4%a)%$k`f4rPzd-XBF(tbe> z%;gP_eR=8sCi>mHI)#ST_&X*NXHhdl-KWY;?sg-_-xEM~ubVIDvQ;C{abBjWtT1-x z65DoJHqAe?vcU6Z=MA2{9l!-74Tx{!=M6oGgJpU_iK9k-N9mny_Q1v6`K)I7jvJ($ zuKQwgRHy-=HMIorPbBDgQs{1Q{$jEkd$TxJUer7nWUpk~RRXZ)98=_fFXsG$SeWU< z+|?qn-5q7|A}C=pswvTo;jtzt%(pXjF|tZbX#kpaEv`mjL#;J(Si+1>1ugUk=^@ON z50R%~a(;^le9>8{cr!MP$jVdS1^RSMp03QJv3$f^>4xYm4I-uNACYgkCU$!9!F?0v zRL>n8A}f^RI}5n_!RRRZGwjlKSM|j5L0HW~y@^Ucu$y%6S}frejH3X73l!yFBc7@l zZiJErNak0z3NC|>ZZ=vPatmxwI!Q>iBerHT>iVN_q2L-E>(H#8{K%tW{rBkSXcDLF zv<+d#tMk%LvnFSsOmOP=ZVuKCERbsBB{)DU+aECd(MnjZwBk7w|2dqjyWw?)#pRfg zI&Fu|1w3t1;X7dABEp|fX?f5QREG}BllUsW`xAJby*7GC3HrW$Tju-)A!Vf{Sidah z*^?>DQP~Wx(=KlL6JxDq)Dx6s2xfuHm|w@y)@@g;H>dMpHjZLRAW3wA+6v!hc`-Zi zV}po4igX>;vU#$ATJ)#Zk+5dAn|<5vCpMjBrzJF1^#lU8$DomjDiTAj!-#xOEI)la zI5NZ$*{@jc(nM8CfKx1BVAf)=H}JfyPu$W~5VZS;9-^7_c)#q*aFnZFFpSPW4vb;C z?(7W)=l$bchIeAghiE1+nP=B5Pt0|cgXxe6h*=;r^_qFY31Czt+SL-=eyX0B6^80T zc>D116lD0J; zxm>Cen5wO^1;QR$=aSoCNaqU7o9TVMX=`iLttcUSI6x|Um%eQ~tO1F_98YlPCt+E2 zTn)C`n7F;BnA1Sv2czLTyPYT0J{O+PcQ38vHVW*q8sadW1PPF9PfbN>$L(0Kf96z; z_w#uXgT~bd99FbTjbwFfDYcRp zkKSTTu23KOqMKg(CfXW-z&FdS7;4gXyR)g(l1YR1jVts77T(_h^V?vSXsiSpr_FH8 zdNUUQ;V~e_gV~ZcKMQHaOAzw`(NTi!uHg^10scK-HC8+Otb}bl-KK1|+ymcM3KqWO zae%mxBCQ&v53m&D_Bv0eaby8#!RX|TQln@`8LIWmtwrP0VyG(dN}{PtX}u{0;CyBC zHP8vAW6!Gh;JDf;c9PjDN=_u+hFS@A62eal6AUNXioR_?X}^m}x*CD{`N+Y7Xvdq$ zF#i}OfveC$Qfqp{41U?|fI0mI?P;Dh_OCRZq*>p}Wim2zK{kZhmwGzTF-j=YlU=w` zvaOH$b#MYSL*89l59~72l)&d5QzF*(o+R)i7QyPrWR2enOWZ|D;>2ih&)UBRRMM)j zf~8|}X?8u9bBLx;kNGheL2GI0J9pbG2$Naf3rj@OLwV0)_I1#?aT6l~nUkj*zIe2Z=&-kWZG$G2Q5v)wB);xUc zR(@Ym4}&aTLo23~8Qf$Vj-Ux|$0h^w;5Y-8ajL7h*tsFZnq})k1uIYK6C$x@T(dmu zXi(Za=hFnI?)$T`H34mM&8Hq_2SSZwx~z?>A_Fi^WMGiw+K<(zq{w@?C+vqm&>8ul z0I+n~`K9c)(+}D)Fq0>8@`pL6o(X>RMj}f`#-HvE+#G1^&289U9Bz4a^S*4(yw1Z_ z6!l(c8i@@t0FDj0<`4p$7**Y?5Tr~VDl1WJcc z{@1US(zaWiCVhv=tn{;Sqc+fCUlM!yPk+bPa|s<7pr^J!5$UrrV+YW)zKyR!{rAIi zaSJ+Er5@R$6Ax7`&IM`}`_c+t{+vV@vKz8p(Ud0^kot7urdTM=D-*bO8R|JfpC%t5 z0qsB3sWv35-lW#5ZJA(w?<56%G;a~KiQVEKTO3*IKm-x~!_c#F;}S2?%VErHRskTb z$Gjk=pZ0n=Q#X|?hu~+Sz&={ zefu0fY#oIn3mBI*!r`ioddJOl*2HRsX9G^>l}T5S=|1MNbBSWbhha023MUTEBO_?p z5W~`|y6JWM+ld0GY4$RWrh(gdm2|ssfL!wua?A6B*k;80v#(rJKBS*(Ql^Ny$#@&4SMCpu3H544>^Dnnz@kX5ExsAKh}kVz{7&SRMTlsbpqvC*AIsdgbckax*f)oE)yeMG5{)KZSqRihQEztJCfcve#TN%O8KL_MbBH-nhh>wYd}<8zf^)=0?}c8#q+QJ!uolpa7C z7S)O|3fJkVemTB&iIi0kI(UkBj)+}h{HDEV6yiKAIF3M4ZJD-5Y||+v(cCOUiQr~$`rYmMM+(P%0sQc9 zLutr{nzWs=5SLP7!%k{Wi1ICN<-)!ye)Ig0z^s7uPTw0i$JTc3qU0}(+~n{5p@Flj zOqb?C1uGe5Ktg}b1lWZ_dO#2n$~*47|EMO+-lG$pXlf~iS1O68!KN25Mh%7k@}tw} z{L;3G0=0Xl+>2P=!y8%1KGN7aPGs=Sne(vKnLlI+{|AQWSux%&OZ4~4@@1qqTL8hTB+JOc z3LZgx6w(wFlsU7cMy~DG;xQL|)+wibxb$D_LX4n?jM?rh4!i!`q|Q6Wo7vT}1kcK( ze3ngnMohR({aiXN(1Kv4iic4g&_U0=Va{>?*9HVmhPG{Q&5Bkoo=k3#ZR^lFF;l&# zEVI!_W2cm$_c2^XRYgnNK2g+?)*(ZY?|2tM%V1VPc0~qCJj{26HC31k%DN!=ND~?f zp-`UH`8^pHGQdrE+Hc{5UEvEibLZ}Bvq(5nBOfGI;0IpDu>_}zYzvb&7%Dg$xOHX$ zyD)d;!Li^TwOPLkb@$%+=`5;YaozL!&}nh^MO8{T^|HPX)2uQ>V_@vO<}_Rc^;byL zIKq}F>-lZSa{WFP!=%vxkU=#&P;0T1`puOLv*Yd)EMIulAEH=1G7FtmK7~qE8Bxg2 zfUD~-WUK&tn?G%ipqy2bh6K8FjHR5O-L1MAgFkSpJ1UDPa_(oAZDY;AJ2ynFf?EGG z%4-+Pk7s(G1c5&AOkem^!HLS4x6)6DR@(~X?Di-tFM88c_)SYnmnH1(81Z7_7%~kh zeRaK86Pflu*9kk$oXi!QcJoDJ9rWz2HPBgpasLr8-g^&JAObb(SV%z}Ru>z?{{DWu zs%5K}>$Gatf=s?>Kp}XyT7SP4EmF~2u?dB34Q29>>B84o6UfDu3^l1IdKja?8<8)7 z1TqM%Z6;XId)~0loUJ^YA+8A{x5zLc+^+gkIgUz^>CSZ)j?7iNscgvwtB}#r&`9~Q zF3mf-HXH8FQtMVa)5lK0Zi7BApXem@H2_^%=!bV`ru7F zs=J?Trb8r5V`=<@jg8Nhr~(Q%TIObPk^j>FneA`p`pUOI6a&;+cy>X5NruZjQE73t zoTn9Ww?A59*)u>G-4yE^_nxJUGVpF%TqBy*yG>RyKk**ep%_jpMghxea#m~k79wD6 zjcO_ts^oD#F|4N;ynZ+bx8LlJHs#wIDd`HmCez~aN+|d-9#wYY``e&N*VhMeKl8Ho zi5}|IeH8yt=bFQ}ZIe0g=62z2`@1@aEHX5>f+KI0)ynv;UUYcOdQd!w#jZydlsA_B z4}Cy_zruq9zl_sNPJ6)O$t2+ae1L)7?gfulL}eFv+qS?(*$%EE6@^Y zSI<+YYW9lyNgmmXczhojq94RSi?D3M8L}eP&>RB=rhzbqE%c=Fc<<5@1>B9FsJj*h z+1V#+7WCx^_TxZrJN6%m5gzBMsY2zG#Lvqf{1?qG<7sEbxOn$88l?8gCF(5TDefn? zAeh`qIJHb^39RBJt>$4#TkW~`FW_rx{|a4pN%j_`wHs#6O9s3Zj^yT#pBq2SA_UPKpiR)doS!^%lWIsE|*Ol zX@f>(EU65veBg3yT9sb#?zz6_yG?8DS!{T$;}zX^;RB7I!q;&c$!QN*{W`9oI{Krb zRsXD^9T)^5zsJy*GSC{*n&NEnICMDRICe_KQXyEN*QLpf?b5Me(258g z0uxt?ZAXc635fc{qI%S&PwQg)9t1}Ys$QsCx|w?ME<;3yYwF^I?GjSGZOqyp*nx2K zJlVTWqWHY-jZ5X28polY)j8Dw8Yg;)4U?(WJ`WutI~IpP354;-at1^bkjxUmOh>C| z*T*Ogu`9CIHEStmT4a1C`muA8dfDh$kPskuSBO{uX-~u zS~vE-e!0T>o*CMbg;z#F@0V))WvX=`{UH7@6OMudH)0%tI@wtg;K4jJFpsG zjV80K)UXSo=K>TR>Uq57Qj9(4Rs#U;O*=LmT9%i2CK;i8z7zLfxO_-b@jg_M2GfrAifJHdv%yO@UTZQfD9aFg8-Oh!v(OFVt(6@+6?d3cJLp zI?L4cKS5oMTNQ|@sn=6>NIR(`lQPp%fK@{li%PL42doOiZ)_#tLBuu1%oKpIZL2?q z(6o-sdE<3L^|Z;Jj@ysm!>P7^t;0ZaZ5Y>FfNupi^f|C$VdmIp4G2vn<(PWpn0 zqwt%52Bo_{YT~}TyQph=rH-a*a#Ed}P8%p24110%&t#uXSgxV{^~=z@^6SP80QtjZ@kV?Dr-7Wl4C{9=A$Q>4h_wvtLu^o)*q2$xtcI~G?^wbA z%5HOg?uB^ZfVRP~`o}6EH~Q>)igjt#kd5An)HW`joRkgS3an(R95_R6Xk--+cvhM@ zGUAh(#WB-)JPoUcwec}Bj9*K@wWz>D^M8g29-DU*-P^V!`d$LKXim2!jAQAZNi2V3 zf=pfwj8S85O;dkl-}*R7Q-q8_3{0{1%I^srU+H6RHAOdWVvN{hNQ{PKyE8}z5i!D$ zY&>CKyFmnY`U+jpx~;P+)zkBetu87RlaWqv$Hdqy2fCqs1Xf{-%5c$)H#9(O*isG{ zPHR>GVSKfu{Wa$VF*5&jvd78Aadhu^0U8&7mU>?wGq235g|b*j3Y2ExfcrAb)kCXx zDwZhAL8lDJ+z&61neV(lfMPmNjkNVUi<`y8$3r?p?4|F-Pg6cWcRDzdo|b@RW^R5n zwU6n{tKIcz_rb&ms*+*{EOsN!p$- zzEn3*V8)odw_HFD545shS*##cz*M!*se87bXF>jkF4c>zp+VXm3 zHlCcG4C}2_Mb5@gNuzcYjO|tg273fWNnXNBU&X?_^9RDm*e@qg?0N>zbd{pt4^+bq zR4<_RCt}tVTEn~f%Z)Zx{zj?tTk7|<9V=C=EKvq;?u|=1GN}q9wX9hQtA!KOYJyQ^ zgdg8afOipUvZMT$Y(zIUJd4GnSolBt&|j7+jExj}&Oz-bnyNw-1QMxIi< z35@5jig@rIx2!ShkLYP5chZLjDhIfv32?~2)KjP2BiQ?2+41;p4AWBX64qd^K})vB z(fh{t5NQ24j4Vq_W%{4bC{~}gb^K&)Gu`$gmp?^(=U$mW$+=jP^z9hVPMj^ zUv*J>k$hfY!fD#+nWgc7S7;k+<2?65@&u#o9>KB1I82RlL^bN50yTGd4?i!JZ)XC% zJD-pGg`d?9rt0B_F)dFYD|0$6fQ~sQ0~zlew{Dd&EH`Vzng-NDKMR*pC8oXD$I@+w z@t^w)e-VFz|4VyUuz}^Y11zHs{%dyoRt|9fM5tDVfe=d4`FWI`Uj|xUKGHkR`s&=A zG>uSKu+?5)&!}t`H(v!j2J2!4Sg~Sa{EyEGrJa>V4~=0jPZiK_MaQ1vXbz%QSE^RM zHI8=w5@KA7R4aQLv;y5wd0MNmd7RXtZPb24#j-+E^Ru>MY-%F=D(KI;D9qRc4Q@OP znqzsX`3v>Dggg{S5nuM%Vz3H09z68~25kJULruuO0C-GF(ZghON zqPs#F=v0B3Kv_trN|9y9*8oOl5{HjSHJ;9Tws&I__nZe2tAKa`tYWBHmhN5S@X0+B z5Ko02mS!dzMrw1uN>2@*2?SQn1PnZ+hgB;wgxANmP#zbekuI3I0yUdZp&?|O0B(-* z*E}kLZp9?QEK6NeXGv&&Ma4XO=7D=pVQS zwR65i?{CRtSGLt-IK9crP!>UEKoxXYSDE_f1CYC2a!%m;TIbL3d8<3m9! zIGs3EBQ{c=;f2*ak!PSLDCGv8>ally#j?`O=x$k=3Rx_4P(1}&92k#hTIMS>8k+S` zJ|RbVXq`sBld61S;TB9{D{TjT5dB-FAfm#lV9OScwpW?@`~oG-{tvzGyMtl&)pVUK}wo0a=w;jCMBUEG?%-z0$k7ah$m>AhXkmtWvRIo(DQJP^k!>YWgfY2s+G}RjQq7 z_&lW6D!=oX3v zD#xzl4v`V&IZRq9^voX|xG)G9s0g&e3EI`tMt60uy2noi_{-Q)nuDebjKaKVUp*}Q z5b=)zEvsf~l9kQ*Qv^qKA01nODqVVF8~RORTKm3WfK8%Og)3aYgyy*C1kQ0kzbfD= z`*rGG21Y~ft1xSt3ts%1VpTAk`vNbgTl<5JsurF$fTe6#@5Iw&6K4nZrTVT6R?5Jt ztWx{HR&lPZIwt%q2j4Q=gI8B={nX95&okvH)+9_r)n4NPvXObDQl%t2Bj9N zhNmYr&6t+L3_BOIQ};95nC^LOG&Z5rJqyi-8DEzTyk@aIY4cQxiIJ)B%Py<3g{;*o z>j(;WnimTureN5AO63EdB#+cT4lO}I#mq{YnRjw;eC;D8GXE+IB+@Hur@#w9<$i(m z{l&!OI+GV8p1lHM)7faWCcv&B!Qw+mAN~}=xo;>B{yawmTG`Mg{Vd6&XCs(6fpF$t z6x7K9)etD4MFBi4N>uFAg@FMn1E4ZMGrz987rde=tPAfpjPYF!v*17i@5H;2&9%0% zbbF9`mCr7xZrKC2h9A_gr^c#0Guqzi`^NPSF~S|O~mPXY{#PRf2EzN z-7;ei?5h;<5Ez~jnhf;W1f{7~1-Unmt4_|zcH*!f^=ACQRLuDaY0NK9d$p1Q#ii)d62uFjGwPb>Rk?rhq3R7Rb5|AA{DE?Gq|{s;ypaCOza!Y!7ejVCVnxB%#% zUUIprOUSbH_Bw%=XHJIm-vF2PLtI2_w_^j!=>u5r!Hlfo2ViMRnd%2ryD_+8zed9t zQ_1`#bCw1BKN@{(25YvUVyP@|2n#NUxfIMcPsmzH0q&p%2iCux`jvR z-FH12S5j|lIFF($fQ`o|E)3S3XtA9ZwV^qqp9@R5jl}wGZ zXKMVRI0TCtW)o)ya&0$r?N{~%xT=;{#)kgRCzJSM{kfQF?!Z)y0EujPQOLiw46KB6 zF6S83r_j3mH7dMu^3^{kre#JNC~#*#3#%3JL^D&ww4RRoC7;xKz5vR*b?tY4OdH@AS3&b58zMW?q-@Jp$EgkOmF;RCdH9ve(f3&1kISKrN+ zXkzt2=HbpV477Zpa$eL>mS(RjD)3F9yy29HiYt|fEQuaYMrQ6_tl3hk2Lg*i<J~#YVJXkRv!X#njkQx$#2KC=Ok2x){&>K&avPvurS=&+Rlsfw%1#w%FpB#s z0;uG1gQ*2Ay`D<#yeTqA&OERo96OsI#aP%Ql3lDKeD35fEN!1qGcarS5MAJ+;=SlR zg>tWGT=WX8KKdodYcnflpbQvi&9d#E@g_ zl{A(r!htZY&SKp%0SJ#g(UX%(qY4>6EZSEK5>gAjcxo*gYQ87@drAgq_(#CWKs#?|$|CV2F7~;Ng`?eBsC@T)3%=9z82F$-Z&Ajp_Pqzf<|x@)5$xhsv(G3AOWHg8q@O zs3;Tp!BpQXmi4UDJh=P5tI@pX2t@r@;YNgEW^48k4v5dPj7Y2vX#Td#oSgHsY+Q2e zgIE3?qSukmr0vz`(4G-sJsycCqU#XF`-GlVDrZ+LRRA>Pg$}HvI&Buq%~{WDMxLg$ zZV59Jj+sf_+B|uEg&J1O;fSf7)(q3qKrDq0hli~jOqomys%NpNAU_~G^yPH0y1YE0IA(xM; z2@}#jF^c|b23p#afm=bOfhsa;Uu{eSR+y`PP=lF!W?5AOo7saMJoS8{r|}X7s9=7j zb+ITlxJ&rP?1Ba9>1Ej1L7ni7mV;NJcljw|(p-yUHXl9PC)oNNrMh;y06{x#l z`fT*A<81aawaTqQYehYypkCD8-Oonjs{ae+24T>l;8IX#yK*aqiy{LRr=%vWhh_Qu zo&2S9uIZlx1*X^s=eg-Jf7V2z+)%SN{P zr*}ZE&Lilo5U#AK>F0HTcLOG&VOFH_1w0mzY(&~SUfZV>IQ0pbx~u9J{kCRnDr9h1 ztAjSQi;bd?g@19?K)aN+K>x)E9ZQ1pJ9+X1CMPG9k-b*eA&V2Kqqa6^J0hD}O-&gV z>Veo!uNkwktN`uhV1b7tm$o7L{I#T>&ecumAG{j1y{kPu#dLx!UmF!&#>M~?RFoY$sKBN#|HcMCwKo4 zvGs6GMg|NZ>xE)BW~{LG`+{a9*p5mGL?Qos8Q$ zS^`H+klI~>ea<*Wmqg+Lm1Z)!;QUtVtc#MDK!-NhR+LeHb#)a79)4KgF8i=inN1OZ zjZKWB-e{sxBhad8V?2*M(9t7=0{HHsZ(vNRrorHARquuGn?Q@>=97vUA2^R#*&zb` zN02cllmM66T`E-oBuma+i(QqGIOlexvtNOhK+!vc#X6C)>8^(DVS?-E{JS?&Z{dap zEM`~zci~cMyXUJNK2QOJz#%cnz+4#yLeBn5w(jQbQtp8)gsKp+@r_jboJz;z2j^D1 z*gM@Y;|h7aq3)xyoT(A?!2uq4BGTn{PfbS3YL0R+t?Bvx>#XnzqCzeB#x+%nvXDDL)n(P5DYeC%VNL^#;2)6tff>%a1S5bq?A>gXLs#s zFk*n}cJ%}j9Dkid920P*Y*6oW#D$IqDa)v23?14sHVo1j^s^pK*LDSz0#&v-$gmik zE}S@lr_3D1ol85hx(Y_sDYDcju2_ z%RL{?T5w*4g!9s*9zw*^l7V_d>ovrWTtU5tN1^;f25QSNR#k;MLyr5vRd$Mdss*c( z+sYnLAhTsj_k*uZqin9YK71?w6q*)q2-(np#mJt#3r{0s`!-=lRETw`Zv&v@y`0kH zUVhnoE@M&!uo}Dxnf(=+{YstURh}gRAZ2)GSA~G1CFnuAfeJ+-P**|lh%r%hnO|DP z)I?KFOv;(WX{bPtMXP{%g3@_vu*c_@@ZjO&c<$b#c-CHOU_3@pG@MK8(8R2!2?iPl z9#RG6${c}IL))k7O+A2GVN0w5i|tSZSSl0@seCE3w7#`ZX^`T4g#jw<2x_99LJx}8 zpLidrj1QDkdKpFa%1j8CZ0NF&$d>f#-S^@z52m0hJgB&2RA$|U$8g!wM=_BefDw~4LyTie`(y(g-&l%c?bR$;2 zN+NHRJOrspEUQg`b9`Y56JvFCfQR;Q&zDg7r>Yllx!u9Z#T6VSunLnoyz+wMIB#ZE zP1_Z59H}&L9G&&>oRmODu=>`mDMlsQbrVG)KptQZ`TsEt3U*@BcTV^`998P28!GKdW1l)VqDc+FYgzzeoNjIYmc#)GS~INojH*x>~n zee6-?kHzX>gP3V6j4>On;QYoRT+=#;iKvSz6tL=(UXl8FxTljHZs{YC96E<=fQLz~ zK3uFDrJ#grAQ`AXvY4jq+##T3%SHO>Ts$?vWzDkLE$iE~huSnHHOz$B*4 z^z#l~RZ<38uK0D&P4DO7N!bTV9}wkj zMnoVP3wl^YQ}q-+c4C3Rifme~uCjq~&!PsaE*4hW=nzvnXX+#|tCQH&pkByC2hQV= z!aP5rH38~MoM;yW_A*bX_p2YOAvFl}xW+6pg00~u+^}+2u)}H0B5jmU15Of2Ht;yN zQ|Vus*{WR6d6_$l8x|r5TAE+{d8@PMvaj0aXbvyfMr;uWun;$Jk}SuI^s7c%Qo4z# zkJ&~WTN+)4djk9bgZlpv&{BUGq*?u?4zx}a$-#>e&<8?CeJHIt&O=~LpegLEtc*kQ z@>!P6N+1iX?6a(F-40&R!C{;94Z4yZ>9ZTfj<7jM)!3JHJ_`gooyL91jlDl z6(A$3z{}gV_0@vRP|%V?@^flOAO=scfVJ4^Q3GqKMi!bFSMC^92AD0;5+0M&=#px< zO17j`GK}&5D2TDUHIECXj$_N%Dw+|;(4xE}p?VP+tOBV6^YQq=)Xe7>2IgMWG+<%I zr0lR8=@*m@DPx&Z21u4Ux$X&RA#G9Zb3n>1ajAjI1@m&IB1_+w9`fYgvMzT~ctIl1 zGXpr&T7?Nelf@4PiaL_HP0N(k0W;n(VV^Z(S%)qmz&e0@lmLnd;oMg#z?6bc6%t|a zK7BBASrsqin1fRiigK@8=8qtWwzLuQ(7HWV+|Epr4F+QkhgrN1sFdpj&GIn zJc_BF$RWsr?%8yXeX8J3B^~Buw{4?w_DfqfgDlD^(!7m2j6}0jYu9pHm_`~iLQt!m zg_)i0@CiK`hfZ7aVnzOLGtg3Q8>_^!meows>C$cllLrQYN>)8h2_T6wTD10Qh3p4F zw|JWHE|&qZa6rp^S84MCycg7s%;S@ueA&1R>#bB|`*6{z1mqjohau@va@>8RW$8-J z$;g1yzTK}^==5w_8-lL%x@ob?LYuk)>(nJvQ=wxRNKze!g?p(2JyeH(8!1mN+9kt6 zPfZ8U8Suobc8HH%WC5s<1C|hZ2VD^8=%nz}Ay-#057%k##Ol76A=-T{TAQ|_RU<$= zdMCQK`~jk+1E$#QgGsoCbPHTLgOa(5Rsbeh(FWZZ?^zLND_PMCF9)}AqpW>f%H()k z$~>O}+j27rT+m95V=SqLVobX^TuR1w(X9p)c(kVKxOe~S0xMVibWWX=e%?UQ^WEBt zHOm@9Pua0PzY$p0#s#diFhzxU7T|sGs@7d`Ux=tkW-4E{F4oA?yJpD;%p7--OtY%g z@rf)Lj%m9|>RYJ7xj@IqVjdpoAln(+Q}!jP!lLj*rimKT6DTikt$9fURB#EAxuyw6 z1Iw~Zo|v;8a44rXw8$4epiJR8$nccV2qj`4{J<;R4Xy=d&c4((h15b+&< zYJ9>Blk$50tO0%Cw@{F>ltpMJB{4t^PytZpg=am8hIP3ep8h+?zA~_MLl^)SMZ&`y zDa>)ho%{ber|gXsnV2q^0v6qOsrJTzbo zCbO#9)`?+U)6}U(fMg~xZbTxZ2M_G`ovHO2%Ln$Y zb^KIi82A+u6*pBR1>rDzMrP8-F>vljovg#^u#&I<{2yXyzWo*j6+yc?IIQ zljof^^0cte1*yR%Buf^QY-g}j1hDKGy_7OvciEr)R|KjQ1yF@^uP#`*cWviIOgqZW zAz7Ft+?v6faw_$+tnRP3E<06aSQ-fLyKKopsEX}8Y!KOyfW^cjh?g&;S}^8mE+tfUEYn#DH1R>{uPm8qe3KXGIQ-Yk>wQ;a$b{dO-o3Ya1JOBe@MJ zZ|JshTF-MSt&2j6KB=Og#q-f=>_WZXP@#qEwVLt{w=@6v5^cEzG8!+ksf^M2z~kLt z#eQGXwGw#ODL!ldD@)Q2-dj3&p3BI*Q#5GxHOnI4PEYPb7O6EWuv7e6x^-L*Nwe0u zZc;IrMBP8~73rVP^)|#_dSzu7HjSYchH6G+1|j8P?)pLH@Rk7|Gq767E)6_IJXB9zAY^{4&Ks5a zZNP1K1y#%dmj$*@FJFaY!C88ca1c>Q!Zcj}PyK>~6w< zRB8!6GZ(|pTko-wG#0p|qXLR562Ql}dPSJ&oy7T4o+|1-@v<=ii_km>sXNv61MmxT z*hhIiY0JP%I7!_vTV+M7x}e={{9OZGI|5TVINKHh!Bm663PvT2l$$|dT#SXKmeOLj zRK16dnnWXF&=TrgrADfyw7z8pP=pPyu|fmPk^VHkx^kAuFHqj}n)&Ie$NcVo3oI$K z3RVea35cKwI?~#f%t0^5{4NWsUJhi^|Efs$Jddx*!KW`GTfQzGR_N}}KrFj=mq9xD z@x3L+nRJypL>6`dc5r%WGZ(|_<=Q*Tla+m-9g!v5(mhb3$?%MHVNFd;@ubVf1gzs2 zCq}(3E4;G1Tw{2R6^T=jvX_P-`vy)N6cI?{s9DTt*HlxpB=#l_^rWW&GZ_=|q|or7 z^N7eeUk?-1MXEw5^EMmfLt$-SrboI2P(^m1u5BiF?Br{H^2oVVIitc^nLh43qAaL- zKxgg%M1RQupbHp-pyQWY^(;9<#ARax`4*qiJto~}mnf_k%0+rAA!MdL7cNt{B&TOP zAV;ZKMtXFQn)SCR9@3V5=VZkx6%43!z2bbg1G|vK$-7jk(4&_w*$8e88xyburs@4p zn?PdKFKVq9=F{CFBC$pqS^SkKV+US6riWmsQI2(&HD;+}tnXyNiUOq$M(nPjqFHKY zl|8g!B_Z*02B;bVRE^ea%&;P(7KTN9uEUTQF^@|I*;6V=!AsBCN0({)P;5K5VwB&xJgb=X%C^@y=6u>oX50#+}; zBu_U~i0;8s1w3oL1fL8##(?aoDZ`sJ-nuPz?1o+ ziQ-|qFDqdWS0ztF9%1`NuwiXD$5E+=clxFQ2?!eLqk*NE(o zZjO35odGqft&es#sjG9S;3P@ZP#-mUE6+O3OB|yYa(n{@PTkktX?L)4@84p4=^=Cf zI{*A{dC?966TCg;$Mvg|PEKBGX-iGZYEr`oZ|!3LQK@3S^M_!(N#(yS!qq$LIDaR7 z8ABdC9_yTKixg&E6fW$n+krkM$B>vYhQzXtZ$q?m93omosmLKEQwaVySZV`gO;+UZ z;k@*c+j=3KW0?gY$P?3ta2Ga!Y)DUcdRP0TW((q!*pt8CuW+LL+`>c??(xcbzN+hp zzh8ZirG_G2=Q=Pu7Lj_V)j{PdAhb(E))yv`gB8p)^d{yz|MDcOkzsBYu!ON=Y0xsW z@3?GGmVM~;oyPPDJ=SZfi!wN=DaB0u_=FaYzt!iE$$<`O6N|puzj$;%Y7hLS-oGYe zaIaWgD?eVnEry)$?w=eB@xWsV-tkXIGcsh$fM-d2{*_bsH!s+X=bhhBals&j1B$}1 zQR%g2=&w&U{!%!tU+QD*&&H8gS7ssG^dXp9G--qbM54%?)>nMFxD`#79J9Z~WFz|65CjJ*_$T=n7>NT&ic5^Y! z$^KP0|Jt2Z_@NO-W25?}aH|PmQ1I2C_pi%=?8n6Q6mlYVbQ1$4! z%u21u0lsfFBF=f)7>JWJLATe_ldkrAO6`kz+ALbS-7YOXw24_QEiI#e??=#DxfjFh zu&Y{?eDWWMl;xm1E6h4L)K?7)T>|2ze$nu5ZiS<$eDdpyc>Oyb!6)uY)Vs)f`y^24 zJsfxjWB?!sixoQj4y%P-q>J0I=JWa)oa#q2KXyIxmx>*hiyXSkl9S4|ECz})zu$rE0^EKuKs~CXS?7sAfUh6!<1apc7@xVf zI>-Q@Kfe;=gI_#}mtV6J$?{6Z-eks!g~LuYgHo?auo_?2K@ZjYO3cKovHsXdo+y^o z!nqklX9X%idgV=2?eoiLJ^W^kG}2At5xznmewC);?esBAWwG#N_7-kDz~X{>H@3qM ziR>4myIt|c5oO2LxU^g|MYRl`8<0&XXIE@s-#JxR>Y#GQ46H%cvHvL4FkqEAg)&$r zdSN@3FvfOBhgI2W4Ryf?G5nU@ip$1)4pnoAXW^n6xw5i?#ib>Tjg2W!cQvq?8fq_! z2+$HN96yYGcmBVqaV#kF`OS4MRASY@_hc<%R<_&Eh@?lI1;6u&llbH}7FD^#&S3Mk zq(-{+GtQq-6Keq06JD6e8fI{K*g&s7i)8A2$eBx!PMwQjY7fHJCWQ5twnH)t?k_;j ze-r5=pMiYrc7!}AdSM6AIaaqxoWvzd-m*5LeoZtDvMcduK$lNf$I;iWGe^sAgU%x1=0TBb=IY*E*s z0xV`%N)0J86ltiAFgd`ef&!^g54G==0w@=(EW;9TR3o>q&`}0l+nnUy#sp`z=5Xio zZUuPksxUt{r{?!#k9SVQtcp)sS)Rwa-~4S%B*)C@GJEJkMK38r>6MYdV3Ak7f`JC; zBy83sUVP0IK6Tfk0;}}^6_?RiJ-|;re=A=9oH6u!ZP>tp%$jRpCv6o7IR-t`p7OI`uFdK8^+{3Viaewoz5tpso@gN0Ff za~Ld$6y@hv0a-~JQF6$Zh4e0&X&m{zaCD+sJjt^00BcG`_ML()EGuQT*p{#dDAl#T zT-?)2ub~oE0n_lDQ)9zoRcr6oG37tSlaMNBQG-lY{k3)l)vIW#kdV5U(Au(;8W_M) z2_1DXunr9ds)P?z$f%8QY9hNSTs(dl|9Jd-^r&-|?_ptKL8+^pq(^ou9su26If*Og z{}h|$ehe$BVaKY#%6*m6yT7c(KnLl|GtjykPcimm*EXn(_u>!#_9zaV=pwDSCq89n zEWj0e$8h5h?Z7p=d49zeq(KASv9r+G{#^98KLf$^S*SI})Qr(}ZxElY>B>NAjmjxYc4QxRQGGf`{|)iv%EkjM zj$=n3%}Tr}12Mnm2RJ3bl4W_9?K9VrYvq%z3o>8_SXoWfl<8U>teG#e2~F(L0g(ZU zRt5Fq+N=z-vg;13%2Yy8y!mphmk#@)9<^{8Keqce{N>>*u@Fy!&C)!R^785`#v2hX zYwgD~>tDfCxVTQR&Y!2&Xy{pZtm}iBc{(N_Ol6TeWMlsdT-Dun+%nXreknoP!)vdP z@I%+`#{T0H-*~K#gC}Ew#Q7Xe! zJbPT0fLj%a`B;yV^p+KunNdjMHb1ubYP zB~TbuP*gv1*5C`}DzUF|1pjK!m+`g5J$Sf1t@7PbTfzm+V>r8YR83|fPqDftGQ>MS zwS+J4?_s&Er!kvqh1fe=$5Zw;@vIA5*ghT;i|ayGPze7+AWG8kf1Vt6jEvrwQODfn zJGqP-5Y9_ePOy|_wY3k&wmlpDtxuzyAtu$DK!bp&Nx<4{wN!@)&uMu0p@(q%=rQUQ zZNm;lV!-0L4!3RFiVH8iNTn|m^?s$k_h{z35Q|?#wDMn3iW=*YGWJvkN^6L#Ft~QA zHLtDf*aV(r*?53OZCcGF>WW*iK6v>xSd^|-)%4-wrypQgV&JeVaa_k8cTodb1pZ0M<X6Qz9BbgOzH$P73Dv1Q&fVU?4?leqe(E{nXryhdr}g=yq4-47 z1YGE6DHv$`;UrdPo{H5S&qq3Yi3&bguh&$k!uZ%Y78e)s&;R^s-16mHaNxjx96o#) z%gf8kp2xmv+4ZPEIfx;vi92`g#+6rIiJ$ma{|XmfeDUCoW~e}AIq?ffSN{xweAv7D z^`gxaM{EjURhD%*C1>m(0oH&}+e~5RVDOlYlHs-W)J1sJ#s@_&ZN*0M!>3Ivc}u1+G9Eb|tK9gJD>~FhhIMSyU4)2|FvypcK3AT{PzL zay2~{nEob6lsv0HZc6)wu_wPx&j#vlIF7F$nu9E%X5Cog?n52?)?XjR!pau>rx!N} z98P^!^fL30J|NL;?7;H27obgQpO`)y_2z_Px~%TCnk{_oYhT6Re*ELO_10SzNU=x1 za^?+0RxZk~Ey&B2nHu}4?ce_p9(dq>eEtic$FKc|U&jl-=X-P-*WPK=$1vQ4ZtIuP zSp8X4%Q^t;R4{HG*K0@}PdZc=!LPr(U(LQbJGy^Tux2Qlvn8DB1-^#+AHN0D9 z<+3aol@P)KE%zy;!@5{y5kMi<6g;~|VSI|dK<*EoE5Q70AN@LkYNLtmWGh;3C%9vO z7dL(Sn`8v9u-zEx^;3NE8%uc0OU5Y2_;G)Gq`f-=l$D9gF~8@Ph)M0MHyhMD%f@m& zP5t=zIKKJ71NhZn`4!xM|9zO4oKP+ds>8#?rdQt%16nG?P7s)3R6%xsX)4wB2~r<_ zFMe6o8xk9{Rs6Q{wkf{K@JxvseGjwU`>5|9YE&SQ|Hwe_Sw3W9oGAv z^dNp453qXlYHJ=6xa(`Z6ftC5dijXr?);o#nUtiLj*-$FY`5#U?Q0z}x(n>x($s@* z1817A3?((wkxsvsVpLMIs?421z<`v@hu`qOz=DP_e@oDMh>BRs{+$Y2@UJrWXBk#8 ziNFUwJ&&6oSk3ZSPYbfD?9ehBYjr=0eL#DWwljpJ$e-X{OM2QWiNku<-LZrDKhjw9d&tgcGr33S;v$5^wtoK`~Y3Ux*1`!||wJir<=zqUaXTAn9sAd(P6(m0K6z_s}P>S}%}tiEz}4ZZwUPJAMGGyS@hz0o4SdU#;GtXET0N z1Uw;u6-UK*?C@iF@rz$f2KJ`1Q^B|;2*aopt5S?AQf>?!&z?bzr!`|WZ)$296BFYq zn#Iz>5*g%IbQm6fX}A<5BOTFs#s`+ zq;Au2r}`?V+-3=o;7OK^2Ut9DOI>-@<^@&KP%;@_v)6TO;M+A2rNJb28);?6g4Bc- zzJ6DmDtCY#6Ak6v9@sHw5OAmd%B~>YD@m;q8ZUPnMN|!Z7P%T#=oNIICF!9%dl|y> zUWUe=>k&=vM2(Ei%CVFHO!Q8mKX(A}BcDaQ{~sWh4^RVdfCplupzswd_^^+I#@Yni z8w+^%>u2!aU$YH&9!+tOmZOV(bjeONLuIjJO5(g-5iXqNsmchbdP}rq4?dL0saxOx zh(QxacKr}m_Phl3v1yF6eTr2-S`_wrSXo&nknO4bc)++~DHY=?ZHI#j&KT~YR=?+L3z8myx%pI1SrA~jG4fwPHlkYt&$6CKmtncB$A3XX8qvD&N|wE# z3WSu%^?y;kh5WVxJaRC^!w2=e$}^-6){IwlevUrFs)ogBvGU0ef*@yB872u74DOlV z6`vK<(B1Y7gqOSq6Z@`HjjYbBqh=f*1DkRe zLiCrlm%I0TLZSrSG4S>8k!`0*hUIIw08iZt;}uQ{ZqnB75h;=5PKcF`^{}Oj_**3NtV`g(*cI zo;o#AR@lU&aM)&<1C;1lNh_~ zRTwArg_%Km+$`VP!*eLhxqelOXmwirgGZA@D2%T+&Zg9;Sj zGGpp=yLjLGZc@O;{#5yU*Iyn67*^?oVZOZ1!>IaXr&7;O2+Lu0*yx@TlUiME)3Sng zr=!_blBjpcVXrT{{Bo=%Dg>h3Ln~j@4_(>wCo!Ngt~uA)U>4cAvbekIy8~0F2AG%R zdKfI9`b|8svhe_G6|o#g;@F-&MDW&!48s|K8c}lGuqL(be|D;Hsw^{e&T6}XFW=TC zHGynb?9R}L)UX_Zz#$^Juaa%lQh^m<2Rv&ZENHb*cp!zM-$xR(Ft_`MF@C`hpv4gu zc!p-vvo!!#P8U%=#3axIs_SI4Ip;ZOo%3w;j^2&-U4M?`n}18R;*hez`4zp$f}8>? zdtc7U(w^jh>b)ZE*0*AD_PemW<9pTEzE%{_vo-ZtzDV1fScPN2%4hirGvhfw-<@~f zNgt0@Oofxm4Z)USz&1iwxKnLAFqN3Y;x z%1#Cl9Z?~rkE2)QiIt59SPjHf z-@2(RAthGIz8u4VrtC{DN=|oaml!->mS*ZofP;quJh-2IdO{VQp&40YyBpkBU)f9^ zW%NQQkkZi^jNg^%=6An*c|=hgNIAlZnHNCr`##O6SVhWMMo`YIJjX`$G>#Ek+03?G ziu$&5VTM7*p!NAulQ>CMYaH;KwiJbaW18PG=+uPXJc{aiwLOB zp&q_Sd8BKg%6tBpQ3Xcz3mjJj>o>*A{QR5(lO)w)9Q235#3@s~ui8?`^9pK)l_(I3 zsn=7*EbB+;8Q&{b5&Jv_vKK4222Q8voeVI&X%qJC+c*62Oy^1;+mY42VW47**>zoz zYoxCdlaGHn`_azQRNlNQzC}|_)_RlQHraT9br?Nj%nJkT$}OVx=z9K_9nN-8Orq8c zFU>=!b+koJo5~u#^p!3amqPV5-_)#|NhU%=vo-ukGcl@k*p>RLbgO*2bUo-f2dcu% zIMDk~HZR58j+bDkF$yaKav)IVZ9UAk;t$+a4W8D+&F7-=-2aIFwf`DRU;bkxcYOe1 z(lNExjiA1sLMoP*b3x5uNIjjKy#Wh*UxC`>E;Q>#?Nf{C^)n8f8k{t%;?4vHFA;{B z@!W#%j5z7?J_H3z0jl69mA6>8!;YMg7;z$ zZg_3K;N2c!AB=!vtMN?;X#55O#xd2HE$F0~-evA_4X_$``T^EO_PB}d z*z~;rh~8B{iKS292t53ciUrysMn$!7*o#5&xL|Ml5KH4%;KVtv2d2-aUe%g%E6^cb zbj+!Uhc!idh9RB=!(~;96$W~r>h-g8JJS7Md+oK#j>r3A73W8@n$*4#16F}`amaux zRp%rsU}CO>Gf*X|olyw7bAr;n;Ds+#FQu%UrK4l18Hi-9SS$l4;E5F%teiS8JT={d zm)d3Pr86C47~>?KWZ7^r-A!2@^LG~7!7xAqFu=}ES)_NqaQ>F0QwIYaJr?1>BN|P| z8zEY?&`jNBnH2`iJp7fm(@qJQ-@Ns3SEukfHXEa^^6C-nLwoEj)lgMzZYixB7k$Ok zd^#&Q0C@@`oJOocBSLfbY;1bjyU}>rU#O5QmSyBc?t&IjO%e2w)z*19c;3Iqi7VfN z#+D1!K;&j?Ot}=Wy^7rn*e@!oTi+_gjLWX<{j(p{Fa6RlscWi$iL3&e zGEa>URn=l=3yRGo9K6JeU1|R-dyQQ?ci}}ZdJ%?+YWu0VrVZM7illUCk^1?`ieE>q z%$$}{WLl-wM4xj6PqJ*tX};oj;a~wU?7FDfURTD0>1ElmihK*s?@Ed+EKMWab6-jZ z-bkgLZq(6;+%K*njD-s19%H0QAhK{W$e5K4DU)r3r}dJ!S6++BNJmvrW8u_%fvIX# z5!+XY4agukC3aOMS$Gu!h!ZQBRYefV>TzwsxKkA7B7rYbzJ8Z1sm))<}U zKAhO|Bj|6t4pD20dj9HK^<(!0R{1y-k6}%rW0P_h;i-Qj>ozUQ&;8ub;r82a$7eqC z&nmqF@>KWG>P{B|5zDfm2Ra81Tgvh_AE@lRDRl6|7rp4k*tTt3WtqXeA68Ad2U5*j zIG7sWvaIJrEvt76|8P;W>5+YTq!N}1)u~5QLpVg)mtw8<=N$K`uYVlgq0GWvkX$=; z_nB|30-+A6gWtHjPr#+W;FFEW*pl+#^hPPnZC5fi%qQ1t;A*y!JHwasyD3ApdY8$_)ZoOnB|D^O$g8b9(1=~gZ{%eBmLUjfw_AL zWa@AWTbEv<*?QDAjz|3Sb07^hnWrU*=nw_SvU>W0BdNK{}EE^KAsIoi^ z>G+%bMN~$8-TmueOg8zz2Pu1N&WSGIIeCffYb$W#WQcnn=+TCnmtIBb)L&^co3qKt zbrdbwvQ%xd#&($TgVtUp^Tk9EIFW2ZkAQ)_toh5WXJyXk6Xb;r#%^z+ble#pmw1N! z%3WaSLo^_36G)re(cgR(;^|A!+jJRZV;19)?%}gT zXoAd`?gCR#04KX&mq}0n;k7yxW@cvaj(5BRzx7+ch4;Vz{mPhc!QH-tOf46tV@}$# zH;hZd@i!I99QM+ez7%JlefGdL3+lIWk625Ba|CW_-+5REGRhq$&NmTQjHA!WNhYpZU z=_m}?&{sW*^0@7sS0J*ngD?(>`s)sF&~q_jfn`^P!OpZCiMOce2JDI5Hw&+;NlCtu1h+ z8F0D9m6~lEsEzN1f$DXyfBit2_+o8|>f=Hmk~(WvLV7ldAyU=`o@lYvU7~2iGV4^; zj$#AIhGbZY#6l#oLIu|p(qma=U?oswRDqY~l)%c#v!FtnOq@LJt#!LKeC^H{?T+$O zM}rz%qZT+(2qg+?Wx`GnQc}Ba=z_l2+)C|n**vJbzGxqyE)cSSA z1eUx6v2Eyjt~_Ql`tsi*)AEbTu&rj(1S#BhA?lmY&5YCbpWE0ph$2(*bWdLnP?=Ad zXQO(&z-!N8X2pY`U-FWd;2;0-AMv}t`@8u1*S}8t*}qIEW@=xnoT51^0t7L z;8AP<*^q$MtYI->CpDfPn?*Y%m%k{W2rNF(ti{5r*qC8L`KHIXGDTmgs0?@C&oRj( ztq!&ts1<@di-De(+`R#g|CQs{B)kbGRLilC$TlnjB?2h+yykf5cDCjkgBFKCiK77{ zb($KM@&t+R{^0sXY2PPlR4$<4Ae)`9|M(zP3Q$HZE4%)X8ytAG?m5qY{`1vx_uY5n zkN)rv@wb2bw^W|X$^n-dm$f_Dsn?{c$D^>D|gS zEIE98JwPXryCX<@AA@;F=UZwXu{f^Q=8>p8?|!oFS1cPd9@arJ@a@GBYNO}6ejw{s z|Ek2vM`HbXIgw;(GVDP2IO%gm#xnB3&Q=A{F|X7FszI6q zlVw!-on&iu`sDR{3EHb2bjCYo8u@N!6ViTJE>kgT7@`ccPNnFEi4RS85C7he{l~}3AjNkEOd%3f0Ou%{z`pLU+KegSb7kG_Z$Syl_f9)|~Xp3|RQZa2A^AZ+r z1~W_I5D)B+v9yxsyQx((Ug`Ni%hGJ*tJDCOv~13P;*b+XtA?n3LLzftq*^l_ts?Fu zYDO0xh&yIjR-Jm>`cWUfT3-)a$-?_;*Ha4*3bZmOoF@Xd0N=3Bj7vS8dQLsF$WVVU zQ)c#j_t(m|>I7SM-0tW5ecE-`;W}F0`qsDNt6%*pzVziU<5Qpd6dt($e$33y;tg+j z1AhE9uTi54+uoVgEStzy(??m~gB2XLYOqDyyUW$Axg}gz)n4K5WuE z*B)B!gt+&CST#ruG6Jnyq*;-$3Y;vtExV6vkF{OpMs@d*gmW*p&CNs$>ZW)Qt_H0x zTC_B5NZ?v6Q_-wPIE?+pRkif0Z%6v+8R;I6#Q*oAc*&Poc z=NRqRJ?&|D^PAtS%5WIy`Cyefo~F8IQ1{%%2+~KWZnq2G@9s}VgKTB-RJ-*(G%DCy z$@g6r*9Wpn)faY&be?aHRKg)b9V%a?g5u%|1}LvfX$z$f6zo`{B#j4T15%N;aLh?^ z^ceLJKEe^`A_I(4#lO-OU*uqEvv3-0n%b^(sUw&=50wFxIoZyZV`Xz~9uXPcdp&{G zl~uG_yyz$m0S^pj&3P|OPK?jy`Lw#7qJX13aXvs*R?KjbdpoOQy)~yn45cS z;68!M@+kwW)HsT=tBG3J=pOgbjJ{r8?=0ni9PFu5m29XO5=CE)bp%2mlD!j$ir6;HIrSTY&4|?uP8c0(n_N~j}MIJdQar}gCLY!wk z;y75s0hgRf*+`@Lt>_!c4AO4qB5%vW8&1znc0BB2oW9iDFcib$7)@kf>2x}3YI(M2 z^=uC!8|RgQp4a=?!e4zIUd7yxTMJY)0|#kj1RRn_>{dzFmoVDQ^@DtB6TA3jSu)x0dYDX>b-h=bUIm0o(iKE@~S z$I#kW_F?uuwgdauIZ!A6I2tvW!bp1=I}6pWgMcyJipLWSO!jI zDqIcGE={^eSRXV(&32}w>MC~V_9HhHlCJ_>X4WrQ+n`p++D!f%mI`#D}UW?pGv{` zrV^kW$lSC}GL(QBbm#S#Hi{~?aRG~m0lXJ?(ckB)?XnkF_9DuF$876Lj)Kv=Qha8W zt;?)2EGsfDKOU-?!<5=122#+IW>`FQ|Eaws~#S$*vvNvY7_qL8t7*?WxF2njQd%YGW*h;9v8q$d&}pnDpAa;uNGFzL)=dvg-$;1=kbbM$GWraHi^P9 zfARJkgZoOdpG&sX{JWC<&*5}KfQp-~H!KbG+c^QoR? z3#pk%AvAH(v!O7~ElFTqhU>DP!Yc984eLeByyY#bm!uhHOs~8nn}^NUvFjDslyeWc zeJk%gQS2(s1NP|2wSp6zy>@4?29)J1bY zeg-QWp@)!V!vYo;Q2*Vyg9>hrifUW-5?tC_wm#%Dst$SBFrW?=5<5w}G$N>B|HCob zU2B`tH?3#LF((%6B3Y`8?W9@Q-oYCa-aQO%s>$qeZu1bnzH$z@GnI|%Je!NMW7X?9 z@K`T#qoRt8Dd>AiQ+D(;4KFf|tU;KK?X!mQ!o8G%(i*m^;@xM3VgRAoK<$v0;&seR za8%hs!Q`YWZ;Zk)+_h|SoX$*UTYA4GHZB{)&$83ZLDWPgRbWLdi#s^DGvu7DpGA%c zerX6hQDrIM3+O^ONZK%Ts z!4Hs1r{e9bAII5^BiP^DsaY1;vLeH<@=(bZRCC);YFSkl#7+muQ*oQZl-OCKCejF< z*i!}ntujzr!&Wr_QZAdyvPcVGehUgVhr!F{;8l%BZVBplpr4_bLLK#q4+gJY1T4$0 zY&jYuy8$aTIGs90WV|2KV-Mw^G?2Z^u!fZ4umZNn%`(8MgjdxH9|)k(#_TWIudsn+ zV^3B8vt)R`N%D|@YXPGYN^kKiX&G?2hwaw{PW>42;muFVL5qpX>Pm$DhkDTC2lb6` ziZD~7L}q}>Dmsv<7y8TWG!E$lk}R+?d!YF7m8hYI%f=tZL%kiaGrzE37TdBk*o3f? zg(B-GG<7nSnf)rY3jtTCenS;YD-8#O=Gj5X1FU5T!*Y$(03e3|mvmHCpP6ESP7kKb z%HM2TaLU1`SaHgLt{NDN_dNhujvIrDR7$q14)qRBH$O-9u7`DrTfgD0qh!DI_Lt=a z2NPYOmL*u3FI}nvU&jWLjcvo?diI|1wnWOGph^)4AFzPo-~|lU;fh0*Vn4f{oR|ZS z97}TtL+7Tg3gz0Tq)}yT<;b#^ns?rij2+Q*HARYNuT zg_-ds$j10cbDoJyj(j|$T3DT7wiP5QhPnbSp<}5F3tZMF22l!F@Sbn*HwR<4r?R+T z|K`WsZCT=+ns+XID;=6{Ud87qUca~$#|_4D&aQYsI{V07y7wQ-LC5`4=y zaFf-^T%gLHFK1P}ol<+dk5t0_8^wObvY`P>wdHs9KSu@l7B}N@g zm7!ht4k~9|>b1IA2d^{CV&^ zRvSn*KEt{Zci}8NNO!u&oymP*9HIa93QCS;l?|n13rkEL6~GqZ@DYh#9Ax=rYGFwQ z(}(ropFH-NJjTihMHL=Ho#s;`8leg$fpu38>BpJ2#YL1;If`VpH zHBqU?t*!Hy-mP+4RC)gI27`CA?(k0Pb1xLnnC+3m@a zb-T;G{WRYvob+xr&&07`QTi|9O^ET+*f6rOZCEUCL0{g4Tc`k^V+%5SLH=}KWgt|x z56(6!jyvlz`y6TXVmr@)gB*~}Np2gAaE3l+Uu>!N8^mzxnRPHlHrtJ~%nO4UT-ays ziNTDo9g=?-a(inF(UE}LF#I55eQeO|hQ+<8y>Kf zd&9f%_f&wdr^21BnqIrGKCCXHN#U%I0U(O?SU#SlJb&o=KqxQC{JCv8*?qo>Sg>Ig zbMUqvAKP+mYuP9P2l#Dyva_fPrpWB7-Np9Fn{^C#SyFM=0-<5xRF!V9NC(qdfb!2t z%tFV=GVob?g%52c`xVQE2P~yY{XTA?kN$qD7c)k;&In6ZoHi;cP<&~kV%z){4*PX^ zz=Es+WMKiATh#O03|vOCmwTuZx&}=RHjY6(+nHrOSdV1R9tL~Ei!P_ya4&Jgrf=Y( z$F@=5VKd8^{eYGUwA4p5HK54qjF~4-H?|ttu~O6s%y{zBD2f%!(lNCnBw^8^R1f#D z#&=x;fpzbPKt6EWFU&!Tn>(BqL1>_T8nwCrbUwp28*kEs({DK@j zjlqEdfb$mKa2r)IM0WFPaI|em`eO~_M_OP}YQIz2q_pDzMbStQJ z9%M{QPc(so1nx@_g8<@|xn8Y4KHTH0JU@Hg?2u6@2R>*(CHu?mYZ~Y?gL|B+@G(4Q zkYkgrtPs1}^v{@?*gtq5vha|lptI(4xas|+Ldv|`rN_E-$8oq41PwykRctib_%s;_*6 z`s%mQXrNB(>>=Ohv535|YRG^U_Vql09Ak@F7I)Q#c2*lbuv!>TdS+ZEa-jySz;drV z(rKZb*O0YrRQ@obVeTKNEV2X?jS2{B|1-8L<$INCHwIP*JMA|5oriG#d7q+c+Qk56 z^FOW`&B-?lzutWf0GzWeOZHjTsA{GxvaGD9(CN?$lJsT*tNXD5<+K4T!ly4#+gc#A z(X{;<41|~|123RjE%bmX%cn#Yv@1LWW}Z~Semtn+D0c#?w4_)W`li3gJb{FC$BP&i z;u?5VuU(L{D*tg(X{U>FjrI;$BCnVNeLQFSE}T3uiN$2HaDVK9%|2QTR+?Gqp(9NK zt(aqE)wCU})~~6_EcCSSk(uB$bjBJAXT}?2gojoUVWUGBgS`D~KOoia4}N(MOCle~ zdBut$hb1eyo}HfFf|c!ERZ&Gb-c^rhG3sK8%J+ip|Ad+GhYRBpv&?;Pl0)u6uJay; zJiBy&sX*>Lc4fbz^qij*ucNm1I&3&OEda}WJm-R&@KLHWKcNQEv2l>^zUqY!6Sp!{ zuqyBR&LskzoKIB`A)Hg}@s0|Lm%o4a>z1XK?uCQ`A$}xnW3u3+LCmUzX~wE@bAUgCxu>8f8-?d#RfhevQq#~BP|?z8Hqfufq#A0l(xH|kr51AZ zhtRcS8THVrh(Tu4GShb%HPJfKGMFK-7A`J=b0V_0;8pdZE;%o&Y0?8J7p#mrNVcnX z+QnzW4Q6b&a{8!*P>uOd2&jHiF)K@9%M6cYFV9sMQIfu_{YWo=R=E;EfW>d#?dcPl zO14U0+1w6d)fD@QbM8gtE4*8E&PeTBn3gOByB3h!vrKm}gge>U^*<~b#esI^?@0=^$Z4cONISC6+e!7A>i2H*2#)&ZM%V`5x#)bu3o4TEv&VrO1zwsE?U?uZPYgiUHtfx)ht)>vWdH%{$ht4?GzC&z#X;6dX z$rsqB)i4nsY9_vxQVW$GD`#4YZK)uExq7IkbT3SZ3WZR16oBGhB?ft23co$3<1k7z{CLpA-)uDB zD_2f0z=CpU`%oI=H|Wl5*2%2^P$e(3Qe0+M22jpEyP1-)-5T8OVH-q7u^L)ddI`oG zAu%D5vmdEFgECFf8r_YzI5Q~)bQ0Mwv#G=~E#!8r)U#u;c9oh|r;9?M;F(XK&u2{C zh3Q%se|P*!GVa#~d)0()jI7!u2Dq4A)oa?0Wv33SS*8`$jEWdI^B;Q7r9c+pL6N5n zu#f|G7LCV%k}Vc|`@}as4}g>lVorD)J5ZbfE04<1SDx*i_EEgzc^|`Aa0G)!HaU2y zqG59ol)Tf{1z;$@tYzNTo?19R2P`RL{4+M=5o};NtpLlYg%626__D0wnaU)>2w`2C z{Fmp_AP<0)_%Bbckrujlu-h|-jQuF9D?)#fk1uzyd7_~V>4D4*<3i0{nnyXvg5#OS zYC$VDpcT^+sdb?TDF^yj0hGcdJ$6y>z5vE6UYhHP0;A*^(=Kg2fE_ze;%|;$i(~OD z+__YtAH{r$NzF0-SpWLN{p23dv+3UVM#=D_P6mkwg-YN20Z9*Re*sptD9d`z!%9N+!aPh!XP zeI>nuC;^}n02{cuihZ);_>gpk9>QX*t6UwVei&N+pDHx@2A0!~VUb!W@hg4d z_{9k2?aUT%G5;5JTo(v%S20F%`lPvmUMp|la>M_{hK-kAsxW7+ltv5XIt$K(nG&{ z63>0=XL0$tcQE~~zLQgAMML*_c}Y3^+yYPmIaoPEanQ#dQ3JPaWOb0`v;!=~vfhD@ zkjC-|wY7aJis)K#va*wr1CS3|zEP@-WdUkbejFFSklAI7qvJABuueZkqehKbno)v| zx1MUE+<;R%E-zG#nSH#J5tqK^3{o`)DXLH$6e1=t3sR{7i&f0TwBx|EH=*@H%Fj5X z8sIXHS;*!&qs^vR!Lz5ohI3j+@R@~6aj?6Y@)S9~l>nE1_E_CdK;YE{yqTq=%o|?2 zJcI)_Em#nfT2-`6%d$)hV#0#@06Gch+ffExo|CTgSHCCeJe%vauFFX}`(&;Y=FXxr zkK4|wVA4B*?|arQxb~7e>D^R#g%2Izf%YE1O`INaK%5q+@`MW z2_%6fSH|nzG*HEij15cmqH$CN1y+K--psTlcs`4et`!>4Vz&jZS+N>;Y{mgv@GDr3 zrFvxBN2w!@$_%tLhNak5dlawPb_5S}_TZmSUV>xECae`fS{18`wa#M{bphMnM`fc5 zwLg|N#EaZBUTClQ&`}W;NZDUunN%^hR^}uBIC>9@wyHGyNlnYmfJth8rTpF?3m{dD zDyp4CwW@pqzwp{GVc)ig=%w_aKSYJAm((ry9eKz6x>p4A&&Q^jOY4bQDjBs z0<>jdGC@Auipa_?FujBtoXmh}H@KkbE!DI8=+gqbBJ!6YP{pjgdxHTUhyJF@SW{e= z2B=_wOAQ8hx1}3FL!Z#;#<*bjA^h}fzk%`efc}D@f;APk<#2$hdJuozWmm(%%1Jxm z<<7rW6-?C!_3!Xwn8$0d;pMahEYrcYEZ&1Zr8e?r8JI7!^?Y}S?bz*MEX#^p0Z^Wv z8$A#FwW94sxw%Ce73{>y3g%XOXiYT{O2dGR^Jwl+nVPV}8nigNCqGEyu&kN`RuSz> zlsZV~m>Fe+ac0yirUtDbHRvdHgwp`J;n|sUq zaSQq~f*andOl2%BN{8`jjRS>(b?_|Phisp4Ojko-s*H6x?@+oeSLQvbSvq*$Sms4$ z_CI@Pw6EJuF*!bu*Z$}|xayMqknP37{mX%y@b1S4EB`o9`k_Qxl22J$f1d+Xg>~21 z&QvqT;UK~LH@fZ0%4y566lmRq|48lZ$BAW4GldXr^Q@T!K4{s+tzjO8P`lQ!WeJ$E zfimAMGN(#9J|1#AOQ14ehtt`ZeU;G^OV_zF%FIc))p zMZ6C4@q6$=Vp%_}TBLO(^*uVvUTzuN@&T#@;FuLP>L?t{>Z6c3JK(4eE6X^#)W+UT z<7A66%uME=Jyv^UrWP8&3StE;F?9*{*yfW+1ysDS2fb1WW4cNtJqOI3X(?DWA#U{C zsWM|ME;tGAF@?fKakt zwQctq&=EjU9Yo1Fep zEFMs)YU?xz;WIF^UW)|An))PPQISrASGF7a^Wd=)#Ijnd*Ni1ptj}yOEV??#h1Frj~5gDAuvopX~ho9%0SCOE$vz+ za;Cxi7;MqO?&uNh+w?GAI8(!7GNDw)huWL*DD^U)?2ju3rdXiU3n68xGWWRT@q(4x z+o;CPtKm-c;R*VfsjXmFeI9$8bJ)?CM~e$7+=BW!5%yhhJ4C!>i=rB{Y*U0Yg;7%&;| zQlWbZQ^*|fga)oalVXL~(+W1#Rxuf_U?OZI5_;w!9=g;|ThxxpZr7T|S(o2RWwQ#bL4opmBfTVY zunv_0jaXalaa0yr>2KZ-)Lq8SMSm`SE;fbHc9XQS8v;FM&vygUkP?QAKY9TP78oKMM_fZz}U<3N}RG?Hlwkg@+IW`+@SQidf>Ylp04;@0Y zUc;{GF-`u$yysB+NrgJ_UC6{R?^0JCIh0wuZWGHNe#q-ovsXyuaqs5>+2mQ@y~ZR7@YWEDU->DXa&>n1_qlc3uVoLZp=BWJ^6JS1dt z^40zOABg?XOPJonOf`gK-wLF~V&sahF!u{*PlZ?z^UD`(64C%D$|iBF z$Wy1(6gbWHRER7d&)Tqb@{%?J2D7U=snOF&#wKyj)wdJSFT1GZR08)J<}J&?{RIFT zxCuXfMOtrh!>J9N?|~c4=#MfdQPnfp$2;)`+_zCf$PAM+0|#_oDNBx*<(;DFBLcsF7spY(iAGCQz;l&wrm0|L9wBE1`U^e4c`$XIU|QYU*b z>mj-^{ZcPQr_a5RP}^OiVa(uq41&Caaao1h;k~f?} zZ@(!FpY8Y_0r1MMtj$*KD=hv!8L*OyS+RM(g*cc&eVfGW9-|7{lZ70-5$KPR^l!p~ zY1s|>59F^`Jrs&%R+*oz@BX?4D;}&LgWVYTd;6>67chUiIEwnRo}pu>jokP*)FJg1 z93U9}0a_x*M3VO$0xms(uh-Zy!oCz)K!k@5Nj&g~4*gPK7bp(eHO}Sch}}oPLcNFk zkDVZ+G_keuNz_>tgv`9V^^7#^{T`Xfo;5v4I^cAH@r2jFqCDfN@oAvZ{zQp%)){!D zSy%h?k~rt<;DI7nFCiVkF%~4Z(PpY)_M~|MI=iHE2pHT(*)|4`XV@_;tp|Gco#db; za=?NHt0W+%J2`{B*WZJBDA^tcR(9S0n5GqZIBA5l_}=Ua ztoq8x4pIeg4VUpNZ~X*H!l9lXa%R}Dj2Q3tf9Ut{SESwisMMWf!uSykRs<`yClD3P z3dl7B`qOH}IA?c=3F-|y**BHMYm}KLWH$2AhI%I(;(6TK{f8gJ;gfUNyLAiB*}4@I z&6*ly%V~6Y7T)GSdDJr&)d^&H!ib(y5qZ>Vm$v)#%MPYBN>dMcI1i6QG=rxD-LuBy z5?N1Xw+E{RhE_ccIi!s+9{D=Fjq?Ap=Lg!}qg6!X7sidl^h8?B51@U*0`oFl0LfHE zvqK1{6IYgKj-DDOOWuipPT8wVoqJHPJp(PR3dYeaHeYZY4O!#^BfgW_~|XXO3Z$$D)jry_*pW!{~S(RIinaB%Z-0UZTc&?lj`LwiI7ZW z^L*+SrKOB%x#A!9j&Y-1?FP8}A>hQE$XZt+sng=z?Ck!$5i?VYaeQeJj}mb4Bo@s^ z6Jw1=W;0TuSd>AYCpE35hn2>XlpH>l&kQCqHwn$oN^pR_}F+(kI+fC&MET)T0B z%XADLI$Fa`AC>sz7YGD;xhXJjd?MR+3t1osEC#+*=0K*W^-9qo^>EAd6n4(cVB4lm z#JXB~@(CaZ3^heM6yxH#@i=6!G_jge-k0h=Y*u`fn}T9PiE^0`%8w~klT$F8ss;3G z*jYVdrY7kgpja9YzUKX*Sq~L^6UIny*jiwX_QG*Y6`6W$;XGS+%ESk&s(l`bEr0L+ zx-3%#*@Z!?g2}{o?0e=tnA)-*#enBU5pHIF=63s3nH7tBNyqjiO8{)(Jj<|LpDWWF zXae#nz)G2j_i?b+!S&*&aTuq$oRNUVLaJetY>a;=Bl&FZDO8}vJ%$#rLbK%h%-}jo zK+7yEodBP@CB%C_0z7&&$QVZqE|1Y}Pro$ZcJ*if)-;dTbo$Y~PL@ zGqV_LHVIVf2H;X<1n2X#Go-!{pQDY;iMpT;o1&v-N;BD^Ok)LhJa=9odjw#8Qv855whyyUIgZ_zew7+|-#gR0fUgQ>Na$a%B%3l&bGJQa zq!?t1g1vAc4?9jUangHsD^mQl?W%`V^zicVjrhdrYG`-mj0G%~{vYE8`k4L&X#iVz z-UW{2kTETnRat;?0n99>&TDb@vkGe{Wy28byn(Kf^rGkD6&{)vESaWF?|^OeOz>tR;@ zexMq7JiwAA!)r>@rzMNs&kTzPX=`J9DmwU!;Pv>iGXbnv&M2e1FSUPzoBQv?JE#Ng z-%0K@4D{#{;Tz$tC%gS+alpl`qgI$r?3hh(<@q7@9|R7caHiSbfXoZ@R}t zu0Gmhsmv`$76EzY8U}_g8QqUA(y}nGrkYY=d!@c7K06F_taU!IMQrS{eS1l*Y!aXe zW%CLH8&};YWlgCYM021!ZFvk%NnH%1t^b1t|2cxh6vb*3Yoq^E|es>V{l{SvltjXImw6*%dP{wq5n{7`>X`#u+4M zoYCEv-*_p$L@)0udeRGdTN&Yl618LC^IqH@utfcH2I%(w=M7#|w9g{s z7uMbKfQKCph*?#T#|b82Rd5#la3^+NcNm*@-fbw2gN$A#!rxZ~NW%bX;093yDys_m z=NK7?0+Bi@u%B0~msEpQpH#*-61%$jOkr0nXFOoN^<(J&%J<@SvcJ5To_0pqPkDeW z9B-M*mx%*Dg|yH>(x~ZazYZS{u&}I$%eXTv+w)wzm2mTNzzgot5R@0;kZbr0S;DYPELJ7J#cMkP>1eF?ShTjli{Q)uGw~MP$HkHq5D`z}lvHX{hZc0-OSck0vK{|gZbsWc+!c3$B!#NuBleb^z7v` z)o6pcoy|Ei-u8j=obOUk1CLp>gRT{u$^5pE4cJzZsWKpwxlKu0rsb^5oEe$NceX_- zgDQYjVZT)Y1H_Ui_NY@E9#>Hq`q5UL`>cC0IlaFEsF2M(BwV1f7kAQ@{ti19NSeEMZ^xh=_@~Cwp|@Z7e5ic3HNcmKhxwp0TRqsC}qzn%{78-`gu0g+x@W_XzhZQ1`O*u0LRdcg5#-O z&zYCLs0FYbCoHg`2x|5?kTX3yoCx_C!6c1Tk6^5Z-fU7}wf)Lt*nPn_kWY5%BBbXO znq4?A%Tr=lei|37Y_CIFa@;@PV^;&->=v-BM|({DgE4Nb9mGdYcL&ibIiq_CT`?Ng zT=Fh5LI?k55p5ywUf29MUc{vx0-aMZLI;8?KvkTR*o0N>~X*i8I*o>*Yt2pNANTvi2?4#O$rB`fl%uv@W_oxmyyI{07o$ZzLB060VC zJBDGgFh%~&zs7O-6+A?nFXLW)SM3vy!)U3PitaNU1zNN;>JnSYtUogeH8^>t4W%Zg z2IXWKGG+}?csM9C%4IMQ&aScyioolDm)b0LS7rdgU~^<{j=*aH(-Tw5%iczcSA0n5 z;DS1WM5M+x24}7wS8$;Bnzsfid+F?j4REUnq^PI ziD4C(>jfrE46A@VJc&S6as&qI5sbEBd`}-wdES=^F_+=8Dh*CDXTQ=ZyDEPPf89@0 zwVpcJrrx>3&M)(|a+y`E*EuXWI=Gp>6|WONvGHeb{#HcbJ5acu#_z&!pn+dQo!TG6 zmT@Q*?$8}uoBzM|&OKI+>b~ROGqZc&*BAT%+t?7o%Yo7ca3h{dfripXD5+XfC2bMl z@DM6}q^YVjtsqUKR&9u)R6+sLP>HCisG^EWA#Ia?P^GGAA(Vy$gRwCNjP2|973D$2Gc=o3W zo?9=l;b8^ z)k~M*;?-xNt)`q;=i3;Tsgw?#Y^tVd?{?eDK51 zQ+#n-*|M^K1*&eK+Y!ysie87Zb>uCw&JC>Fwovki-3ULiw1<*)CFZb^4BneYK8?+% zQVK&%3ldmL@@p8*hVX4Uj*r8PAFe_x1eUk2e-&X`gxyvknVC)S)((N6Y!c)i3cN%B z+ev*kvvWx?F0gR_>`yH5%%h66Bt19KHG5W-D9$rZj_6ace=Tb6kN$g5b+1%R>u1h6 z2dkElo2cSg`gM$3s7UF?Fsh0X%0=wbI-^D89fDJ)Yp9P7nIS!Te4&6~ z3))2(_-bI;AwGRbm!T!R_n+G@!qj3F?G74Q9WzuxE8 zx#ym9pF95!@y!DQ1pjkbNM)UD^V!9b8|bd_d|b5JCjSZ83jR~m?sZni9hY}!f$*XlgCt|H8v?I-wB7U*K_V*5Kv_{TysSiZ)Plq zzN3L~_7pz)i%#yYsOtXJpSy(r%DF@NMyUm9l!Y(PL#syQSBi0pIZuucjPXn=%aeMZ zOUOqwW{CFPjDs9O>MndAfYFgmwHjXBUQLs)q>}+}+=sZ! zh)mm}5@q-v809unzrhW9q5G}kD(&%v$e67VW*G_Lh^bNX^Yx#?|1zw61Fkrw$q*}j zGXRadznQ}Pw0dUD1U|Y*12~KjzGoxO(p;d$|2OKgf5c*aM-x?OXIcaZWzE|QKf+TG zG5L9D8}!4sf(MVBpNRO7oi_JyLHaq-;i+KT6>ko=>bHkRT9*~VF~ zq=KL>QgpoT*|RqM5KefiHbt2Lsk-$B@){VPI})D>ARcA1a`GdY&7o=xDnY;lKCL-v z%3?}bl50FcS+ifFu%v(=oh#pB7~&%2AoGFVY4dy`XdrbbBuibFL%Mi^DL6tICWZms z_~nKV_=DQc2_x2*a9%BS+Yl-ODs}chyLXF5=^2i`T6~WCTP;bbC)D)UZ~dn4%TeN` z#D6Q$^p+wtqR!+xT8f`aTG(geZROu8tZusQjt-#awvt~mQ0~TL!ow(c`4F)ePtUjy zW}iImG_kqy0B)<;40&vbk?pmZGYyWwpQy z8J3#^Ss6jnv@iBAoVE>e+e2l+PbszmuM9&JpJU--?h_NW#Yx^j6Uk(FYG58P3 zJT+>(W+Fgw3=U?3yItrjJQ6EoL`OcZCbPLB*MA&;(}@6;QDL0@->$6KLOO{HA8wwn`*bqyOOp|%nUQNbLSKd~C7GNbSFhqC?6F4hN94%^M@8-sP z&S?pYH9mt3higc_;ZLTk;1kf7PVg09fa-{cFha|l&rho5ceSGmupb&S!9XY7sTzfq ztv_w)(QVSp#iOos@-q5;u1x<@&%N5w#5c&E{+@=P3bD&Q;;FzhEJ2OLS!jC1QSE7h z$yVJbr#Qt)vH)SJ@Lqp%*}I#`$iyN;0;9EUj4F|pYmhJTk=#IMbB8F>tssIuuOKef zmMfQ$?&BD7nx{8xP)<9&aI-3tau_=&E*4eGQ19SFJFeu$Yb<6~R;86G5gT`4Ihkho zyDUogbrSt+nQI+Y!s2-VU-_Ek2 z0y!n?Ooh9&! z@HdcZruM_+ye4)%Mih^2nI>@m8^MG_^f!M{HUSx3Tz1`rGU6ZWo&O0#J9i}ObE-Gz zxB)~avr->S^Zyr&kn|7X3bc7F(iR78T5nD&gUXZe1;&eRjJxmAN&E_@@*AG_NKyKthFqFykY3v9$5)} zXoJx+?QV;5UmY$CA9aitxy~j=z;gS>YAi2X3MKAZSJ5D-rrnkZ89 zjsxrS-3M;GLUqmM=0}+`{dxD4^A~6UB{0~;k8wN>wE87-v=&29*NMBQpb0m_LS>4m zMK9dm?%e^aSkm_u1xCfbJTHnWsE)tC5vDVNhLF4I!q#2P;M=L+#>(Cf{c_4x$)g+_ zcF$D~aqdsjih2k!wnPwrHBnY-+AKT!G)`JYdoj?#kEzP!uy5dz=TNItx4Oz^Cjr8$ z(_&ZavY_dzeD)h8EinHIC3A=s4Z5Ig$mhNraX+yh=o zsUX_=P&FJb=%j)R%hzmiN2tYR8Rh%8kTPMl?5)7Q0ea12&w3bXU}rO>X<;573nr)#r$;d{ zLIN58ftyxU$*Tr+CyyT!^g{@Z7SuDKzrzkk1+t2i@1|YwW*i}$o#{4rd__9*U%#GP z>%)5(mB~Mt=y4xNUI78u3jaaQ`1Dylc=Xra|5XJ2X$za3(w-`wNpm3iMkT`%t7x4W z^;4Z*A@onJ;6k9~&{yYmv%nK=W2LmK4oRx?S$`5XrHX@e;+g5iCu>CTKQw-BO5mbp zw#&X#E|0;x7s&6nrTsmwDNU#_sGa$!LheswgCKQp05t>>LIb6GQJ%TMXl|;-$@K>k zo8M%{Tk5fpx>Bk;I!8BWxzLI2?*3B^s zA-km<%XoAGV6w~kK2?s;gD%qB-YHA6E-Zs*19K%H1a}+4ym4;x1t7B8wRycA607QF zR~XMhJ%l^h@GI{xO=)>PfaP+5k3o{wu`G5CA;0pUIrkMd-6E^IYT?u8AW*+{zA;HHbH_(Vs4)7if}c=KDIy=?V91zh-7SlG-O#bL^xlBS zNJ!0A<VoyX>g}KS&YN)81G=F(o2Zi&AF5lFk8l$s9vpPMhWrikw9!lX zY?wqN=A%fiZ5MVla9p*svN2HQSE^4~m6Z9KFI@cF5r;RnmxV2`3urteGIJSIXm4~r$1_rYilUGK!B*gGuf5LA z80xe)m;NTdi>l4?{M34H$lV!WlOX|_qoH!=_ zxXRUt(rBFc-{aAhF1jgOndmE%E=R5m@r6efE$AIMGb&W(sjv;qP;Vu?Twx)${RnTU z>dzzmU4fDin(nw9^^h%{)~zraS395#kwjAuVr0hWz_y;_lxJttK@mz`fsTSTElx|+ z=6`QBCo}SN=XdTTG=Jk|btVPKl<*bFCh%KT{L%`faG?C?GgE;mb~P>nj`4<_zk*bW zdD?%wdG<#4bZeIOZPue+vWh_jx0@L;`{W+}+4NK)60f-MCsOi+$Uu+kK3?us_oxCS z5()vQr|Kd8whN1Ijq552{5+_eurlDux{k)dw}HXA1gs-~UwLz}?*E}*D=-SVStY73 zv@gS3e`T$lwLoNA(x%kCYZZv2@|9I#=>v;|FuOwVyrt;%t+^KXz;%YJfc#80B zzrO@$1OP`yd25Utqp2k|V6Zp;ljh=(!;KA1HXJn~u%p6_XdPMLo z4_usZ+)Cx6dDcqxGv0wJAD=r(j&{1$kgCQ>PzV7RxBP*{JCfRwci>&3`m$c%oF0Z( zLLzMs$Lh}}|Cs&4I9V88VxtXsPfgy7h4YUb(w%7#v2w!gM?p4 z5Wx|dcR}@37MNg-hZ4503>B>&e4#Lz97h|PdmhuD5)B8_m+q=p`_kGoWl&dowZFZW zkm)MhmaD4?q~g6c^!Sl_b}d6+Svinj;z-19>x2>X*udY?tgawIvs%iU`5p!|h`Kd5 zYPNdZa@LylhiJ*RQgEzY(C1p&OpX)X@ z{}WWlDJ!rf7Y*M}QpaWLwWZN{Q@j^3IQ|HRWqxpv;FUp8vM!U}qPOfyD`oBbeK2@B z{bij;pzic?bJnf_pf|wc8Cv%i_dEhT`G8JC&~5i9%k+o#Q3~@wP4Jwt?LvPsaeZYM zoSJ(EN;1Jjn9*%XEVR8SgF@RendX6w@Vl-+-Oksl6hb`@+&YJIv(1N+gVhKX_;E(Gi`UOvU$rHyybvrbU;V=@`b-(7fJ zNFmxn-B^e9omXb`P*&)7_%6ma?m0(o*}|7mxB7GI`F&iN#bT>2nF>R@G!ZxCIswd! z%@(Q_f|*RI^92Wfl6%EzzBO>36w7RSm@0(^3Q9$8yr%}5~hDr@j28!kuZiPVm{D1dM?T1b}T<0*ot4@%Tryud&DoUv0_)Td|4 z1W$!=$3tXI5>fr)p8Pg8zoS1w0Ecq=Qv>Mi6{%r=Q@p`QxbD5t%|vmAe4fpz@LH0p zQnPQs)9NL{2Q2ojg}0aiQ%U)Fz0{CPm-zQJkB?9cp{Y_{k7`OwyI(viq^=Px%+)%y zB4-NRQXMg~hq0O*aXDen9y0=e1E#1G8VD!-toG!7d0FM1MGea(@4a*z#U1n5Jr;MZ zf_~ucyEtY~Moq6OF&i9qF`M$IfI4f&nZx4H$NU7f&`Oi~_nW+;?eSEgdIl0Mj}Mf{ zbCt4Xdcts@x* z{pB9qvx~PB)%0(~x=KOncrzLTU1u+~$lXXSp3v}xLz&)X#mQ}3=+(~x89>iBuayxv z!V5_dVFE+6_z!FcwJ1MCC}pR*hB@>0T#j5=Qcw+7#8khs1S?in$#zjdCwoQXv3w(E zVRYE}fB`Ah(UnlY#4!Db^geUVTT5rlEDbyCLVvGKNPAeO=M79X%acZ)hKUGAG1J7tmE_B*)Of9Fy{DRH%nWrmC(X=P{lBLA==^EA zk`OXe);_!4*KP}puO2J^N$@ZFB{EGEL9a(qou)Z%DS!HOoZV$zwY6VEosE4bWZFJ75wj_$e0+-XA^yNjP)cdyE(8T5y^ooi`8+Na+E1wH=fch zf0MgZ31Lve>}T5R=b`Ov@=6*yq5I=xAT_QwI6Q~McxFPf(#{eEpM}}5mn}8a#8ALFID0vBpG~SvXFxtGPq+8FX z*4GX~QYn|Fz03ovdkd14cot$WDE9xcu@qs~b$ciAhi9|pTKjwC21<6l6>wTl>Llu& zB|HknFHJ_`+puT;0n#Cl9_*^Uj294s|Wmmw{)EodmBsBf~<_9ME@H9svCv zUX*dV_MQ|yz2gfm$qoUZP^FP0>NTtXzHfS`Zfc1>*e*gW4$GV~i-FR`2hbLJaD7>C z;2B`?YBXjG%`$7tW&G3r3DASG<2u1&X^G866bUDZzpXBcJ7a+rARtJ3Xi`5**5|~E zPiM!>^~x%kS*hpl#fk?eMeccjk2#mnO6e&nPad1#Ij38SXtlCSbF} znzK!?Usqz6c;%6Qs2Jmn+zj?DI2X^jGer3u`c#T?M?O3AkZgay(8w38$(nda_B^@b;wecj5bw zM0JZfkGrHb#dU^CXUg~!#K=}Qu9Fmk3oOzAR;6bre!b+aJ;M7GIYu>tcU_!Ys&TmB z9Vlc#i08vfD8_?+*pUE^ibZxzU>b^~jp>-jX+^73@PtWdb+)P}NS{JU{`-QeNVt8R zd3@l};KXP@ib~{>&~V5qy~~oyXeUW(AL*ResxNc*!!QL?d!|^le1X}pwFXU?#^0fv z<|2o@%rot5>i@vl3isRY$&pt~Nv=UD#dc#P#(gLUf~r2bdZ79cL#-q*(GcH_QBEvm zVR3#@12XJs|Fk|-0%*)-!) zL4a1$7_41ykd4}~5bvB>UvEo{{di3-si-hWq{5+?^Yk5cpPtyeUQSM7J6Wc1S<*Dt zkQ`wo3MW}^%(q;N+b$`%^RoC4{wo{!2~KH<(u@+N@-GrKvV1Wh!0X^A-)>2r{>l0a zq{1Ok31SD{d2vYO;CWHWzc zqmi!g%kAOc9jfK)neav2{_Rsf_&J4Clp88R%7LrfV%ufsm&CBJ_h(7$$>05j;Fl7? z86;4O>*QhL;Aj5I zIyb*~kWQy*%?^W?%%osGXsDV2)|kX(;V40&UT-|?@8iC9`I;rM84bpMTCK*Df2AW8c0$%0404f1tJ$=6`>9tRetqd7s-~#61o?XAsCIXD zZTc2FolFe!Vyjv;qZ|!MHX006$d22lO?#7G9sBZ<160jW?FjPKtWlwNc53n&XT}C; zby_BdtR)rBg(MjadP5;6ht_U5bndB%Qx|4XH9@r@$hY$*`1ETP5i4nFqE@R7R*6vw z08tEvEQ8Vb-R8p=UT31@Qx!+GAV|vE>Em>g_DxBvsV|YNI^UHHPS=;n2ID!-r@S6D zWcK$|g;Avm5;u2Ty8)dWe^g>Hb~2LeMJ@=An3*z;lBt5%{4?r3%s*QL3aL2EN}}wm z^kbgE*g zas-K+JGO7XE=^|hUGKm$;7*kUkN{-Ra+=Z8T}K&N`Ly%!8QOd70-Z~{LI;kg3L+S; z3#?J>`bPe4G>Xb!n}rzHYBd`1c>cy;n(M!Vh5|7|Yxz)*woy!$TGT8mgu1thq}sv0 zR8*`d4#^VI;>JoO48O%8_asdpJ#FzOsv@XT1W8;mb&i*Z+vLj78p1qcfrMu8 z@p7Zn=d)?+fitut;Vf<0mrR*g3aCVH5LyEyDA60KqT!~~Ue{vyIW*9ldUtF{-P$yu z-t8kPIwFYj3rnuQ#|r05sWvIRR{TxVVed?%Du60Mkmc``zE@5Z~a2UQ?I z2u}|;7OY}QIGIKpcAcdE#UG=zOL>A2AOgO-DnJxBory5vA-*)c|7|p&YZGeIB%F!v zPDR&DgsDid*1N`%w{ypya}ST0wjhaI7%oqc+m#1tGi!<5t3^~?Vi0CaRRzpJcQ-Bh`+8EJj?pynuJ+WkeKZ-E=tU*^igWl` zn{edu%$9@6uipE@_lw9y;nD;-_Tx*R`}w$yVL=UawmAS3N~eY3c+kI3-_g7ZGU>|{_ZqxP&?9rDC~nd z)%@ZtyjCM0-*oWw_|a2bCuibP1X=d(_{aLRk9wKqvjJLykdqL=_V9_wU2H}j zq0H=j$}6}=m4W)T1IV9uZo@5v4-u){{A+YBJ%=g-zTO_3ck!W-F|FvaQC+ESs6XYf zALcBSCQ{FAIgm2vz8AlnPc8tLA;_U+Q)UDOdOfexNTJTKeR1=>JWbZxy9+kcw=4E> zo+6(LooGfuz*;x1O|?V(s99vFh$7Xm6G#oh1BJgsl4-}*SjeU$cOf(y-xK%+XF11m z?&1}WqUF>5BkxB2`x<0jQ7EUdq!>Bcf zQA1g%L|#H;3bP`qh#Un-VLI7+V`D1|&t3XoTn(}q#Fs1r2S`9d`#=jGK9xqtk~8Vx zi3_y*@HvMk2I0^nYybG@Zo>3}nF^xVQZ7?oXmnDpB+H9x_n-L$RU#^#AnCuo@~J_h zNxb$x znyb?PlOTixWVW;m7nOb!KY`CU}!%0d^xkQcvocZ?6>(Pr7 zdeiWJw^4d_o^$*YiSl_bSy-7QsWgJby*J9MZ@cCTIHP+P-&%(k8p6-Gn3YGd^Vier zEhp%5UZF!45ec?YceJK{Oo|}RRC};yKoksGK{N$5^*5x-sOq>*9Lcn>&^CpvDX%eU zvU3V(=B%i-bGd^BJ zn|Qah*POb$e@nW5U>j=AK1Cq!mR_E^>*kCrlcFqKCky|tut-l=SgRgCok2@~O`xAQ z{6Y2rW>>#X4Qb}ngQ!vcAjfMH4g>Q$-?-&a;;_*#EGwi6LWL9L;)d6jvRO5f9H=?q z1fziPr{DjeIp1s&i>@@60S)wzdppy;x3}gHY#@2@^P-g8SbF}Vy1+yhq7s8qXq8ls zj4l7|Fn#&s9$}Ix0nE&1QK2+_a$g$BnfU?~Mj9QMQ(}@Z!GEX|^X3?;AXF$p;E?m} zdWgl$lN+05c`C_&Xo~ z@F#FDuND+j=9PTfyg!*f_--quW#*9*;LHmAv>A`|7aL4rpm7}7w2^9(Xc+vdDC#CeMeKv^;|G<&u{<$RnXpE z?i}@N#2U&`A$G}4(o&Q0Lpsps%XV!gC&K9jS^n<$Cz?cs&X8m&h#Ua;8$te_H1msi zn#UROGZ(Iu+c&_@_TltlH0t&?Of-KX5Y^q3Di6%zYDB0)*<9+{s(}#j^BFlJi*NJu z@RMY5czN&9^MV`$yEWmB%;*qbPBxN9%nUhSjvfptZCtd?>KaZt`*y^vEkbsO1wZ9*r(~)K2ju69bv+<#`ob6bL;Ny8f=bRmtcQ# z=T@&lPQs7#CWQ5BAN3RO7EK)?fGE{KiNzB$e`06+2<7ojFAqj?RBGPyLqvkl-^cTM zM-Ua(fqMn_!Oz=+nnj0FOy|aw&ylZV$+lOf7hThfnz0ipnKYzVGqIiy^78^B!-IPD zXcf79>G}kR_u+Dylb#;`%5Us*46s)QMWl)ob8s9Vf9oe&wfR`N&U+&_68psMG^l4Y z(Fp`^rzSe!j)KXNC()s0-S$NK*Jta?mGeMQWJvGk^q<#83Js1Bv%S8%sb2v7Uc3Ly z+sVOjiU#>(`IPxyUhX4Uxb1p=kOOAXA4wPKxw$LFg6PXZj_z$6(0fyd(Vg8JbDqRQ zHK!Z^(~w;fj(3ZOq13HSBs=4m**CGRBp+*#bUup?o=BsXjlx7_Gt4#nNg~ysJiK$n zXK_1Lk^|vzg2c^xU|f@^5Ol1ttN74Njw4Cw^z7_kXxqUQQNd~}o@GB{`s9A%2&pIu zQMHCc0kaDMlX@KF=+P#M3FAh)4xh8>u~>`Kso8Y!cp7zVS&tgjv7aP(J05P@#y#3c zpO5?XPy#s!4kbw3d*d7T>k#!7Nt(K3Cvd}$Ky$qP3++30-sYVjDts>c8k2^1pxVKH z6`lddYr&}v@beUn5s+|1PT=~v4hH~)$8)0m1tlKnPJ)ON1P`y_jPmna!E{?C5fX0S zESv?s7H!;%xd+ZUOnfble%+R6bNCg_2j)!~BBCwGX&5S4Yl!3}=Ti; zznu=BGzC_|IZOZaxE|E6V?)sq#U5>Dt{UFBCrOlr;AAACd+nRorAO}R%)%By*$zy~ z*$VUh-mp7~rhc%B(lTt%!Vm1(loq@>nshjvZfA20(NIs)Yz&Kevp+ci4$~mVe|~AU zhlh5wy?%#i*~#R1eCE&e>-Lj23;DnvP3i6D22;;=QG`K*6;2NR3gn%1!|r67@zGk* z03tmrk1{XkQ!<+qoA;e2U)Cs{Sb%XdPzi*C%%AO>|Lqgi0||*~;`uLL$`cVKd^M^c zObsJ~?XF-hFR&?sBsdq-jq@gWUrFa|n=FlrVsms$JFb6JMDQ$LKD$l?LI7Z%Jo@HOv~trin@y5CnH;bEBZk^E4aXVPN(tYhpfNYU zh~|B>nbz+-`8O?rBeCeqi_?avc2&}O5rKwyHeufSVgsdS{M9K&2pow#+_RXjjYW&n zioOk^H7Xk=^}+&#@0Z3V)F~TCA{=+V?j(QRdwZ+WmaL>0*rc_Rwpp+C_4mg8dN_sb zfI}Lw_3qGcCJRU?*#X=S9Kb=?aP^ksHj@KIasPU3fJppRX8&2V%{g!^jS@IIQ`TEZ zJadWmA4?@qcV!bA5Eg}BhN#i406{yz&ws#<*RU7D*J29*>+$-d18DS}ZESiR)_cv? z6Jq@XS<~9PiaIw<2;`FNgxv%=xnk zKhj^UlP$o#!TLiEAP@G+6y!2#)zmp;2kauqlDXqM@Xq-VzZu2b74AVTe{Wj6<{#MOu)KeeXvfGhIOPtyl%GO0{bqI2gn8F!yd5HAKJfD z;}1w76cZ$6)%0;3itTF8&W)W8-8T@CId(eTrpJIBuRI(>5v(~3#+us!u_^)UgoGl@ z;ej@iqc+cGl~Fjymp8$&Hid5ZQ6U< zCN0prLlphJ|6KXO{JGm^@ zZyK*7*3%jw7myFg3FJj7VEIB``!uirI+YXUCdi_hV{3E3W}=uWsSs$pnVEf+W_=Y; z8CllPkR!bL_OpYj3n!qAt}=U1MY&-<%G|kSgji4HysQBUN3)!uE2Z++hKs0~7&muR zo$@@c+^^WXLxWGWI{O@RbRdC!`A1T^P4VuT&kUpiT^kV;wR(o5YD2V4;_q0`x1Skg z^?F)Q9p_?CnKO&NWw$vm& zIi@>}h-oP*N7ahl>H(}H*7NR|+ic2_;Cgh&{PFk0LVlFLE&@aHU?ImgqFe;&(+GdUvpl5D$NE;TAfUlwsA6z%0F&CiW2rY7DC8 zsFuLG;w%W(+0%+Y0(m)>oG#=igyl%7r45H2a{T?A9BUugSR#%vtLSUWWeCkfC*Mm@ypN)Hygghw)WIV0L%l9c-%KAaInjSWh(tpRO6(N{r=Qt%3E$I%B=>yQ8($>mfh0 zSdP3slxNr>$3~;E|F>_BX<_YJn+VdkTeGLNTIIe6#smED`yaIX@Oi7IRY;&WJ$_$T z(O|()gJ%WSBw(Eb{JiM#QC-FQTLR=~&yn+Dbe@+TWhm^&cn<8|_-U)xS-XHe{#r)8 zJc>!DCmJY1-0WT;qwYsfDs7V-qSQd)%qc`nw= zqaojxuCpri1G+>{Vzz~lLU?(&)1oy8>BN~#tJ(vlBpNG+I!} zQ6nMF1@Zb%u|bRANHOHfV22g~gnV0oMS^6;zuJ#|j|NJebFh2K+C!9lKHI9ZJ!x16 zYTvA`C>dA%@|p>(JJuhAP$%DQISLDTf?O?T`SMh#MIhIZ@63&_m)YRKB0=&Bil@tH z6RhmT#WBiHmu|P(Kmg;CC*R$Pe7x0!U`+?sA5G~V9NtODg(X0)K3TH8wAB$Q0_6K@ z{7#T8WgYCbc{})zid@|Oc>f;Bm|u~t^_v_;Y1WZnx@b? z_6vn~Iva}VP;lqwuIxSFan=g``Q!q>kF4DC4{W`5O)nmA2{@CUdF3jd&$vSQh2?AT zZ3|?!`LR|JVF6-o^PO=19ddv?2jpVmssk41ir|>@7eDS6-B6THACZ{%koQMo>Hlv2 zTbTsOxmx@bN0StJA0S7<$u#;SIo+zmJ^rqC6j>LMHoTByoez+sc95?a==lYc72QD4 z^uQUrA4>RfRJ6!S!-=?c3AFv-8PY3gkf!6E`+U0P9=JHRJm;%T7%W3ZC*+a9e>AFV z)i_-Ejh$OXP}UVEG^*q0gIr9wt3Az++gavikguc38A9HgHV9Q_qH_=m^3Ff~jUc!D zRG+>&qQ&su%@bIiE7DtNyZPX2abl>ZrS?5&%emsC2Su+aXJpLLl5_7L=jrv&ex+?J zlqwtt5TbwQhV<_z@1)xrhS}VSraZt=+v6!2bk{TAh#4bg0cPjO0WIn4H%3#g!s)u4 ztkkdCajNa(vCEGBZ_uRL8NLU0m5Xd{B%ZxQDx3pwV&Ab;(WxCx!yOIC zg_ozhO*LAOH^?0V2#Ub+&e~_-&AKHzI$cOk zid^AYi>{ThCUN}2srVDP$LW{y(Cd?&0aGhef9l(*p~dSUZ^(&2{**xEL?mkc(aWPk z|N8nj;r`n@4P@&?QCU08nj@z!QesM`RiEPFdpe6ax6z4t4@r{9snJLk0+DqC%Qd^D zJb-*aP97Q2+46NPZzs=Oq9Z5M6(6XQB#qCcyITK6i~NlsIr-P_C51rrYSq@`Vji6( zG>izMHcjgYwX7!1t1i&ZeQ>Yl6zJ#eu-PX!1M&emY2Bm_HHrwfcrCOUt%uU$yzTRrBi3?oGwnVwD_K8xIU=PtT0)A$kEj6Oa=`JTc9e>UWnaf~cY@^)au`wD zUzvPK6aXGj&)9?b=U)htonI28)yPIA8U$)>)1D-&+5?4X(e-MHD3dE3h=SUF^xm$* z?5pUZGgT32+N0HI$DW*Vn{kzrc4WYzk`et-31T}?kzksiUNK=1 zXa`gh4Cva#B0(^i2y*!7eO(o=r{Dq6d-(aUnQ~d~DJkd_3`U_QXaBJaR<*)F_CKI5 zU8OssTsmCS{H4M*A!@)p-PnI^LLV;LTIO|-Kggk&k;4Cz%jxL~^ju*xAneLFX@cpc;rD9TX=P`ovy%7~@*ig}Ua?q?3^a=h71K-A5oIdu0puru<*0eIx2D`xPdxhRiM{J7chDtqD9PG%*Je>6r6tiSLsZxUQ>#+QlO;eNA(u)E7m+ZW zHm;kAAUQdO?G*RE;x};V@>Q#ezpkwsm>hJKA1dqsa;dSSp8FE> zLR0#p;iM2?^U>r?i=7Zrn24El_KeU{p~4Ie=R@j-`CF{o#fJSya)w>!R3u3bHxWeA zG$w_}xmqNgAxoL@TK=A<(OateP~iZW$0h_@Xmkx(LxT&w!U9w{>IPZUSP+Cg_6Sk{ zoYqUZaG9(rh8EGag{D#Yp~4Y>9HB=SI&oS8{10?rRGKf;kRd`mlsOizD8x%5!D!X( zj;vQp`B`BVDsBOo>kaB!u8e{fNzKT^NkLKsSu&Ye{7i~WEI8<=Q!iURZW$RKSeo`% zRfq~lKo9UN`FVs6Hley`5i>#j*|cfbydDkj)0{$se5s(Y zq{2x8aVoKLdKK4P%~#se+60|e(in_(IM22$eoZJ)gz#YS=$8E{H2a%)+OR8$sxy|Z zOQ7U)m+0k(V?>2*WsJhn;o$roKWsyjIVoJs%UhduP& z$^(kK8QKfT739mAa5_OSegG`4?iQA(hmQ6gO%^$j+hzpbF;$a;0jfB%*rEY!s!Ib zyqquELDmGI1Ou96Nbly36M+3r_yF2{3wITHj<=M zqySJ|QFQ~YMrl&6n^>v}QQ-(kLY`8rnphIcXOLooNV0sYw5tiF$#VI98N6_vVC%Ea z5sFhahzdsno3phLFXXaLu&?qcq9mu8x|&FoN(ulcy-9-*a(A~}f3*L2s>lzh$I?|e z0`NhQ1A$yw0_3tuWQaZUXj0ALC&iI03{9*T7GSY+1o8sK#p?V&6^_HTk`f_TWdZUC zxxA)O?qE?#q)9ZHShB465CftKZJUH!tciiWD7xI$fHUbToDaiwc`Dm%N6S&jrO^)4 zo*9xMq>L>mWQ5QUKV3jp_$k?SZ=QSgIHit%iD4*aOH9%=P_8Et^-S97qru>?mUh z@%7jt2=d9dTT;=WmlOc@T_i`cG**&@`$3QrM3Ys9sIUhT%aMUM+zS@3LIewPDJxVU z=rsE2;{9iYR8Rk8{RK9avPc1-!n(9-VATOXc)~OyT6NS_*aOH9v1K>rBV}% zBea*NeDL#?>)SpPW{;9kFHEe45y2E3V7aI*H6vGq<5021Wwa+Y8gQ~D+43b<^`FbWOb<~jr?9nFD>Ur!P31{h=c+)CFR44%3SCF3_31=)` zhK;&)Q#&G9%!2?w?*#FZ=HJc#anBB=jyi0@p6#Rf{aY6Norlhf&|FPAAELr>fP6uI zcCZ{-yRJ`%DCMR4%!B_f*|l9fm-%;7-&t{*?X}Aao=)UKT11CZEq^bI*ImfW74jD+wke>?~xfZWO@8A~EVT!vwf(I{ruqqip|MkeNByD3OYp9Z8I&ds{w2h=6 zHyp9pD{1BC6Vx;^RGiy(g^_INXXWkb&hN)v#Mf1rfC)~xFRn6I60>M9`yBFP2{5nv zcW$WIiWh+@=E3#nyXlYdoK_#Aq?;~;YiOV5`~i+xB*?n$C+L~6J%pKMaDmMFC626Z z*?*dn&tIxBXXkAJjtr+}=85~`3J~U%-XP@165t2l-M^(>o1Nf6DgHu`ARo64xrHSP z{SX87?buNCX~j{^vVfU!iDxcR7e7T~5gm?%lW8>L<254lsz#vy1a?RSU-Ao;M}iy) zY`W+Y1NpH8SSIKNV6bC&XOOqs2J^rFLJ*&xv4?Vgeff%{(F9UC0do(HgxfU>r{8v+ zvZx)Fu02S%H4GJP^o^CA7(sv8D|xDE<;sAyf!0Gy)>+O(V3TXtw2tTpjp@sZAX5%_ zaQ(G!{2T8Ya*1r*C@W0RLvxIXX+<7xmb(dU+?Pz3^OQA;P*F1hdD*xp+2S?un???3 zZP9|U1d$*#$eW}ahH3uIoT}yHy_^&RX4c?d&8@b>Ph;D5XTmvAimWCLRak;Z4zir= zbRcAQ8yE@AUZjc%g(yx+N?EOPtf^`SBRVtUWTTN0T#z(3AyK1hi~ahr)t< zoZ=r~8IcSu((hQS01GM2eo6N2_;7Z z?;IgN*r#}nhemWJ$ys4DUZl_FuczrBuBEF5WseJZnBT)oFAOEJvT^(kOu(zT1@zpU zU+Al!_m+8CgF1mUcgkSu)29VHgw7dTfDNFasF*d!HRmw_4u*_5b$K(WG=CTxwdRW&`UFIe;k%xv&JBJMYq}K6Pd}Q#wo(@?BD5 z*aCUK)!!|Kcl>-j=duf;Cu$ws~Evw*T5~ zCuk?@bN{bofifdG7fJG(We{#_bc9khd{4$Iajh{tGEQ>#V+>y35C`de$t0G}4}G^|f^ z-hh?YU2(KE8}e=G8mm(Hz{`s+^Lvkz6}R9b@gZK|h*s@jU#r*7=iTGri8PbLt}2om z0ZEk4%5*3(O{~AQYa_w}=!NmU#bGX`G6H$l=`?YWZ%fzNv`uf?ec}^?!U9GBr@K0} zh@gA=x3pTsm@kq;n>iVFMK!f*2(Zpbeq!CNm94mGwKV3=HX=f5&k0c09!2Z7pZwU` zbv6-X+>9TNOB&5arOrC!Je!kTQzrJJ#`Qz23O!_+Zu)bL5MZDgd z_no$QEyM=R;2ycJi-?da)*dX!I!Uu};%iHfS-aL|>D##b)W6u{SA0Mj+4b;Xe|mm= zPfiHBTfP4M@3zvmLn)=Ema0jrBe1SmU##pMIOr#LVWIs5(BlYYMWm9jge}DcvClE8lwJJxd7qFgK*JGRz#5!98 zYSH?2YDkk0mx~}{r!Uz{ zdczufv<3TVb7{b@kg#y0sEAFx02 z%f@4*H>zz*t2#{m(2Qa|-?zcS&_>B0lvz{49&7wkVdd&0>)=>QJBr&;EB}vtUMjS4ZD1L9USWjyJ8Cpcw zrddx9q};3aRboS44MxMa6Q+EZR-VTxvRMut&U`~}(5H|cC@wK_$Tygtd!UzS^k5BW zdq4ey)uOYvaPU;0q)Gvn0+tNxhjqMW!+|jzgnIQKG1RDju#gv}fMX7M-I{p*-&9U0 zBFNp-zsfV{<=1#8S6qaTn}sUONq2Ri(F5C(hr7<|V=#p0jsI+*!za^ABU>s-ssgZ1 zC`~_-lrGlK(uqhjaL8@!;Py0jNL#y2E6yzzLte)}`+aVCAFJ5wjT$odd#$9|ZLg5# zaa02SNdL}_Y!dkW$IjEc-)q(C>SapVu3dJL~{X5PEyK(cI?;Q->DyY}zSsh=1mn8|cKDOD4P4 zMMz>x?#kXHs@5Kk=XZs!`2f}h>w|Tg`DHw<-g3f*$B^i)`{A@M`I@q3b= zBZaVwAooxEZhuix$=7@%>}qRKSghwbcM#2Ck~FGso70Xa472#AC!Wm|>f04ag7eYV z-Uqs-D-~aSPOZlJ^LwJZM2bK}v%Y{&a#8G5 zl^NZ_Vm7E-i-H2mKKJ6|LQb4 zgU#fq8|F_h^7{Af5G_n^djNTaTs9mwcN*CNEja+)+SE&~6B;;#Z;GM@4}j=E!pWol zof}g=ljUII1##HQ8qjJdAu*kkNI?`)CqOJrWo(|J)-1$NOh7{U#Ld%<@V*B2Y(}H+ zXhZ(K9_4OuhG#DjTpC?h-1Zi|4O@=H4sk{^%z^>7N=0f!I-Z{o50x`cRn>N>Mbohm~JimNPCW) z6GGj(NgXj3A}q+4KTDC_Q5n2O%7tuNw*Ckua&#!j-$)yA-xH~W(V;821rpF6HepH7X| zF-fBB7EJ!6Aqq$WyfCphP2~Iv>~(`6NyP~aUI{xX+F+uW6&4KsN#QlUXiej&SOT8g z%R?t-@?j&u^V@qqTM2|S&R-WU<dxzHy#pCklAMu``y(+yXErIO|HGFtw$-(BsY)6wb>HURU>B}E?+x%EFIp&m- z!y&5PAm?m9a&FpvFMS_R4uV4o0>u4#DB=FB*VxnYi=8A_LO3mifY;df{#KCJ)D7;-Qiu0hP` z)jncv{W`S<^N(TV0KnWD+Pj&k(fNb5LwS4>gdF!ANu_8e2%MS_2w==i#$7 z^}RLp(}p8d9@MWBNUuFMfL>%D@iMA&9YhX|R p`_tU)*f;A%xb3*1aG!`yU3jl z>eL#<|19^^+*<)E9Wj1Cj!>btCp*XXZrs{FHes#r?GXIV5Tt6-v_{>`RZ`*G;q*b<}&~{L1 z2oSd}A+1N7$dd3-|1SJNtk<;L0BDXLZKJ4l(>kKTG3Jky=Kw#3L2lZc%&Oj(f&;uo z$P@zLD)mdQ1oM4C|0$fsdFkC%v}()oayPB-YuA!D8(%NP`cg?s*;74+MVQ>^;SUk=u@eH2Zd z*oRs+sx9&+u&-7B#N=mSm=Vf75Eyx9;TGDu-*zY53>>MxqgxYt@1>y>!oEj-L5ag6 zc^Vz%rlnt<(|*i{v&f04Fhe{o{+0P;q=_ut4$&k4ash5`T8f>&Ui4MUDDP03QVi+c zoSqofjhe9;;9E)*2uMxRDW+tfX@fwf9|_3$%XiYM&E?Y=W*{j#VQ70(q>4>pM~0y# zNiJY5^j)2pnU9f^QK6oyAc=t~U8sEA88DTkn+ES-I1ftG=f~|(ObmD4u$n}M(u{}ui2uT3j6lOcUIAFyH1rW%5^h96zqP@ zqr<2chnGFwwL+W7M!8yO6)d`>F%6$Y-{dPCZavN$%eSizC?*DgH5lHv1;svbyO?8$ zbL0*^h9F4>_GN#l6Z7U6svtPkNxv2P^k}}iUa(IO{;-kcfO2~Pi-2skr@I@CXTgR* zC#Pl$k|^oGha$V>za62Cdry;(r#t!a!lTv*8UI9t{JiMY*(`eb*j+e?i&5VGRMDwrProPf*?t|<_p-|x{F22`gEOg0HW%y)rtd3Km2}# z<}KLFgt=t5FaQV*59-y7la|eyETQD>;V#O}F&kclMX#G-6j{VCA&XmJ?W>6d$&-1WeAw8Iz9}Z==O)4$_6pJiCu_ngLDHvt1N*ZC#&w zcZ{aG94ydrBna7lXcu!eubC+FjsI0ZoSBK=O#yr6OWX?ZS3nd@_PvdBD>&uo@8c;*gY)XzQXdA; zv4+FXwz&PE1ENfNgNfMq*&x1TK?a;2gh`2<1%}X|fH2>|LJPwC`+CvfUQOuVkKajk zLj1(oYiEIPSuTI>#T6B;Dhn>-Z5~=SWkyh-*Yi4!6zUAq1W(D&Eli|6M^ov&g_~&8 zp3}l+b~I6L1dhSBZd{u~(f$-sJAfj?1IUv#Omw|qG5p>ZZ3azrHth$~)g~rj2`&MAo=64jj2E;8US2 zy$=)PrHOsSL?@j1bL63~n_)T)D4pAS=**mvQx<+oE&!K{SN`z+_zu0=Mt^INjm=4R zUKmE987Tnk;aJX6v?nDPu=YU1(P$ zLPx`;GhWAje&N4iqUf}N#FwL@U#4L4XPiON0rwbX@{%+M6UIM#$Qm&zV;hAcO8+THJ}VFnu~Uq%niq zQnyz1$&2$v*Z?Z@TsxaoI-KP=bmrBOQ@&HwH@6~CC2A&?zc;R7ul5bUVtc3?M^8Mc z0%1DNsbS5c6F=`iet}kQK1#puPNJ05%YrD-EU?jyM%N*Xxim&pJo6WlnrH~!w__vf z%#kQ?8{HRCy<5>d7gGTw+PP!TxrawgTaZL9j4D-BbZX_)c^*2q2eob#RFT@`Mu04c zf}zv|r|NdIcG<>>I1oo<>sjNJl;$Z=2WHSaw`|^g6c&Vl)`Rch%^CsY$}s8r+^;uP8M^?xfPrys*|Vlu-6HeaV8xcg=f=ssO57)m_}&v3>h>X)@brFmymuL8?TU zh0`pUNZOs_e8tX$b95{vgVHbMF>z9vNcrM?iLtZ{#k^~qS_H|Zy}RhIt0Dh6306}& z&daRL%#GUIbULbECqPW;3gOfQ)}{f~=llwilV+k;bZ@X*f!}U1->U=hdy=M) zp0;=sRS{IZveZ%}t)4!|U88-dGPTLApfSy(;P0AJ0cZ2fT`RQ9`Se_o;XZx-GUak| z4?Y1pA)Y>;Eqt3BJGVoq;VVQ%1W_PouuGVh*~0JU$3@5N1Z}Ml+D~h(kPp< z>qb}djY_pfi9!E$!=d&ylCBI?S%Lt|-@U(m-;PZ`((4VK9C--K889DAqSDUifByc@ zs@uQVV$z>g!Z*sh(e%qIagYm#n{;m4eVg_sK6BrTOAb&KM3p9p87XV0kJCxoHzlp6 zJ{u#}XG^PaDrAyMWP|Y>2QFTZ8Zz5uBUHAaS_~eK8Z>9o_8lkN%0}ZyY?@@^a1E)b zc<_D4{Wr+^Pp}?Uog6^5&>%PB+j$ehV%jwLOqPs;*%$D1CI6(_0)B=;E|O%;n$3HY zpBned;&iGesCEP~09i;_S0&~OC^dEAc#SQT1nc(Nz_-zzFal^3`?lC z1Tka58~3*#*uBwPC9>Stq){sV9DcQf#KAJw817nW^V)4muS|Nq`Vqs7YEKX|7QQ*E z*`S^+o-5MpM{&v`&>3gpt3PBE4CJ`GNy~oSn)tzl*Ou8fe6R|m#t_7e|I8j0FtTg& z$wkG6DH^R5&Wn!Ow5s`41~|yfX?KZzZ#m6Vr+t6rro-P%j{W%x)ezJ;g4~Epn_^?~ z3ks)ebedjTlH55wiD5}K`knwtz3^RN_sw|Cs5fr)@%EY%(l>Sk)j-sEVE{h+=g?YX z26r5pS5W+vPOE99;WRi4iKZrz1*DKb3T6e{QAhlIJU?5yI`M}mXD_-;H5e*EZo;Rp zj%YD%aJ$jDSBnN}HBuWfO0Jrc#jGhfBVWWeRD!>+=eniqk1TsUcG*!IuBy9+{cc6KUpF_@dw^(t0G}cgfP{oNV1e?G{~F${5+Q}S-)rPW3elgwNI?%Xpwr=X3Iv~4vccjhfR@aCK9OybBlHP$j!&C6GeB<<0V z;ZT5|cfx;{?Ardq2dk1vMY*98#KD;T=!H#J3BYu56kZD&TN_a&GSC*^S$`(+c5GSm>o-9Smjc&rS9h!G21iixTW33MG6l%3GK>L%#*z zBmqM;@lgZ+-Ufxue7so!pI8RgD-&z^{2EiRI%34uMY~2ns<{9gp!kjfj!+0_7hBwq zqO`sd2T+iGjSxq{Z)=Q>k?C8}A-x%m!&r65fd`xeUmW1hLCyr7ozyDT*# zc$HVt#+qSj8v@!T5PcGcye#4E@8h^|7$;l6AX@SPJXnWP zrsz;CtvOvK5U>}4=vx>+UX16C#4!}inY5s1^1xKky6%U8a4S&Zoyr17IiZ>n| zreX-_*rFdYQHokYImgDS!9VkuV;dbCp_!4n~I&{oseCiy6ixV&H22 z=s_Jy=*h8o9R9`b_k>alFTFHMZ9oUW_o6>>qI4|@<7P%+Mhny-xs0$BDmpU6gR+Wh zsBZWK_rCURwHZFfx1ukvmScH0nrHMH{>p9$NC^sJBmeuY8N*Wx$EyFphxkhL{TE9l z{090ly!cIq?k-{^rYiy*!DF|LQLMj(fIrTwQj6gud?WgbDRMNM>Dy@8tI#~^8IT>e z@HV?Rg74K_rQU}RD0tELzrW$oa8dD38I8Dtf0iI1S0vaQddLXl?)g`$cTm6-tmsdk zCi}$&qYM+bG6vlf0q&r%fpPzPLLp3;J3?(j0aB2nXD9Un9{68U?0pfCFP0}1e!RF+ zJ%$3KphT|+l?=#T{Mwfyz!NakIn9XU$8*Q3cTpe|gy{8jfhJ{*6~nlle;$GWZy{LA zK>r<`5|~^F(;GZ5`hhc~cPJ*mV+`$L1QX=Ei_&WY@C;0Rvu=#HqdcA!k)Fd|F$v=k z!g&695CRGUhK)bsf44R$Jn?#!+71umNzo6SC_O?3?%@E*r96mUoWCB>KGRJTw=5c? zK7z;aoaoD@Nq>eR|4OkRg@8h51*2>uYDcM8;UPRD`paiZXl0W%R*Avr4E8~QFQCAh zpseroDl-23=rCo%19(F8{hpW7PV4X+KD?T@5CZ&#f=Rhg*lyr9FZlU+7yXdwvVT(? z4{@OBA_VvviftBe*UYa{>ybzDD*7Q)rB{Q6C-@}>AfRI)SW+Cp*)_w}C&&|d6aCQX za?rK}o(=@xAz370T(DrcT8BK47ts%%Bz-N#2u(0|ro%$vy;G!U@hjEaa2eN^&XqkP zeG^+P(_(IM$Zj^Lg=Db^n@KXOPA}w;oLTyQ)pB5| z!ZRX496lgDD9Xh}VVskz0j!)@dJ4X@lfpxR-~*h%aOQx9ggn%DrsO1{vLigXqGj z8GUh`d92aEqkNb15#S}}8iMc6AEj!MWprhiVuc$R_tV+tI>CJ&FE%kElT2zEg)E!G z7)8OKhX8M&ke~~2d+%Zl&4u7KuZ>Zg>qe`eTMB2>>c0i|xg-{`69_oQv85mIupAkV zU=D)ZlAeGkax;DI8)`>ly2?UlFBS9}=SEAO=cl_Jz*xh;$*FTkI7=Gq*wXVu??51U zPoM>Fg)q9VQcZJ9@S2*DYPAxj3r)LSp68IbgT3bC!nVxVWu~BNsd+oz`#0 zs}$Ae;TD3mVTFphRcd9byQF35*)-k~2;L(o%sQtM^OL=-*EFndqUAMkEwaP$W&}^# z>z$J@>q1o@GVn9Fi9*i=@Y8g5Nm=x|-V^VxL4YSP6n>p-O2Lrv5-t&3LnC!VHm41+ zWjT%=)+u^WGTAmJ@D%S{OXtzT71|3)b>oyp&kcVGwmvQQrS2q5f84G0lb3GK|rd+p(||* zworWUPz0+e)YTlt+-MlsV#WD-#IDg42?@Hev)GMRh-2>5gNoCz0rVEw+$o#H>gObOn-}F7VzJ9^=ZA&iFGQwma`Wr2~^t z_&N__P$;2oHu4zNQjl{fy1Hl)-tKuN);+4yD?~8lWeIOuiGvtz=^YBApJibvFN9Ok zGNF&}zl|5kE6MgZ<2aj9jT4buO2n{T-EXw^;*xRd)ADLr2p2_9q8xv?f%jwD+pyi} zP1$7WN9#0CJhrgFBdlg@`Y9uUS+N*i;>nI92WTHXek4w0OEHqM>4SThV0f~s9%a=s zpC`2fxo3@vpR+tm<;euEUu$f{K)Az!RuOda)fZcR)xdIOG@02E`|&oKx7*s< zsLhTnd+A;Iy>CW<4aGj6miDsa8_KGnqCz*VTR!?xvQ3g&`jaM0cLk|L2Zk5?CTi#hCB4yqVU>DxSsPZ? z6Id>1gcj_d>?K}+abAFVDXKWz+w*tdys6F*-(*4doxyr9FB z?k?g>s-LY9Se) z8>L=H0TMDe0Oq1)RbnMI3XR)Q6s7j_VCZe=S`9wwK^(sDTD-UCYpq)HaEz9&BU$-o zcV;%@f~PGgP{C^w&2ehiFvLhY6@mk6U8D`4-vz=(6vJA3VJ~6p$wbnz7JF;SPm~a@ zTvDk%L?L6jnw?;iY2iP~UNmC(0{a&!&4tMoJh4}{HaTuD(I>(ey1ae9xzM6Zhpja4VZ|ZU^bWz8G&Z zzOiJq%K50F7QyUk=u8t+5)u^CutdX+FiZnY@i3Z73^X1b!Iosx3))3Qb(w;z*>W8Z z7Z9i?4~bx2ve#!<<2YK`zQ|WEb{BZ@oyimML+rAoayNZfOqAmhf?n%b3?IYa_g;Mn z{gpg0`{Rm*__^E4Qtf$Y%fa-xUva}Q7or8`usEUU(E_`ALZZ?KJ~WMJ(W^}iiY>}Kg{ zc?KCi7d+X*A3ZD=f*&|jdW4!VoYv(sHmd_6lhM=g#Zh8lgcq!Q z3!Sa7?P~25{ce`Nyjt{9FF%*fiSZZTR5ub6kj11(Y$3lOVSB#E1w7dYB8$mQ`9?Zt z<1BvJzwlyR+`!@ekcBS%_Ji4WR~kxHxYRO#tOqP>N8s;CeR*Dl&mF-FP~n^K7SGmI zshttYohL^xUT9oxC+YX?ViBISCwbDonk~WW`AO{1-NfGijXaXMKW>61eohR{iBq#) zi>ZwdUamxqtR1CZZELGR6J;Q+>KuMguXzg_i+kgsn$ztm+Mh*lwy(u;eil60Y8d!I zwgg``N&55sp5!t6fh&U7G?z8%0+$5O1GSl-`6shj4Q)^G*DaO^1^-hI3SQGKruE&z zPM0O?V|cpW2W1-Lz{q{U(1~9j)QNnoK;x=+-;!?!?aP>r-(v zkB4X1QFGkjWZu1|AMe_cJsCcQCvrtm12V2)p;z0_F2--QZ_D<=MfW0eTCy7JYB4Xe zk$=;Q(kY9xg$koP1zxKEVkh-O_D$YOcc89(8i)G@KY@o~6krf9&Ohpw-WI){d)(BB z&wHoCojr7dQwsF%nsJ#`pSG9c#c&^w-Y6ZYM&Tfg?mWxb&v(xL0B>emkz|i|R%O$1 zAupl{Ek)Wq3xD;1A&;W8h9OK_^sz1Ijwn)2mQzS5k)>TfRnw3Gx{zFBquo-BK%pV{ zd!jF{STaDxvs$HrZeIBmRMDVJD2NiO3WwG=;s8F{*4&Ye;6%R;NHOYg-|QPz6C6S_ zsiGyglMjcZ@c5rZaJ?2hvWU*DQ+@;<;sy0^0o4pH3K`9bhi%bYE)8G14SkRgw;T8i zGN7UwV`&h+1{9P_vttnK-UY+6Q+rjTr&E+qmMgnQ8+~V@shw~y}BNm!NDZ?7fs94>_N_F zjB~{cyIhDmC*;~D9L?9tcr{$erv@V%ADKkdw9SMbdM-H_sPeQ ztbC*8Rz2t;In0V+1Y6&6{OCjB5Vj<-&fAl=mk7A#2 zQGKk36^;6CB$iTo>H&xIddIAc{P^dLIBuPPjruRrg!|~(mA@D=Q66aw;oE$C ztHbZH-^z~|e|NB0Tql$&nv-3Z>f`(bGsoqxy#xN)J3$%vdKp35UePw%DAk z@6;=?Zm)Y6=Q$DluGEZCAJtW<+hDKiN7`cyv}#93_I2(i8476^F!MZuPK?+0G(ycq zxBRsTT(D%xF!d=MQ1+noqF{!lyI;$^_;1Jh;2vag0H|)1(*26De7F_q5l$#n!68L& z+ev#f>JxYngU9kPgFno737vQazYK>+6hq-46&;V`pB7ZA-(@={uBofUEK#<_Ps_XJ zg;?2MfwW}Qj8~1^{}uQR1Bb8`!@=+w5`yD&lZI+PzxiIDr|=A2n%j{xl<6 z4x}u6UWmOK8=Pmh5F>d_t3pMmIyZPA{nc3k>O%rYnaQ+OWYi}hR#%u=ccpTr zuvpDk)n=Zr-=wvZ!jNS3q1uDSLr*I%_|z!7!i%`OwgkCfOzb8K>xW!`jSlvNm}yV1 zt~X5F4;N`l;4!2T&EZKtcvYjbx~^MGu~tt>hL11=-E?o(SE8qTvMO1r$#w~)mn?~b zcV7Bo`s$DZ4cOzchT-m7x)NTHb*B(CrhID znr@QBI(Vup{Jae zke(H@qbjLKaSS`Xh$EC?m&WuB3}<)JgHloW2}yep$0ioyaWK-$9itMiSH`wkaIHOE zctgrNSm@!jGpk(Agq&+=DWY2RzRFu^H5V>U8x^k)^N6GqxsjsxkhQt$4p^J=mI|Fd z-tKHVuxY~EC5O^Pbb&Y&+Tw`zP)>i3P9-Dh>}$4^y37~ptOg5jjX9fYVz^uGKIiBY ztbKZ4O)6%$(viC+5q)ygT2>h9zgY6Qm?Gs?iCtf_OVr^Ylk%5Q)MD3hdS6}1v}cZ@ zQAWsii_+;2sK`>6%SG-^&r~u|!<9~(BG^s?kk+7< z3gH;!f&SA)PkZj3>h`)b>NpKJ{1wvHt+}@J_3#mNZyZga(*rRKS-zd-Ze_>=kvIk- zoxYgLAl9Dwa!Iezpe?=Mdgq7gRr_!NyRomPxyShxGsX3B4t~$e(%Rm{ayW$jfqc4f zS%=4Ns}_f&#TK4LVZWLg4y}_U(wdSiQ2ntj@kO{u*@JQr2aL{0XP;0Q3*i8rG(a!9 zfR8XNY|(RXd^Pw$x-`U`ov3|Pcp*=8I_{n!k?{3!5mkgM7>7ALja{}iZEsFonl7hI zM^|3iDR-C)0bTG}ubfJKWUnwNQsK|iGN*%`nnS4?q{qc4RmTRv1x}eMdK!3I1rO++ z{L5(}Ia8pQPL{%7e5^aNeiJjx?yGaxzyUR5)MnajCs~f~SlxuI`}evtNx@$T zT}&;_tQGWMpO`-!E8!5jMnmB<*z&D541rEAK zFFNO0ag@Z0hG4aFmSCwfrGMM=N8;}T9+r$oYjqK~@~QG?TBezRgL0XIr+XJ;F&sii z?Na5pd`P-dqhNiw*u;m8VYQ8a_^HG4DFt}Q`gJ%0yVMU&6+I8fG~w6~@Ut%nhjCiP zB$*xxVZxW+!O~PJfap2zYqp@58O3E(+l|t^lFP}2ueZ7H51mdu7&1|cn?x=W<*y02 zWNRd&v0W;w66FSE0HKDW>0b1k0B(F>~76gZ@8qVT(5c9wp> zmsna?i4(%w=ab2@oc5$JMK6f+_8iajT?@ykoy+%X(@xp+8MMxNZcDaKcxQ_647yDA zD5|i5Ew7f1{Lb|}=6Y)K{)~r*_3Sm>L}YAR6=s}pEdJs++m$ASkqZ8+oJf{xy*K-8 z!aoX=*Au|GXOF_gy9z!NhK#q1&*iezj@ET|{;ypZonSRz``467)z zKXHvx%8yoF2Po`J(zfV%u$C!-<6>m4qL84eys>u?M$a9gvN~^Q&@?%b2js6nfz^l= ztmPLzb8%H>>B0NYlzsX8uZ15GG#V|lXzix8Q!zenYOn_}J_m2pNYUR|I}#6NtK7YY z(Tc7OA&d~yE&%K#FMZx%EB!7{=vDJG6uc(dfa^G*brgIE#q!Rk;^sv{w&-gv$M&)* zSfV^EdcCZXGQVa1h|~ms^zWspTUQ)!=t|MRvE09hG^ab+%Dq3*2Z4goZqnx%O1Xf~ z9a(^jh5ySq{v``4)mz9AwsMCtOnbBPTcUs#7^Zw<*)YRiJJQ^V(mmQKqLc7n3GecU zLrU5oVLZ9I;m`z%Z{(S)wCg3cu z8w&k8*Tk;y0YiJs_+X3D>CP3tAk7&Haw46UwagC~5!^NJDwTSor*_bzuMH;tuVu`@ zpD1jJ9*&)To}F_mYED-Po;0TwD09io#`@2$(mgr(Y1wc8u6Tqd@EYVEeNFwFZs5gX z17EDGROi=KsjJR<4`-s-&Ukz^Z*!IIaAyZ?+1Kz>??ntJob@hl$*SNvCJ_tcN66Cx zcNeMA`rh%!ZUZB{0$$`_RZc9?A zmLZ&$c{MsRFo|x~v~Vf<8y3#t#c>|3jJ_CBx1#KE>2%{f53lfq%;MPX>;*R}yD&nw zEmG_#oW+ss+k7~&Y&Uo;pV{^A-A4mWJjZ8#rdI>O8$2D`mOMj2`DEO{yRX3=X2ctC zBL&~)XlKg>TGw*>2`_?u>3W^W3!p#$K8hm%Jt%5j6ClFpOp1IfFQ@f7O$P^0-moHA zTze&5r!0nKTcf;Mj-}wIqrk=_(uU(t{DHgG&f3jD>UrSL9fgHxK0)~=&Tn@nU5J|2 zUeqBr%fwth?1kL(5u+ui)K;o=^Wr2$FAlK}evZZ68Uv=uk>Lalobvp*Oy&rd^e(|5 z20?ZvHQTLO)6F!)c`v{V2v!y+Y-`y%7OsOkg4ev1O~GrF7JD89f65d&IBa5ahY&op zRkxnqRq&dW77L9Pv?(ARzs1G!31ks&G2SOLMZp~Y0 zRX9A!dR=DTTpV6>4Pqp(1D;6S6`R`Jf5i!Pk*Ssh6yvP?Bh{SL3%jxvC|kdJ)`!vEFS5;dOYBvInJ?D#lp4 zFgK_ITk(}M1e>~0w{30GX4vl^q-y1pgUqmG8B6+Xn46gA(JAbqLqFo%n|XLVbDH zYMSYIBNjzUY!~M+G$Dr{;{weCgg^j2EN)NV}-p+0ukd zd2DpN-BHRypR>)BSi7U=Db2_&pCXfJQAWW{6z0{9#3{+iyPUWDNWeb{e(ov!mRPUWvHM6uh7eETTnO!TUAg7}h46Qn4p`QAd3U2Zw+|C4>_= zS~8HW?I}F|IlsUQ9)*c@mFnvDHcP3)6E<;Q!oXF4v%5e>PA7v`THcLKT`x?-mZDEy6oH!K21uHOP-xOS}jRs!<3IKNB53ql;A&n*a`0OQKT6C zUKyr7PPPFDVybB=M`UyL4`sfRR{5;jF)C@s<3SI}VO9~|?&#q`j}R|5@%fr0Zs?w* zEEGMToQ7y7+@*)vfXcQu_;`O@%NA%lvd20el+kSoUL#T58VKGiSP!QvcuiW?kv{5A z#N~k@OXSue&1K{q^18=#=fuMEw*N7&Ksp(ZfmoOiJ~(fR3aen=t6;U z%eXt8ebN&Bk}9=QS-1;sVyGTXCI!7SMbqBsI#IP%>ULAv)icsw3&4H0idc845|l3( zrP>^b($N(Oh^0$EvizF8~b7q zLw!}eMCQ1CW7^69lQb?D;J=sxxj6?hPmOUsrS;{wflJs3wFS88Gn842pCUJ5d~(zH6yUM{mW>@9EQU2t%abqR_{} zdl{TNH0;xTC(%D(3GyKQr za5y6~YQh+ditFi%BpOHrnVU@b4cS~_n3RB8`uie3+xOFdU~|Z5TK_v1aoH!gXN})p^L_(*McV_tMgaOrb&NgLa#y( zEM`Df(4}5g80GUvsI1jG&T4AB1tZiFzTYVCV0@C7XiRWIZ2b@2DNd z%+>o8TTcl%U$_>a6vE%WJDa`ZcSE=>L0XbcWsgn^ga{q+tU@4*lGGdX{8Rsm#BzcCi zOv(A`wJsjFvj(_69XOz%c(YjH z>|6_8<654HQy!5%@vtz4uL>^LdqB>4k4n6(u2TIQF5qf%6o`Py z`kX4Y0xscdrRX~S!xFem0#_#h_M)IS#lRVE3SN_!G+Grim(Yv4 z!(m)8Z@6+b$$-XHOTUBKVe0MDkX_4k5du0Kw6u#6#?X8SzUA}t$4Qf=yE5>c3I?z` z3|jD(fv+wYsa7LT$*15oc@@1z4>i}rP6K`) z5X{c>Df+xVxLq)E$#C@v@=V@EuhEl=dKcr{Z2G>X=T9TRPi*06{MUJYug}HgF(-H~ z3HqRka-tQ2UI*EsDqQ;#!8^hTjlIsoLwLf{@5=l!>NUMIj1Mzj0347Xnpps)^NjjyXT?oU=PEZ=y(#>=2-a+qb>om`#K zET~E2RhsJvJ#I#D)1s@Cr;AN{&b`@_`6JW^#U_Rs3SVmP#CL{5m^^oc+Jpk6;5&x>C&^Kf5QQ(e z7D2|c93l;r%U^kbe=@g9twaIin`p?16Xo#YkX>l`Tm%``vPq2AeJTS9ztm+_;RAdZ z0xX*({TWI427Ug^r8#G1K)Q(iZ?iJ+WJvIb#s>Un$v72j8xngoSDUj!3FaXdC}tlEkWK!+UGFPkd83=`Lh zUceGUKRU1-C+ee+p!>3n{`w4F{4*C;srS&q=+JXnbjkY$1D~hxFJ;H~Jl^`U16K^6 zL2IrHM!%sfyvRRi7Fk$PGe$L{gAz>OYN78;iSDx<$5>%hP#ov+$P7UNhdy~?H?k#L zz)|ZL*s48O`vKm>cx53V5PdR+ye#4E@8dWlWDQX;bmoR*pi2u0O5ic{{B<#~lHW}i z#hA~S`YX|%_;1bWDuIB#2t=PE{hpW7$U1Z{O5lrZ4USXIE4z-T+n`H{c0sdSl*`Vs z)lxTWJALv`^xPMoy`}WcUkf#1`KB&dzwB~s_v##WFA<176GYU|YINHo=n=7S5Q=b! zl|XO4axjnVK@@3s%S1OLL^sLeg`rSPMe4Gny5p=b5R2AXM^N;rXFX5GR?%xpflYjI ygXo*WT5h$*5PU#uzP5M+KCHP3p9bP~&i?~@v<~&(u!_e30000`LbV literal 0 HcmV?d00001 diff --git a/assets/images/ray_icon.png b/assets/images/ray_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..0d48e54a62a1cdce1a9c4a45e8e85f804562b6f9 GIT binary patch literal 15614 zcmb_j19xOiw2h69ZQHgcwylY6P1Lb5u`$8Kwrx+Wi9NCL`g`v$ytQs~t?IsYs%qCh zyY`7vQIbYRz()WB14EXTkyHZ%1D6E7zk`DTJ%6e>^@3jDon>_0z`zhO{(FFfW#!<4 zz65tulNJZ7nISv{eSoqOQxpROt4~0DH-!cR6Z|PFDW>5Kewhm&ggN~1Wvn@S0S_0A zbF(~DeiJDz$O>Z?8x3o_`5=md)ep%Sh5Gfq+|Luz8j0!zC z1BaULXC;k9`97A|;h+XIWG*tioLt|*sGjB-6SD~mrwyHPzOv6aoFvx1%aCOEK7L3>P@uWoXZ zJ}`sFX5pF=ASoaQlxafrM~_XXWm3h=-RB##OmuD8 zy`8aHRQjS(kCp{wPLs>#CSZiti#zOy8~xX^V!_4cJX;f-NKC^5sY}kr zX%Y+A&zYCZ}Cn*Wm(JsbVMhAsnj?V8^jELhVo_%*uo>zb~AN7MADa?i@$w@=&5 zYxwc~%s2Df-;&)H^caa1I}ak|2B(Z1`c_t2Gh^)wj&jJ(jl!_nPaCcPPoxu!q5tkJ z3c#8$T;4iTnTLAB9*Sj%cjVlusjlS;CgmmvwH$%m+TRbK*_KD}5klC#fieFhw}h$C zQFIhVj@UMK`jKcuRhm#=J?Y`CAf%U#K|RBJ`85_t&5aFe3sbxf|F*pBWVrl?cPH^e ztx97{b2xgRrcJOlL18wIGoUZcf>+a`AFF0^jR0a@* zT%=q?HX>r^VLz3)uTmT^LiDtX%`}SaSv6F!aiJI5BZ~06W%=gw2^Ra7^?3J(A@j?$ z&uR71s!S+bh7}x2m6S44Qfz5ScE2Mh8aIup4c$3gXk~qy`-TfYBhmadYb1NAM+OrJ4wZyjZXEHWaYsp!caONoLJ>(CB!hEYQw`mP_@-wx)RTQtRUHPjpS7MRJ$Z>Hx(BH98*`VG71 z41;bs8k7B#ZJQ5?-L~6r8_8vXP{1+B20&EKn$y_DRVrHm+qTrKgz4r?UH1Ftqu}o6 zqmZ4z3AaFh%0qbp2OiJWy4~pK*PpFTa4V6{GR~jH*L-DvT{Nq8qYUiwp^p6*|AF6f zEM37)WM@%-o~|`&Lx>%K!IRHZM;JX?TG&o|jTXJe9VK6yn+O!%s;Bz(dpv2{?Z`WE zXyaBxs*@g=F%opn#{cWhlA#pec++_5X`o+@$aLj=osIZ=KHLDUz4-+3yOp7|TH`Rj zcTy3z)#p!(8;1HDH@H|61Uz{X5oi5lx5-sNIJ{R;`GXW$W0sCt)-x`dmZ^>axnp1` zkl&J{zQXZrsnHF+bdtHU(x84oFqK0XyTrk7+17bjANIJrAL9rU#@J|hI29ug|M@G3 zv_TXo6M7p{sBAy2`@j`@*VvA^h4i~@qAhNAL9W`gS}%&;Dp5p*?&tn_*>V6fG^_hb zPW8`eChZVR2@N?^uxH6Rf8!wM;HEA2bH2)(MIlD>-|!g3BIk(bP;lZQP)XPIZ+vbY zx3~n+mFWdkZ4`Q8Q!P;4V|B?%ysHd^_6(|~&l~9a*HIpu3fmu*xwhLIbMClYK^JBD z!X99hFNfuhqx=!$g}*U0Mtfin(vV`K*&S4i8^O6+vrj6*_Nkn=77ezrLTW9o5Mb*x6b$VAKG6k*OA-rF zpZZ5)2n|giuEYYqW4xj!_2h`4G=xE|X2^5EMknB_X#68xT!7tLWebH(-DoD0Fd9N9 zb=qMWnvE$LJ?Es!V~T#{U~r1{s^e{(LmOfy zAYR_Ls0^`)2I%N4)x)6RqmNU6`x3XMq(h5iE@17J@P}saxD#CY`#<~sRQHl}UzB3c zSV`HGJw=JzA)>dO7yRPS`CJ(EA*CSnfle)^O~|d?$;p!PLx>6{o>h+|Ce{1pt$wVW zcdgg=WFP-TP_<4q-TvFRF5v4Yo>Y#nO!`nWrFlD3c5J z-_#wxBa!{j6GFnT+AWfwr@g)-~FthW&Y|*x_nPTbroDTL8mS81n^f{hyIi1P`*N z$$6phuL4~Uua}Nz^?%d6{0ny(vG}~*zJ~OkDA8N(-T`kqgRy*X;vo#+4D-#z^Kwdm z?WVZN9{R-UnPY4+>KA}e^(k#N3^#}|unFE)uHn7r2fA85{ zHZ4xuCcWnaiTAJTlF%_kXcs&O#9#Ik*S4hYUJ*l60*7|TwRF{-yILf72wB!!660up zbC_>-eWY2BjIpQ~ zjA{&3mZ~|WpGW|4Eo{$_R;wq+`{L|WrXJOCxZ7M*v?mDb-KvKW45)7kfedn#sRRxr zgV-+Wo6UF2e-Lq~UP}uw=E{^M?Eh8wTn@JR2yJ5qU?l&vc7iSClWA=R`d6JnMk*ry zgEujscp{Qn#FfNFAEGTndoXF=Z08_K@~?7?tsPj8z(V? zDndSwxtYSS@Z@$0XYPp@5SMD{o`R>ljmpR~egE~P?cyj!!c#2t9=d8BDYdd{XfDN- zOD{@&&m{isJ#W7kDr*9RS@^L2(i>^10L`j+P7}rzy<3Bb$$xYU=Gu37_o*9!g8ONB zD(%fNhv&jiYd{gT1P0zrLx%GnioypUP9DkYacIUTC^WXAiPcw&TrV_Ev+szjOl=?k zpTHGK$)=JH9K3t6w!_^+z$&pHJfv!fnHE|a5W|w{EEpG4GI-#X?57#~@wE)Flr0j9 zGIBWHmS)o{X4^X{Zg5mAji#)9Ky1FTN>V`WB1K|dE*4zhEMsrtNMe~WR8J1aCQdS6 z(*7{5lh^^Q7pu3^UqhF*ZLg6uL?V9NJpuP2<~Khb+TQza{r3fg0b$@KGN50b1or$+B5 zF(rB~d7R~9$b3~6&ExTa!tOVbQfjOzd;@r$sLaLk03eIk9d~!Y&FZx*tmni@0Gl{a z2Z^@QdGov%YOTmJT>yXSA34OH70F7tRQYF}1#M|-UwpQ5$Y1wD2Lufs(Vo0q%CIiT z;VYW8P0P8XLeu!va`>Vm==2z*nc6nbtAaq)H?vU*;OhM5(?re5f>8{)C;um*rm&0M zq7=-Q+&i}MJ~8XcC!V7~7`2iu>=mz-(h8PHO~;f8D@5-XlV&DMTT%OT$M6ZV5X{xT z72s^P<;2kj#;ox(8-NHjL)w$y_FoL`uF|(z)(9y_JnmiKuXvRFsEq8yb-1&pj zcG8a}vorUj*yk;|=f(@m72ayE$S$9xBjZ+bBOMoTIXL9CR~PW7@EWTZCgZvKj5T?? zY$t7?LgX&Ba%?=XkM%0(c8Rf#e0|V06(LG$8TmJv%Z0f#cY4g{GeN>o>E90>Qp5?X zVAfg{el7AA>N4ICWlE0aB-|E}?_@2ofxbR=tQq)0e+7SNyj1nOLwNMzyH9$w>IUIg zzkru>UWKaq+gP@dAFZof+9Qe^1Zl6*GXKJtAH*>LzxHj>5vL8)3kb42%vd^`&2xoH zv$m1}@KD(<*=l)^=^+-Y!1-CU4S)rEO5m*zLP??3Vt-`)06Tep${nryC(RU2g;N%!~7%xYK!VFw}?t* zq-HqMq{NWX{R`7HBiod^a>2~xy~usOt=$$$<>1a?^WkkgI)nJL;}e(CkQeO2a`83( z#>uY)npACUsxP6a%YLVmTasDE2enovj845B=>c1QfKt09AAn=8-N-sDuj0G-l(Ib9~-ca~m zFSq>HPB0#45*OF!07o>1&^#fp?Q*5-B?2Cina;bYLLecxqY^Ma4|6?y-r>*9q?%ta z-@yYx8A&ja5{>{E5w#a3i2^>}X{lQ^T&kCQitoBzyWqqM?lGNtDTKPr-Yf>D<@5(-@_NZ6V&X$ zRpRu*EyYWQCi0q^X|}V5?>e}0E@xJ2;w?J1EI-FU9O2%q##IJ3+ru|YV}q7T4<$OG z=S3$&jbU7ZdVi1nMriwp7=tR=!nyJOgn#1q1QmQ_v~PxSoM|<=uDq-+9FC7IFexem zzl;G`O8Bz~?%Y?kX;@DQ-WIGLf2T0ehkj%{9w`S=%}S$n!7-R7+$VlS+dI||G@~zy zVLeg^|8rse>)2NHuS^sGer9_X`&DDuonU&cO6y7^&s7rqGwYDxw?5*M4~D7ipN&Ha z$k?|@^=Wk$J@l_h1a@k2(P2?(2R>nM`$*sy++{k!ymAbcoFRZX|)xARu|5LS=`@~}wvgHFv=E;m)JPrU*hq6=& zzB6pYC!tbCz7%P9?G_+);6haOKlsun>>z}ozGX0q7pZj79~M#0Wv$H`{}ZjuYE!32 zqatBtkpbL^*<{`8*);4Vt%=mB`e7oyO_R&RMSzJNMA&YvoTXQIIzE`QlO`*WFw-cA zMi~^oN%uS>36**J{$UBLTnW~Bu*2Oh3$79`az^sgVYQMEm&s{P@R>xy1(Q;{4S`}K z*>sA5PG2xo4u)sxzs4W{$rJ1~ZhMG1ZBS?5PuL{06DM<6@Iu;ck@-~F;WU-AD~*Za zrZ%|^k1{X}R@aT0LxrNNqt0i@*i1>RiS}#kX0^{JHryD}^ltlvjoa_u?>p)e>RS~Z zNJI_Fb!EO6_wVX+Sp2|`SjE}7!P?W?u`+Ro%PH+fz!I>H$u#%1H#?xL$Pe*|3~^{*BEWSfWqU0=HgkDqre$!|z0s zA#_d%sZ6}4SaL^-`)vxR^-ZUpVybW|O;>b>AX)I$qjr!IZLbWfMhKL_E0Y5H% zBk8>@CNv_)pw*mzkpJefDeGmi#hQeDZ9yPg4KIH{jocKXjtNJ!vWi{V((m8qGgtYT- zh4+=_nH1lL_=#R*V*Sj*8~8h#$_MU;+llzD&_(W}Ujv|CG$OA*uPukx{M=a3d{>0cmsf`d#1o3nP)Uru0SEH3Bp(fdfgVbaIizWDbQ> zXoPiP6V2%AGi>o(M_fYe|7`GpqdFs;Y*!t5*yx+b4jc~71yfEs{Qv$Uzwb3>XnY7K zf(L4e4>$FPSV@->=$p;2DHb0iwWAK|`OnGrfM>&L$sA8nBKF#>z7@dZAoiO``@eVN zx*k>@ze7gmkcmx2Aj!+UZdt<2iz`zgyj)N>vh<|5Sx?l%gi+`C=H(DTf#t^#06K#z ztM#+lmmD62i$j+Uq=T-PFy0hy1V2e7C+|XFMHUIjCC#=o85}cszE@#V2RL#Qkudd_ zBFF?jU8BKzsy<=ug;pM;eoX%Iil7M|Lj>Wdjr{!{+MUus7uz(1Mq8Y&BiIm=+s4%* zHU(lw%l7AeRRwsfF3ftDI|Iu}_?uMHOCE`%q4+LtODEuHAQ&=V*lD%Si~LVpQijMy z2tl5JUnJ-B&fe+Nw+D`DqQ`b73AQdX|6-TjRK##${+!S{6WWO`vS&Ba90rzXW4b%U z;!5E*@+w25;4C;FZZ=;`&-~4@bz?^o^ zvdxtz%hg?oy!5;H)9+Z4ncXZ+ks7Ui z)%XZTVsA8x+H9{Y;9Gp|*V*u0f&*Riulx8=gCp@VY=bCz$6LK`iIFdxI>ye>U4&An zf;yy!BQ$2!&?*_moFU)6lDc<+S88wh$GJZPhy3vdGbZCCW-2-<3roWyNz)lmv|WYV z`SC%6H%9-1y{M>MI>X{yQXa6_IfP+iShF9y@DFkR;Yd@9)b%kzX&B43KRi{a`hCZ}8KRUsTg*g9uQS~re80Cj`27#z-SoOmXpaJ&i4(;O&ud zAM?pxw>9A2BK?mcm+-{a2SlvUO;U9nWsX{l>-18RQygRF-FiwQsUy~TE@X1s51-Ow+gLWkv=%Yo&8UEGdU$NHKRtFx*q zZ^gKIq2z5P6t!8bzL&8bKkYAneip=Qf;s<1-5FnTenFBXcofZtt-XA4^c}kE7uwdTTT2n*Ny%_V0kYq!T5VCl?y3`zoBULNgC%r zwGE@OBzkYcL-I66Z2l(nN}9J6(KzI*i^cS z2Hyt%{1qiSJe$=7U8`wH51QtzZ3Pm71pi)D#6W+Hj5+0TAF)JFKEJ=}K zp(+h!x_N&DE2A-I4g5LwUl-Jeaj-1xPv5RgyU@L#x9qMgiraCZ{$F;a_tsJlflZ~X zC~#_yl-O0WJm`wP^-16VC^fSBxRZvbFG>m5HtpN%NDd-vh-6a^C}|i{5b8I3&OHa@u4q8+WLb<>bvkiDbJTOraZtxL93KH@&Eh~)Kd*8PE7-1hGwwerL z6}YYE95#jpLKCw27($3-IQ@6$8=Tl0;4$cpjBCi%y%YCAsEj}QB4RNK)kW)nw!ldMB{azHKq;}x zIzk;lDum2L9+Kf~GaEVOsnw6dbL0SkMj?ac^!1x26Fn<6>L|2wSsAaR8?H^OE^u6Jq!qx% zzG>MZdkj*Ng`3h66|rh*@pzqmxms`@wa+{3a+LaA7S)^lO=eXd6r<~B3r|d|)35>= ztX;%FsUVpuBfr*Y2T_8E0*f65z#C3cRo2VTJfEAZL`yvBXOi#`J7~g40CnIT^^uF| zwWsc7Db1)OO+Q2Jq)fmis;8bwTz87Af#fsBy`3Uc~{-S#)!~|x&Z4^2L{5y zG10Wd73m*)?(eCuC-Yh?1t4W2^TlrfiVv1Nh&do7rTZ@kYNW2u)v%H(jM-eLpxr!i zVt2qDmR#`o*<;^r52Kl#B%sEc0)ibE2*5xL>(?RyWyuyMnRNccRLdNB-q0VT8k6UB zq}&~rsiFpmIW;BSx&mVk$tck+4AU?WFDE^M#Q1C?=)k}sl1A}2v(p_R!9))@o#bnJ zg!vX~YAU3CKtDd62_SQC6y`<*jqqpU9Yls=7>#jsBZ(#oxtz2fg`BoafF(wfnj0ee zXR@qq$s_ts-@IOK*4Ong$i<#96M9O)I|lB6)YDUl7FMi*jKhXj=+@pzk0no$eBA|6 zf7qWL%c0t7B!2A+uIJS?fRzYQ1vLccG5UcqapbDNm7?yx(5pm*D}^u-8l4<_|3JnPOBAIN23=_3y>&LWW7A%x3GJF* z%T1peI<y!JnI46`ZF3S zJbI-~E$Hjkna<-qBVC|PSq%|m=2urUgQ}2JR6aU~#oyl+NLVu|Ehg<(6k=**3F~GiPh-OZxz>>&Ya#H@_xF(cN4- ze6``O0_qiU>uI5QiF-I0+<}?d6|AZDiz;)AXFD4q@sv9FGDe5*?AOS)XT-A*;AkIQ z7wktIGSG|5WG1@}0CVj{pX07iqW#}!4-cyFze4vpjv$4!BRBtJ)^+jpJr9vwlt;Jc zjfoB$U5k&6iRw=VdQ@g~mij)9U;2earTScsO1T92t{AcYbevQAD+x*K$2ahy3`LCl z&xhc?Jb>Y*8*-rM)FyUQ@=yyF(EQfSo8 zjBc9mH2~jHi%BXZov8JVv(c0ML6$`CobUN2`UjbA)DM9qMM#K|Jz6NDdl@VsWF;G5 zDy@5v>0^f$R(RGi8P=2O4XhNQ`_RifFAbH`joL($*1Utd>uhE`aTLfN@L@6}{9q>k zzV%-&qR%{d$k$l<@fVpkm@MY|E|0qtzvL%~^}r?7x;fZ@Pa6H=LHmxOZnfoZV9(%- z)WUk^SZ{Ucy-c#mxTI2V{;6EsIn8d3b+)01&B_%%2|+}M16z`!iqY= z$)X^~>9F>(YQ4U!)Kx7IZ{0E@p0JyQXPOw{twK=O&si{!-6VPRf+XR23ofskkU8cYk0Lxlh;y}ptUu2{x)q) zy*oAvJVcElh5kx%fYHubNxAJ6$1k&QDYZC=;ZTa&6r^k4jad!Z$)a|RxCPwxJ6x`; zJg|F|NYndBV6-;jkN2exk>+lu2OvPQc&Shi*reyI71H`}sE z`ps;?XD%1{RFlqWmqTvzLU(+eht@Rkde6=+`0I{R`14a&D#s5^xfh%t!P?U`2M>@d zb9zE!y#MjUA8^ZcYF^ocRgxnxK-ToqTFJ_{s7J~b0mZN`*hUAO6-7(gH>nf=!eG=j zUz&+Q6uDE9S{=5jc#L(DV!e*7VRK~l<+@#CniS6?TXhmSKc5j|*am{#VAG>Exfe(m zO)2oeZSR=^$65-Z?qP>z{z5KJc%i|RS@5y16UhdHc&}$Q#*W%q8>ol8gqsb*n)>#OkyuTT`#@J2(mbX*i9DfBb{j;Mb5mC2E%z84lugeNiy zQOQBM!Edp*HVXrjfSj`Kx8`Hv94%w++-eK>BWjddQcB-uz=zkJv~cQL6|6~RW9Ugg~6?jd=as$F2b zxo)$p1lMDjH!NVobaIVx|ET`nUD!SA=Q~1>kkbJrhqRG_dTuHSW7eZWU{;tSUV#uI zxP7LuV|_;f z*nKp^{1W=;yt42wlvK$L{(((O5#uaDCdL?=++( zk#}-;Y~6-o-VUXllWNnwuP#b8hoD~5V15PXKd1w3*D-{L2&-A=vjw=bstCJ*1Bab8 zCl)j9d-)zLq&X2DsT(h8*bXi{jfWWyH8<_gwuwiM=pmbN|bdHhEG*88}&X-+oatq8$*F8trhyCbKp zCYvzJhJp{Ys;;ArwZNv??yC{X7*I#TH?FZGaj{zy5C@wIZ?701nj2 z-Nu6Nr<}7;EW~N`YD>p@FB0kFNUJ-Wm^mhAQI2%**l=w!kCWc)TmbT@tvfBtcAt`; zOMVbZ6rjOK8n*CkEv8QFHx{|L!?8)xwUYJUX$IcGSJ1K9n=D0>Hcs={x z9RV)vwQv~QkaluA6Ma!_{M5-wDFcj`$%~d))1eJG!Lb?L_vsk~Sj2)iTKHdGL z&L(Id-IVnEYEIsU@-f+rLES9jYHi0nGY-dXkbwhr)Rx#XfGJ?)k0U|Ww%f23n>cG* z(ZrC&jyuB+EIEQyIu8m6w8do+ObAA?*yKrsA4PCYGSQllsy#||Lw9vmuGrdIquG2U zIHd<~j){_au~9(T1QbR((|67dRF8pMB>(X>M*QQ5Xv?ADYU`VBCs<6K@{Ovp{gbzA zGhSb*r)OCJ7DRDoc*$<1!OJa?C9RHz(2lr zLfWC&K{Ch8?7WG0)8V2A*Ra}=|E22@1$G7q;8JWI9nmG3E+0zuP#HQA$<=4O z#_9_U7aramnYCe)F`wJ#JdDa3q`Zpwile#6F~>@BAk}uh!&YVlRfeK*2#Q>tL(q z+BSwX_x2-(ob3Hz68t**qcXf5*5j|P63aRn?hO_x6MQAuc^#V>L2%xSOA}0DpDI?G zdctgtAN)>g$IsHR=@7yf1?KPkLSJ>f|F>kAibF$a-i4Ozeg9PXigRy@hGb7cFd}cP z9}gT;@okKm5yUiq%n{_SBh;{Jg$WoB$loPg{B_)}7*7tu+xW*)^+ zMdV4=k^as18(F^+c?yRSBU?qj;J}9&`5;Jf9vFD;$2{0zi=C5|q z2=}5aH~2Q;qV{Dec%;ICP6&^Yy^ji5(gFmG5q_7-Tt^jl-v5zwAjYaSs1PjH)C7Wb zX7~=;JJXw(?tx0WGhS2p;CpDXw_AbQ9|g)mWALCrB_$6Q zNxcODwEw>Te#RORA7)`no4I4}kTl`K*^_U={})dE0=M*Nh$vZhxS7>4t&ZhNo9;~K z_~_SCSW&S!Pl>Om2|rPOPm9;=FI1))@woTUuTkK(^_iq#q?tpZ;t_rlk~6_ep-s z$qiC-rAT|1?ZM z;Dy@Sv3(*xSWwKWziFSY5cPFzY;V#R}`@!A%-L#kjP00;eSl&$fP`oHOIt~@Qs zkKgLuN~J1{`pmHzX90O%Taz@^!ZYGDv1zgUM75c4J{i*iA3?pfttbY5T=jQ8( z?a81>B(CG7OJ=oq{*eAm>kqu186_o@UPr19ARO3di^NFJpf9_rW^!C@ZEcC?fFcyU zncwxrz-3|4yJyuLO+kl;gFe{ca`odFm-pc&1a&?{v-A&G$$8h?0$qJpYL-!wOEdSl z&R@kN;D~e6bO(B(RJ+`*yFI61zxAm_*n%9xL9X(lNAjdy=aZz5K83gexov`~B$uX- z>geyRycA#2)Pq}d)jq<6{_d&?D=TZf;9KU~$%0WXo>UlSPKU($@QYJ3B;R{D@mJ(h zW`xT&TX5CA56tL>9dD%19Foh9DW;}{ED1EFnwllA7_G?9(b%Cx*Zk8Z&l4w8g<^|Q+|{a|AVEF zbxZ(;RdY?3VTskz|1-7^z72j=tr=N(Lg&ZS{b|_`RLRc&j5|~QrYuNZn?V7KB%)(F z%hpZq;gZXp@UQVdjrT1)cr>&{;An_f;fAP>Pe2s`>Exa$Mp7WRNUNvRY~HESt8Y&E z&P)qbNVhU$7GIrJKc+cxVAtc0s5>sm)D>iFELbqxznbWcgRot@a2W$in0(uNn07G| z-{nrUxbj0?7M(#n^Je-$3$hKqSQX3*hKC7;)B*lX%dF#Hy(LvCteMFzGGnjrlcDYQ zuO9>PAiXjpgSQo-r9v1dFtze#;nX5E4BlLe0nI>l=uwJ~Anb-3*Lmn|NyK-*U>#n& z3-A_pFrr9nEnQrq{TD`}%RtO;BM9V&ccM8U?HTy+$~?>#(Gxi>*A&Hs2Hi4jNSW~_ z^4<-&w@@6IT?X4+sERK~RoP@eOU`Lz^E(Vnw-uR|r$A1?7(4pNfC?n*`%xE;7rW2m zVK~5wZJgU}{5a}Kg%$Ui z+v}gyOq?_WkbZ=Rb3v_3qhpO+aKAOpS4FI3(BjH7m)ZAiI%{bdQnC#O%q`gTp$!09 z@g^0zNSGwco+qqIb335^&xoda8Pj{=Cy20LZT&Tv3v8qoC>GHh zT`P5|S*-#}CK%6+9tBd`U7n{et0iZV)5=R2fWDok&Ktr;{&!~ZKi{MMz0Pi2$;B3> zF*ztBRZW)%s#)=cAfR1H9WSjFo0ol^hX>b{j#`<& zv4zC3|GG%n(QDqQW~S!YKrm#OpWC!l1oTR>y!6;^3z{DlbK)yvl8VKm+Y+Z8Z=XSr zA7Gt8ph~G$wM=e(06V{^ku@ISg9ZYsB`qKSMi| z4$a8GD%#JxjgrM$z?bqyt;8ur(;1}fJZ|3a_x|!6I1vTnO0llPSB=(+jW`Y1T}EEh zA@w;?bvU~D_BOpq2ECJX?CH@<4kHc?}hA;}fJ_R2H1=UAl}+!s|Jdb`QAvc1w@lOG>ZONh^M& z3}~B`6TG<wyA9UqN8f%3QXu zoFj_1DQrkgY;XfLPq#o!9gb@R8My;?O!TUC;M)nBmxp6v5g~~@sj@y$>gz{vIhc6> zpe5D1xV3ch)}zE=3wpXM^*`1Med0hnkUiu7+||eRt)1X@9e67+`{s>=Kn7h1_QZj8 zc5pR&K?CohV^zRNHFIv`!>i6(Mn;g^gy=|{^DVUDjoWgj){$PMC+1o+(xETRg%OHk zYp=lXv{#~ZR?5g+@YK@9u7`ea594SY;TD#L3Bs)-0FNH?VDFRoe%7eTQWQf0Zu`+8 zliBa3b{9Hkdg=33$!T@u3WEZIs;B~VQM%j%+jE$|C2Ok=QAKn!s|F!=0$zsm&&qPe zbpD{-0mEYq@>`uZzIhd{o&saOTT5VRuUH?k1irA0D%qW7+3+q{+kK z+4!0U3#^I+eef3k5lF|z6i0y~3#Nc+%FfOXw$C{~4r|ib8IX(3%5t4SM6B~vPvtU3 zP0LEQf831jHPnqst3=i$=zq^9eW<+eVs`0$J(9}rmk+3EMtv( zRbLxezErvBlQ$K{MHH@G$J=0p(g$v&5Ar-O# zN%fk6^iGtHp|ZjDh}vL9*`h*-WF`ug+ZqYfRzJ(cF_Z$_c#9Lg5Q}&?-+nAQ6}aP4 zT!V*U$PeLP0i(GD=#m4L2na|+wkoGJqJ^uSal3LEsVCF{Wp(c!tizXeuMg>DNvmx> zzE9IE5m-0Ev||;Wdt}dfEkUqlE?Deaf0*O*8x8dCe8o#%LkHx3i;<; z377^{+cabTsUGPztliS)8i*Tc@xG-H5Mf+fARR#3U#>@p{3o^pLLoslNKyEf7xTjc zkQv&Abva>Fn$4g~lnCbdq z(Hi>9&E3Ul3fvfNZ3N#wu0&3SDsrz|v;*SBJ^7;lo?1I-S$yjXAwTap@|7@Z5^C|qOEiT@0p=(+s{B96QaHihDxH1g>g6kYCZAN3Hw(3 zOc*P_ttVh~)YBCC+tlU@R_m(iUFx}fN4HA6w+#VvVdcg=HiAev4|NdaJ0iUeg-Tjw zUFt*Ic_0i*TeVgRPPoR*Ni2}(=FvY=NxRv!@Sf5H>^O2$KH7ou$$jT927w}v z@XHuy6a`?!mh?+>ohI5EI0xHScc!~APuvG+$ zsoRA%dPBz|)A0_6bO_nm+8(AE1N{;nR2;~*`RI!p$z%RT-iZ`eU-r{JPJE2GuYu0l zVy8BkbR7>}vdA1H-x1w7K?L!L2?h`t`0^r8N&zHkzCCz?PNhWwP-6dYmt@u#s;TRY VC4BAKA*fs#Ojb%svPRql_&=;Iuj>E+ literal 0 HcmV?d00001 diff --git a/assets/solana_node_list.yml b/assets/solana_node_list.yml new file mode 100644 index 000000000..4a2e12161 --- /dev/null +++ b/assets/solana_node_list.yml @@ -0,0 +1,4 @@ +- + uri: rpc.ankr.com + is_default: true + useSSL: true \ No newline at end of file diff --git a/cw_core/lib/crypto_currency.dart b/cw_core/lib/crypto_currency.dart index 162ffb1d2..62c0ad437 100644 --- a/cw_core/lib/crypto_currency.dart +++ b/cw_core/lib/crypto_currency.dart @@ -9,7 +9,8 @@ class CryptoCurrency extends EnumerableItem with Serializable implemen required this.decimals, this.fullName, this.iconPath, - this.tag}) + this.tag, this.enabled = false, + }) : super(title: title, raw: raw); final String name; @@ -17,6 +18,9 @@ class CryptoCurrency extends EnumerableItem with Serializable implemen final String? fullName; final String? iconPath; final int decimals; + final bool enabled; + + set enabled(bool value) => this.enabled = value; static const all = [ CryptoCurrency.xmr, @@ -208,6 +212,7 @@ class CryptoCurrency extends EnumerableItem with Serializable implemen static const usdtPoly = CryptoCurrency(title: 'USDT', tag: 'POLY', fullName: 'Tether USD (PoS)', raw: 87, name: 'usdtpoly', iconPath: 'assets/images/usdt_icon.png', decimals: 6); static const usdcEPoly = CryptoCurrency(title: 'USDC.E', tag: 'POLY', fullName: 'USD Coin (PoS)', raw: 88, name: 'usdcepoly', iconPath: 'assets/images/usdc_icon.png', decimals: 6); static const kaspa = CryptoCurrency(title: 'KAS', fullName: 'Kaspa', raw: 89, name: 'kaspa', iconPath: 'assets/images/kaspa_icon.png', decimals: 8); + static const usdtSol = CryptoCurrency(title: 'USDT', tag: 'SOL', fullName: 'USDT Tether', raw: 90, name: 'usdtsol', iconPath: 'assets/images/usdt_icon.png', decimals: 6); static final Map _rawCurrencyMap = diff --git a/cw_core/lib/currency_for_wallet_type.dart b/cw_core/lib/currency_for_wallet_type.dart index ce0219f1f..58ee37669 100644 --- a/cw_core/lib/currency_for_wallet_type.dart +++ b/cw_core/lib/currency_for_wallet_type.dart @@ -21,6 +21,8 @@ CryptoCurrency currencyForWalletType(WalletType type) { return CryptoCurrency.banano; case WalletType.polygon: return CryptoCurrency.maticpoly; + case WalletType.solana: + return CryptoCurrency.sol; default: throw Exception('Unexpected wallet type: ${type.toString()} for CryptoCurrency currencyForWalletType'); } diff --git a/cw_core/lib/hive_type_ids.dart b/cw_core/lib/hive_type_ids.dart index 4d4d1a6a8..3fa2eb647 100644 --- a/cw_core/lib/hive_type_ids.dart +++ b/cw_core/lib/hive_type_ids.dart @@ -13,4 +13,5 @@ const ADDRESS_INFO_TYPE_ID = 11; const ERC20_TOKEN_TYPE_ID = 12; const NANO_ACCOUNT_TYPE_ID = 13; const POW_NODE_TYPE_ID = 14; -const DERIVATION_TYPE_TYPE_ID = 15; \ No newline at end of file +const DERIVATION_TYPE_TYPE_ID = 15; +const SPL_TOKEN_TYPE_ID = 16; diff --git a/cw_core/lib/node.dart b/cw_core/lib/node.dart index 2c43dd21a..585bc3c38 100644 --- a/cw_core/lib/node.dart +++ b/cw_core/lib/node.dart @@ -70,15 +70,10 @@ class Node extends HiveObject with Keyable { Uri get uri { switch (type) { case WalletType.monero: - return Uri.http(uriRaw, ''); - case WalletType.bitcoin: - return createUriFromElectrumAddress(uriRaw); - case WalletType.litecoin: - return createUriFromElectrumAddress(uriRaw); case WalletType.haven: return Uri.http(uriRaw, ''); - case WalletType.ethereum: - return Uri.https(uriRaw, ''); + case WalletType.bitcoin: + case WalletType.litecoin: case WalletType.bitcoinCash: return createUriFromElectrumAddress(uriRaw); case WalletType.nano: @@ -88,7 +83,9 @@ class Node extends HiveObject with Keyable { } else { return Uri.http(uriRaw, ''); } + case WalletType.ethereum: case WalletType.polygon: + case WalletType.solana: return Uri.https(uriRaw, ''); default: throw Exception('Unexpected type ${type.toString()} for Node uri'); @@ -134,21 +131,17 @@ class Node extends HiveObject with Keyable { try { switch (type) { case WalletType.monero: - return requestMoneroNode(); - case WalletType.bitcoin: - return requestElectrumServer(); - case WalletType.litecoin: - return requestElectrumServer(); case WalletType.haven: return requestMoneroNode(); - case WalletType.ethereum: - return requestElectrumServer(); - case WalletType.bitcoinCash: - return requestElectrumServer(); case WalletType.nano: case WalletType.banano: return requestNanoNode(); + case WalletType.bitcoin: + case WalletType.litecoin: + case WalletType.bitcoinCash: + case WalletType.ethereum: case WalletType.polygon: + case WalletType.solana: return requestElectrumServer(); default: return false; diff --git a/cw_core/lib/pathForWallet.dart b/cw_core/lib/pathForWallet.dart index af4838ffa..cfc33ef21 100644 --- a/cw_core/lib/pathForWallet.dart +++ b/cw_core/lib/pathForWallet.dart @@ -1,6 +1,5 @@ import 'dart:io'; import 'package:cw_core/wallet_type.dart'; -import 'package:flutter/foundation.dart'; import 'package:path_provider/path_provider.dart'; Future pathForWalletDir({required String name, required WalletType type}) async { diff --git a/cw_core/lib/wallet_type.dart b/cw_core/lib/wallet_type.dart index 20f0bdb19..a63ddf37c 100644 --- a/cw_core/lib/wallet_type.dart +++ b/cw_core/lib/wallet_type.dart @@ -14,6 +14,7 @@ const walletTypes = [ WalletType.nano, WalletType.banano, WalletType.polygon, + WalletType.solana, ]; @HiveType(typeId: WALLET_TYPE_TYPE_ID) @@ -46,7 +47,10 @@ enum WalletType { bitcoinCash, @HiveField(9) - polygon + polygon, + + @HiveField(10) + solana } int serializeToInt(WalletType type) { @@ -69,6 +73,8 @@ int serializeToInt(WalletType type) { return 7; case WalletType.polygon: return 8; + case WalletType.solana: + return 9; default: return -1; } @@ -94,6 +100,8 @@ WalletType deserializeFromInt(int raw) { return WalletType.bitcoinCash; case 8: return WalletType.polygon; + case 9: + return WalletType.solana; default: throw Exception('Unexpected token: $raw for WalletType deserializeFromInt'); } @@ -119,6 +127,8 @@ String walletTypeToString(WalletType type) { return 'Banano'; case WalletType.polygon: return 'Polygon'; + case WalletType.solana: + return 'Solana'; default: return ''; } @@ -144,6 +154,8 @@ String walletTypeToDisplayName(WalletType type) { return 'Banano (BAN)'; case WalletType.polygon: return 'Polygon (MATIC)'; + case WalletType.solana: + return 'Solana (SOL)'; default: return ''; } @@ -169,6 +181,8 @@ CryptoCurrency walletTypeToCryptoCurrency(WalletType type) { return CryptoCurrency.banano; case WalletType.polygon: return CryptoCurrency.maticpoly; + case WalletType.solana: + return CryptoCurrency.sol; default: throw Exception( 'Unexpected wallet type: ${type.toString()} for CryptoCurrency walletTypeToCryptoCurrency'); diff --git a/cw_solana/.gitignore b/cw_solana/.gitignore new file mode 100644 index 000000000..96486fd93 --- /dev/null +++ b/cw_solana/.gitignore @@ -0,0 +1,30 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock. +/pubspec.lock +**/doc/api/ +.dart_tool/ +.packages +build/ diff --git a/cw_solana/.metadata b/cw_solana/.metadata new file mode 100644 index 000000000..fa347fc6a --- /dev/null +++ b/cw_solana/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: f468f3366c26a5092eb964a230ce7892fda8f2f8 + channel: stable + +project_type: package diff --git a/cw_solana/CHANGELOG.md b/cw_solana/CHANGELOG.md new file mode 100644 index 000000000..41cc7d819 --- /dev/null +++ b/cw_solana/CHANGELOG.md @@ -0,0 +1,3 @@ +## 0.0.1 + +* TODO: Describe initial release. diff --git a/cw_solana/LICENSE b/cw_solana/LICENSE new file mode 100644 index 000000000..ba75c69f7 --- /dev/null +++ b/cw_solana/LICENSE @@ -0,0 +1 @@ +TODO: Add your license here. diff --git a/cw_solana/README.md b/cw_solana/README.md new file mode 100644 index 000000000..02fe8ecab --- /dev/null +++ b/cw_solana/README.md @@ -0,0 +1,39 @@ + + +TODO: Put a short description of the package here that helps potential users +know whether this package might be useful for them. + +## Features + +TODO: List what your package can do. Maybe include images, gifs, or videos. + +## Getting started + +TODO: List prerequisites and provide or point to information on how to +start using the package. + +## Usage + +TODO: Include short and useful examples for package users. Add longer examples +to `/example` folder. + +```dart +const like = 'sample'; +``` + +## Additional information + +TODO: Tell users more about the package: where to find more information, how to +contribute to the package, how to file issues, what response they can expect +from the package authors, and more. diff --git a/cw_solana/analysis_options.yaml b/cw_solana/analysis_options.yaml new file mode 100644 index 000000000..a5744c1cf --- /dev/null +++ b/cw_solana/analysis_options.yaml @@ -0,0 +1,4 @@ +include: package:flutter_lints/flutter.yaml + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/cw_solana/lib/cw_solana.dart b/cw_solana/lib/cw_solana.dart new file mode 100644 index 000000000..d04069b3b --- /dev/null +++ b/cw_solana/lib/cw_solana.dart @@ -0,0 +1,7 @@ +library cw_solana; + +/// A Calculator. +class Calculator { + /// Returns [value] plus 1. + int addOne(int value) => value + 1; +} diff --git a/cw_solana/lib/default_spl_tokens.dart b/cw_solana/lib/default_spl_tokens.dart new file mode 100644 index 000000000..f96d62d86 --- /dev/null +++ b/cw_solana/lib/default_spl_tokens.dart @@ -0,0 +1,109 @@ +import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_solana/spl_token.dart'; + +class DefaultSPLTokens { + final List _defaultTokens = [ + SPLToken( + name: 'USDT Tether', + symbol: 'USDT', + mintAddress: 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB', + decimal: 6, + mint: 'usdtsol', + enabled: true, + ), + SPLToken( + name: 'USD Coin', + symbol: 'USDC', + mintAddress: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', + decimal: 6, + mint: 'usdcsol', + enabled: true, + ), + SPLToken( + name: 'Wrapped Ethereum (Sollet)', + symbol: 'soETH', + mintAddress: '2FPyTwcZLUg1MDrwsyoP4D6s1tM7hAkHYRjkNb5w6Pxk', + decimal: 6, + mint: 'soEth', + enabled: true, + iconPath: 'assets/images/eth_icon.png', + ), + SPLToken( + name: 'Wrapped SOL', + symbol: 'WSOL', + mintAddress: 'So11111111111111111111111111111111111111112', + decimal: 9, + mint: 'WSOL', + enabled: true, + iconPath: 'assets/images/sol_icon.png', + ), + SPLToken( + name: 'Wrapped Bitcoin (Sollet)', + symbol: 'BTC', + mintAddress: '9n4nbM75f5Ui33ZbPYXn59EwSgE8CGsHtAeTH5YFeJ9E', + decimal: 6, + mint: 'btcsol', + iconPath: 'assets/images/btc.png', + ), + SPLToken( + name: 'Bonk', + symbol: 'Bonk', + mintAddress: 'DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263', + decimal: 5, + mint: 'Bonk', + iconPath: 'assets/images/bonk_icon.png', + ), + SPLToken( + name: 'Helium Network Token', + symbol: 'HNT', + mintAddress: 'hntyVP6YFm1Hg25TN9WGLqM12b8TQmcknKrdu1oxWux', + decimal: 8, + mint: 'hnt', + iconPath: 'assets/images/hnt_icon.png', + ), + SPLToken( + name: 'Pyth Network', + symbol: 'PYTH', + mintAddress: 'HZ1JovNiVvGrGNiiYvEozEVgZ58xaU3RKwX8eACQBCt3', + decimal: 6, + mint: 'pyth', + ), + SPLToken( + name: 'Raydium', + symbol: 'RAY', + mintAddress: '4k3Dyjzvzp8eMZWUXbBCjEvwSkkk59S5iCNLY3QrkX6R', + decimal: 6, + mint: 'ray', + iconPath: 'assets/images/ray_icon.png', + ), + SPLToken( + name: 'GMT', + symbol: 'GMT', + mintAddress: '7i5KKsX2weiTkry7jA4ZwSuXGhs5eJBEjY8vVxR4pfRx', + decimal: 6, + mint: 'ray', + iconPath: 'assets/images/gmt_icon.png', + ), + SPLToken( + name: 'AvocadoCoin', + symbol: 'AVDO', + mintAddress: 'EE5L8cMU4itTsCSuor7NLK6RZx6JhsBe8GGV3oaAHm3P', + decimal: 8, + mint: 'avdo', + iconPath: 'assets/images/avdo_icon.png', + ), + ]; + + List get initialSPLTokens => _defaultTokens.map((token) { + String? iconPath; + if (token.iconPath != null) return token; + + try { + iconPath = CryptoCurrency.all + .firstWhere((element) => element.title.toUpperCase() == token.symbol.toUpperCase()) + .iconPath; + } catch (_) {} + + return SPLToken.copyWith(token, iconPath, 'SOL'); + }).toList(); +} diff --git a/cw_solana/lib/file.dart b/cw_solana/lib/file.dart new file mode 100644 index 000000000..8fd236ec3 --- /dev/null +++ b/cw_solana/lib/file.dart @@ -0,0 +1,39 @@ +import 'dart:io'; +import 'package:cw_core/key.dart'; +import 'package:encrypt/encrypt.dart' as encrypt; + +Future write( + {required String path, + required String password, + required String data}) async { + final keys = extractKeys(password); + final key = encrypt.Key.fromBase64(keys.first); + final iv = encrypt.IV.fromBase64(keys.last); + final encrypted = await encode(key: key, iv: iv, data: data); + final f = File(path); + f.writeAsStringSync(encrypted); +} + +Future writeData( + {required String path, + required String password, + required String data}) async { + final keys = extractKeys(password); + final key = encrypt.Key.fromBase64(keys.first); + final iv = encrypt.IV.fromBase64(keys.last); + final encrypted = await encode(key: key, iv: iv, data: data); + final f = File(path); + f.writeAsStringSync(encrypted); +} + +Future read({required String path, required String password}) async { + final file = File(path); + + if (!file.existsSync()) { + file.createSync(); + } + + final encrypted = file.readAsStringSync(); + + return decode(password: password, data: encrypted); +} diff --git a/cw_solana/lib/pending_solana_transaction.dart b/cw_solana/lib/pending_solana_transaction.dart new file mode 100644 index 000000000..38347ed13 --- /dev/null +++ b/cw_solana/lib/pending_solana_transaction.dart @@ -0,0 +1,43 @@ +import 'package:cw_core/pending_transaction.dart'; +import 'package:solana/encoder.dart'; + +class PendingSolanaTransaction with PendingTransaction { + final double amount; + final SignedTx signedTransaction; + final String destinationAddress; + final Function sendTransaction; + final double fee; + + PendingSolanaTransaction({ + required this.fee, + required this.amount, + required this.signedTransaction, + required this.destinationAddress, + required this.sendTransaction, + }); + + @override + String get amountFormatted { + String stringifiedAmount = amount.toString(); + + if (stringifiedAmount.toString().length >= 6) { + stringifiedAmount = stringifiedAmount.substring(0, 6); + } + + return stringifiedAmount; + } + + @override + Future commit() async { + return await sendTransaction(); + } + + @override + String get feeFormatted => fee.toString(); + + @override + String get hex => signedTransaction.encode(); + + @override + String get id => ''; +} diff --git a/cw_solana/lib/solana_balance.dart b/cw_solana/lib/solana_balance.dart new file mode 100644 index 000000000..b1f0ef153 --- /dev/null +++ b/cw_solana/lib/solana_balance.dart @@ -0,0 +1,39 @@ +import 'dart:convert'; + +import 'package:cw_core/balance.dart'; + +class SolanaBalance extends Balance { + SolanaBalance(this.balance) : super(balance.toInt(), balance.toInt()); + + final double balance; + + @override + String get formattedAdditionalBalance => _balanceFormatted(); + + @override + String get formattedAvailableBalance => _balanceFormatted(); + + String _balanceFormatted() { + String stringBalance = balance.toString(); + if (stringBalance.toString().length >= 6) { + stringBalance = stringBalance.substring(0, 6); + } + return stringBalance; + } + + static SolanaBalance? fromJSON(String? jsonSource) { + if (jsonSource == null) { + return null; + } + + final decoded = json.decode(jsonSource) as Map; + + try { + return SolanaBalance(decoded['balance']); + } catch (e) { + return SolanaBalance(0.0); + } + } + + String toJSON() => json.encode({'balance': balance.toString()}); +} diff --git a/cw_solana/lib/solana_client.dart b/cw_solana/lib/solana_client.dart new file mode 100644 index 000000000..ececc56ba --- /dev/null +++ b/cw_solana/lib/solana_client.dart @@ -0,0 +1,477 @@ +import 'dart:async'; +import 'dart:convert'; +import 'dart:math'; + +import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_core/node.dart'; +import 'package:cw_solana/pending_solana_transaction.dart'; +import 'package:cw_solana/solana_balance.dart'; +import 'package:cw_solana/solana_transaction_model.dart'; +import 'package:http/http.dart' as http; +import 'package:solana/dto.dart'; +import 'package:solana/encoder.dart'; +import 'package:solana/solana.dart'; +import '.secrets.g.dart' as secrets; + +class SolanaWalletClient { + final httpClient = http.Client(); + SolanaClient? _client; + + bool connect(Node node) { + try { + Uri? rpcUri; + String webSocketUrl; + bool isModifiedNodeUri = false; + + if (node.uriRaw == 'rpc.ankr.com') { + isModifiedNodeUri = true; + String ankrApiKey = secrets.ankrApiKey; + + rpcUri = Uri.https(node.uriRaw, '/solana/$ankrApiKey'); + webSocketUrl = 'wss://${node.uriRaw}/solana/ws/$ankrApiKey'; + } else { + webSocketUrl = 'wss://${node.uriRaw}'; + } + + _client = SolanaClient( + rpcUrl: isModifiedNodeUri ? rpcUri! : node.uri, + websocketUrl: Uri.parse(webSocketUrl), + timeout: const Duration(minutes: 2), + ); + return true; + } catch (e) { + return false; + } + } + + Future getBalance(String address) async { + try { + final balance = await _client!.rpcClient.getBalance(address); + + final solBalance = balance.value / lamportsPerSol; + + return solBalance; + } catch (_) { + return 0.0; + } + } + + Future getSPLTokenAccounts(String mintAddress, String publicKey) async { + try { + final tokenAccounts = await _client!.rpcClient.getTokenAccountsByOwner( + publicKey, + TokenAccountsFilter.byMint(mintAddress), + commitment: Commitment.confirmed, + encoding: Encoding.jsonParsed, + ); + return tokenAccounts; + } catch (e) { + return null; + } + } + + Future getSplTokenBalance(String mintAddress, String publicKey) async { + // Fetch the token accounts (a token can have multiple accounts for various uses) + final tokenAccounts = await getSPLTokenAccounts(mintAddress, publicKey); + + // Handle scenario where there is no token account + if (tokenAccounts == null || tokenAccounts.value.isEmpty) { + return null; + } + + // Sum the balances of all accounts with the specified mint address + double totalBalance = 0.0; + + for (var programAccount in tokenAccounts.value) { + final tokenAmountResult = + await _client!.rpcClient.getTokenAccountBalance(programAccount.pubkey); + + final balance = tokenAmountResult.value.uiAmountString; + + final balanceAsDouble = double.tryParse(balance ?? '0.0') ?? 0.0; + + totalBalance += balanceAsDouble; + } + + return SolanaBalance(totalBalance); + } + + Future getGasForMessage(String message) async { + try { + final gasPrice = await _client!.rpcClient.getFeeForMessage(message) ?? 0; + final fee = gasPrice / lamportsPerSol; + return fee; + } catch (_) { + return 0; + } + } + + /// Load the Address's transactions into the account + Future> fetchTransactions( + Ed25519HDPublicKey publicKey, { + String? splTokenSymbol, + int? splTokenDecimal, + }) async { + List transactions = []; + + try { + final response = await _client!.rpcClient.getTransactionsList( + publicKey, + commitment: Commitment.confirmed, + limit: 1000, + ); + + for (final tx in response) { + if (tx.transaction is ParsedTransaction) { + final parsedTx = (tx.transaction as ParsedTransaction); + final message = parsedTx.message; + + final fee = (tx.meta?.fee ?? 0) / lamportsPerSol; + + for (final instruction in message.instructions) { + if (instruction is ParsedInstruction) { + instruction.map( + system: (systemData) { + systemData.parsed.map( + transfer: (transferData) { + ParsedSystemTransferInformation transfer = transferData.info; + bool isOutgoingTx = transfer.source == publicKey.toBase58(); + + double amount = transfer.lamports.toDouble() / lamportsPerSol; + + transactions.add( + SolanaTransactionModel( + id: parsedTx.signatures.first, + from: transfer.source, + to: transfer.destination, + amount: amount, + isOutgoingTx: isOutgoingTx, + blockTimeInInt: tx.blockTime!, + fee: fee, + programId: SystemProgram.programId, + tokenSymbol: 'SOL', + ), + ); + }, + transferChecked: (_) {}, + unsupported: (_) {}, + ); + }, + splToken: (splTokenData) { + if (splTokenSymbol != null) { + splTokenData.parsed.map( + transfer: (transferData) { + SplTokenTransferInfo transfer = transferData.info; + bool isOutgoingTx = transfer.source == publicKey.toBase58(); + + double amount = (double.tryParse(transfer.amount) ?? 0.0) / + pow(10, splTokenDecimal ?? 9); + + transactions.add( + SolanaTransactionModel( + id: parsedTx.signatures.first, + fee: fee, + from: transfer.source, + to: transfer.destination, + amount: amount, + isOutgoingTx: isOutgoingTx, + programId: TokenProgram.programId, + blockTimeInInt: tx.blockTime!, + tokenSymbol: splTokenSymbol, + ), + ); + }, + transferChecked: (transferCheckedData) { + SplTokenTransferCheckedInfo transfer = transferCheckedData.info; + bool isOutgoingTx = transfer.source == publicKey.toBase58(); + double amount = + double.tryParse(transfer.tokenAmount.uiAmountString ?? '0.0') ?? 0.0; + + transactions.add( + SolanaTransactionModel( + id: parsedTx.signatures.first, + fee: fee, + from: transfer.source, + to: transfer.destination, + amount: amount, + isOutgoingTx: isOutgoingTx, + programId: TokenProgram.programId, + blockTimeInInt: tx.blockTime!, + tokenSymbol: splTokenSymbol, + ), + ); + }, + generic: (genericData) {}, + ); + } + }, + memo: (_) {}, + unsupported: (a) {}, + ); + } + } + } + } + + return transactions; + } catch (err) { + return []; + } + } + + Future> getSPLTokenTransfers( + String address, + String splTokenSymbol, + int splTokenDecimal, + Ed25519HDKeyPair ownerKeypair, + ) async { + final tokenMint = Ed25519HDPublicKey.fromBase58(address); + + ProgramAccount? associatedTokenAccount; + + try { + associatedTokenAccount = await _client!.getAssociatedTokenAccount( + mint: tokenMint, + owner: ownerKeypair.publicKey, + commitment: Commitment.confirmed, + ); + } catch (_) {} + + if (associatedTokenAccount == null) return []; + + final accountPublicKey = Ed25519HDPublicKey.fromBase58(associatedTokenAccount.pubkey); + + final tokenTransactions = await fetchTransactions( + accountPublicKey, + splTokenSymbol: splTokenSymbol, + splTokenDecimal: splTokenDecimal, + ); + + return tokenTransactions; + } + + void stop() {} + + SolanaClient? get getSolanaClient => _client; + + Future signSolanaTransaction({ + required String tokenTitle, + required int tokenDecimals, + String? tokenMint, + required double inputAmount, + required String destinationAddress, + required Ed25519HDKeyPair ownerKeypair, + List references = const [], + }) async { + const commitment = Commitment.finalized; + + final latestBlockhash = + await _client!.rpcClient.getLatestBlockhash(commitment: commitment).value; + + final recentBlockhash = RecentBlockhash( + blockhash: latestBlockhash.blockhash, + feeCalculator: const FeeCalculator( + lamportsPerSignature: 500, + ), + ); + + if (tokenTitle == CryptoCurrency.sol.title) { + final pendingNativeTokenTransaction = await _signNativeTokenTransaction( + tokenTitle: tokenTitle, + tokenDecimals: tokenDecimals, + inputAmount: inputAmount, + destinationAddress: destinationAddress, + ownerKeypair: ownerKeypair, + recentBlockhash: recentBlockhash, + commitment: commitment, + ); + return pendingNativeTokenTransaction; + } else { + final pendingSPLTokenTransaction = _signSPLTokenTransaction( + tokenTitle: tokenTitle, + tokenDecimals: tokenDecimals, + tokenMint: tokenMint!, + inputAmount: inputAmount, + destinationAddress: destinationAddress, + ownerKeypair: ownerKeypair, + recentBlockhash: recentBlockhash, + commitment: commitment, + ); + return pendingSPLTokenTransaction; + } + } + + Future _signNativeTokenTransaction({ + required String tokenTitle, + required int tokenDecimals, + required double inputAmount, + required String destinationAddress, + required Ed25519HDKeyPair ownerKeypair, + required RecentBlockhash recentBlockhash, + required Commitment commitment, + }) async { + // Convert SOL to lamport + int lamports = (inputAmount * lamportsPerSol).toInt(); + + final instructions = [ + SystemInstruction.transfer( + fundingAccount: ownerKeypair.publicKey, + recipientAccount: Ed25519HDPublicKey.fromBase58(destinationAddress), + lamports: lamports, + ), + ]; + + final message = Message(instructions: instructions); + final signers = [ownerKeypair]; + + final signedTx = await _signTransactionInternal( + message: message, + signers: signers, + commitment: commitment, + recentBlockhash: recentBlockhash, + ); + + final fee = await _getFeeFromCompiledMessage( + message, + recentBlockhash, + signers.first.publicKey, + ); + + sendTx() async => await sendTransaction( + signedTransaction: signedTx, + commitment: commitment, + ); + + final pendingTransaction = PendingSolanaTransaction( + amount: inputAmount, + signedTransaction: signedTx, + destinationAddress: destinationAddress, + sendTransaction: sendTx, + fee: fee, + ); + + return pendingTransaction; + } + + Future _signSPLTokenTransaction({ + required String tokenTitle, + required int tokenDecimals, + required String tokenMint, + required double inputAmount, + required String destinationAddress, + required Ed25519HDKeyPair ownerKeypair, + required RecentBlockhash recentBlockhash, + required Commitment commitment, + }) async { + final destinationOwner = Ed25519HDPublicKey.fromBase58(destinationAddress); + final mint = Ed25519HDPublicKey.fromBase58(tokenMint); + + ProgramAccount? associatedRecipientAccount; + ProgramAccount? associatedSenderAccount; + + associatedRecipientAccount = await _client!.getAssociatedTokenAccount( + mint: mint, + owner: destinationOwner, + commitment: commitment, + ); + + associatedSenderAccount = await _client!.getAssociatedTokenAccount( + owner: ownerKeypair.publicKey, + mint: mint, + commitment: commitment, + ); + + // Throw an appropriate exception if the sender has no associated + // token account + if (associatedSenderAccount == null) { + throw NoAssociatedTokenAccountException(ownerKeypair.address, mint.toBase58()); + } + + try { + associatedRecipientAccount ??= await _client!.createAssociatedTokenAccount( + mint: mint, + owner: destinationOwner, + funder: ownerKeypair, + ); + } catch (e) { + throw Exception( + 'Error while creating an associated token account for the recipient: ${e.toString()}', + ); + } + + // Input by the user + final amount = (inputAmount * pow(10, tokenDecimals)).toInt(); + + final instruction = TokenInstruction.transfer( + source: Ed25519HDPublicKey.fromBase58(associatedSenderAccount.pubkey), + destination: Ed25519HDPublicKey.fromBase58(associatedRecipientAccount.pubkey), + owner: ownerKeypair.publicKey, + amount: amount, + ); + + final message = Message(instructions: [instruction]); + final signers = [ownerKeypair]; + + final signedTx = await _signTransactionInternal( + message: message, + signers: signers, + commitment: commitment, + recentBlockhash: recentBlockhash, + ); + + final fee = await _getFeeFromCompiledMessage( + message, + recentBlockhash, + signers.first.publicKey, + ); + + sendTx() async => await sendTransaction( + signedTransaction: signedTx, + commitment: commitment, + ); + + final pendingTransaction = PendingSolanaTransaction( + amount: inputAmount, + signedTransaction: signedTx, + destinationAddress: destinationAddress, + sendTransaction: sendTx, + fee: fee, + ); + return pendingTransaction; + } + + Future _getFeeFromCompiledMessage( + Message message, RecentBlockhash recentBlockhash, Ed25519HDPublicKey feePayer) async { + final compile = message.compile( + recentBlockhash: recentBlockhash.blockhash, + feePayer: feePayer, + ); + + final base64Message = base64Encode(compile.toByteArray().toList()); + + final fee = await getGasForMessage(base64Message); + return fee; + } + + Future _signTransactionInternal({ + required Message message, + required List signers, + required Commitment commitment, + required RecentBlockhash recentBlockhash, + }) async { + final signedTx = await signTransaction(recentBlockhash, message, signers); + + return signedTx; + } + + Future sendTransaction({ + required SignedTx signedTransaction, + required Commitment commitment, + }) async { + final signature = await _client!.rpcClient.sendTransaction(signedTransaction.encode()); + + _client!.waitForSignatureStatus(signature, status: commitment); + + return signature; + } +} diff --git a/cw_solana/lib/solana_exceptions.dart b/cw_solana/lib/solana_exceptions.dart new file mode 100644 index 000000000..7409b0500 --- /dev/null +++ b/cw_solana/lib/solana_exceptions.dart @@ -0,0 +1,21 @@ +import 'package:cw_core/crypto_currency.dart'; + +class SolanaTransactionCreationException implements Exception { + final String exceptionMessage; + + SolanaTransactionCreationException(CryptoCurrency currency) + : exceptionMessage = 'Error creating ${currency.title} transaction.'; + + @override + String toString() => exceptionMessage; +} + +class SolanaTransactionWrongBalanceException implements Exception { + final String exceptionMessage; + + SolanaTransactionWrongBalanceException(CryptoCurrency currency) + : exceptionMessage = 'Wrong balance. Not enough ${currency.title} on your balance.'; + + @override + String toString() => exceptionMessage; +} diff --git a/cw_solana/lib/solana_mnemonics.dart b/cw_solana/lib/solana_mnemonics.dart new file mode 100644 index 000000000..21cbb613a --- /dev/null +++ b/cw_solana/lib/solana_mnemonics.dart @@ -0,0 +1,2058 @@ +class SolanaMnemonicIsIncorrectException implements Exception { + @override + String toString() => + 'Solana mnemonic has incorrect format. Mnemonic should contain 12 or 24 words separated by space.'; +} + +class SolanaMnemonics { + static const englishWordlist = [ + 'abandon', + 'ability', + 'able', + 'about', + 'above', + 'absent', + 'absorb', + 'abstract', + 'absurd', + 'abuse', + 'access', + 'accident', + 'account', + 'accuse', + 'achieve', + 'acid', + 'acoustic', + 'acquire', + 'across', + 'act', + 'action', + 'actor', + 'actress', + 'actual', + 'adapt', + 'add', + 'addict', + 'address', + 'adjust', + 'admit', + 'adult', + 'advance', + 'advice', + 'aerobic', + 'affair', + 'afford', + 'afraid', + 'again', + 'age', + 'agent', + 'agree', + 'ahead', + 'aim', + 'air', + 'airport', + 'aisle', + 'alarm', + 'album', + 'alcohol', + 'alert', + 'alien', + 'all', + 'alley', + 'allow', + 'almost', + 'alone', + 'alpha', + 'already', + 'also', + 'alter', + 'always', + 'amateur', + 'amazing', + 'among', + 'amount', + 'amused', + 'analyst', + 'anchor', + 'ancient', + 'anger', + 'angle', + 'angry', + 'animal', + 'ankle', + 'announce', + 'annual', + 'another', + 'answer', + 'antenna', + 'antique', + 'anxiety', + 'any', + 'apart', + 'apology', + 'appear', + 'apple', + 'approve', + 'april', + 'arch', + 'arctic', + 'area', + 'arena', + 'argue', + 'arm', + 'armed', + 'armor', + 'army', + 'around', + 'arrange', + 'arrest', + 'arrive', + 'arrow', + 'art', + 'artefact', + 'artist', + 'artwork', + 'ask', + 'aspect', + 'assault', + 'asset', + 'assist', + 'assume', + 'asthma', + 'athlete', + 'atom', + 'attack', + 'attend', + 'attitude', + 'attract', + 'auction', + 'audit', + 'august', + 'aunt', + 'author', + 'auto', + 'autumn', + 'average', + 'avocado', + 'avoid', + 'awake', + 'aware', + 'away', + 'awesome', + 'awful', + 'awkward', + 'axis', + 'baby', + 'bachelor', + 'bacon', + 'badge', + 'bag', + 'balance', + 'balcony', + 'ball', + 'bamboo', + 'banana', + 'banner', + 'bar', + 'barely', + 'bargain', + 'barrel', + 'base', + 'basic', + 'basket', + 'battle', + 'beach', + 'bean', + 'beauty', + 'because', + 'become', + 'beef', + 'before', + 'begin', + 'behave', + 'behind', + 'believe', + 'below', + 'belt', + 'bench', + 'benefit', + 'best', + 'betray', + 'better', + 'between', + 'beyond', + 'bicycle', + 'bid', + 'bike', + 'bind', + 'biology', + 'bird', + 'birth', + 'bitter', + 'black', + 'blade', + 'blame', + 'blanket', + 'blast', + 'bleak', + 'bless', + 'blind', + 'blood', + 'blossom', + 'blouse', + 'blue', + 'blur', + 'blush', + 'board', + 'boat', + 'body', + 'boil', + 'bomb', + 'bone', + 'bonus', + 'book', + 'boost', + 'border', + 'boring', + 'borrow', + 'boss', + 'bottom', + 'bounce', + 'box', + 'boy', + 'bracket', + 'brain', + 'brand', + 'brass', + 'brave', + 'bread', + 'breeze', + 'brick', + 'bridge', + 'brief', + 'bright', + 'bring', + 'brisk', + 'broccoli', + 'broken', + 'bronze', + 'broom', + 'brother', + 'brown', + 'brush', + 'bubble', + 'buddy', + 'budget', + 'buffalo', + 'build', + 'bulb', + 'bulk', + 'bullet', + 'bundle', + 'bunker', + 'burden', + 'burger', + 'burst', + 'bus', + 'business', + 'busy', + 'butter', + 'buyer', + 'buzz', + 'cabbage', + 'cabin', + 'cable', + 'cactus', + 'cage', + 'cake', + 'call', + 'calm', + 'camera', + 'camp', + 'can', + 'canal', + 'cancel', + 'candy', + 'cannon', + 'canoe', + 'canvas', + 'canyon', + 'capable', + 'capital', + 'captain', + 'car', + 'carbon', + 'card', + 'cargo', + 'carpet', + 'carry', + 'cart', + 'case', + 'cash', + 'casino', + 'castle', + 'casual', + 'cat', + 'catalog', + 'catch', + 'category', + 'cattle', + 'caught', + 'cause', + 'caution', + 'cave', + 'ceiling', + 'celery', + 'cement', + 'census', + 'century', + 'cereal', + 'certain', + 'chair', + 'chalk', + 'champion', + 'change', + 'chaos', + 'chapter', + 'charge', + 'chase', + 'chat', + 'cheap', + 'check', + 'cheese', + 'chef', + 'cherry', + 'chest', + 'chicken', + 'chief', + 'child', + 'chimney', + 'choice', + 'choose', + 'chronic', + 'chuckle', + 'chunk', + 'churn', + 'cigar', + 'cinnamon', + 'circle', + 'citizen', + 'city', + 'civil', + 'claim', + 'clap', + 'clarify', + 'claw', + 'clay', + 'clean', + 'clerk', + 'clever', + 'click', + 'client', + 'cliff', + 'climb', + 'clinic', + 'clip', + 'clock', + 'clog', + 'close', + 'cloth', + 'cloud', + 'clown', + 'club', + 'clump', + 'cluster', + 'clutch', + 'coach', + 'coast', + 'coconut', + 'code', + 'coffee', + 'coil', + 'coin', + 'collect', + 'color', + 'column', + 'combine', + 'come', + 'comfort', + 'comic', + 'common', + 'company', + 'concert', + 'conduct', + 'confirm', + 'congress', + 'connect', + 'consider', + 'control', + 'convince', + 'cook', + 'cool', + 'copper', + 'copy', + 'coral', + 'core', + 'corn', + 'correct', + 'cost', + 'cotton', + 'couch', + 'country', + 'couple', + 'course', + 'cousin', + 'cover', + 'coyote', + 'crack', + 'cradle', + 'craft', + 'cram', + 'crane', + 'crash', + 'crater', + 'crawl', + 'crazy', + 'cream', + 'credit', + 'creek', + 'crew', + 'cricket', + 'crime', + 'crisp', + 'critic', + 'crop', + 'cross', + 'crouch', + 'crowd', + 'crucial', + 'cruel', + 'cruise', + 'crumble', + 'crunch', + 'crush', + 'cry', + 'crystal', + 'cube', + 'culture', + 'cup', + 'cupboard', + 'curious', + 'current', + 'curtain', + 'curve', + 'cushion', + 'custom', + 'cute', + 'cycle', + 'dad', + 'damage', + 'damp', + 'dance', + 'danger', + 'daring', + 'dash', + 'daughter', + 'dawn', + 'day', + 'deal', + 'debate', + 'debris', + 'decade', + 'december', + 'decide', + 'decline', + 'decorate', + 'decrease', + 'deer', + 'defense', + 'define', + 'defy', + 'degree', + 'delay', + 'deliver', + 'demand', + 'demise', + 'denial', + 'dentist', + 'deny', + 'depart', + 'depend', + 'deposit', + 'depth', + 'deputy', + 'derive', + 'describe', + 'desert', + 'design', + 'desk', + 'despair', + 'destroy', + 'detail', + 'detect', + 'develop', + 'device', + 'devote', + 'diagram', + 'dial', + 'diamond', + 'diary', + 'dice', + 'diesel', + 'diet', + 'differ', + 'digital', + 'dignity', + 'dilemma', + 'dinner', + 'dinosaur', + 'direct', + 'dirt', + 'disagree', + 'discover', + 'disease', + 'dish', + 'dismiss', + 'disorder', + 'display', + 'distance', + 'divert', + 'divide', + 'divorce', + 'dizzy', + 'doctor', + 'document', + 'dog', + 'doll', + 'dolphin', + 'domain', + 'donate', + 'donkey', + 'donor', + 'door', + 'dose', + 'double', + 'dove', + 'draft', + 'dragon', + 'drama', + 'drastic', + 'draw', + 'dream', + 'dress', + 'drift', + 'drill', + 'drink', + 'drip', + 'drive', + 'drop', + 'drum', + 'dry', + 'duck', + 'dumb', + 'dune', + 'during', + 'dust', + 'dutch', + 'duty', + 'dwarf', + 'dynamic', + 'eager', + 'eagle', + 'early', + 'earn', + 'earth', + 'easily', + 'east', + 'easy', + 'echo', + 'ecology', + 'economy', + 'edge', + 'edit', + 'educate', + 'effort', + 'egg', + 'eight', + 'either', + 'elbow', + 'elder', + 'electric', + 'elegant', + 'element', + 'elephant', + 'elevator', + 'elite', + 'else', + 'embark', + 'embody', + 'embrace', + 'emerge', + 'emotion', + 'employ', + 'empower', + 'empty', + 'enable', + 'enact', + 'end', + 'endless', + 'endorse', + 'enemy', + 'energy', + 'enforce', + 'engage', + 'engine', + 'enhance', + 'enjoy', + 'enlist', + 'enough', + 'enrich', + 'enroll', + 'ensure', + 'enter', + 'entire', + 'entry', + 'envelope', + 'episode', + 'equal', + 'equip', + 'era', + 'erase', + 'erode', + 'erosion', + 'error', + 'erupt', + 'escape', + 'essay', + 'essence', + 'estate', + 'eternal', + 'ethics', + 'evidence', + 'evil', + 'evoke', + 'evolve', + 'exact', + 'example', + 'excess', + 'exchange', + 'excite', + 'exclude', + 'excuse', + 'execute', + 'exercise', + 'exhaust', + 'exhibit', + 'exile', + 'exist', + 'exit', + 'exotic', + 'expand', + 'expect', + 'expire', + 'explain', + 'expose', + 'express', + 'extend', + 'extra', + 'eye', + 'eyebrow', + 'fabric', + 'face', + 'faculty', + 'fade', + 'faint', + 'faith', + 'fall', + 'false', + 'fame', + 'family', + 'famous', + 'fan', + 'fancy', + 'fantasy', + 'farm', + 'fashion', + 'fat', + 'fatal', + 'father', + 'fatigue', + 'fault', + 'favorite', + 'feature', + 'february', + 'federal', + 'fee', + 'feed', + 'feel', + 'female', + 'fence', + 'festival', + 'fetch', + 'fever', + 'few', + 'fiber', + 'fiction', + 'field', + 'figure', + 'file', + 'film', + 'filter', + 'final', + 'find', + 'fine', + 'finger', + 'finish', + 'fire', + 'firm', + 'first', + 'fiscal', + 'fish', + 'fit', + 'fitness', + 'fix', + 'flag', + 'flame', + 'flash', + 'flat', + 'flavor', + 'flee', + 'flight', + 'flip', + 'float', + 'flock', + 'floor', + 'flower', + 'fluid', + 'flush', + 'fly', + 'foam', + 'focus', + 'fog', + 'foil', + 'fold', + 'follow', + 'food', + 'foot', + 'force', + 'forest', + 'forget', + 'fork', + 'fortune', + 'forum', + 'forward', + 'fossil', + 'foster', + 'found', + 'fox', + 'fragile', + 'frame', + 'frequent', + 'fresh', + 'friend', + 'fringe', + 'frog', + 'front', + 'frost', + 'frown', + 'frozen', + 'fruit', + 'fuel', + 'fun', + 'funny', + 'furnace', + 'fury', + 'future', + 'gadget', + 'gain', + 'galaxy', + 'gallery', + 'game', + 'gap', + 'garage', + 'garbage', + 'garden', + 'garlic', + 'garment', + 'gas', + 'gasp', + 'gate', + 'gather', + 'gauge', + 'gaze', + 'general', + 'genius', + 'genre', + 'gentle', + 'genuine', + 'gesture', + 'ghost', + 'giant', + 'gift', + 'giggle', + 'ginger', + 'giraffe', + 'girl', + 'give', + 'glad', + 'glance', + 'glare', + 'glass', + 'glide', + 'glimpse', + 'globe', + 'gloom', + 'glory', + 'glove', + 'glow', + 'glue', + 'goat', + 'goddess', + 'gold', + 'good', + 'goose', + 'gorilla', + 'gospel', + 'gossip', + 'govern', + 'gown', + 'grab', + 'grace', + 'grain', + 'grant', + 'grape', + 'grass', + 'gravity', + 'great', + 'green', + 'grid', + 'grief', + 'grit', + 'grocery', + 'group', + 'grow', + 'grunt', + 'guard', + 'guess', + 'guide', + 'guilt', + 'guitar', + 'gun', + 'gym', + 'habit', + 'hair', + 'half', + 'hammer', + 'hamster', + 'hand', + 'happy', + 'harbor', + 'hard', + 'harsh', + 'harvest', + 'hat', + 'have', + 'hawk', + 'hazard', + 'head', + 'health', + 'heart', + 'heavy', + 'hedgehog', + 'height', + 'hello', + 'helmet', + 'help', + 'hen', + 'hero', + 'hidden', + 'high', + 'hill', + 'hint', + 'hip', + 'hire', + 'history', + 'hobby', + 'hockey', + 'hold', + 'hole', + 'holiday', + 'hollow', + 'home', + 'honey', + 'hood', + 'hope', + 'horn', + 'horror', + 'horse', + 'hospital', + 'host', + 'hotel', + 'hour', + 'hover', + 'hub', + 'huge', + 'human', + 'humble', + 'humor', + 'hundred', + 'hungry', + 'hunt', + 'hurdle', + 'hurry', + 'hurt', + 'husband', + 'hybrid', + 'ice', + 'icon', + 'idea', + 'identify', + 'idle', + 'ignore', + 'ill', + 'illegal', + 'illness', + 'image', + 'imitate', + 'immense', + 'immune', + 'impact', + 'impose', + 'improve', + 'impulse', + 'inch', + 'include', + 'income', + 'increase', + 'index', + 'indicate', + 'indoor', + 'industry', + 'infant', + 'inflict', + 'inform', + 'inhale', + 'inherit', + 'initial', + 'inject', + 'injury', + 'inmate', + 'inner', + 'innocent', + 'input', + 'inquiry', + 'insane', + 'insect', + 'inside', + 'inspire', + 'install', + 'intact', + 'interest', + 'into', + 'invest', + 'invite', + 'involve', + 'iron', + 'island', + 'isolate', + 'issue', + 'item', + 'ivory', + 'jacket', + 'jaguar', + 'jar', + 'jazz', + 'jealous', + 'jeans', + 'jelly', + 'jewel', + 'job', + 'join', + 'joke', + 'journey', + 'joy', + 'judge', + 'juice', + 'jump', + 'jungle', + 'junior', + 'junk', + 'just', + 'kangaroo', + 'keen', + 'keep', + 'ketchup', + 'key', + 'kick', + 'kid', + 'kidney', + 'kind', + 'kingdom', + 'kiss', + 'kit', + 'kitchen', + 'kite', + 'kitten', + 'kiwi', + 'knee', + 'knife', + 'knock', + 'know', + 'lab', + 'label', + 'labor', + 'ladder', + 'lady', + 'lake', + 'lamp', + 'language', + 'laptop', + 'large', + 'later', + 'latin', + 'laugh', + 'laundry', + 'lava', + 'law', + 'lawn', + 'lawsuit', + 'layer', + 'lazy', + 'leader', + 'leaf', + 'learn', + 'leave', + 'lecture', + 'left', + 'leg', + 'legal', + 'legend', + 'leisure', + 'lemon', + 'lend', + 'length', + 'lens', + 'leopard', + 'lesson', + 'letter', + 'level', + 'liar', + 'liberty', + 'library', + 'license', + 'life', + 'lift', + 'light', + 'like', + 'limb', + 'limit', + 'link', + 'lion', + 'liquid', + 'list', + 'little', + 'live', + 'lizard', + 'load', + 'loan', + 'lobster', + 'local', + 'lock', + 'logic', + 'lonely', + 'long', + 'loop', + 'lottery', + 'loud', + 'lounge', + 'love', + 'loyal', + 'lucky', + 'luggage', + 'lumber', + 'lunar', + 'lunch', + 'luxury', + 'lyrics', + 'machine', + 'mad', + 'magic', + 'magnet', + 'maid', + 'mail', + 'main', + 'major', + 'make', + 'mammal', + 'man', + 'manage', + 'mandate', + 'mango', + 'mansion', + 'manual', + 'maple', + 'marble', + 'march', + 'margin', + 'marine', + 'market', + 'marriage', + 'mask', + 'mass', + 'master', + 'match', + 'material', + 'math', + 'matrix', + 'matter', + 'maximum', + 'maze', + 'meadow', + 'mean', + 'measure', + 'meat', + 'mechanic', + 'medal', + 'media', + 'melody', + 'melt', + 'member', + 'memory', + 'mention', + 'menu', + 'mercy', + 'merge', + 'merit', + 'merry', + 'mesh', + 'message', + 'metal', + 'method', + 'middle', + 'midnight', + 'milk', + 'million', + 'mimic', + 'mind', + 'minimum', + 'minor', + 'minute', + 'miracle', + 'mirror', + 'misery', + 'miss', + 'mistake', + 'mix', + 'mixed', + 'mixture', + 'mobile', + 'model', + 'modify', + 'mom', + 'moment', + 'monitor', + 'monkey', + 'monster', + 'month', + 'moon', + 'moral', + 'more', + 'morning', + 'mosquito', + 'mother', + 'motion', + 'motor', + 'mountain', + 'mouse', + 'move', + 'movie', + 'much', + 'muffin', + 'mule', + 'multiply', + 'muscle', + 'museum', + 'mushroom', + 'music', + 'must', + 'mutual', + 'myself', + 'mystery', + 'myth', + 'naive', + 'name', + 'napkin', + 'narrow', + 'nasty', + 'nation', + 'nature', + 'near', + 'neck', + 'need', + 'negative', + 'neglect', + 'neither', + 'nephew', + 'nerve', + 'nest', + 'net', + 'network', + 'neutral', + 'never', + 'news', + 'next', + 'nice', + 'night', + 'noble', + 'noise', + 'nominee', + 'noodle', + 'normal', + 'north', + 'nose', + 'notable', + 'note', + 'nothing', + 'notice', + 'novel', + 'now', + 'nuclear', + 'number', + 'nurse', + 'nut', + 'oak', + 'obey', + 'object', + 'oblige', + 'obscure', + 'observe', + 'obtain', + 'obvious', + 'occur', + 'ocean', + 'october', + 'odor', + 'off', + 'offer', + 'office', + 'often', + 'oil', + 'okay', + 'old', + 'olive', + 'olympic', + 'omit', + 'once', + 'one', + 'onion', + 'online', + 'only', + 'open', + 'opera', + 'opinion', + 'oppose', + 'option', + 'orange', + 'orbit', + 'orchard', + 'order', + 'ordinary', + 'organ', + 'orient', + 'original', + 'orphan', + 'ostrich', + 'other', + 'outdoor', + 'outer', + 'output', + 'outside', + 'oval', + 'oven', + 'over', + 'own', + 'owner', + 'oxygen', + 'oyster', + 'ozone', + 'pact', + 'paddle', + 'page', + 'pair', + 'palace', + 'palm', + 'panda', + 'panel', + 'panic', + 'panther', + 'paper', + 'parade', + 'parent', + 'park', + 'parrot', + 'party', + 'pass', + 'patch', + 'path', + 'patient', + 'patrol', + 'pattern', + 'pause', + 'pave', + 'payment', + 'peace', + 'peanut', + 'pear', + 'peasant', + 'pelican', + 'pen', + 'penalty', + 'pencil', + 'people', + 'pepper', + 'perfect', + 'permit', + 'person', + 'pet', + 'phone', + 'photo', + 'phrase', + 'physical', + 'piano', + 'picnic', + 'picture', + 'piece', + 'pig', + 'pigeon', + 'pill', + 'pilot', + 'pink', + 'pioneer', + 'pipe', + 'pistol', + 'pitch', + 'pizza', + 'place', + 'planet', + 'plastic', + 'plate', + 'play', + 'please', + 'pledge', + 'pluck', + 'plug', + 'plunge', + 'poem', + 'poet', + 'point', + 'polar', + 'pole', + 'police', + 'pond', + 'pony', + 'pool', + 'popular', + 'portion', + 'position', + 'possible', + 'post', + 'potato', + 'pottery', + 'poverty', + 'powder', + 'power', + 'practice', + 'praise', + 'predict', + 'prefer', + 'prepare', + 'present', + 'pretty', + 'prevent', + 'price', + 'pride', + 'primary', + 'print', + 'priority', + 'prison', + 'private', + 'prize', + 'problem', + 'process', + 'produce', + 'profit', + 'program', + 'project', + 'promote', + 'proof', + 'property', + 'prosper', + 'protect', + 'proud', + 'provide', + 'public', + 'pudding', + 'pull', + 'pulp', + 'pulse', + 'pumpkin', + 'punch', + 'pupil', + 'puppy', + 'purchase', + 'purity', + 'purpose', + 'purse', + 'push', + 'put', + 'puzzle', + 'pyramid', + 'quality', + 'quantum', + 'quarter', + 'question', + 'quick', + 'quit', + 'quiz', + 'quote', + 'rabbit', + 'raccoon', + 'race', + 'rack', + 'radar', + 'radio', + 'rail', + 'rain', + 'raise', + 'rally', + 'ramp', + 'ranch', + 'random', + 'range', + 'rapid', + 'rare', + 'rate', + 'rather', + 'raven', + 'raw', + 'razor', + 'ready', + 'real', + 'reason', + 'rebel', + 'rebuild', + 'recall', + 'receive', + 'recipe', + 'record', + 'recycle', + 'reduce', + 'reflect', + 'reform', + 'refuse', + 'region', + 'regret', + 'regular', + 'reject', + 'relax', + 'release', + 'relief', + 'rely', + 'remain', + 'remember', + 'remind', + 'remove', + 'render', + 'renew', + 'rent', + 'reopen', + 'repair', + 'repeat', + 'replace', + 'report', + 'require', + 'rescue', + 'resemble', + 'resist', + 'resource', + 'response', + 'result', + 'retire', + 'retreat', + 'return', + 'reunion', + 'reveal', + 'review', + 'reward', + 'rhythm', + 'rib', + 'ribbon', + 'rice', + 'rich', + 'ride', + 'ridge', + 'rifle', + 'right', + 'rigid', + 'ring', + 'riot', + 'ripple', + 'risk', + 'ritual', + 'rival', + 'river', + 'road', + 'roast', + 'robot', + 'robust', + 'rocket', + 'romance', + 'roof', + 'rookie', + 'room', + 'rose', + 'rotate', + 'rough', + 'round', + 'route', + 'royal', + 'rubber', + 'rude', + 'rug', + 'rule', + 'run', + 'runway', + 'rural', + 'sad', + 'saddle', + 'sadness', + 'safe', + 'sail', + 'salad', + 'salmon', + 'salon', + 'salt', + 'salute', + 'same', + 'sample', + 'sand', + 'satisfy', + 'satoshi', + 'sauce', + 'sausage', + 'save', + 'say', + 'scale', + 'scan', + 'scare', + 'scatter', + 'scene', + 'scheme', + 'school', + 'science', + 'scissors', + 'scorpion', + 'scout', + 'scrap', + 'screen', + 'script', + 'scrub', + 'sea', + 'search', + 'season', + 'seat', + 'second', + 'secret', + 'section', + 'security', + 'seed', + 'seek', + 'segment', + 'select', + 'sell', + 'seminar', + 'senior', + 'sense', + 'sentence', + 'series', + 'service', + 'session', + 'settle', + 'setup', + 'seven', + 'shadow', + 'shaft', + 'shallow', + 'share', + 'shed', + 'shell', + 'sheriff', + 'shield', + 'shift', + 'shine', + 'ship', + 'shiver', + 'shock', + 'shoe', + 'shoot', + 'shop', + 'short', + 'shoulder', + 'shove', + 'shrimp', + 'shrug', + 'shuffle', + 'shy', + 'sibling', + 'sick', + 'side', + 'siege', + 'sight', + 'sign', + 'silent', + 'silk', + 'silly', + 'silver', + 'similar', + 'simple', + 'since', + 'sing', + 'siren', + 'sister', + 'situate', + 'six', + 'size', + 'skate', + 'sketch', + 'ski', + 'skill', + 'skin', + 'skirt', + 'skull', + 'slab', + 'slam', + 'sleep', + 'slender', + 'slice', + 'slide', + 'slight', + 'slim', + 'slogan', + 'slot', + 'slow', + 'slush', + 'small', + 'smart', + 'smile', + 'smoke', + 'smooth', + 'snack', + 'snake', + 'snap', + 'sniff', + 'snow', + 'soap', + 'soccer', + 'social', + 'sock', + 'soda', + 'soft', + 'solar', + 'soldier', + 'solid', + 'solution', + 'solve', + 'someone', + 'song', + 'soon', + 'sorry', + 'sort', + 'soul', + 'sound', + 'soup', + 'source', + 'south', + 'space', + 'spare', + 'spatial', + 'spawn', + 'speak', + 'special', + 'speed', + 'spell', + 'spend', + 'sphere', + 'spice', + 'spider', + 'spike', + 'spin', + 'spirit', + 'split', + 'spoil', + 'sponsor', + 'spoon', + 'sport', + 'spot', + 'spray', + 'spread', + 'spring', + 'spy', + 'square', + 'squeeze', + 'squirrel', + 'stable', + 'stadium', + 'staff', + 'stage', + 'stairs', + 'stamp', + 'stand', + 'start', + 'state', + 'stay', + 'steak', + 'steel', + 'stem', + 'step', + 'stereo', + 'stick', + 'still', + 'sting', + 'stock', + 'stomach', + 'stone', + 'stool', + 'story', + 'stove', + 'strategy', + 'street', + 'strike', + 'strong', + 'struggle', + 'student', + 'stuff', + 'stumble', + 'style', + 'subject', + 'submit', + 'subway', + 'success', + 'such', + 'sudden', + 'suffer', + 'sugar', + 'suggest', + 'suit', + 'summer', + 'sun', + 'sunny', + 'sunset', + 'super', + 'supply', + 'supreme', + 'sure', + 'surface', + 'surge', + 'surprise', + 'surround', + 'survey', + 'suspect', + 'sustain', + 'swallow', + 'swamp', + 'swap', + 'swarm', + 'swear', + 'sweet', + 'swift', + 'swim', + 'swing', + 'switch', + 'sword', + 'symbol', + 'symptom', + 'syrup', + 'system', + 'table', + 'tackle', + 'tag', + 'tail', + 'talent', + 'talk', + 'tank', + 'tape', + 'target', + 'task', + 'taste', + 'tattoo', + 'taxi', + 'teach', + 'team', + 'tell', + 'ten', + 'tenant', + 'tennis', + 'tent', + 'term', + 'test', + 'text', + 'thank', + 'that', + 'theme', + 'then', + 'theory', + 'there', + 'they', + 'thing', + 'this', + 'thought', + 'three', + 'thrive', + 'throw', + 'thumb', + 'thunder', + 'ticket', + 'tide', + 'tiger', + 'tilt', + 'timber', + 'time', + 'tiny', + 'tip', + 'tired', + 'tissue', + 'title', + 'toast', + 'tobacco', + 'today', + 'toddler', + 'toe', + 'together', + 'toilet', + 'token', + 'tomato', + 'tomorrow', + 'tone', + 'tongue', + 'tonight', + 'tool', + 'tooth', + 'top', + 'topic', + 'topple', + 'torch', + 'tornado', + 'tortoise', + 'toss', + 'total', + 'tourist', + 'toward', + 'tower', + 'town', + 'toy', + 'track', + 'trade', + 'traffic', + 'tragic', + 'train', + 'transfer', + 'trap', + 'trash', + 'travel', + 'tray', + 'treat', + 'tree', + 'trend', + 'trial', + 'tribe', + 'trick', + 'trigger', + 'trim', + 'trip', + 'trophy', + 'trouble', + 'truck', + 'true', + 'truly', + 'trumpet', + 'trust', + 'truth', + 'try', + 'tube', + 'tuition', + 'tumble', + 'tuna', + 'tunnel', + 'turkey', + 'turn', + 'turtle', + 'twelve', + 'twenty', + 'twice', + 'twin', + 'twist', + 'two', + 'type', + 'typical', + 'ugly', + 'umbrella', + 'unable', + 'unaware', + 'uncle', + 'uncover', + 'under', + 'undo', + 'unfair', + 'unfold', + 'unhappy', + 'uniform', + 'unique', + 'unit', + 'universe', + 'unknown', + 'unlock', + 'until', + 'unusual', + 'unveil', + 'update', + 'upgrade', + 'uphold', + 'upon', + 'upper', + 'upset', + 'urban', + 'urge', + 'usage', + 'use', + 'used', + 'useful', + 'useless', + 'usual', + 'utility', + 'vacant', + 'vacuum', + 'vague', + 'valid', + 'valley', + 'valve', + 'van', + 'vanish', + 'vapor', + 'various', + 'vast', + 'vault', + 'vehicle', + 'velvet', + 'vendor', + 'venture', + 'venue', + 'verb', + 'verify', + 'version', + 'very', + 'vessel', + 'veteran', + 'viable', + 'vibrant', + 'vicious', + 'victory', + 'video', + 'view', + 'village', + 'vintage', + 'violin', + 'virtual', + 'virus', + 'visa', + 'visit', + 'visual', + 'vital', + 'vivid', + 'vocal', + 'voice', + 'void', + 'volcano', + 'volume', + 'vote', + 'voyage', + 'wage', + 'wagon', + 'wait', + 'walk', + 'wall', + 'walnut', + 'want', + 'warfare', + 'warm', + 'warrior', + 'wash', + 'wasp', + 'waste', + 'water', + 'wave', + 'way', + 'wealth', + 'weapon', + 'wear', + 'weasel', + 'weather', + 'web', + 'wedding', + 'weekend', + 'weird', + 'welcome', + 'west', + 'wet', + 'whale', + 'what', + 'wheat', + 'wheel', + 'when', + 'where', + 'whip', + 'whisper', + 'wide', + 'width', + 'wife', + 'wild', + 'will', + 'win', + 'window', + 'wine', + 'wing', + 'wink', + 'winner', + 'winter', + 'wire', + 'wisdom', + 'wise', + 'wish', + 'witness', + 'wolf', + 'woman', + 'wonder', + 'wood', + 'wool', + 'word', + 'work', + 'world', + 'worry', + 'worth', + 'wrap', + 'wreck', + 'wrestle', + 'wrist', + 'write', + 'wrong', + 'yard', + 'year', + 'yellow', + 'you', + 'young', + 'youth', + 'zebra', + 'zero', + 'zone', + 'zoo' + ]; +} diff --git a/cw_solana/lib/solana_transaction_credentials.dart b/cw_solana/lib/solana_transaction_credentials.dart new file mode 100644 index 000000000..bd0c97f0b --- /dev/null +++ b/cw_solana/lib/solana_transaction_credentials.dart @@ -0,0 +1,12 @@ +import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_core/output_info.dart'; + +class SolanaTransactionCredentials { + SolanaTransactionCredentials( + this.outputs, { + required this.currency, + }); + + final List outputs; + final CryptoCurrency currency; +} diff --git a/cw_solana/lib/solana_transaction_history.dart b/cw_solana/lib/solana_transaction_history.dart new file mode 100644 index 000000000..c03de19ad --- /dev/null +++ b/cw_solana/lib/solana_transaction_history.dart @@ -0,0 +1,78 @@ +import 'dart:convert'; +import 'dart:core'; +import 'package:cw_core/pathForWallet.dart'; +import 'package:cw_core/wallet_info.dart'; +import 'package:cw_solana/file.dart'; +import 'package:cw_solana/solana_transaction_info.dart'; +import 'package:mobx/mobx.dart'; +import 'package:cw_core/transaction_history.dart'; + +part 'solana_transaction_history.g.dart'; + +const transactionsHistoryFileName = 'solana_transactions.json'; + +class SolanaTransactionHistory = SolanaTransactionHistoryBase with _$SolanaTransactionHistory; + +abstract class SolanaTransactionHistoryBase extends TransactionHistoryBase + with Store { + SolanaTransactionHistoryBase({required this.walletInfo, required String password}) + : _password = password { + transactions = ObservableMap(); + } + + final WalletInfo walletInfo; + String _password; + + Future init() async => await _load(); + + @override + Future save() async { + try { + final dirPath = await pathForWalletDir(name: walletInfo.name, type: walletInfo.type); + final path = '$dirPath/$transactionsHistoryFileName'; + final transactionMaps = transactions.map((key, value) => MapEntry(key, value.toJson())); + final data = json.encode({'transactions': transactionMaps}); + await writeData(path: path, password: _password, data: data); + } catch (e, s) { + print('Error while saving solana transaction history: ${e.toString()}'); + print(s); + } + } + + @override + void addOne(SolanaTransactionInfo transaction) => transactions[transaction.id] = transaction; + + @override + void addMany(Map transactions) => + this.transactions.addAll(transactions); + + Future> _read() async { + final dirPath = await pathForWalletDir(name: walletInfo.name, type: walletInfo.type); + final path = '$dirPath/$transactionsHistoryFileName'; + final content = await read(path: path, password: _password); + if (content.isEmpty) { + return {}; + } + return json.decode(content) as Map; + } + + Future _load() async { + try { + final content = await _read(); + final txs = content['transactions'] as Map? ?? {}; + + txs.entries.forEach((entry) { + final val = entry.value; + + if (val is Map) { + final tx = SolanaTransactionInfo.fromJson(val); + _update(tx); + } + }); + } catch (e) { + print(e); + } + } + + void _update(SolanaTransactionInfo transaction) => transactions[transaction.id] = transaction; +} diff --git a/cw_solana/lib/solana_transaction_info.dart b/cw_solana/lib/solana_transaction_info.dart new file mode 100644 index 000000000..1b7610e34 --- /dev/null +++ b/cw_solana/lib/solana_transaction_info.dart @@ -0,0 +1,78 @@ +import 'package:cw_core/format_amount.dart'; +import 'package:cw_core/transaction_direction.dart'; +import 'package:cw_core/transaction_info.dart'; + +class SolanaTransactionInfo extends TransactionInfo { + SolanaTransactionInfo({ + required this.id, + required this.blockTime, + required this.to, + required this.from, + required this.direction, + required this.solAmount, + this.tokenSymbol = "SOL", + required this.isPending, + required this.txFee, + }) : amount = solAmount.toInt(); + + final String id; + final String? to; + final String? from; + final int amount; + final bool isPending; + final double solAmount; + final String tokenSymbol; + final DateTime blockTime; + final double txFee; + final TransactionDirection direction; + + String? _fiatAmount; + + @override + DateTime get date => blockTime; + + @override + String amountFormatted() { + String stringBalance = solAmount.toString(); + + if (stringBalance.toString().length >= 6) { + stringBalance = stringBalance.substring(0, 6); + } + return '$stringBalance $tokenSymbol'; + } + + @override + String fiatAmount() => _fiatAmount ?? ''; + + @override + void changeFiatAmount(String amount) => _fiatAmount = formatAmount(amount); + + @override + String feeFormatted() => '${txFee.toString()} SOL'; + + factory SolanaTransactionInfo.fromJson(Map data) { + return SolanaTransactionInfo( + id: data['id'] as String, + solAmount: data['solAmount'], + direction: parseTransactionDirectionFromInt(data['direction'] as int), + blockTime: DateTime.fromMillisecondsSinceEpoch(data['blockTime'] as int), + isPending: data['isPending'] as bool, + tokenSymbol: data['tokenSymbol'] as String, + to: data['to'], + from: data['from'], + txFee: data['txFee'], + ); + } + + Map toJson() => { + 'id': id, + 'solAmount': solAmount, + 'direction': direction.index, + 'blockTime': blockTime.millisecondsSinceEpoch, + 'isPending': isPending, + 'tokenSymbol': tokenSymbol, + 'to': to, + 'from': from, + 'txFee': txFee, + }; +} diff --git a/cw_solana/lib/solana_transaction_model.dart b/cw_solana/lib/solana_transaction_model.dart new file mode 100644 index 000000000..c16c49258 --- /dev/null +++ b/cw_solana/lib/solana_transaction_model.dart @@ -0,0 +1,47 @@ +class SolanaTransactionModel { + final String id; + + final String from; + + final String to; + + final double amount; + + // If this is an outgoing transaction + final bool isOutgoingTx; + + // The Program ID of this transaction, e.g, System Program, Token Program... + final String programId; + + // The DateTime from the UNIX timestamp of the block where the transaction was included + final DateTime blockTime; + + // The Transaction fee + final double fee; + + // The token symbol + final String tokenSymbol; + + SolanaTransactionModel({ + required this.id, + required this.to, + required this.from, + required this.amount, + required this.programId, + required int blockTimeInInt, + this.isOutgoingTx = false, + required this.tokenSymbol, + required this.fee, + }) : blockTime = DateTime.fromMillisecondsSinceEpoch(blockTimeInInt * 1000); + + factory SolanaTransactionModel.fromJson(Map json) => SolanaTransactionModel( + id: json['id'], + blockTimeInInt: int.parse(json["timeStamp"]) * 1000, + from: json["from"], + to: json["to"], + amount: double.parse(json["value"]), + programId: json["programId"], + fee: json['fee'], + tokenSymbol: json['tokenSymbol'], + ); +} diff --git a/cw_solana/lib/solana_wallet.dart b/cw_solana/lib/solana_wallet.dart new file mode 100644 index 000000000..f901a64be --- /dev/null +++ b/cw_solana/lib/solana_wallet.dart @@ -0,0 +1,510 @@ +import 'dart:async'; +import 'dart:convert'; +import 'dart:developer'; +import 'dart:io'; +import 'package:cw_core/cake_hive.dart'; +import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_core/node.dart'; +import 'package:cw_core/pathForWallet.dart'; +import 'package:cw_core/pending_transaction.dart'; +import 'package:cw_core/sync_status.dart'; +import 'package:cw_core/transaction_direction.dart'; +import 'package:cw_core/transaction_priority.dart'; +import 'package:cw_core/wallet_addresses.dart'; +import 'package:cw_core/wallet_base.dart'; +import 'package:cw_core/wallet_info.dart'; +import 'package:cw_solana/default_spl_tokens.dart'; +import 'package:cw_solana/file.dart'; +import 'package:cw_solana/solana_balance.dart'; +import 'package:cw_solana/solana_client.dart'; +import 'package:cw_solana/solana_exceptions.dart'; +import 'package:cw_solana/solana_transaction_credentials.dart'; +import 'package:cw_solana/solana_transaction_history.dart'; +import 'package:cw_solana/solana_transaction_info.dart'; +import 'package:cw_solana/solana_transaction_model.dart'; +import 'package:cw_solana/solana_wallet_addresses.dart'; +import 'package:cw_solana/spl_token.dart'; +import 'package:hex/hex.dart'; +import 'package:hive/hive.dart'; +import 'package:mobx/mobx.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:solana/metaplex.dart' as metaplex; +import 'package:solana/solana.dart'; +import 'package:web3dart/crypto.dart'; + +part 'solana_wallet.g.dart'; + +class SolanaWallet = SolanaWalletBase with _$SolanaWallet; + +abstract class SolanaWalletBase + extends WalletBase with Store { + SolanaWalletBase({ + required WalletInfo walletInfo, + String? mnemonic, + String? privateKey, + required String password, + SolanaBalance? initialBalance, + }) : syncStatus = const NotConnectedSyncStatus(), + _password = password, + _mnemonic = mnemonic, + _hexPrivateKey = privateKey, + _client = SolanaWalletClient(), + walletAddresses = SolanaWalletAddresses(walletInfo), + balance = ObservableMap.of( + {CryptoCurrency.sol: initialBalance ?? SolanaBalance(BigInt.zero.toDouble())}), + super(walletInfo) { + this.walletInfo = walletInfo; + transactionHistory = SolanaTransactionHistory(walletInfo: walletInfo, password: password); + + if (!CakeHive.isAdapterRegistered(SPLToken.typeId)) { + CakeHive.registerAdapter(SPLTokenAdapter()); + } + + _sharedPrefs.complete(SharedPreferences.getInstance()); + } + + final String _password; + final String? _mnemonic; + final String? _hexPrivateKey; + + // The Solana WalletPair + Ed25519HDKeyPair? _walletKeyPair; + + Ed25519HDKeyPair? get walletKeyPair => _walletKeyPair; + + // To access the privateKey bytes. + Ed25519HDKeyPairData? _keyPairData; + + late SolanaWalletClient _client; + + Timer? _transactionsUpdateTimer; + + late final Box splTokensBox; + + @override + WalletAddresses walletAddresses; + + @override + @observable + SyncStatus syncStatus; + + @override + @observable + late ObservableMap balance; + + Completer _sharedPrefs = Completer(); + + @override + Ed25519HDKeyPairData get keys { + if (_keyPairData == null) { + return Ed25519HDKeyPairData([], publicKey: const Ed25519HDPublicKey([])); + } + + return _keyPairData!; + } + + @override + String? get seed => _mnemonic; + + @override + String get privateKey => HEX.encode(_keyPairData!.bytes); + + Future init() async { + final boxName = "${walletInfo.name.replaceAll(" ", "_")}_${SPLToken.boxName}"; + + splTokensBox = await CakeHive.openBox(boxName); + + // Create WalletPair using either the mnemonic or the privateKey + _walletKeyPair = await getWalletPair( + mnemonic: _mnemonic, + privateKey: _hexPrivateKey, + ); + + // Extract the keyPairData containing both the privateKey bytes and the publicKey hex. + _keyPairData = await _walletKeyPair!.extract(); + + walletInfo.address = _walletKeyPair!.address; + + await walletAddresses.init(); + await transactionHistory.init(); + await save(); + } + + Future getWalletPair({String? mnemonic, String? privateKey}) async { + assert(mnemonic != null || privateKey != null); + + if (privateKey != null) { + final privateKeyBytes = hexToBytes(privateKey); + return await Wallet.fromPrivateKeyBytes(privateKey: privateKeyBytes); + } + + return Wallet.fromMnemonic(mnemonic!, account: 0, change: 0); + } + + @override + int calculateEstimatedFee(TransactionPriority priority, int? amount) => 0; + + @override + Future changePassword(String password) => throw UnimplementedError("changePassword"); + + @override + void close() { + _client.stop(); + _transactionsUpdateTimer?.cancel(); + } + + @action + @override + Future connectToNode({required Node node}) async { + try { + syncStatus = ConnectingSyncStatus(); + + final isConnected = _client.connect(node); + + if (!isConnected) { + throw Exception("Solana Node connection failed"); + } + + try { + await Future.wait([ + _updateBalance(), + _updateNativeSOLTransactions(), + _updateSPLTokenTransactions(), + ]); + } catch (e) { + log(e.toString()); + } + + _setTransactionUpdateTimer(); + + syncStatus = ConnectedSyncStatus(); + } catch (e) { + syncStatus = FailedSyncStatus(); + } + } + + @override + Future createTransaction(Object credentials) async { + final solCredentials = credentials as SolanaTransactionCredentials; + + final outputs = solCredentials.outputs; + + final hasMultiDestination = outputs.length > 1; + + await _updateBalance(); + + final CryptoCurrency transactionCurrency = + balance.keys.firstWhere((element) => element.title == solCredentials.currency.title); + + final walletBalanceForCurrency = balance[transactionCurrency]!.balance; + + double totalAmount = 0.0; + + if (hasMultiDestination) { + if (outputs.any((item) => item.sendAll || (item.formattedCryptoAmount ?? 0) <= 0)) { + throw SolanaTransactionWrongBalanceException(transactionCurrency); + } + + final totalAmountFromCredentials = + outputs.fold(0, (acc, value) => acc + (value.formattedCryptoAmount ?? 0)); + + totalAmount = totalAmountFromCredentials.toDouble(); + + if (walletBalanceForCurrency < totalAmount) { + throw SolanaTransactionWrongBalanceException(transactionCurrency); + } + } else { + final output = outputs.first; + + final totalOriginalAmount = double.parse(output.cryptoAmount ?? '0.0'); + + totalAmount = output.sendAll ? walletBalanceForCurrency : totalOriginalAmount; + + if (walletBalanceForCurrency < totalAmount) { + throw SolanaTransactionWrongBalanceException(transactionCurrency); + } + } + + String? tokenMint; + // Token Mint is only needed for transactions that are not native tokens(non-SOL transactions) + if (transactionCurrency.title != CryptoCurrency.sol.title) { + tokenMint = (transactionCurrency as SPLToken).mintAddress; + } + + final pendingSolanaTransaction = await _client.signSolanaTransaction( + tokenMint: tokenMint, + tokenTitle: transactionCurrency.title, + inputAmount: totalAmount, + ownerKeypair: _walletKeyPair!, + tokenDecimals: transactionCurrency.decimals, + destinationAddress: solCredentials.outputs.first.isParsedAddress + ? solCredentials.outputs.first.extractedAddress! + : solCredentials.outputs.first.address, + ); + + return pendingSolanaTransaction; + } + + @override + Future> fetchTransactions() async => {}; + + /// Fetches the native SOL transactions linked to the wallet Public Key + Future _updateNativeSOLTransactions() async { + final address = Ed25519HDPublicKey.fromBase58(_walletKeyPair!.address); + + final transactions = await _client.fetchTransactions(address); + + final Map result = {}; + + for (var transactionModel in transactions) { + result[transactionModel.id] = SolanaTransactionInfo( + id: transactionModel.id, + to: transactionModel.to, + from: transactionModel.from, + blockTime: transactionModel.blockTime, + direction: transactionModel.isOutgoingTx + ? TransactionDirection.outgoing + : TransactionDirection.incoming, + solAmount: transactionModel.amount, + isPending: false, + txFee: transactionModel.fee, + tokenSymbol: transactionModel.tokenSymbol, + ); + } + + transactionHistory.addMany(result); + + await transactionHistory.save(); + } + + /// Fetches the SPL Tokens transactions linked to the token account Public Key + Future _updateSPLTokenTransactions() async { + List splTokenTransactions = []; + + for (var token in balance.keys) { + if (token is SPLToken) { + final tokenTxs = await _client.getSPLTokenTransfers( + token.mintAddress, + token.symbol, + token.decimal, + _walletKeyPair!, + ); + + splTokenTransactions.addAll(tokenTxs); + } + } + + final Map result = {}; + + for (var transactionModel in splTokenTransactions) { + result[transactionModel.id] = SolanaTransactionInfo( + id: transactionModel.id, + to: transactionModel.to, + from: transactionModel.from, + blockTime: transactionModel.blockTime, + direction: transactionModel.isOutgoingTx + ? TransactionDirection.outgoing + : TransactionDirection.incoming, + solAmount: transactionModel.amount, + isPending: false, + txFee: transactionModel.fee, + tokenSymbol: transactionModel.tokenSymbol, + ); + } + + transactionHistory.addMany(result); + + await transactionHistory.save(); + } + + @override + Future rescan({required int height}) => throw UnimplementedError("rescan"); + + @override + Future save() async { + await walletAddresses.updateAddressesInBox(); + final path = await makePath(); + await write(path: path, password: _password, data: toJSON()); + await transactionHistory.save(); + } + + @action + @override + Future startSync() async { + try { + syncStatus = AttemptingSyncStatus(); + + await Future.wait([ + _updateBalance(), + _updateNativeSOLTransactions(), + _updateSPLTokenTransactions(), + ]); + + syncStatus = SyncedSyncStatus(); + } catch (e) { + syncStatus = FailedSyncStatus(); + } + } + + Future makePath() async => pathForWallet(name: walletInfo.name, type: walletInfo.type); + + String toJSON() => json.encode({ + 'mnemonic': _mnemonic, + 'private_key': privateKey, + 'balance': balance[currency]!.toJSON(), + }); + + static Future open({ + required String name, + required String password, + required WalletInfo walletInfo, + }) async { + final path = await pathForWallet(name: name, type: walletInfo.type); + final jsonSource = await read(path: path, password: password); + final data = json.decode(jsonSource) as Map; + final mnemonic = data['mnemonic'] as String?; + final privateKey = data['private_key'] as String?; + final balance = SolanaBalance.fromJSON(data['balance'] as String) ?? SolanaBalance(0.0); + + return SolanaWallet( + walletInfo: walletInfo, + password: password, + mnemonic: mnemonic, + privateKey: privateKey, + initialBalance: balance, + ); + } + + Future _updateBalance() async { + balance[currency] = await _fetchSOLBalance(); + await _fetchSPLTokensBalances(); + await save(); + } + + Future _fetchSOLBalance() async { + final balance = await _client.getBalance(_walletKeyPair!.address); + + return SolanaBalance(balance); + } + + Future _fetchSPLTokensBalances() async { + for (var token in splTokensBox.values) { + if (token.enabled) { + try { + final tokenBalance = + await _client.getSplTokenBalance(token.mintAddress, _walletKeyPair!.address) ?? + balance[token] ?? + SolanaBalance(0.0); + balance[token] = tokenBalance; + } catch (e) { + print('Error fetching spl token (${token.symbol}) balance ${e.toString()}'); + } + } else { + balance.remove(token); + } + } + } + + @override + Future? updateBalance() async => await _updateBalance(); + + List get splTokenCurrencies => splTokensBox.values.toList(); + + void addInitialTokens() { + final initialSPLTokens = DefaultSPLTokens().initialSPLTokens; + + for (var token in initialSPLTokens) { + splTokensBox.put(token.mintAddress, token); + } + } + + Future addSPLToken(SPLToken token) async { + await splTokensBox.put(token.mintAddress, token); + + if (token.enabled) { + final tokenBalance = + await _client.getSplTokenBalance(token.mintAddress, _walletKeyPair!.address) ?? + balance[token] ?? + SolanaBalance(0.0); + + balance[token] = tokenBalance; + } else { + balance.remove(token); + } + } + + Future deleteSPLToken(SPLToken token) async { + await token.delete(); + + balance.remove(token); + _updateBalance(); + } + + Future getSPLToken(String mintAddress) async { + // Convert SPL token mint address to public key + final mintPublicKey = Ed25519HDPublicKey.fromBase58(mintAddress); + + // Fetch token's metadata account + final token = await solanaClient!.rpcClient.getMetadata(mint: mintPublicKey); + + if (token == null) { + return null; + } + + return SPLToken.fromMetadata( + name: token.name, + mint: token.mint, + symbol: token.symbol, + mintAddress: mintAddress, + ); + } + + @override + Future renameWalletFiles(String newWalletName) async { + final currentWalletPath = await pathForWallet(name: walletInfo.name, type: type); + final currentWalletFile = File(currentWalletPath); + + final currentDirPath = await pathForWalletDir(name: walletInfo.name, type: type); + final currentTransactionsFile = File('$currentDirPath/$transactionsHistoryFileName'); + + // Copies current wallet files into new wallet name's dir and files + if (currentWalletFile.existsSync()) { + final newWalletPath = await pathForWallet(name: newWalletName, type: type); + await currentWalletFile.copy(newWalletPath); + } + if (currentTransactionsFile.existsSync()) { + final newDirPath = await pathForWalletDir(name: newWalletName, type: type); + await currentTransactionsFile.copy('$newDirPath/$transactionsHistoryFileName'); + } + + // Delete old name's dir and files + await Directory(currentDirPath).delete(recursive: true); + } + + void _setTransactionUpdateTimer() { + if (_transactionsUpdateTimer?.isActive ?? false) { + _transactionsUpdateTimer!.cancel(); + } + + _transactionsUpdateTimer = Timer.periodic(const Duration(seconds: 20), (_) { + _updateSPLTokenTransactions(); + _updateNativeSOLTransactions(); + _updateBalance(); + }); + } + + Future signSolanaMessage(String message) async { + // Convert the message to bytes + final messageBytes = utf8.encode(message); + + // Sign the message bytes with the wallet's private key + final signature = await _walletKeyPair!.sign(messageBytes); + + // Convert the signature to a hexadecimal string + final hex = bytesToHex(signature.bytes); + + return hex; + } + + SolanaClient? get solanaClient => _client.getSolanaClient; +} diff --git a/cw_solana/lib/solana_wallet_addresses.dart b/cw_solana/lib/solana_wallet_addresses.dart new file mode 100644 index 000000000..97a76fb99 --- /dev/null +++ b/cw_solana/lib/solana_wallet_addresses.dart @@ -0,0 +1,33 @@ +import 'package:cw_core/wallet_addresses.dart'; +import 'package:cw_core/wallet_info.dart'; +import 'package:mobx/mobx.dart'; + +part 'solana_wallet_addresses.g.dart'; + +class SolanaWalletAddresses = SolanaWalletAddressesBase with _$SolanaWalletAddresses; + +abstract class SolanaWalletAddressesBase extends WalletAddresses with Store { + SolanaWalletAddressesBase(WalletInfo walletInfo) + : address = '', + super(walletInfo); + + @override + String address; + + @override + Future init() async { + address = walletInfo.address; + await updateAddressesInBox(); + } + + @override + Future updateAddressesInBox() async { + try { + addressesMap.clear(); + addressesMap[address] = ''; + await saveAddressesInBox(); + } catch (e) { + print(e.toString()); + } + } +} diff --git a/cw_solana/lib/solana_wallet_creation_credentials.dart b/cw_solana/lib/solana_wallet_creation_credentials.dart new file mode 100644 index 000000000..881c30abd --- /dev/null +++ b/cw_solana/lib/solana_wallet_creation_credentials.dart @@ -0,0 +1,29 @@ +import 'package:cw_core/wallet_credentials.dart'; +import 'package:cw_core/wallet_info.dart'; + +class SolanaNewWalletCredentials extends WalletCredentials { + SolanaNewWalletCredentials({required String name, WalletInfo? walletInfo}) + : super(name: name, walletInfo: walletInfo); +} + +class SolanaRestoreWalletFromSeedCredentials extends WalletCredentials { + SolanaRestoreWalletFromSeedCredentials( + {required String name, + required String password, + required this.mnemonic, + WalletInfo? walletInfo}) + : super(name: name, password: password, walletInfo: walletInfo); + + final String mnemonic; +} + +class SolanaRestoreWalletFromPrivateKey extends WalletCredentials { + SolanaRestoreWalletFromPrivateKey( + {required String name, + required String password, + required this.privateKey, + WalletInfo? walletInfo}) + : super(name: name, password: password, walletInfo: walletInfo); + + final String privateKey; +} diff --git a/cw_solana/lib/solana_wallet_service.dart b/cw_solana/lib/solana_wallet_service.dart new file mode 100644 index 000000000..8abf1ffbb --- /dev/null +++ b/cw_solana/lib/solana_wallet_service.dart @@ -0,0 +1,118 @@ +import 'dart:io'; + +import 'package:bip39/bip39.dart' as bip39; +import 'package:collection/collection.dart'; +import 'package:cw_core/pathForWallet.dart'; +import 'package:cw_core/wallet_base.dart'; +import 'package:cw_core/wallet_info.dart'; +import 'package:cw_core/wallet_service.dart'; +import 'package:cw_core/wallet_type.dart'; +import 'package:cw_solana/solana_mnemonics.dart'; +import 'package:cw_solana/solana_wallet.dart'; +import 'package:cw_solana/solana_wallet_creation_credentials.dart'; +import 'package:hive/hive.dart'; + +class SolanaWalletService extends WalletService { + SolanaWalletService(this.walletInfoSource); + + final Box walletInfoSource; + + @override + Future create(SolanaNewWalletCredentials credentials) async { + final strength = credentials.seedPhraseLength == 24 ? 256 : 128; + + final mnemonic = bip39.generateMnemonic(strength: strength); + + final wallet = SolanaWallet( + walletInfo: credentials.walletInfo!, + mnemonic: mnemonic, + password: credentials.password!, + ); + + await wallet.init(); + wallet.addInitialTokens(); + return wallet; + } + + @override + WalletType getType() => WalletType.solana; + + @override + Future isWalletExit(String name) async => + File(await pathForWallet(name: name, type: getType())).existsSync(); + + @override + Future openWallet(String name, String password) async { + final walletInfo = + walletInfoSource.values.firstWhere((info) => info.id == WalletBase.idFor(name, getType())); + final wallet = await SolanaWalletBase.open( + name: name, + password: password, + walletInfo: walletInfo, + ); + + await wallet.init(); + await wallet.save(); + + return wallet; + } + + @override + Future remove(String wallet) async { + File(await pathForWalletDir(name: wallet, type: getType())).delete(recursive: true); + final walletInfo = walletInfoSource.values + .firstWhereOrNull((info) => info.id == WalletBase.idFor(wallet, getType()))!; + await walletInfoSource.delete(walletInfo.key); + } + + @override + Future restoreFromKeys(SolanaRestoreWalletFromPrivateKey credentials) async { + final wallet = SolanaWallet( + password: credentials.password!, + privateKey: credentials.privateKey, + walletInfo: credentials.walletInfo!, + ); + + await wallet.init(); + wallet.addInitialTokens(); + await wallet.save(); + + return wallet; + } + + @override + Future restoreFromSeed(SolanaRestoreWalletFromSeedCredentials credentials) async { + if (!bip39.validateMnemonic(credentials.mnemonic)) { + throw SolanaMnemonicIsIncorrectException(); + } + + final wallet = SolanaWallet( + password: credentials.password!, + mnemonic: credentials.mnemonic, + walletInfo: credentials.walletInfo!, + ); + + await wallet.init(); + wallet.addInitialTokens(); + await wallet.save(); + + return wallet; + } + + @override + Future rename(String currentName, String password, String newName) async { + final currentWalletInfo = walletInfoSource.values + .firstWhere((info) => info.id == WalletBase.idFor(currentName, getType())); + final currentWallet = await SolanaWalletBase.open( + password: password, name: currentName, walletInfo: currentWalletInfo); + + await currentWallet.renameWalletFiles(newName); + + final newWalletInfo = currentWalletInfo; + newWalletInfo.id = WalletBase.idFor(newName, getType()); + newWalletInfo.name = newName; + + await walletInfoSource.put(currentWalletInfo.key, newWalletInfo); + } +} diff --git a/cw_solana/lib/spl_token.dart b/cw_solana/lib/spl_token.dart new file mode 100644 index 000000000..0413990b1 --- /dev/null +++ b/cw_solana/lib/spl_token.dart @@ -0,0 +1,146 @@ +import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_core/hive_type_ids.dart'; +import 'package:hive/hive.dart'; +import 'package:solana/metaplex.dart'; + +part 'spl_token.g.dart'; + +@HiveType(typeId: SPLToken.typeId) +class SPLToken extends CryptoCurrency with HiveObjectMixin { + @HiveField(0) + final String name; + + @HiveField(1) + final String symbol; + + @HiveField(2) + final String mintAddress; + + @HiveField(3) + final int decimal; + + @HiveField(4, defaultValue: false) + bool _enabled; + + @HiveField(5) + final String mint; + + @HiveField(6) + final String? iconPath; + + @HiveField(7) + final String? tag; + + SPLToken({ + required this.name, + required this.symbol, + required this.mintAddress, + required this.decimal, + required this.mint, + this.iconPath, + this.tag = 'SOL', + bool enabled = false, + }) : _enabled = enabled, + super( + name: mint.toLowerCase(), + title: symbol.toUpperCase(), + fullName: name, + tag: tag, + iconPath: iconPath, + decimals: decimal, + ); + + factory SPLToken.fromMetadata({ + required String name, + required String mint, + required String symbol, + required String mintAddress, + }) { + return SPLToken( + name: name, + symbol: symbol, + mintAddress: mintAddress, + decimal: 0, + mint: mint, + iconPath: '', + ); + } + + factory SPLToken.cryptoCurrency({ + required String name, + required String symbol, + required int decimals, + required String iconPath, + required String mint, + }) { + return SPLToken( + name: name, + symbol: symbol, + decimal: decimals, + mint: mint, + iconPath: iconPath, + mintAddress: '', + ); + } + + bool get enabled => _enabled; + + set enabled(bool value) => _enabled = value; + + SPLToken.copyWith(SPLToken other, String? icon, String? tag) + : name = other.name, + symbol = other.symbol, + mintAddress = other.mintAddress, + decimal = other.decimal, + _enabled = other.enabled, + mint = other.mint, + tag = other.tag, + iconPath = icon, + super( + title: other.symbol.toUpperCase(), + name: other.symbol.toLowerCase(), + decimals: other.decimal, + fullName: other.name, + tag: other.tag, + iconPath: icon, + ); + + static const typeId = SPL_TOKEN_TYPE_ID; + static const boxName = 'SPLTokens'; + + @override + bool operator ==(other) => + (other is SPLToken && other.mintAddress == mintAddress) || + (other is CryptoCurrency && other.title == title); + + @override + int get hashCode => mintAddress.hashCode; +} + +class NFT extends SPLToken { + final ImageInfo? imageInfo; + + NFT( + String mint, + String name, + String symbol, + String mintAddress, + int decimal, + String iconPath, + this.imageInfo, + ) : super( + name: name, + symbol: symbol, + mintAddress: mintAddress, + decimal: decimal, + mint: mint, + iconPath: iconPath, + ); +} + +class ImageInfo { + final String uri; + final OffChainMetadata? data; + + const ImageInfo(this.uri, this.data); +} diff --git a/cw_solana/pubspec.yaml b/cw_solana/pubspec.yaml new file mode 100644 index 000000000..c98b7492e --- /dev/null +++ b/cw_solana/pubspec.yaml @@ -0,0 +1,37 @@ +name: cw_solana +description: A new Flutter package project. +version: 0.0.1 +publish_to: none +homepage: https://cakewallet.com + +environment: + sdk: '>=3.0.6 <4.0.0' + flutter: ">=1.17.0" + +dependencies: + flutter: + sdk: flutter + solana: ^0.30.1 + cw_core: + path: ../cw_core + http: ^1.1.0 + hive: ^2.2.3 + bip39: ^1.0.6 + mobx: ^2.3.0+1 + shared_preferences: ^2.0.15 + web3dart: ^2.7.1 + bip32: ^2.0.0 + hex: ^0.2.0 + +dev_dependencies: + flutter_test: + sdk: flutter + flutter_lints: ^2.0.0 + build_runner: ^2.1.11 + mobx_codegen: ^2.0.7 + hive_generator: ^1.1.3 + +flutter: + # assets: + # - images/a_dot_burr.jpeg + # - images/a_dot_ham.jpeg \ No newline at end of file diff --git a/cw_solana/test/cw_solana_test.dart b/cw_solana/test/cw_solana_test.dart new file mode 100644 index 000000000..42a5d8bdf --- /dev/null +++ b/cw_solana/test/cw_solana_test.dart @@ -0,0 +1,12 @@ +import 'package:flutter_test/flutter_test.dart'; + +import 'package:cw_solana/cw_solana.dart'; + +void main() { + test('adds one to input values', () { + final calculator = Calculator(); + expect(calculator.addOne(2), 3); + expect(calculator.addOne(-7), -6); + expect(calculator.addOne(0), 1); + }); +} diff --git a/ios/Runner/InfoBase.plist b/ios/Runner/InfoBase.plist index 2292d0b66..a7f208870 100644 --- a/ios/Runner/InfoBase.plist +++ b/ios/Runner/InfoBase.plist @@ -180,6 +180,16 @@ polygon-wallet + + CFBundleTypeRole + Viewer + CFBundleURLName + solana-wallet + CFBundleURLSchemes + + solana-wallet + + CFBundleVersion $(CURRENT_PROJECT_VERSION) diff --git a/lib/core/address_validator.dart b/lib/core/address_validator.dart index 2ae9e3297..21f3c3557 100644 --- a/lib/core/address_validator.dart +++ b/lib/core/address_validator.dart @@ -1,6 +1,7 @@ import 'package:bitcoin_flutter/bitcoin_flutter.dart' as bitcoin; import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/core/validator.dart'; +import 'package:cake_wallet/solana/solana.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/erc20_token.dart'; @@ -8,9 +9,7 @@ class AddressValidator extends TextValidator { AddressValidator({required CryptoCurrency type}) : super( errorMessage: S.current.error_text_address, - useAdditionalValidation: type == CryptoCurrency.btc - ? bitcoin.Address.validateAddress - : null, + useAdditionalValidation: type == CryptoCurrency.btc ? bitcoin.Address.validateAddress : null, pattern: getPattern(type), length: getLength(type)); @@ -130,6 +129,12 @@ class AddressValidator extends TextValidator { if (type is Erc20Token) { return [42]; } + + if (solana != null) { + final length = solana!.getValidationLength(type); + if (length != null) return length; + } + switch (type) { case CryptoCurrency.xmr: return null; @@ -192,11 +197,11 @@ class AddressValidator extends TextValidator { case CryptoCurrency.sc: return [76]; case CryptoCurrency.sol: + case CryptoCurrency.usdtSol: + case CryptoCurrency.usdcsol: return [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44]; case CryptoCurrency.trx: return [34]; - case CryptoCurrency.usdcsol: - return [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44]; case CryptoCurrency.usdt: return [34]; case CryptoCurrency.usdttrc20: @@ -286,6 +291,8 @@ class AddressValidator extends TextValidator { '|bitcoincash:q[0-9a-zA-Z]{42}([^0-9a-zA-Z]|\$)' '|([^0-9a-zA-Z]|^)q[0-9a-zA-Z]{41}([^0-9a-zA-Z]|\$)' '|([^0-9a-zA-Z]|^)q[0-9a-zA-Z]{42}([^0-9a-zA-Z]|\$)'; + case CryptoCurrency.sol: + return '([^0-9a-zA-Z]|^)[1-9A-HJ-NP-Za-km-z]{43,44}([^0-9a-zA-Z]|\$)'; default: return null; } diff --git a/lib/core/seed_validator.dart b/lib/core/seed_validator.dart index 8f65159e1..6d04055ba 100644 --- a/lib/core/seed_validator.dart +++ b/lib/core/seed_validator.dart @@ -4,6 +4,7 @@ import 'package:cake_wallet/haven/haven.dart'; import 'package:cake_wallet/core/validator.dart'; import 'package:cake_wallet/entities/mnemonic_item.dart'; import 'package:cake_wallet/polygon/polygon.dart'; +import 'package:cake_wallet/solana/solana.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:cake_wallet/monero/monero.dart'; import 'package:cake_wallet/nano/nano.dart'; @@ -37,6 +38,8 @@ class SeedValidator extends Validator { return nano!.getNanoWordList(language); case WalletType.polygon: return polygon!.getPolygonWordList(language); + case WalletType.solana: + return solana!.getSolanaWordList(language); default: return []; } diff --git a/lib/core/wallet_connect/chain_service.dart b/lib/core/wallet_connect/chain_service/chain_service.dart similarity index 100% rename from lib/core/wallet_connect/chain_service.dart rename to lib/core/wallet_connect/chain_service/chain_service.dart diff --git a/lib/core/wallet_connect/evm_chain_id.dart b/lib/core/wallet_connect/chain_service/eth/evm_chain_id.dart similarity index 86% rename from lib/core/wallet_connect/evm_chain_id.dart rename to lib/core/wallet_connect/chain_service/eth/evm_chain_id.dart index b71fb562e..0be21b1b2 100644 --- a/lib/core/wallet_connect/evm_chain_id.dart +++ b/lib/core/wallet_connect/chain_service/eth/evm_chain_id.dart @@ -1,4 +1,4 @@ -import 'package:cake_wallet/core/wallet_connect/evm_chain_service.dart'; +import 'package:cake_wallet/core/wallet_connect/chain_service/eth/evm_chain_service.dart'; enum EVMChainId { ethereum, diff --git a/lib/core/wallet_connect/evm_chain_service.dart b/lib/core/wallet_connect/chain_service/eth/evm_chain_service.dart similarity index 98% rename from lib/core/wallet_connect/evm_chain_service.dart rename to lib/core/wallet_connect/chain_service/eth/evm_chain_service.dart index 74bff7479..6f3c8fa98 100644 --- a/lib/core/wallet_connect/evm_chain_service.dart +++ b/lib/core/wallet_connect/chain_service/eth/evm_chain_service.dart @@ -3,7 +3,7 @@ import 'dart:developer'; import 'dart:typed_data'; import 'package:cake_wallet/core/wallet_connect/eth_transaction_model.dart'; -import 'package:cake_wallet/core/wallet_connect/evm_chain_id.dart'; +import 'package:cake_wallet/core/wallet_connect/chain_service/eth/evm_chain_id.dart'; import 'package:cake_wallet/core/wallet_connect/wc_bottom_sheet_service.dart'; import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/reactions/wallet_connect.dart'; @@ -20,8 +20,8 @@ import 'package:eth_sig_util/util/utils.dart'; import 'package:http/http.dart' as http; import 'package:walletconnect_flutter_v2/walletconnect_flutter_v2.dart'; import 'package:web3dart/web3dart.dart'; -import 'chain_service.dart'; -import 'wallet_connect_key_service.dart'; +import '../chain_service.dart'; +import '../../wallet_connect_key_service.dart'; class EvmChainServiceImpl implements ChainService { final AppStore appStore; diff --git a/lib/core/wallet_connect/chain_service/solana/entities/solana_sign_message.dart b/lib/core/wallet_connect/chain_service/solana/entities/solana_sign_message.dart new file mode 100644 index 000000000..e462adbb5 --- /dev/null +++ b/lib/core/wallet_connect/chain_service/solana/entities/solana_sign_message.dart @@ -0,0 +1,28 @@ +class SolanaSignMessage { + final String pubkey; + final String message; + + SolanaSignMessage({ + required this.pubkey, + required this.message, + }); + + factory SolanaSignMessage.fromJson(Map json) { + return SolanaSignMessage( + pubkey: json['pubkey'] as String, + message: json['message'] as String, + ); + } + + Map toJson() { + return { + 'pubkey': pubkey, + 'message': message, + }; + } + + @override + String toString() { + return 'SolanaSignMessage(pubkey: $pubkey, message: $message)'; + } +} diff --git a/lib/core/wallet_connect/chain_service/solana/entities/solana_sign_transaction.dart b/lib/core/wallet_connect/chain_service/solana/entities/solana_sign_transaction.dart new file mode 100644 index 000000000..2cdf4697e --- /dev/null +++ b/lib/core/wallet_connect/chain_service/solana/entities/solana_sign_transaction.dart @@ -0,0 +1,106 @@ +class SolanaSignTransaction { + final String? feePayer; + final String? recentBlockhash; + final String transaction; + final List? instructions; + + SolanaSignTransaction({ + required this.feePayer, + required this.recentBlockhash, + required this.instructions, + required this.transaction, + }); + + factory SolanaSignTransaction.fromJson(Map json) { + return SolanaSignTransaction( + feePayer:json['feePayer'] !=null ? json['feePayer'] as String: null, + recentBlockhash: json['recentBlockhash']!=null? json['recentBlockhash'] as String: null, + instructions:json['instructions']!=null? (json['instructions'] as List) + .map((e) => SolanaInstruction.fromJson(e as Map)) + .toList(): null, + transaction: json['transaction'] as String, + ); + } + + Map toJson() { + return { + 'feePayer': feePayer, + 'recentBlockhash': recentBlockhash, + 'instructions': instructions, + 'transaction': transaction, + }; + } + + @override + String toString() { + return 'SolanaSignTransaction(feePayer: $feePayer, recentBlockhash: $recentBlockhash, instructions: $instructions, transaction: $transaction)'; + } +} + +class SolanaInstruction { + final String programId; + final List keys; + final List data; + + SolanaInstruction({ + required this.programId, + required this.keys, + required this.data, + }); + + factory SolanaInstruction.fromJson(Map json) { + return SolanaInstruction( + programId: json['programId'] as String, + keys: (json['keys'] as List) + .map((e) => SolanaKeyMetadata.fromJson(e as Map)) + .toList(), + data: (json['data'] as List).map((e) => e as int).toList(), + ); + } + + Map toJson() { + return { + 'programId': programId, + 'keys': keys, + 'data': data, + }; + } + + @override + String toString() { + return 'SolanaInstruction(programId: $programId, keys: $keys, data: $data)'; + } +} + +class SolanaKeyMetadata { + final String pubkey; + final bool isSigner; + final bool isWritable; + + SolanaKeyMetadata({ + required this.pubkey, + required this.isSigner, + required this.isWritable, + }); + + factory SolanaKeyMetadata.fromJson(Map json) { + return SolanaKeyMetadata( + pubkey: json['pubkey'] as String, + isSigner: json['isSigner'] as bool, + isWritable: json['isWritable'] as bool, + ); + } + + Map toJson() { + return { + 'pubkey': pubkey, + 'isSigner': isSigner, + 'isWritable': isWritable, + }; + } + + @override + String toString() { + return 'SolanaKeyMetadata(pubkey: $pubkey, isSigner: $isSigner, isWritable: $isWritable)'; + } +} diff --git a/lib/core/wallet_connect/chain_service/solana/solana_chain_id.dart b/lib/core/wallet_connect/chain_service/solana/solana_chain_id.dart new file mode 100644 index 000000000..bdc8a7d20 --- /dev/null +++ b/lib/core/wallet_connect/chain_service/solana/solana_chain_id.dart @@ -0,0 +1,27 @@ +import 'solana_chain_service.dart'; + +enum SolanaChainId { + mainnet, + testnet, + devnet, +} + +extension SolanaChainIdX on SolanaChainId { + String chain() { + String name = ''; + + switch (this) { + case SolanaChainId.mainnet: + name = '4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ'; + break; + case SolanaChainId.testnet: + name = '8E9rvCKLFQia2Y35HXjjpWzj8weVo44K'; + break; + case SolanaChainId.devnet: + name = ''; + break; + } + + return '${SolanaChainServiceImpl.namespace}:$name'; + } +} diff --git a/lib/core/wallet_connect/chain_service/solana/solana_chain_service.dart b/lib/core/wallet_connect/chain_service/solana/solana_chain_service.dart new file mode 100644 index 000000000..f5c696be6 --- /dev/null +++ b/lib/core/wallet_connect/chain_service/solana/solana_chain_service.dart @@ -0,0 +1,177 @@ +import 'dart:developer'; + +import 'package:cake_wallet/core/wallet_connect/chain_service/solana/entities/solana_sign_message.dart'; +import 'package:cake_wallet/core/wallet_connect/chain_service/solana/solana_chain_id.dart'; +import 'package:cake_wallet/core/wallet_connect/wc_bottom_sheet_service.dart'; +import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/src/screens/wallet_connect/widgets/message_display_widget.dart'; +import 'package:cake_wallet/core/wallet_connect/models/connection_model.dart'; +import 'package:cake_wallet/src/screens/wallet_connect/widgets/connection_widget.dart'; +import 'package:cake_wallet/src/screens/wallet_connect/widgets/modals/web3_request_modal.dart'; +import 'package:solana/base58.dart'; +import 'package:solana/solana.dart'; +import 'package:walletconnect_flutter_v2/walletconnect_flutter_v2.dart'; +import '../chain_service.dart'; +import '../../wallet_connect_key_service.dart'; +import 'entities/solana_sign_transaction.dart'; + +class SolanaChainServiceImpl implements ChainService { + final BottomSheetService bottomSheetService; + final Web3Wallet wallet; + final WalletConnectKeyService wcKeyService; + + static const namespace = 'solana'; + static const solSignTransaction = 'solana_signTransaction'; + static const solSignMessage = 'solana_signMessage'; + + final SolanaChainId reference; + + final SolanaClient solanaClient; + + final Ed25519HDKeyPair? ownerKeyPair; + + SolanaChainServiceImpl({ + required this.reference, + required this.wcKeyService, + required this.bottomSheetService, + required this.wallet, + required this.ownerKeyPair, + required String webSocketUrl, + required Uri rpcUrl, + SolanaClient? solanaClient, + }) : solanaClient = solanaClient ?? + SolanaClient( + rpcUrl: rpcUrl, + websocketUrl: Uri.parse(webSocketUrl), + timeout: const Duration(minutes: 2), + ) { + for (final String event in getEvents()) { + wallet.registerEventEmitter(chainId: getChainId(), event: event); + } + wallet.registerRequestHandler( + chainId: getChainId(), + method: solSignTransaction, + handler: solanaSignTransaction, + ); + wallet.registerRequestHandler( + chainId: getChainId(), + method: solSignMessage, + handler: solanaSignMessage, + ); + } + + @override + String getNamespace() { + return namespace; + } + + @override + String getChainId() { + return reference.chain(); + } + + @override + List getEvents() { + return ['']; + } + + Future requestAuthorization(String? text) async { + // Show the bottom sheet + final bool? isApproved = await bottomSheetService.queueBottomSheet( + widget: Web3RequestModal( + child: ConnectionWidget( + title: S.current.signTransaction, + info: [ + ConnectionModel( + text: text, + ), + ], + ), + ), + ) as bool?; + + if (isApproved != null && isApproved == false) { + return 'User rejected signature'; + } + + return null; + } + + Future solanaSignTransaction(String topic, dynamic parameters) async { + log('received solana sign transaction request $parameters'); + + final solanaSignTx = + SolanaSignTransaction.fromJson(parameters as Map); + + final String? authError = await requestAuthorization('Confirm request to sign transaction?'); + + if (authError != null) { + return authError; + } + + try { + final message = + await solanaClient.rpcClient.getMessageFromEncodedTx(solanaSignTx.transaction); + + final sign = await ownerKeyPair?.signMessage( + message: message, + recentBlockhash: solanaSignTx.recentBlockhash ?? '', + ); + + if (sign == null) { + return ''; + } + + String signature = sign.signatures.first.toBase58(); + + print(signature); + print(signature.runtimeType); + + bottomSheetService.queueBottomSheet( + isModalDismissible: true, + widget: BottomSheetMessageDisplayWidget( + message: S.current.awaitDAppProcessing, + isError: false, + ), + ); + + return signature; + } catch (e) { + log('An error has occurred while signing transaction: ${e.toString()}'); + bottomSheetService.queueBottomSheet( + isModalDismissible: true, + widget: BottomSheetMessageDisplayWidget( + message: '${S.current.errorSigningTransaction}: ${e.toString()}', + ), + ); + return 'Failed'; + } + } + + Future solanaSignMessage(String topic, dynamic parameters) async { + log('received solana sign message request: $parameters'); + + final solanaSignMessage = SolanaSignMessage.fromJson(parameters as Map); + + final String? authError = await requestAuthorization('Confirm request to sign message?'); + + if (authError != null) { + return authError; + } + Signature? sign; + + try { + sign = await ownerKeyPair?.sign(base58decode(solanaSignMessage.message)); + } catch (e) { + print(e); + } + + if (sign == null) { + return ''; + } + + String signature = sign.toBase58(); + + return signature; + } +} diff --git a/lib/core/wallet_connect/wallet_connect_key_service.dart b/lib/core/wallet_connect/wallet_connect_key_service.dart index 33d721073..f05adad97 100644 --- a/lib/core/wallet_connect/wallet_connect_key_service.dart +++ b/lib/core/wallet_connect/wallet_connect_key_service.dart @@ -2,6 +2,7 @@ import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/core/wallet_connect/models/chain_key_model.dart'; import 'package:cake_wallet/polygon/polygon.dart'; import 'package:cake_wallet/reactions/wallet_connect.dart'; +import 'package:cake_wallet/solana/solana.dart'; import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/wallet_type.dart'; @@ -13,7 +14,6 @@ abstract class WalletConnectKeyService { /// If the chain is not found, returns an empty list. /// - [chain]: The chain to get the keys for. List getKeysForChain(WalletBase wallet); - } class KeyServiceImpl implements WalletConnectKeyService { @@ -23,6 +23,8 @@ class KeyServiceImpl implements WalletConnectKeyService { return ethereum!.getPrivateKey(wallet); case WalletType.polygon: return polygon!.getPrivateKey(wallet); + case WalletType.solana: + return solana!.getPrivateKey(wallet); default: return ''; } @@ -34,6 +36,8 @@ class KeyServiceImpl implements WalletConnectKeyService { return ethereum!.getPublicKey(wallet); case WalletType.polygon: return polygon!.getPublicKey(wallet); + case WalletType.solana: + return solana!.getPublicKey(wallet); default: return ''; } @@ -53,6 +57,14 @@ class KeyServiceImpl implements WalletConnectKeyService { privateKey: _getPrivateKeyForWallet(wallet), publicKey: _getPublicKeyForWallet(wallet), ), + ChainKeyModel( + chains: [ + 'solana:4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ', // main-net + 'solana:8E9rvCKLFQia2Y35HXjjpWzj8weVo44K', // test-net + ], + privateKey: _getPrivateKeyForWallet(wallet), + publicKey: _getPublicKeyForWallet(wallet), + ), ]; return keys; } diff --git a/lib/core/wallet_connect/web3wallet_service.dart b/lib/core/wallet_connect/web3wallet_service.dart index ee560a0e0..4c71abe48 100644 --- a/lib/core/wallet_connect/web3wallet_service.dart +++ b/lib/core/wallet_connect/web3wallet_service.dart @@ -2,23 +2,27 @@ import 'dart:async'; import 'dart:developer'; import 'dart:typed_data'; -import 'package:cake_wallet/core/wallet_connect/evm_chain_id.dart'; -import 'package:cake_wallet/core/wallet_connect/evm_chain_service.dart'; +import 'package:cake_wallet/core/wallet_connect/chain_service/eth/evm_chain_id.dart'; +import 'package:cake_wallet/core/wallet_connect/chain_service/eth/evm_chain_service.dart'; import 'package:cake_wallet/core/wallet_connect/wallet_connect_key_service.dart'; import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/core/wallet_connect/models/auth_request_model.dart'; import 'package:cake_wallet/core/wallet_connect/models/chain_key_model.dart'; import 'package:cake_wallet/core/wallet_connect/models/session_request_model.dart'; import 'package:cake_wallet/reactions/wallet_connect.dart'; +import 'package:cake_wallet/solana/solana.dart'; import 'package:cake_wallet/src/screens/wallet_connect/widgets/connection_request_widget.dart'; import 'package:cake_wallet/src/screens/wallet_connect/widgets/message_display_widget.dart'; import 'package:cake_wallet/src/screens/wallet_connect/widgets/modals/web3_request_modal.dart'; import 'package:cake_wallet/store/app_store.dart'; +import 'package:cw_core/wallet_type.dart'; import 'package:eth_sig_util/eth_sig_util.dart'; import 'package:flutter/material.dart'; import 'package:mobx/mobx.dart'; import 'package:walletconnect_flutter_v2/walletconnect_flutter_v2.dart'; +import 'chain_service/solana/solana_chain_id.dart'; +import 'chain_service/solana/solana_chain_service.dart'; import 'wc_bottom_sheet_service.dart'; import 'package:cake_wallet/.secrets.g.dart' as secrets; @@ -114,14 +118,34 @@ abstract class Web3WalletServiceBase with Store { final newAuthRequests = _web3Wallet.completeRequests.getAll(); auth.addAll(newAuthRequests); - for (final cId in EVMChainId.values) { - EvmChainServiceImpl( - reference: cId, - appStore: appStore, - wcKeyService: walletKeyService, - bottomSheetService: _bottomSheetHandler, - wallet: _web3Wallet, - ); + if (isEVMCompatibleChain(appStore.wallet!.type)) { + for (final cId in EVMChainId.values) { + EvmChainServiceImpl( + reference: cId, + appStore: appStore, + wcKeyService: walletKeyService, + bottomSheetService: _bottomSheetHandler, + wallet: _web3Wallet, + ); + } + } + + if (appStore.wallet!.type == WalletType.solana) { + for (final cId in SolanaChainId.values) { + final node = appStore.settingsStore.getCurrentNode(appStore.wallet!.type); + final rpcUri = node.uri; + final webSocketUri = 'wss://${node.uriRaw}/ws${node.uri.path}'; + + SolanaChainServiceImpl( + reference: cId, + rpcUrl: rpcUri, + webSocketUrl: webSocketUri, + wcKeyService: walletKeyService, + bottomSheetService: _bottomSheetHandler, + wallet: _web3Wallet, + ownerKeyPair: solana!.getWalletKeyPair(appStore.wallet!), + ); + } } } diff --git a/lib/di.dart b/lib/di.dart index 05019a562..4a005a4de 100644 --- a/lib/di.dart +++ b/lib/di.dart @@ -21,6 +21,7 @@ import 'package:cake_wallet/ionia/ionia_gift_card.dart'; import 'package:cake_wallet/ionia/ionia_tip.dart'; import 'package:cake_wallet/polygon/polygon.dart'; import 'package:cake_wallet/routes.dart'; +import 'package:cake_wallet/solana/solana.dart'; import 'package:cake_wallet/src/screens/anonpay_details/anonpay_details_page.dart'; import 'package:cake_wallet/src/screens/buy/buy_options_page.dart'; import 'package:cake_wallet/src/screens/buy/webview_page.dart'; @@ -863,6 +864,8 @@ Future setup({ return nano!.createNanoWalletService(_walletInfoSource); case WalletType.polygon: return polygon!.createPolygonWalletService(_walletInfoSource); + case WalletType.solana: + return solana!.createSolanaWalletService(_walletInfoSource); default: throw Exception('Unexpected token: ${param1.toString()} for generating of WalletService'); } @@ -1174,7 +1177,7 @@ Future setup({ getIt.registerFactoryParam>( (homeSettingsViewModel, arguments) => EditTokenPage( homeSettingsViewModel: homeSettingsViewModel, - erc20token: arguments['token'] as Erc20Token?, + token: arguments['token'] as CryptoCurrency?, initialContractAddress: arguments['contractAddress'] as String?, ), ); diff --git a/lib/entities/default_settings_migration.dart b/lib/entities/default_settings_migration.dart index 68e76d423..019276227 100644 --- a/lib/entities/default_settings_migration.dart +++ b/lib/entities/default_settings_migration.dart @@ -30,6 +30,7 @@ const polygonDefaultNodeUri = 'polygon-bor.publicnode.com'; const cakeWalletBitcoinCashDefaultNodeUri = 'bitcoincash.stackwallet.com:50002'; const nanoDefaultNodeUri = 'rpc.nano.to'; const nanoDefaultPowNodeUri = 'rpc.nano.to'; +const solanaDefaultNodeUri = 'rpc.ankr.com'; Future defaultSettingsMigration( {required int version, @@ -186,10 +187,15 @@ Future defaultSettingsMigration( await rewriteSecureStoragePin(secureStorage: secureStorage); break; case 26: - /// commented out as it was a probable cause for some users to have white screen issues - /// maybe due to multiple access on Secure Storage at once - /// or long await time on start of the app - // await insecureStorageMigration(secureStorage: secureStorage, sharedPreferences: sharedPreferences); + + /// commented out as it was a probable cause for some users to have white screen issues + /// maybe due to multiple access on Secure Storage at once + /// or long await time on start of the app + // await insecureStorageMigration(secureStorage: secureStorage, sharedPreferences: sharedPreferences); + case 27: + await addSolanaNodeList(nodes: nodes); + await changeSolanaCurrentNodeToDefault( + sharedPreferences: sharedPreferences, nodes: nodes); break; default: break; @@ -384,6 +390,11 @@ Node getMoneroDefaultNode({required Box nodes}) { } } +Node? getSolanaDefaultNode({required Box nodes}) { + return nodes.values.firstWhereOrNull((Node node) => node.uriRaw == solanaDefaultNodeUri) ?? + nodes.values.firstWhereOrNull((node) => node.type == WalletType.solana); +} + Future insecureStorageMigration({ required SharedPreferences sharedPreferences, required FlutterSecureStorage secureStorage, @@ -673,6 +684,7 @@ Future checkCurrentNodes( final currentNanoPowNodeId = sharedPreferences.getInt(PreferencesKey.currentNanoPowNodeIdKey); final currentBitcoinCashNodeId = sharedPreferences.getInt(PreferencesKey.currentBitcoinCashNodeIdKey); + final currentSolanaNodeId = sharedPreferences.getInt(PreferencesKey.currentSolanaNodeIdKey); final currentMoneroNode = nodeSource.values.firstWhereOrNull((node) => node.key == currentMoneroNodeId); final currentBitcoinElectrumServer = @@ -691,6 +703,8 @@ Future checkCurrentNodes( powNodeSource.values.firstWhereOrNull((node) => node.key == currentNanoPowNodeId); final currentBitcoinCashNodeServer = nodeSource.values.firstWhereOrNull((node) => node.key == currentBitcoinCashNodeId); + final currentSolanaNodeServer = + nodeSource.values.firstWhereOrNull((node) => node.key == currentSolanaNodeId); if (currentMoneroNode == null) { final newCakeWalletNode = Node(uri: newCakeWalletMoneroUri, type: WalletType.monero); await nodeSource.add(newCakeWalletNode); @@ -750,6 +764,12 @@ Future checkCurrentNodes( await nodeSource.add(node); await sharedPreferences.setInt(PreferencesKey.currentPolygonNodeIdKey, node.key as int); } + + if (currentSolanaNodeServer == null) { + final node = Node(uri: solanaDefaultNodeUri, type: WalletType.solana); + await nodeSource.add(node); + await sharedPreferences.setInt(PreferencesKey.currentSolanaNodeIdKey, node.key as int); + } } Future resetBitcoinElectrumServer( @@ -861,3 +881,20 @@ Future changePolygonCurrentNodeToDefault( await sharedPreferences.setInt(PreferencesKey.currentPolygonNodeIdKey, nodeId); } + +Future addSolanaNodeList({required Box nodes}) async { + final nodeList = await loadDefaultSolanaNodes(); + for (var node in nodeList) { + if (nodes.values.firstWhereOrNull((element) => element.uriRaw == node.uriRaw) == null) { + await nodes.add(node); + } + } +} + +Future changeSolanaCurrentNodeToDefault( + {required SharedPreferences sharedPreferences, required Box nodes}) async { + final node = getSolanaDefaultNode(nodes: nodes); + final nodeId = node?.key as int? ?? 0; + + await sharedPreferences.setInt(PreferencesKey.currentSolanaNodeIdKey, nodeId); +} diff --git a/lib/entities/node_list.dart b/lib/entities/node_list.dart index aaac8a5c2..3c82a3f6c 100644 --- a/lib/entities/node_list.dart +++ b/lib/entities/node_list.dart @@ -149,6 +149,23 @@ Future> loadDefaultPolygonNodes() async { return nodes; } +Future> loadDefaultSolanaNodes() async { + final nodesRaw = await rootBundle.loadString('assets/solana_node_list.yml'); + final loadedNodes = loadYaml(nodesRaw) as YamlList; + final nodes = []; + + for (final raw in loadedNodes) { + if (raw is Map) { + final node = Node.fromMap(Map.from(raw)); + + node.type = WalletType.solana; + nodes.add(node); + } + } + + return nodes; +} + Future resetToDefault(Box nodeSource) async { final moneroNodes = await loadDefaultNodes(); final bitcoinElectrumServerList = await loadBitcoinElectrumServerList(); @@ -158,6 +175,7 @@ Future resetToDefault(Box nodeSource) async { final ethereumNodes = await loadDefaultEthereumNodes(); final nanoNodes = await loadDefaultNanoNodes(); final polygonNodes = await loadDefaultPolygonNodes(); + final solanaNodes = await loadDefaultSolanaNodes(); final nodes = moneroNodes + bitcoinElectrumServerList + @@ -166,7 +184,8 @@ Future resetToDefault(Box nodeSource) async { ethereumNodes + bitcoinCashElectrumServerList + nanoNodes + - polygonNodes; + polygonNodes + + solanaNodes; await nodeSource.clear(); await nodeSource.addAll(nodes); diff --git a/lib/entities/preferences_key.dart b/lib/entities/preferences_key.dart index 75e61b5e8..7adb2df7f 100644 --- a/lib/entities/preferences_key.dart +++ b/lib/entities/preferences_key.dart @@ -13,6 +13,7 @@ class PreferencesKey { static const currentBananoPowNodeIdKey = 'current_node_id_banano_pow'; static const currentFiatCurrencyKey = 'current_fiat_currency'; static const currentBitcoinCashNodeIdKey = 'current_node_id_bch'; + static const currentSolanaNodeIdKey = 'current_node_id_sol'; static const currentTransactionPriorityKeyLegacy = 'current_fee_priority'; static const currentBalanceDisplayModeKey = 'current_balance_display_mode'; static const shouldSaveRecipientAddressKey = 'save_recipient_address'; diff --git a/lib/entities/priority_for_wallet_type.dart b/lib/entities/priority_for_wallet_type.dart index 70b072c55..5fc0b5566 100644 --- a/lib/entities/priority_for_wallet_type.dart +++ b/lib/entities/priority_for_wallet_type.dart @@ -21,12 +21,13 @@ List priorityForWalletType(WalletType type) { return ethereum!.getTransactionPriorities(); case WalletType.bitcoinCash: return bitcoinCash!.getTransactionPriorities(); - // no such thing for nano/banano: - case WalletType.nano: - case WalletType.banano: - return []; case WalletType.polygon: return polygon!.getTransactionPriorities(); + // no such thing for nano/banano/solana: + case WalletType.nano: + case WalletType.banano: + case WalletType.solana: + return []; default: return []; } diff --git a/lib/entities/provider_types.dart b/lib/entities/provider_types.dart index ed688590c..9a4b68dd7 100644 --- a/lib/entities/provider_types.dart +++ b/lib/entities/provider_types.dart @@ -67,6 +67,8 @@ class ProvidersHelper { return [ProviderType.askEachTime, ProviderType.onramper, ProviderType.robinhood]; case WalletType.polygon: return [ProviderType.askEachTime, ProviderType.dfx]; + case WalletType.solana: + return [ProviderType.askEachTime, ProviderType.onramper, ProviderType.robinhood]; case WalletType.none: case WalletType.haven: return []; @@ -88,6 +90,13 @@ class ProvidersHelper { return [ProviderType.askEachTime, ProviderType.moonpaySell]; case WalletType.polygon: return [ProviderType.askEachTime, ProviderType.dfx]; + case WalletType.solana: + return [ + ProviderType.askEachTime, + ProviderType.onramper, + ProviderType.robinhood, + ProviderType.moonpaySell, + ]; case WalletType.monero: case WalletType.nano: case WalletType.banano: diff --git a/lib/ethereum/cw_ethereum.dart b/lib/ethereum/cw_ethereum.dart index d7c174e1a..6e658788e 100644 --- a/lib/ethereum/cw_ethereum.dart +++ b/lib/ethereum/cw_ethereum.dart @@ -119,12 +119,13 @@ class CWEthereum extends Ethereum { } @override - Future addErc20Token(WalletBase wallet, Erc20Token token) async => - await (wallet as EthereumWallet).addErc20Token(token); + Future addErc20Token(WalletBase wallet, CryptoCurrency token) async { + await (wallet as EthereumWallet).addErc20Token(token as Erc20Token); + } @override - Future deleteErc20Token(WalletBase wallet, Erc20Token token) async => - await (wallet as EthereumWallet).deleteErc20Token(token); + Future deleteErc20Token(WalletBase wallet, CryptoCurrency token) async => + await (wallet as EthereumWallet).deleteErc20Token(token as Erc20Token); @override Future getErc20Token(WalletBase wallet, String contractAddress) async { @@ -153,4 +154,6 @@ class CWEthereum extends Ethereum { Web3Client? getWeb3Client(WalletBase wallet) { return (wallet as EthereumWallet).getWeb3Client(); } + + String getTokenAddress(CryptoCurrency asset) => (asset as Erc20Token).contractAddress; } diff --git a/lib/main.dart b/lib/main.dart index 306b109a0..0c8a4c094 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -163,11 +163,11 @@ Future initializeAppConfigs() async { transactionDescriptions: transactionDescriptions, secureStorage: secureStorage, anonpayInvoiceInfo: anonpayInvoiceInfo, - initialMigrationVersion: 26); + initialMigrationVersion: 27); } Future initialSetup( - {required SharedPreferences sharedPreferences, + {required SharedPreferences sharedPreferences, required Box nodes, required Box powNodes, required Box walletInfoSource, diff --git a/lib/polygon/cw_polygon.dart b/lib/polygon/cw_polygon.dart index 6e5fbe2c6..0ee7457eb 100644 --- a/lib/polygon/cw_polygon.dart +++ b/lib/polygon/cw_polygon.dart @@ -119,12 +119,12 @@ class CWPolygon extends Polygon { } @override - Future addErc20Token(WalletBase wallet, Erc20Token token) async => - await (wallet as PolygonWallet).addErc20Token(token); + Future addErc20Token(WalletBase wallet, CryptoCurrency token) async => + await (wallet as PolygonWallet).addErc20Token(token as Erc20Token); @override - Future deleteErc20Token(WalletBase wallet, Erc20Token token) async => - await (wallet as PolygonWallet).deleteErc20Token(token); + Future deleteErc20Token(WalletBase wallet, CryptoCurrency token) async => + await (wallet as PolygonWallet).deleteErc20Token(token as Erc20Token); @override Future getErc20Token(WalletBase wallet, String contractAddress) async { @@ -153,4 +153,6 @@ class CWPolygon extends Polygon { Web3Client? getWeb3Client(WalletBase wallet) { return (wallet as PolygonWallet).getWeb3Client(); } + + String getTokenAddress(CryptoCurrency asset) => (asset as Erc20Token).contractAddress; } diff --git a/lib/reactions/fiat_rate_update.dart b/lib/reactions/fiat_rate_update.dart index 2b757ad44..fb1d4cd1a 100644 --- a/lib/reactions/fiat_rate_update.dart +++ b/lib/reactions/fiat_rate_update.dart @@ -4,9 +4,11 @@ import 'package:cake_wallet/entities/fiat_api_mode.dart'; import 'package:cake_wallet/entities/update_haven_rate.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/polygon/polygon.dart'; +import 'package:cake_wallet/solana/solana.dart'; import 'package:cake_wallet/store/app_store.dart'; import 'package:cake_wallet/store/dashboard/fiat_conversion_store.dart'; import 'package:cake_wallet/store/settings_store.dart'; +import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/erc20_token.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:mobx/mobx.dart'; @@ -35,7 +37,7 @@ Future startFiatRateUpdate( torOnly: settingsStore.fiatApiMode == FiatApiMode.torOnly); } - Iterable? currencies; + Iterable? currencies; if (appStore.wallet!.type == WalletType.ethereum) { currencies = ethereum!.getERC20Currencies(appStore.wallet!).where((element) => element.enabled); @@ -46,6 +48,12 @@ Future startFiatRateUpdate( polygon!.getERC20Currencies(appStore.wallet!).where((element) => element.enabled); } + if (appStore.wallet!.type == WalletType.solana) { + currencies = + solana!.getSPLTokenCurrencies(appStore.wallet!).where((element) => element.enabled); + } + + if (currencies != null) { for (final currency in currencies) { () async { diff --git a/lib/reactions/on_current_wallet_change.dart b/lib/reactions/on_current_wallet_change.dart index ade9927ff..a2f2491f1 100644 --- a/lib/reactions/on_current_wallet_change.dart +++ b/lib/reactions/on_current_wallet_change.dart @@ -3,6 +3,8 @@ import 'package:cake_wallet/entities/fiat_api_mode.dart'; import 'package:cake_wallet/entities/update_haven_rate.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/polygon/polygon.dart'; +import 'package:cake_wallet/solana/solana.dart'; +import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/erc20_token.dart'; import 'package:cw_core/transaction_history.dart'; import 'package:cw_core/balance.dart'; @@ -109,7 +111,7 @@ void startCurrentWalletChangeReaction( fiat: settingsStore.fiatCurrency, torOnly: settingsStore.fiatApiMode == FiatApiMode.torOnly); - Iterable? currencies; + Iterable? currencies; if (wallet.type == WalletType.ethereum) { currencies = ethereum!.getERC20Currencies(appStore.wallet!).where((element) => element.enabled); @@ -118,7 +120,11 @@ void startCurrentWalletChangeReaction( currencies = polygon!.getERC20Currencies(appStore.wallet!).where((element) => element.enabled); } - + if (wallet.type == WalletType.solana) { + currencies = + solana!.getSPLTokenCurrencies(appStore.wallet!).where((element) => element.enabled); + } + if (currencies != null) { for (final currency in currencies) { () async { diff --git a/lib/reactions/wallet_connect.dart b/lib/reactions/wallet_connect.dart index 4f5923e26..f4487123e 100644 --- a/lib/reactions/wallet_connect.dart +++ b/lib/reactions/wallet_connect.dart @@ -1,4 +1,5 @@ -import 'package:cake_wallet/core/wallet_connect/evm_chain_id.dart'; +import 'package:cake_wallet/core/wallet_connect/chain_service/eth/evm_chain_id.dart'; +import 'package:cake_wallet/core/wallet_connect/chain_service/solana/solana_chain_id.dart'; import 'package:cw_core/wallet_type.dart'; bool isEVMCompatibleChain(WalletType walletType) { @@ -11,12 +12,24 @@ bool isEVMCompatibleChain(WalletType walletType) { } } +bool isWalletConnectCompatibleChain(WalletType walletType) { + switch (walletType) { + case WalletType.polygon: + case WalletType.ethereum: + return true; + default: + return false; + } +} + String getChainNameSpaceAndIdBasedOnWalletType(WalletType walletType) { switch (walletType) { case WalletType.ethereum: return EVMChainId.ethereum.chain(); case WalletType.polygon: return EVMChainId.polygon.chain(); + case WalletType.solana: + return SolanaChainId.mainnet.chain(); default: return ''; } @@ -40,6 +53,8 @@ String getChainNameBasedOnWalletType(WalletType walletType) { return 'eth'; case WalletType.polygon: return 'polygon'; + case WalletType.solana: + return 'solana'; default: return ''; } @@ -51,6 +66,8 @@ String getTokenNameBasedOnWalletType(WalletType walletType) { return 'ETH'; case WalletType.polygon: return 'MATIC'; + case WalletType.solana: + return 'SOL'; default: return ''; } diff --git a/lib/solana/cw_solana.dart b/lib/solana/cw_solana.dart new file mode 100644 index 000000000..a86d6b0c6 --- /dev/null +++ b/lib/solana/cw_solana.dart @@ -0,0 +1,118 @@ +part of 'solana.dart'; + +class CWSolana extends Solana { + @override + List getSolanaWordList(String language) => SolanaMnemonics.englishWordlist; + + WalletService createSolanaWalletService(Box walletInfoSource) => + SolanaWalletService(walletInfoSource); + + @override + WalletCredentials createSolanaNewWalletCredentials({ + required String name, + WalletInfo? walletInfo, + }) => + SolanaNewWalletCredentials(name: name, walletInfo: walletInfo); + + @override + WalletCredentials createSolanaRestoreWalletFromSeedCredentials({ + required String name, + required String mnemonic, + required String password, + }) => + SolanaRestoreWalletFromSeedCredentials(name: name, password: password, mnemonic: mnemonic); + + @override + WalletCredentials createSolanaRestoreWalletFromPrivateKey({ + required String name, + required String privateKey, + required String password, + }) => + SolanaRestoreWalletFromPrivateKey(name: name, password: password, privateKey: privateKey); + + @override + String getAddress(WalletBase wallet) => (wallet as SolanaWallet).walletAddresses.address; + + @override + String getPrivateKey(WalletBase wallet) => (wallet as SolanaWallet).privateKey; + + @override + String getPublicKey(WalletBase wallet) => (wallet as SolanaWallet).keys.publicKey.toBase58(); + + @override + Ed25519HDKeyPair? getWalletKeyPair(WalletBase wallet) => (wallet as SolanaWallet).walletKeyPair; + + Object createSolanaTransactionCredentials( + List outputs, { + required CryptoCurrency currency, + }) => + SolanaTransactionCredentials( + outputs + .map((out) => OutputInfo( + fiatAmount: out.fiatAmount, + cryptoAmount: out.cryptoAmount, + address: out.address, + note: out.note, + sendAll: out.sendAll, + extractedAddress: out.extractedAddress, + isParsedAddress: out.isParsedAddress, + formattedCryptoAmount: out.formattedCryptoAmount)) + .toList(), + currency: currency, + ); + + Object createSolanaTransactionCredentialsRaw( + List outputs, { + required CryptoCurrency currency, + }) => + SolanaTransactionCredentials(outputs, currency: currency); + + @override + List getSPLTokenCurrencies(WalletBase wallet) { + final solanaWallet = wallet as SolanaWallet; + return solanaWallet.splTokenCurrencies; + } + + @override + Future addSPLToken(WalletBase wallet, CryptoCurrency token) async => + await (wallet as SolanaWallet).addSPLToken(token as SPLToken); + + @override + Future deleteSPLToken(WalletBase wallet, CryptoCurrency token) async => + await (wallet as SolanaWallet).deleteSPLToken(token as SPLToken); + + @override + Future getSPLToken(WalletBase wallet, String mintAddress) async { + final solanaWallet = wallet as SolanaWallet; + return await solanaWallet.getSPLToken(mintAddress); + } + + @override + CryptoCurrency assetOfTransaction(WalletBase wallet, TransactionInfo transaction) { + transaction as SolanaTransactionInfo; + if (transaction.tokenSymbol == CryptoCurrency.sol.title) { + return CryptoCurrency.sol; + } + + wallet as SolanaWallet; + return wallet.splTokenCurrencies + .firstWhere((element) => transaction.tokenSymbol == element.symbol); + } + + @override + double getTransactionAmountRaw(TransactionInfo transactionInfo) { + return (transactionInfo as SolanaTransactionInfo).solAmount.toDouble(); + } + + @override + String getTokenAddress(CryptoCurrency asset) => (asset as SPLToken).mintAddress; + + @override + List? getValidationLength(CryptoCurrency type) { + if (type is SPLToken) { + return [44]; + } + + return null; + } +} diff --git a/lib/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart b/lib/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart index a81a3f6e4..17a22a88f 100644 --- a/lib/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart +++ b/lib/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart @@ -37,6 +37,7 @@ class _DesktopWalletSelectionDropDownState extends State Image.asset( @@ -153,6 +154,8 @@ class _DesktopWalletSelectionDropDownState extends State { void initState() { super.initState(); - if (widget.erc20token != null) { - _contractAddressController.text = widget.erc20token!.contractAddress; - _tokenNameController.text = widget.erc20token!.name; - _tokenSymbolController.text = widget.erc20token!.symbol; - _tokenDecimalController.text = widget.erc20token!.decimal.toString(); + String? address; + + if (widget.token != null) { + address = widget.homeSettingsViewModel.getTokenAddressBasedOnWallet(widget.token!); + + _contractAddressController.text = address ?? ''; + _tokenNameController.text = widget.token!.name; + _tokenSymbolController.text = widget.token!.title; + _tokenDecimalController.text = widget.token!.decimals.toString(); } if (widget.initialContractAddress != null) { @@ -91,7 +96,7 @@ class _EditTokenPageBodyState extends State { } final contractAddress = _contractAddressController.text; - if (contractAddress.isNotEmpty && contractAddress != widget.erc20token?.contractAddress) { + if (contractAddress.isNotEmpty && contractAddress != address) { setState(() { _showDisclaimer = true; }); @@ -139,7 +144,9 @@ class _EditTokenPageBodyState extends State { style: TextStyle( fontSize: 14, fontWeight: FontWeight.normal, - color: Theme.of(context).extension()!.detailsTitlesColor, + color: Theme.of(context) + .extension()! + .detailsTitlesColor, ), ), ), @@ -172,12 +179,12 @@ class _EditTokenPageBodyState extends State { Expanded( child: PrimaryButton( onPressed: () async { - if (widget.erc20token != null) { - await widget.homeSettingsViewModel.deleteErc20Token(widget.erc20token!); + if (widget.token != null) { + await widget.homeSettingsViewModel.deleteToken(widget.token!); } Navigator.pop(context); }, - text: widget.erc20token != null ? S.of(context).delete : S.of(context).cancel, + text: widget.token != null ? S.of(context).delete : S.of(context).cancel, color: Colors.red, textColor: Colors.white, ), @@ -188,7 +195,7 @@ class _EditTokenPageBodyState extends State { onPressed: () async { if (_formKey.currentState!.validate() && (!_showDisclaimer || _disclaimerChecked)) { - await widget.homeSettingsViewModel.addErc20Token(Erc20Token( + await widget.homeSettingsViewModel.addToken(Erc20Token( name: _tokenNameController.text, symbol: _tokenSymbolController.text, contractAddress: _contractAddressController.text, @@ -214,14 +221,13 @@ class _EditTokenPageBodyState extends State { void _getTokenInfo() async { if (_contractAddressController.text.isNotEmpty) { - final token = - await widget.homeSettingsViewModel.getErc20Token(_contractAddressController.text); + final token = await widget.homeSettingsViewModel.getToken(_contractAddressController.text); if (token != null) { if (_tokenNameController.text.isEmpty) _tokenNameController.text = token.name; - if (_tokenSymbolController.text.isEmpty) _tokenSymbolController.text = token.symbol; + if (_tokenSymbolController.text.isEmpty) _tokenSymbolController.text = token.title; if (_tokenDecimalController.text.isEmpty) - _tokenDecimalController.text = token.decimal.toString(); + _tokenDecimalController.text = token.decimals.toString(); } } } diff --git a/lib/src/screens/dashboard/home_settings_page.dart b/lib/src/screens/dashboard/home_settings_page.dart index 618ba49ff..e841423c1 100644 --- a/lib/src/screens/dashboard/home_settings_page.dart +++ b/lib/src/screens/dashboard/home_settings_page.dart @@ -5,6 +5,7 @@ import 'package:cake_wallet/entities/sort_balance_types.dart'; import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/src/screens/base_page.dart'; +import 'package:cake_wallet/src/widgets/cake_image_widget.dart'; import 'package:cake_wallet/src/screens/settings/widgets/settings_picker_cell.dart'; import 'package:cake_wallet/src/screens/settings/widgets/settings_switcher_cell.dart'; import 'package:cake_wallet/themes/extensions/address_theme.dart'; @@ -117,7 +118,7 @@ class HomeSettingsPage extends BasePage { return SettingsSwitcherCell( title: "${token.name} " - "(${token.symbol})", + "(${token.title})", value: token.enabled, onValueChange: (_, bool value) { _homeSettingsViewModel.changeTokenAvailability(token, value); @@ -128,20 +129,16 @@ class HomeSettingsPage extends BasePage { 'token': token, }); }, - leading: token.iconPath != null - ? Container( - child: Image.asset( - token.iconPath!, - height: 30.0, - width: 30.0, - ), - ) - : Container( + leading: CakeImageWidget( + imageUrl: token.iconPath, + height: 40, + width: 40, + displayOnError: Container( height: 30.0, width: 30.0, child: Center( child: Text( - token.symbol.substring(0, min(token.symbol.length, 2)), + token.title.substring(0, min(token.title.length, 2)), style: TextStyle(fontSize: 11), ), ), @@ -149,7 +146,8 @@ class HomeSettingsPage extends BasePage { shape: BoxShape.circle, color: Colors.grey.shade400, ), - ), + ), + ), decoration: BoxDecoration( color: Theme.of(context).cardColor, borderRadius: BorderRadius.circular(30), diff --git a/lib/src/screens/dashboard/pages/balance_page.dart b/lib/src/screens/dashboard/pages/balance_page.dart index 453adccf5..bb3ec70dc 100644 --- a/lib/src/screens/dashboard/pages/balance_page.dart +++ b/lib/src/screens/dashboard/pages/balance_page.dart @@ -6,6 +6,7 @@ import 'package:cake_wallet/reactions/wallet_connect.dart'; import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/src/screens/dashboard/pages/nft_listing_page.dart'; import 'package:cake_wallet/src/screens/dashboard/widgets/home_screen_account_widget.dart'; +import 'package:cake_wallet/src/widgets/cake_image_widget.dart'; import 'package:cake_wallet/src/screens/exchange_trade/information_page.dart'; import 'package:cake_wallet/src/widgets/introducing_card.dart'; import 'package:cake_wallet/store/settings_store.dart'; @@ -333,15 +334,11 @@ class BalanceRowWidget extends StatelessWidget { child: Center( child: Column( children: [ - currency.iconPath != null - ? Container( - child: Image.asset( - currency.iconPath!, - height: 40.0, - width: 40.0, - ), - ) - : Container( + CakeImageWidget( + imageUrl: currency.iconPath, + height: 40, + width: 40, + displayOnError: Container( height: 30.0, width: 30.0, child: Center( @@ -355,6 +352,7 @@ class BalanceRowWidget extends StatelessWidget { color: Colors.grey.shade400, ), ), + ), const SizedBox(height: 10), Text( currency.title, diff --git a/lib/src/screens/dashboard/pages/nft_details_page.dart b/lib/src/screens/dashboard/pages/nft_details_page.dart index bb642fd4b..15d2a2b5c 100644 --- a/lib/src/screens/dashboard/pages/nft_details_page.dart +++ b/lib/src/screens/dashboard/pages/nft_details_page.dart @@ -2,7 +2,7 @@ import 'package:cake_wallet/entities/wallet_nft_response.dart'; import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/src/screens/base_page.dart'; import 'package:cake_wallet/src/screens/dashboard/widgets/menu_widget.dart'; -import 'package:cake_wallet/src/screens/dashboard/widgets/nft_image_tile_widget.dart'; +import 'package:cake_wallet/src/widgets/cake_image_widget.dart'; import 'package:cake_wallet/src/widgets/gradient_background.dart'; import 'package:cake_wallet/themes/extensions/balance_page_theme.dart'; import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart'; @@ -94,7 +94,7 @@ class NFTDetailsPage extends BasePage { .syncedBackgroundColor, ), - child: NFTImageWidget( + child: CakeImageWidget( imageUrl: nftAsset.normalizedMetadata?.imageUrl, ), ), diff --git a/lib/src/screens/dashboard/widgets/menu_widget.dart b/lib/src/screens/dashboard/widgets/menu_widget.dart index ed9b823ad..acd666025 100644 --- a/lib/src/screens/dashboard/widgets/menu_widget.dart +++ b/lib/src/screens/dashboard/widgets/menu_widget.dart @@ -18,23 +18,23 @@ class MenuWidget extends StatefulWidget { class MenuWidgetState extends State { MenuWidgetState() - : this.menuWidth = 0, - this.screenWidth = 0, - this.screenHeight = 0, - this.headerHeight = 120, - this.tileHeight = 60, - this.fromTopEdge = 50, - this.fromBottomEdge = 25, - this.moneroIcon = Image.asset('assets/images/monero_menu.png'), - this.bitcoinIcon = Image.asset('assets/images/bitcoin_menu.png'), - this.litecoinIcon = Image.asset('assets/images/litecoin_menu.png'), - this.havenIcon = Image.asset('assets/images/haven_menu.png'), - this.ethereumIcon = Image.asset('assets/images/eth_icon.png'), - this.nanoIcon = Image.asset('assets/images/nano_icon.png'), - this.bananoIcon = Image.asset('assets/images/nano_icon.png'), + : this.menuWidth = 0, + this.screenWidth = 0, + this.screenHeight = 0, + this.headerHeight = 120, + this.tileHeight = 60, + this.fromTopEdge = 50, + this.fromBottomEdge = 25, + this.moneroIcon = Image.asset('assets/images/monero_menu.png'), + this.bitcoinIcon = Image.asset('assets/images/bitcoin_menu.png'), + this.litecoinIcon = Image.asset('assets/images/litecoin_menu.png'), + this.havenIcon = Image.asset('assets/images/haven_menu.png'), + this.ethereumIcon = Image.asset('assets/images/eth_icon.png'), + this.nanoIcon = Image.asset('assets/images/nano_icon.png'), + this.bananoIcon = Image.asset('assets/images/nano_icon.png'), this.bitcoinCashIcon = Image.asset('assets/images/bch_icon.png'), - this.polygonIcon = Image.asset('assets/images/matic_icon.png'); - + this.polygonIcon = Image.asset('assets/images/matic_icon.png'), + this.solanaIcon = Image.asset('assets/images/sol_icon.png'); final largeScreen = 731; @@ -56,7 +56,7 @@ class MenuWidgetState extends State { Image nanoIcon; Image bananoIcon; Image polygonIcon; - + Image solanaIcon; @override void initState() { @@ -224,6 +224,8 @@ class MenuWidgetState extends State { return bananoIcon; case WalletType.polygon: return polygonIcon; + case WalletType.solana: + return solanaIcon; default: throw Exception('No icon for ${type.toString()}'); } diff --git a/lib/src/screens/dashboard/widgets/nft_tile_widget.dart b/lib/src/screens/dashboard/widgets/nft_tile_widget.dart index e7391b970..4c4d214e7 100644 --- a/lib/src/screens/dashboard/widgets/nft_tile_widget.dart +++ b/lib/src/screens/dashboard/widgets/nft_tile_widget.dart @@ -1,9 +1,8 @@ import 'package:cake_wallet/entities/wallet_nft_response.dart'; import 'package:cake_wallet/routes.dart'; -import 'package:cake_wallet/src/screens/dashboard/widgets/nft_image_tile_widget.dart'; +import 'package:cake_wallet/src/widgets/cake_image_widget.dart'; import 'package:cake_wallet/themes/extensions/balance_page_theme.dart'; import 'package:cake_wallet/themes/extensions/sync_indicator_theme.dart'; -import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; class NFTTileWidget extends StatelessWidget { @@ -38,7 +37,7 @@ class NFTTileWidget extends StatelessWidget { ), color: Theme.of(context).extension()!.syncedBackgroundColor, ), - child: NFTImageWidget( + child: CakeImageWidget( imageUrl: nftAsset.normalizedMetadata?.imageUrl, ), ), diff --git a/lib/src/screens/send/send_page.dart b/lib/src/screens/send/send_page.dart index 3746118d8..5870b1c4d 100644 --- a/lib/src/screens/send/send_page.dart +++ b/lib/src/screens/send/send_page.dart @@ -14,6 +14,7 @@ import 'package:cake_wallet/utils/payment_request.dart'; import 'package:cake_wallet/utils/request_review_handler.dart'; import 'package:cake_wallet/utils/responsive_layout_util.dart'; import 'package:cake_wallet/view_model/send/output.dart'; +import 'package:cw_core/wallet_type.dart'; import 'package:flutter/material.dart'; import 'package:flutter_mobx/flutter_mobx.dart'; import 'package:mobx/mobx.dart'; @@ -439,10 +440,17 @@ class SendPage extends BasePage { } if (state is TransactionCommitted) { + String alertContent; + if (sendViewModel.walletType == WalletType.solana) { + alertContent = + '${S.of(_dialogContext).send_success(sendViewModel.selectedCryptoCurrency.toString())}. ${S.of(_dialogContext).waitFewSecondForTxUpdate}'; + } else { + alertContent = S.of(_dialogContext).send_success( + sendViewModel.selectedCryptoCurrency.toString()); + } return AlertWithOneAction( alertTitle: '', - alertContent: S.of(_dialogContext).send_success( - sendViewModel.selectedCryptoCurrency.toString()), + alertContent: alertContent, buttonText: S.of(_dialogContext).ok, buttonAction: () { Navigator.of(_dialogContext).pop(); diff --git a/lib/src/screens/send/widgets/send_card.dart b/lib/src/screens/send/widgets/send_card.dart index 5f15c9c4d..6bd2d81e9 100644 --- a/lib/src/screens/send/widgets/send_card.dart +++ b/lib/src/screens/send/widgets/send_card.dart @@ -321,7 +321,7 @@ class SendCardState extends State with AutomaticKeepAliveClientMixin Navigator.of(context).pushNamed(Routes.walletConnectConnectionsListing), ), diff --git a/lib/src/screens/settings/other_settings_page.dart b/lib/src/screens/settings/other_settings_page.dart index c88804147..fcf683050 100644 --- a/lib/src/screens/settings/other_settings_page.dart +++ b/lib/src/screens/settings/other_settings_page.dart @@ -26,7 +26,7 @@ class OtherSettingsPage extends BasePage { padding: EdgeInsets.only(top: 10), child: Column( children: [ - if (!_otherSettingsViewModel.changeRepresentativeEnabled) + if (_otherSettingsViewModel.displayTransactionPriority) SettingsPickerCell( title: S.current.settings_fee_priority, items: priorityForWalletType(_otherSettingsViewModel.walletType), diff --git a/lib/src/screens/wallet_connect/widgets/pairing_item_widget.dart b/lib/src/screens/wallet_connect/widgets/pairing_item_widget.dart index 063de8ec3..0d425f904 100644 --- a/lib/src/screens/wallet_connect/widgets/pairing_item_widget.dart +++ b/lib/src/screens/wallet_connect/widgets/pairing_item_widget.dart @@ -1,4 +1,5 @@ import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/src/widgets/cake_image_widget.dart'; import 'package:cake_wallet/themes/extensions/cake_text_theme.dart'; import 'package:cake_wallet/themes/extensions/receive_page_theme.dart'; import 'package:flutter/material.dart'; @@ -26,12 +27,11 @@ class PairingItemWidget extends StatelessWidget { '$year-${month.toString().padLeft(2, '0')}-${day.toString().padLeft(2, '0')}'; return ListTile( - leading: CircleAvatar( - backgroundImage: (metadata.icons.isNotEmpty - ? NetworkImage(metadata.icons[0]) - : const AssetImage( - 'assets/images/default_icon.png', - )) as ImageProvider, + leading: CakeImageWidget( + imageUrl: metadata.icons.isNotEmpty ? metadata.icons[0]: null, + displayOnError: CircleAvatar( + backgroundImage: AssetImage('assets/images/default_icon.png'), + ), ), title: Text( metadata.name, diff --git a/lib/src/screens/wallet_list/wallet_list_page.dart b/lib/src/screens/wallet_list/wallet_list_page.dart index 717bb0a94..b57473cba 100644 --- a/lib/src/screens/wallet_list/wallet_list_page.dart +++ b/lib/src/screens/wallet_list/wallet_list_page.dart @@ -103,6 +103,7 @@ class WalletListBodyState extends State { final bitcoinCashIcon = Image.asset('assets/images/bch_icon.png', height: 24, width: 24); final nanoIcon = Image.asset('assets/images/nano_icon.png', height: 24, width: 24); final polygonIcon = Image.asset('assets/images/matic_icon.png', height: 24, width: 24); + final solanaIcon = Image.asset('assets/images/sol_icon.png', height: 24, width: 24); final scrollController = ScrollController(); final double tileHeight = 60; Flushbar? _progressBar; @@ -313,6 +314,8 @@ class WalletListBodyState extends State { return nanoIcon; case WalletType.polygon: return polygonIcon; + case WalletType.solana: + return solanaIcon; default: return nonWalletTypeIcon; } diff --git a/lib/src/screens/dashboard/widgets/nft_image_tile_widget.dart b/lib/src/widgets/cake_image_widget.dart similarity index 51% rename from lib/src/screens/dashboard/widgets/nft_image_tile_widget.dart rename to lib/src/widgets/cake_image_widget.dart index d34ff02cb..14c62ad34 100644 --- a/lib/src/screens/dashboard/widgets/nft_image_tile_widget.dart +++ b/lib/src/widgets/cake_image_widget.dart @@ -2,25 +2,45 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutter_svg/flutter_svg.dart'; -class NFTImageWidget extends StatelessWidget { - const NFTImageWidget({ +class CakeImageWidget extends StatelessWidget { + CakeImageWidget({ required this.imageUrl, - }); + Widget? displayOnError, + this.height, + this.width, + }) : _displayOnError = displayOnError ?? Icon(Icons.error); final String? imageUrl; + final double? height; + final double? width; + final Widget? _displayOnError; @override Widget build(BuildContext context) { try { - if (imageUrl == null) return Icon(Icons.error); + if (imageUrl == null) return _displayOnError!; + + if (imageUrl!.contains('assets/images')) { + return Image.asset( + imageUrl!, + height: height, + width: width, + ); + } if (imageUrl!.contains('.svg')) { - return SvgPicture.network(imageUrl!); + return SvgPicture.network( + imageUrl!, + height: height, + width: width, + ); } return Image.network( imageUrl!, fit: BoxFit.cover, + height: height, + width: width, loadingBuilder: (BuildContext _, Widget child, ImageChunkEvent? loadingProgress) { if (loadingProgress == null) { return child; @@ -31,7 +51,7 @@ class NFTImageWidget extends StatelessWidget { errorBuilder: (_, __, ___) => Icon(Icons.error), ); } catch (_) { - return Icon(Icons.error); + return _displayOnError!; } } } diff --git a/lib/store/app_store.dart b/lib/store/app_store.dart index a5a2b95e0..7d61abfc5 100644 --- a/lib/store/app_store.dart +++ b/lib/store/app_store.dart @@ -41,7 +41,7 @@ abstract class AppStoreBase with Store { this.wallet = wallet; this.wallet!.setExceptionHandler(ExceptionHandler.onError); - if (isEVMCompatibleChain(wallet.type)) { + if (isWalletConnectCompatibleChain(wallet.type)) { await getIt.get().onDispose(); getIt.get().create(); await getIt.get().init(); diff --git a/lib/store/settings_store.dart b/lib/store/settings_store.dart index 253adf3ea..672b29269 100644 --- a/lib/store/settings_store.dart +++ b/lib/store/settings_store.dart @@ -838,6 +838,7 @@ abstract class SettingsStoreBase with Store { final polygonNodeId = sharedPreferences.getInt(PreferencesKey.currentPolygonNodeIdKey); final nanoNodeId = sharedPreferences.getInt(PreferencesKey.currentNanoNodeIdKey); final nanoPowNodeId = sharedPreferences.getInt(PreferencesKey.currentNanoPowNodeIdKey); + final solanaNodeId = sharedPreferences.getInt(PreferencesKey.currentSolanaNodeIdKey); final moneroNode = nodeSource.get(nodeId); final bitcoinElectrumServer = nodeSource.get(bitcoinElectrumServerId); final litecoinElectrumServer = nodeSource.get(litecoinElectrumServerId); @@ -847,6 +848,7 @@ abstract class SettingsStoreBase with Store { final bitcoinCashElectrumServer = nodeSource.get(bitcoinCashElectrumServerId); final nanoNode = nodeSource.get(nanoNodeId); final nanoPowNode = powNodeSource.get(nanoPowNodeId); + final solanaNode = nodeSource.get(solanaNodeId); final packageInfo = await PackageInfo.fromPlatform(); final deviceName = await _getDeviceName() ?? ''; final shouldShowYatPopup = sharedPreferences.getBool(PreferencesKey.shouldShowYatPopup) ?? true; @@ -903,6 +905,10 @@ abstract class SettingsStoreBase with Store { powNodes[WalletType.nano] = nanoPowNode; } + if (solanaNode != null) { + nodes[WalletType.solana] = solanaNode; + } + final savedSyncMode = SyncMode.all.firstWhere((element) { return element.type.index == (sharedPreferences.getInt(PreferencesKey.syncModeKey) ?? 0); }); @@ -1190,6 +1196,7 @@ abstract class SettingsStoreBase with Store { final ethereumNodeId = sharedPreferences.getInt(PreferencesKey.currentEthereumNodeIdKey); final polygonNodeId = sharedPreferences.getInt(PreferencesKey.currentPolygonNodeIdKey); final nanoNodeId = sharedPreferences.getInt(PreferencesKey.currentNanoNodeIdKey); + final solanaNodeId = sharedPreferences.getInt(PreferencesKey.currentSolanaNodeIdKey); final moneroNode = nodeSource.get(nodeId); final bitcoinElectrumServer = nodeSource.get(bitcoinElectrumServerId); final litecoinElectrumServer = nodeSource.get(litecoinElectrumServerId); @@ -1198,7 +1205,7 @@ abstract class SettingsStoreBase with Store { final polygonNode = nodeSource.get(polygonNodeId); final bitcoinCashNode = nodeSource.get(bitcoinCashElectrumServerId); final nanoNode = nodeSource.get(nanoNodeId); - + final solanaNode = nodeSource.get(solanaNodeId); if (moneroNode != null) { nodes[WalletType.monero] = moneroNode; } @@ -1231,6 +1238,10 @@ abstract class SettingsStoreBase with Store { nodes[WalletType.nano] = nanoNode; } + if (solanaNode != null) { + nodes[WalletType.solana] = solanaNode; + } + // MIGRATED: useTOTP2FA = await SecureKey.getBool( @@ -1358,6 +1369,9 @@ abstract class SettingsStoreBase with Store { case WalletType.polygon: await _sharedPreferences.setInt(PreferencesKey.currentPolygonNodeIdKey, node.key as int); break; + case WalletType.solana: + await _sharedPreferences.setInt(PreferencesKey.currentSolanaNodeIdKey, node.key as int); + break; default: break; } diff --git a/lib/view_model/advanced_privacy_settings_view_model.dart b/lib/view_model/advanced_privacy_settings_view_model.dart index 75d7a9eb4..14033b368 100644 --- a/lib/view_model/advanced_privacy_settings_view_model.dart +++ b/lib/view_model/advanced_privacy_settings_view_model.dart @@ -28,7 +28,10 @@ abstract class AdvancedPrivacySettingsViewModelBase with Store { final SettingsStore _settingsStore; bool get hasSeedPhraseLengthOption => - type == WalletType.bitcoinCash || type == WalletType.ethereum; + type == WalletType.bitcoinCash || + type == WalletType.ethereum || + type == WalletType.polygon || + type == WalletType.solana; bool get hasSeedTypeOption => type == WalletType.monero; diff --git a/lib/view_model/dashboard/balance_view_model.dart b/lib/view_model/dashboard/balance_view_model.dart index e2c0382b0..eee53516e 100644 --- a/lib/view_model/dashboard/balance_view_model.dart +++ b/lib/view_model/dashboard/balance_view_model.dart @@ -18,15 +18,15 @@ import 'package:mobx/mobx.dart'; part 'balance_view_model.g.dart'; class BalanceRecord { - const BalanceRecord({ - required this.availableBalance, - required this.additionalBalance, - required this.frozenBalance, - required this.fiatAvailableBalance, - required this.fiatAdditionalBalance, - required this.fiatFrozenBalance, - required this.asset, - required this.formattedAssetTitle}); + const BalanceRecord( + {required this.availableBalance, + required this.additionalBalance, + required this.frozenBalance, + required this.fiatAvailableBalance, + required this.fiatAdditionalBalance, + required this.fiatFrozenBalance, + required this.asset, + required this.formattedAssetTitle}); final String fiatAdditionalBalance; final String fiatAvailableBalance; final String fiatFrozenBalance; @@ -41,12 +41,10 @@ class BalanceViewModel = BalanceViewModelBase with _$BalanceViewModel; abstract class BalanceViewModelBase with Store { BalanceViewModelBase( - {required this.appStore, - required this.settingsStore, - required this.fiatConvertationStore}) - : isReversing = false, - isShowCard = appStore.wallet!.walletInfo.isShowIntroCakePayCard, - wallet = appStore.wallet! { + {required this.appStore, required this.settingsStore, required this.fiatConvertationStore}) + : isReversing = false, + isShowCard = appStore.wallet!.walletInfo.isShowIntroCakePayCard, + wallet = appStore.wallet! { reaction((_) => appStore.wallet, _onWalletChange); } @@ -60,8 +58,7 @@ abstract class BalanceViewModelBase with Store { bool isReversing; @observable - WalletBase, TransactionInfo> - wallet; + WalletBase, TransactionInfo> wallet; @computed double get price { @@ -82,7 +79,8 @@ abstract class BalanceViewModelBase with Store { bool get isFiatDisabled => settingsStore.fiatApiMode == FiatApiMode.disabled; @computed - bool get isHomeScreenSettingsEnabled => isEVMCompatibleChain(wallet.type); + bool get isHomeScreenSettingsEnabled => + isEVMCompatibleChain(wallet.type) || wallet.type == WalletType.solana; @computed bool get hasAccounts => wallet.type == WalletType.monero; @@ -97,7 +95,7 @@ abstract class BalanceViewModelBase with Store { String get asset { final typeFormatted = walletTypeToString(appStore.wallet!.type); - switch(wallet.type) { + switch (wallet.type) { case WalletType.haven: return '$typeFormatted Assets'; default: @@ -120,13 +118,14 @@ abstract class BalanceViewModelBase with Store { @computed String get availableBalanceLabel { - switch(wallet.type) { + switch (wallet.type) { case WalletType.monero: case WalletType.haven: case WalletType.ethereum: case WalletType.polygon: case WalletType.nano: case WalletType.banano: + case WalletType.solana: return S.current.xmr_available_balance; default: return S.current.confirmed; @@ -135,11 +134,12 @@ abstract class BalanceViewModelBase with Store { @computed String get additionalBalanceLabel { - switch(wallet.type) { + switch (wallet.type) { case WalletType.monero: case WalletType.haven: case WalletType.ethereum: case WalletType.polygon: + case WalletType.solana: return S.current.xmr_full_balance; case WalletType.nano: case WalletType.banano: @@ -228,15 +228,17 @@ abstract class BalanceViewModelBase with Store { Map get balances { return wallet.balance.map((key, value) { if (displayMode == BalanceDisplayMode.hiddenBalance) { - return MapEntry(key, BalanceRecord( - availableBalance: '---', - additionalBalance: '---', - frozenBalance: '---', - fiatAdditionalBalance: isFiatDisabled ? '' : '---', - fiatAvailableBalance: isFiatDisabled ? '' : '---', - fiatFrozenBalance: isFiatDisabled ? '' : '---', - asset: key, - formattedAssetTitle: _formatterAsset(key))); + return MapEntry( + key, + BalanceRecord( + availableBalance: '---', + additionalBalance: '---', + frozenBalance: '---', + fiatAdditionalBalance: isFiatDisabled ? '' : '---', + fiatAvailableBalance: isFiatDisabled ? '' : '---', + fiatFrozenBalance: isFiatDisabled ? '' : '---', + asset: key, + formattedAssetTitle: _formatterAsset(key))); } final fiatCurrency = settingsStore.fiatCurrency; final price = fiatConvertationStore.prices[key] ?? 0; @@ -245,25 +247,23 @@ abstract class BalanceViewModelBase with Store { // throw Exception('Price is null for: $key'); // } - final additionalFiatBalance = isFiatDisabled ? '' : (fiatCurrency.toString() - + ' ' - + _getFiatBalance( - price: price, - cryptoAmount: value.formattedAdditionalBalance)); + final additionalFiatBalance = isFiatDisabled + ? '' + : (fiatCurrency.toString() + + ' ' + + _getFiatBalance(price: price, cryptoAmount: value.formattedAdditionalBalance)); - final availableFiatBalance = isFiatDisabled ? '' : (fiatCurrency.toString() - + ' ' - + _getFiatBalance( - price: price, - cryptoAmount: value.formattedAvailableBalance)); - - - final frozenFiatBalance = isFiatDisabled ? '' : (fiatCurrency.toString() - + ' ' - + _getFiatBalance( - price: price, - cryptoAmount: getFormattedFrozenBalance(value))); + final availableFiatBalance = isFiatDisabled + ? '' + : (fiatCurrency.toString() + + ' ' + + _getFiatBalance(price: price, cryptoAmount: value.formattedAvailableBalance)); + final frozenFiatBalance = isFiatDisabled + ? '' + : (fiatCurrency.toString() + + ' ' + + _getFiatBalance(price: price, cryptoAmount: getFormattedFrozenBalance(value))); return MapEntry( key, @@ -276,12 +276,22 @@ abstract class BalanceViewModelBase with Store { fiatFrozenBalance: frozenFiatBalance, asset: key, formattedAssetTitle: _formatterAsset(key))); - }); + }); } @computed - bool get hasAdditionalBalance => !isEVMCompatibleChain(wallet.type); - + bool get hasAdditionalBalance => _hasAdditionBalanceForWalletType(wallet.type); + + bool _hasAdditionBalanceForWalletType(WalletType type) { + switch (type) { + case WalletType.ethereum: + case WalletType.polygon: + case WalletType.solana: + return false; + default: + return true; + } + } @computed List get formattedBalances { @@ -358,9 +368,7 @@ abstract class BalanceViewModelBase with Store { @action void _onWalletChange( - WalletBase, - TransactionInfo>? - wallet) { + WalletBase, TransactionInfo>? wallet) { if (wallet == null) { return; } @@ -371,7 +379,7 @@ abstract class BalanceViewModelBase with Store { } @action - Future disableIntroCakePayCard () async { + Future disableIntroCakePayCard() async { const cardDisplayStatus = false; wallet.walletInfo.showIntroCakePayCard = cardDisplayStatus; await wallet.walletInfo.save(); @@ -401,6 +409,6 @@ abstract class BalanceViewModelBase with Store { } } - String getFormattedFrozenBalance(Balance walletBalance) => walletBalance.formattedUnAvailableBalance; + String getFormattedFrozenBalance(Balance walletBalance) => + walletBalance.formattedUnAvailableBalance; } - diff --git a/lib/view_model/dashboard/home_settings_view_model.dart b/lib/view_model/dashboard/home_settings_view_model.dart index fc2c27a7c..6d31a5af8 100644 --- a/lib/view_model/dashboard/home_settings_view_model.dart +++ b/lib/view_model/dashboard/home_settings_view_model.dart @@ -3,6 +3,7 @@ import 'package:cake_wallet/entities/fiat_api_mode.dart'; import 'package:cake_wallet/entities/sort_balance_types.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/polygon/polygon.dart'; +import 'package:cake_wallet/solana/solana.dart'; import 'package:cake_wallet/store/settings_store.dart'; import 'package:cake_wallet/view_model/dashboard/balance_view_model.dart'; import 'package:cw_core/crypto_currency.dart'; @@ -16,14 +17,14 @@ class HomeSettingsViewModel = HomeSettingsViewModelBase with _$HomeSettingsViewM abstract class HomeSettingsViewModelBase with Store { HomeSettingsViewModelBase(this._settingsStore, this._balanceViewModel) - : tokens = ObservableSet() { + : tokens = ObservableSet() { _updateTokensList(); } final SettingsStore _settingsStore; final BalanceViewModel _balanceViewModel; - final ObservableSet tokens; + final ObservableSet tokens; @observable String searchText = ''; @@ -43,7 +44,7 @@ abstract class HomeSettingsViewModelBase with Store { @action void setPinNativeToken(bool value) => _settingsStore.pinNativeTokenAtTop = value; - Future addErc20Token(Erc20Token token) async { + Future addToken(CryptoCurrency token) async { if (_balanceViewModel.wallet.type == WalletType.ethereum) { await ethereum!.addErc20Token(_balanceViewModel.wallet, token); } @@ -52,23 +53,31 @@ abstract class HomeSettingsViewModelBase with Store { await polygon!.addErc20Token(_balanceViewModel.wallet, token); } + if (_balanceViewModel.wallet.type == WalletType.solana) { + await solana!.addSPLToken(_balanceViewModel.wallet, token); + } + _updateTokensList(); _updateFiatPrices(token); } - Future deleteErc20Token(Erc20Token token) async { + Future deleteToken(CryptoCurrency token) async { if (_balanceViewModel.wallet.type == WalletType.ethereum) { - await ethereum!.deleteErc20Token(_balanceViewModel.wallet, token); + await ethereum!.deleteErc20Token(_balanceViewModel.wallet, token as Erc20Token); } if (_balanceViewModel.wallet.type == WalletType.polygon) { - await polygon!.deleteErc20Token(_balanceViewModel.wallet, token); + await polygon!.deleteErc20Token(_balanceViewModel.wallet, token as Erc20Token); + } + + if (_balanceViewModel.wallet.type == WalletType.solana) { + await solana!.deleteSPLToken(_balanceViewModel.wallet, token); } _updateTokensList(); } - Future getErc20Token(String contractAddress) async { + Future getToken(String contractAddress) async { if (_balanceViewModel.wallet.type == WalletType.ethereum) { return await ethereum!.getErc20Token(_balanceViewModel.wallet, contractAddress); } @@ -77,12 +86,16 @@ abstract class HomeSettingsViewModelBase with Store { return await polygon!.getErc20Token(_balanceViewModel.wallet, contractAddress); } + if (_balanceViewModel.wallet.type == WalletType.solana) { + return await solana!.getSPLToken(_balanceViewModel.wallet, contractAddress); + } + return null; } CryptoCurrency get nativeToken => _balanceViewModel.wallet.currency; - void _updateFiatPrices(Erc20Token token) async { + void _updateFiatPrices(CryptoCurrency token) async { try { _balanceViewModel.fiatConvertationStore.prices[token] = await FiatConversionService.fetchPrice( @@ -92,20 +105,27 @@ abstract class HomeSettingsViewModelBase with Store { } catch (_) {} } - void changeTokenAvailability(Erc20Token token, bool value) async { + void changeTokenAvailability(CryptoCurrency token, bool value) async { token.enabled = value; + if (_balanceViewModel.wallet.type == WalletType.ethereum) { - ethereum!.addErc20Token(_balanceViewModel.wallet, token); + ethereum!.addErc20Token(_balanceViewModel.wallet, token as Erc20Token); } + if (_balanceViewModel.wallet.type == WalletType.polygon) { - polygon!.addErc20Token(_balanceViewModel.wallet, token); + polygon!.addErc20Token(_balanceViewModel.wallet, token as Erc20Token); } + + if (_balanceViewModel.wallet.type == WalletType.solana) { + solana!.addSPLToken(_balanceViewModel.wallet, token); + } + _refreshTokensList(); } @action void _updateTokensList() { - int _sortFunc(Erc20Token e1, Erc20Token e2) { + int _sortFunc(CryptoCurrency e1, CryptoCurrency e2) { int index1 = _balanceViewModel.formattedBalances.indexWhere((element) => element.asset == e1); int index2 = _balanceViewModel.formattedBalances.indexWhere((element) => element.asset == e2); @@ -138,6 +158,14 @@ abstract class HomeSettingsViewModelBase with Store { .toList() ..sort(_sortFunc)); } + + if (_balanceViewModel.wallet.type == WalletType.solana) { + tokens.addAll(solana! + .getSPLTokenCurrencies(_balanceViewModel.wallet) + .where((element) => _matchesSearchText(element)) + .toList() + ..sort(_sortFunc)); + } } @action @@ -153,10 +181,32 @@ abstract class HomeSettingsViewModelBase with Store { _updateTokensList(); } - bool _matchesSearchText(Erc20Token asset) { + bool _matchesSearchText(CryptoCurrency asset) { + final address = getTokenAddressBasedOnWallet(asset); + + // The homes settings would only be displayed for either of Ethereum, Polygon or Solana Wallets. + if (address == null) return false; + return searchText.isEmpty || asset.fullName!.toLowerCase().contains(searchText.toLowerCase()) || asset.title.toLowerCase().contains(searchText.toLowerCase()) || - asset.contractAddress == searchText; + address == searchText; + } + + String? getTokenAddressBasedOnWallet(CryptoCurrency asset) { + if (_balanceViewModel.wallet.type == WalletType.solana) { + return solana!.getTokenAddress(asset); + } + + if (_balanceViewModel.wallet.type == WalletType.ethereum) { + return ethereum!.getTokenAddress(asset); + } + + if (_balanceViewModel.wallet.type == WalletType.polygon) { + return polygon!.getTokenAddress(asset); + } + + // We return null if it's neither Polygin, Ethereum or Solana wallet (which is actually impossible because we only display home settings for either of these three wallets). + return null; } } diff --git a/lib/view_model/dashboard/transaction_list_item.dart b/lib/view_model/dashboard/transaction_list_item.dart index d8c4776b7..99de14a18 100644 --- a/lib/view_model/dashboard/transaction_list_item.dart +++ b/lib/view_model/dashboard/transaction_list_item.dart @@ -4,6 +4,7 @@ import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/nano/nano.dart'; import 'package:cake_wallet/polygon/polygon.dart'; +import 'package:cake_wallet/solana/solana.dart'; import 'package:cw_core/transaction_direction.dart'; import 'package:cw_core/transaction_info.dart'; import 'package:cake_wallet/store/settings_store.dart'; @@ -105,6 +106,14 @@ class TransactionListItem extends ActionListItem with Keyable { nano!.getTransactionAmountRaw(transaction).toString(), nanoUtil!.rawPerNano)), price: price); break; + case WalletType.solana: + final asset = solana!.assetOfTransaction(balanceViewModel.wallet, transaction); + final price = balanceViewModel.fiatConvertationStore.prices[asset]; + amount = calculateFiatAmountRaw( + cryptoAmount: solana!.getTransactionAmountRaw(transaction), + price: price, + ); + break; default: break; } diff --git a/lib/view_model/exchange/exchange_view_model.dart b/lib/view_model/exchange/exchange_view_model.dart index afe617803..1540ebef3 100644 --- a/lib/view_model/exchange/exchange_view_model.dart +++ b/lib/view_model/exchange/exchange_view_model.dart @@ -625,6 +625,10 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with depositCurrency = CryptoCurrency.maticpoly; receiveCurrency = CryptoCurrency.xmr; break; + case WalletType.solana: + depositCurrency = CryptoCurrency.sol; + receiveCurrency = CryptoCurrency.xmr; + break; default: break; } diff --git a/lib/view_model/node_list/node_list_view_model.dart b/lib/view_model/node_list/node_list_view_model.dart index 0cd4d7491..5526cc6d2 100644 --- a/lib/view_model/node_list/node_list_view_model.dart +++ b/lib/view_model/node_list/node_list_view_model.dart @@ -75,6 +75,9 @@ abstract class NodeListViewModelBase with Store { case WalletType.polygon: node = getPolygonDefaultNode(nodes: _nodeSource)!; break; + case WalletType.solana: + node = getSolanaDefaultNode(nodes: _nodeSource)!; + break; default: throw Exception('Unexpected wallet type: ${_appStore.wallet!.type}'); } diff --git a/lib/view_model/restore/restore_from_qr_vm.dart b/lib/view_model/restore/restore_from_qr_vm.dart index c8637c4be..31f0bfdd2 100644 --- a/lib/view_model/restore/restore_from_qr_vm.dart +++ b/lib/view_model/restore/restore_from_qr_vm.dart @@ -3,6 +3,7 @@ import 'package:cake_wallet/bitcoin_cash/bitcoin_cash.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/nano/nano.dart'; import 'package:cake_wallet/polygon/polygon.dart'; +import 'package:cake_wallet/solana/solana.dart'; import 'package:cake_wallet/view_model/restore/restore_mode.dart'; import 'package:cake_wallet/view_model/restore/restore_wallet.dart'; import 'package:hive/hive.dart'; @@ -75,6 +76,9 @@ abstract class WalletRestorationFromQRVMBase extends WalletCreationVM with Store case WalletType.polygon: return polygon!.createPolygonRestoreWalletFromPrivateKey( name: name, password: password, privateKey: restoreWallet.privateKey!); + case WalletType.solana: + return solana!.createSolanaRestoreWalletFromPrivateKey( + name: name, password: password, privateKey: restoreWallet.privateKey!); default: throw Exception('Unexpected type: ${restoreWallet.type.toString()}'); } @@ -102,6 +106,9 @@ abstract class WalletRestorationFromQRVMBase extends WalletCreationVM with Store case WalletType.polygon: return polygon!.createPolygonRestoreWalletFromSeedCredentials( name: name, mnemonic: restoreWallet.mnemonicSeed ?? '', password: password); + case WalletType.solana: + return solana!.createSolanaRestoreWalletFromSeedCredentials( + name: name, mnemonic: restoreWallet.mnemonicSeed ?? '', password: password); default: throw Exception('Unexpected type: ${type.toString()}'); } diff --git a/lib/view_model/restore/wallet_restore_from_qr_code.dart b/lib/view_model/restore/wallet_restore_from_qr_code.dart index bfc9b7980..925c08cca 100644 --- a/lib/view_model/restore/wallet_restore_from_qr_code.dart +++ b/lib/view_model/restore/wallet_restore_from_qr_code.dart @@ -32,6 +32,7 @@ class WalletRestoreFromQRCode { 'bitcoincash': WalletType.bitcoinCash, 'bitcoincash-wallet': WalletType.bitcoinCash, 'bitcoincash_wallet': WalletType.bitcoinCash, + 'solana-wallet': WalletType.solana, }; static bool _containsAssetSpecifier(String code) => _extractWalletType(code) != null; @@ -175,6 +176,14 @@ class WalletRestoreFromQRCode { return WalletRestoreMode.seed; } + if (type == WalletType.solana && credentials.containsKey('private_key')) { + final privateKey = credentials['private_key'] as String; + if (privateKey.isEmpty) { + throw Exception('Unexpected restore mode: private_key'); + } + return WalletRestoreMode.keys; + } + throw Exception('Unexpected restore mode: restore params are invalid'); } } diff --git a/lib/view_model/send/output.dart b/lib/view_model/send/output.dart index e40000139..cc39aca8b 100644 --- a/lib/view_model/send/output.dart +++ b/lib/view_model/send/output.dart @@ -148,9 +148,8 @@ abstract class OutputBase with Store { @computed String get estimatedFeeFiatAmount { try { - final currency = isEVMCompatibleChain(_wallet.type) - ? _wallet.currency - : cryptoCurrencyHandler(); + final currency = + isEVMCompatibleChain(_wallet.type) ? _wallet.currency : cryptoCurrencyHandler(); final fiat = calculateFiatAmountRaw( price: _fiatConversationStore.prices[currency]!, cryptoAmount: estimatedFee); return fiat; @@ -220,7 +219,6 @@ abstract class OutputBase with Store { final crypto = double.parse(fiatAmount.replaceAll(',', '.')) / _fiatConversationStore.prices[cryptoCurrencyHandler()]!; final cryptoAmountTmp = _cryptoNumberFormat.format(crypto); - if (cryptoAmount != cryptoAmountTmp) { cryptoAmount = cryptoAmountTmp; } @@ -252,6 +250,9 @@ abstract class OutputBase with Store { case WalletType.polygon: maximumFractionDigits = 12; break; + case WalletType.solana: + maximumFractionDigits = 12; + break; default: break; } diff --git a/lib/view_model/send/send_template_view_model.dart b/lib/view_model/send/send_template_view_model.dart index 007c4b8c0..f79fbddc7 100644 --- a/lib/view_model/send/send_template_view_model.dart +++ b/lib/view_model/send/send_template_view_model.dart @@ -52,7 +52,8 @@ abstract class SendTemplateViewModelBase with Store { bool get hasMultiRecipient => _wallet.type != WalletType.haven && _wallet.type != WalletType.ethereum && - _wallet.type != WalletType.polygon; + _wallet.type != WalletType.polygon && + _wallet.type != WalletType.solana; @computed CryptoCurrency get cryptoCurrency => _wallet.currency; diff --git a/lib/view_model/send/send_view_model.dart b/lib/view_model/send/send_view_model.dart index 885e2efe0..772150368 100644 --- a/lib/view_model/send/send_view_model.dart +++ b/lib/view_model/send/send_view_model.dart @@ -7,6 +7,7 @@ import 'package:cake_wallet/entities/contact_record.dart'; import 'package:cake_wallet/entities/wallet_contact.dart'; import 'package:cake_wallet/polygon/polygon.dart'; import 'package:cake_wallet/reactions/wallet_connect.dart'; +import 'package:cake_wallet/solana/solana.dart'; import 'package:cake_wallet/store/app_store.dart'; import 'package:cake_wallet/view_model/contact_list/contact_list_view_model.dart'; import 'package:cake_wallet/view_model/dashboard/balance_view_model.dart'; @@ -44,7 +45,7 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor void onWalletChange(wallet) { currencies = wallet.balance.keys.toList(); selectedCryptoCurrency = wallet.currency; - hasMultipleTokens = isEVMCompatibleChain(wallet.type); + hasMultipleTokens = isEVMCompatibleChain(wallet.type) || wallet.type == WalletType.solana; } SendViewModelBase( @@ -57,7 +58,8 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor ) : state = InitialExecutionState(), currencies = appStore.wallet!.balance.keys.toList(), selectedCryptoCurrency = appStore.wallet!.currency, - hasMultipleTokens = isEVMCompatibleChain(appStore.wallet!.type), + hasMultipleTokens = isEVMCompatibleChain(appStore.wallet!.type) || + appStore.wallet!.type == WalletType.solana, outputs = ObservableList(), _settingsStore = appStore.settingsStore, fiatFromSettings = appStore.settingsStore.fiatCurrency, @@ -100,6 +102,8 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor @computed bool get isBatchSending => outputs.length > 1; + bool get shouldDisplaySendALL => walletType != WalletType.solana; + @computed String get pendingTransactionFiatAmount { if (pendingTransaction == null) { @@ -297,6 +301,7 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor pendingTransaction = await wallet.createTransaction(_credentials()); state = ExecutedSuccessfullyState(); } catch (e) { + print('Failed with ${e.toString()}'); state = FailureState(e.toString()); } } @@ -351,7 +356,7 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor Object _credentials() { final priority = _settingsStore.priority[wallet.type]; - if (priority == null && wallet.type != WalletType.nano) { + if (priority == null && wallet.type != WalletType.nano && wallet.type != WalletType.solana) { throw Exception('Priority is null for wallet type: ${wallet.type}'); } @@ -377,6 +382,9 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor case WalletType.polygon: return polygon!.createPolygonTransactionCredentials(outputs, priority: priority!, currency: selectedCryptoCurrency); + case WalletType.solana: + return solana! + .createSolanaTransactionCredentials(outputs, currency: selectedCryptoCurrency); default: throw Exception('Unexpected wallet type: ${wallet.type}'); } diff --git a/lib/view_model/settings/other_settings_view_model.dart b/lib/view_model/settings/other_settings_view_model.dart index e44eb8fc7..263532d29 100644 --- a/lib/view_model/settings/other_settings_view_model.dart +++ b/lib/view_model/settings/other_settings_view_model.dart @@ -14,15 +14,14 @@ import 'package:package_info/package_info.dart'; part 'other_settings_view_model.g.dart'; -class OtherSettingsViewModel = OtherSettingsViewModelBase - with _$OtherSettingsViewModel; +class OtherSettingsViewModel = OtherSettingsViewModelBase with _$OtherSettingsViewModel; abstract class OtherSettingsViewModelBase with Store { OtherSettingsViewModelBase(this._settingsStore, this._wallet) : walletType = _wallet.type, currentVersion = '' { - PackageInfo.fromPlatform().then( - (PackageInfo packageInfo) => currentVersion = packageInfo.version); + PackageInfo.fromPlatform() + .then((PackageInfo packageInfo) => currentVersion = packageInfo.version); final priority = _settingsStore.priority[_wallet.type]; final priorities = priorityForWalletType(_wallet.type); @@ -33,8 +32,7 @@ abstract class OtherSettingsViewModelBase with Store { } final WalletType walletType; - final WalletBase, - TransactionInfo> _wallet; + final WalletBase, TransactionInfo> _wallet; @observable String currentVersion; @@ -57,12 +55,14 @@ abstract class OtherSettingsViewModelBase with Store { _wallet.type == WalletType.nano || _wallet.type == WalletType.banano; @computed - bool get isEnabledBuyAction => - !_settingsStore.disableBuy && _wallet.type != WalletType.haven; + bool get displayTransactionPriority => + !(changeRepresentativeEnabled || _wallet.type == WalletType.solana); @computed - bool get isEnabledSellAction => - !_settingsStore.disableSell && _wallet.type != WalletType.haven; + bool get isEnabledBuyAction => !_settingsStore.disableBuy && _wallet.type != WalletType.haven; + + @computed + bool get isEnabledSellAction => !_settingsStore.disableSell && _wallet.type != WalletType.haven; List get availableBuyProvidersTypes { return ProvidersHelper.getAvailableBuyProviderTypes(walletType); @@ -72,12 +72,10 @@ abstract class OtherSettingsViewModelBase with Store { ProvidersHelper.getAvailableSellProviderTypes(walletType); ProviderType get buyProviderType => - _settingsStore.defaultBuyProviders[walletType] ?? - ProviderType.askEachTime; + _settingsStore.defaultBuyProviders[walletType] ?? ProviderType.askEachTime; ProviderType get sellProviderType => - _settingsStore.defaultSellProviders[walletType] ?? - ProviderType.askEachTime; + _settingsStore.defaultSellProviders[walletType] ?? ProviderType.askEachTime; String getDisplayPriority(dynamic priority) { final _priority = priority as TransactionPriority; @@ -114,7 +112,6 @@ abstract class OtherSettingsViewModelBase with Store { _settingsStore.defaultBuyProviders[walletType] = buyProviderType; @action - ProviderType onSellProviderTypeSelected( - ProviderType sellProviderType) => + ProviderType onSellProviderTypeSelected(ProviderType sellProviderType) => _settingsStore.defaultSellProviders[walletType] = sellProviderType; } diff --git a/lib/view_model/transaction_details_view_model.dart b/lib/view_model/transaction_details_view_model.dart index a3bf281ca..04eaf25e4 100644 --- a/lib/view_model/transaction_details_view_model.dart +++ b/lib/view_model/transaction_details_view_model.dart @@ -54,6 +54,9 @@ abstract class TransactionDetailsViewModelBase with Store { case WalletType.polygon: _addPolygonListItems(tx, dateFormat); break; + case WalletType.solana: + _addSolanaListItems(tx, dateFormat); + break; default: break; } @@ -131,6 +134,8 @@ abstract class TransactionDetailsViewModelBase with Store { return 'https://bananolooker.com/block/${txId}'; case WalletType.polygon: return 'https://polygonscan.com/tx/${txId}'; + case WalletType.solana: + return 'https://solscan.io/tx/${txId}'; default: return ''; } @@ -155,6 +160,8 @@ abstract class TransactionDetailsViewModelBase with Store { return S.current.view_transaction_on + 'bananolooker.com'; case WalletType.polygon: return S.current.view_transaction_on + 'polygonscan.com'; + case WalletType.solana: + return S.current.view_transaction_on + 'solscan.io'; default: return ''; } @@ -281,4 +288,21 @@ abstract class TransactionDetailsViewModelBase with Store { items.addAll(_items); } + + void _addSolanaListItems(TransactionInfo tx, DateFormat dateFormat) { + final _items = [ + StandartListItem(title: S.current.transaction_details_transaction_id, value: tx.id), + StandartListItem( + title: S.current.transaction_details_date, value: dateFormat.format(tx.date)), + StandartListItem(title: S.current.transaction_details_amount, value: tx.amountFormatted()), + if (tx.feeFormatted()?.isNotEmpty ?? false) + StandartListItem(title: S.current.transaction_details_fee, value: tx.feeFormatted()!), + if (showRecipientAddress && tx.to != null) + StandartListItem(title: S.current.transaction_details_recipient_address, value: tx.to!), + if (tx.from != null) + StandartListItem(title: S.current.transaction_details_source_address, value: tx.from!), + ]; + + items.addAll(_items); + } } diff --git a/lib/view_model/wallet_address_list/wallet_address_list_view_model.dart b/lib/view_model/wallet_address_list/wallet_address_list_view_model.dart index 9270d1d44..bde535a23 100644 --- a/lib/view_model/wallet_address_list/wallet_address_list_view_model.dart +++ b/lib/view_model/wallet_address_list/wallet_address_list_view_model.dart @@ -7,6 +7,7 @@ import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/haven/haven.dart'; import 'package:cake_wallet/monero/monero.dart'; import 'package:cake_wallet/polygon/polygon.dart'; +import 'package:cake_wallet/solana/solana.dart'; import 'package:cake_wallet/store/app_store.dart'; import 'package:cake_wallet/store/dashboard/fiat_conversion_store.dart'; import 'package:cake_wallet/store/settings_store.dart'; @@ -159,6 +160,21 @@ class PolygonURI extends PaymentURI { } } +class SolanaURI extends PaymentURI { + SolanaURI({required String amount, required String address}) + : super(amount: amount, address: address); + + @override + String toString() { + var base = 'solana:' + address; + if (amount.isNotEmpty) { + base += '?amount=${amount.replaceAll(',', '.')}'; + } + + return base; + } +} + abstract class WalletAddressListViewModelBase extends WalletChangeListenerViewModel with Store { WalletAddressListViewModelBase({ required AppStore appStore, @@ -257,6 +273,10 @@ abstract class WalletAddressListViewModelBase extends WalletChangeListenerViewMo return PolygonURI(amount: amount, address: address.address); } + if (wallet.type == WalletType.solana) { + return SolanaURI(amount: amount, address: address.address); + } + throw Exception('Unexpected type: ${type.toString()}'); } @@ -326,6 +346,12 @@ abstract class WalletAddressListViewModelBase extends WalletChangeListenerViewMo addressList.add(WalletAddressListItem(isPrimary: true, name: null, address: primaryAddress)); } + if (wallet.type == WalletType.solana) { + final primaryAddress = solana!.getAddress(wallet); + + addressList.add(WalletAddressListItem(isPrimary: true, name: null, address: primaryAddress)); + } + if (searchText.isNotEmpty) { return ObservableList.of(addressList.where((item) { if (item is WalletAddressListItem) { diff --git a/lib/view_model/wallet_keys_view_model.dart b/lib/view_model/wallet_keys_view_model.dart index f931fec19..a84f1a4c4 100644 --- a/lib/view_model/wallet_keys_view_model.dart +++ b/lib/view_model/wallet_keys_view_model.dart @@ -110,7 +110,8 @@ abstract class WalletKeysViewModelBase with Store { ]); } - if (isEVMCompatibleChain(_appStore.wallet!.type)) { + if (isEVMCompatibleChain(_appStore.wallet!.type) || + _appStore.wallet!.type == WalletType.solana) { items.addAll([ if (_appStore.wallet!.privateKey != null) StandartListItem(title: S.current.private_key, value: _appStore.wallet!.privateKey!), @@ -165,6 +166,8 @@ abstract class WalletKeysViewModelBase with Store { return 'banano-wallet'; case WalletType.polygon: return 'polygon-wallet'; + case WalletType.solana: + return 'solana-wallet'; default: throw Exception('Unexpected wallet type: ${_appStore.wallet!.toString()}'); } diff --git a/lib/view_model/wallet_new_vm.dart b/lib/view_model/wallet_new_vm.dart index d4a0c4c00..6f3e0280e 100644 --- a/lib/view_model/wallet_new_vm.dart +++ b/lib/view_model/wallet_new_vm.dart @@ -1,5 +1,6 @@ import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/bitcoin_cash/bitcoin_cash.dart'; +import 'package:cake_wallet/solana/solana.dart'; import 'package:hive/hive.dart'; import 'package:mobx/mobx.dart'; import 'package:cake_wallet/monero/monero.dart'; @@ -36,19 +37,21 @@ abstract class WalletNewVMBase extends WalletCreationVM with Store { bool get hasLanguageSelector => type == WalletType.monero || type == WalletType.haven; int get seedPhraseWordsLength { - switch (type) { - case WalletType.monero: - if(advancedPrivacySettingsViewModel.isPolySeed) { - return 16; - } - return 25; - case WalletType.ethereum: - case WalletType.bitcoinCash: - return advancedPrivacySettingsViewModel.seedPhraseLength.value; - default: - return 24; - } + switch (type) { + case WalletType.monero: + if (advancedPrivacySettingsViewModel.isPolySeed) { + return 16; + } + return 25; + case WalletType.solana: + case WalletType.polygon: + case WalletType.ethereum: + case WalletType.bitcoinCash: + return advancedPrivacySettingsViewModel.seedPhraseLength.value; + default: + return 24; } + } bool get hasSeedType => type == WalletType.monero; @@ -64,8 +67,8 @@ abstract class WalletNewVMBase extends WalletCreationVM with Store { case WalletType.litecoin: return bitcoin!.createBitcoinNewWalletCredentials(name: name); case WalletType.haven: - return haven!.createHavenNewWalletCredentials( - name: name, language: options!.first as String); + return haven! + .createHavenNewWalletCredentials(name: name, language: options!.first as String); case WalletType.ethereum: return ethereum!.createEthereumNewWalletCredentials(name: name); case WalletType.bitcoinCash: @@ -74,6 +77,8 @@ abstract class WalletNewVMBase extends WalletCreationVM with Store { return nano!.createNanoNewWalletCredentials(name: name); case WalletType.polygon: return polygon!.createPolygonNewWalletCredentials(name: name); + case WalletType.solana: + return solana!.createSolanaNewWalletCredentials(name: name); default: throw Exception('Unexpected type: ${type.toString()}'); } diff --git a/lib/view_model/wallet_restore_view_model.dart b/lib/view_model/wallet_restore_view_model.dart index 8d1e3b223..98dce3d92 100644 --- a/lib/view_model/wallet_restore_view_model.dart +++ b/lib/view_model/wallet_restore_view_model.dart @@ -4,6 +4,7 @@ import 'package:cake_wallet/nano/nano.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/bitcoin_cash/bitcoin_cash.dart'; import 'package:cake_wallet/polygon/polygon.dart'; +import 'package:cake_wallet/solana/solana.dart'; import 'package:hive/hive.dart'; import 'package:mobx/mobx.dart'; import 'package:cake_wallet/store/app_store.dart'; @@ -28,11 +29,11 @@ abstract class WalletRestoreViewModelBase extends WalletCreationVM with Store { {required WalletType type}) : hasSeedLanguageSelector = type == WalletType.monero || type == WalletType.haven, hasBlockchainHeightLanguageSelector = type == WalletType.monero || type == WalletType.haven, - hasRestoreFromPrivateKey = - type == WalletType.ethereum || + hasRestoreFromPrivateKey = type == WalletType.ethereum || type == WalletType.polygon || type == WalletType.nano || - type == WalletType.banano, + type == WalletType.banano || + type == WalletType.solana, isButtonEnabled = false, mode = WalletRestoreMode.seed, super(appStore, walletInfoSource, walletCreationService, type: type, isRecovery: true) { @@ -45,6 +46,7 @@ abstract class WalletRestoreViewModelBase extends WalletCreationVM with Store { break; case WalletType.nano: case WalletType.banano: + case WalletType.solana: availableModes = [WalletRestoreMode.seed, WalletRestoreMode.keys]; break; default: @@ -98,22 +100,21 @@ abstract class WalletRestoreViewModelBase extends WalletCreationVM with Store { name: name, height: height, mnemonic: seed, password: password); case WalletType.ethereum: return ethereum!.createEthereumRestoreWalletFromSeedCredentials( - name: name, - mnemonic: seed, - password: password); + name: name, mnemonic: seed, password: password); case WalletType.bitcoinCash: return bitcoinCash!.createBitcoinCashRestoreWalletFromSeedCredentials( - name: name, - mnemonic: seed, - password: password); + name: name, mnemonic: seed, password: password); case WalletType.nano: return nano!.createNanoRestoreWalletFromSeedCredentials( + name: name, mnemonic: seed, password: password, derivationType: derivationType); + case WalletType.polygon: + return polygon!.createPolygonRestoreWalletFromSeedCredentials( name: name, mnemonic: seed, password: password, - derivationType: derivationType); - case WalletType.polygon: - return polygon!.createPolygonRestoreWalletFromSeedCredentials( + ); + case WalletType.solana: + return solana!.createSolanaRestoreWalletFromSeedCredentials( name: name, mnemonic: seed, password: password, @@ -160,16 +161,22 @@ abstract class WalletRestoreViewModelBase extends WalletCreationVM with Store { case WalletType.nano: return nano!.createNanoRestoreWalletFromKeysCredentials( - name: name, - password: password, - seedKey: options['private_key'] as String, - derivationType: options["derivationType"] as DerivationType); + name: name, + password: password, + seedKey: options['private_key'] as String, + derivationType: options["derivationType"] as DerivationType); case WalletType.polygon: return polygon!.createPolygonRestoreWalletFromPrivateKey( name: name, password: password, privateKey: options['private_key'] as String, ); + case WalletType.solana: + return solana!.createSolanaRestoreWalletFromPrivateKey( + name: name, + password: password, + privateKey: options['private_key'] as String, + ); default: break; } @@ -187,10 +194,8 @@ abstract class WalletRestoreViewModelBase extends WalletCreationVM with Store { switch (type) { case WalletType.nano: - return nanoUtil!.compareDerivationMethods( - mnemonic: mnemonic, - privateKey: seedKey, - node: node); + return nanoUtil! + .compareDerivationMethods(mnemonic: mnemonic, privateKey: seedKey, node: node); default: break; } diff --git a/model_generator.sh b/model_generator.sh index a2b016bb0..8a6098621 100755 --- a/model_generator.sh +++ b/model_generator.sh @@ -5,6 +5,7 @@ cd cw_bitcoin && flutter pub get && flutter packages pub run build_runner build cd cw_haven && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. cd cw_nano && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. cd cw_bitcoin_cash && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. +cd cw_solana && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. cd cw_ethereum && flutter pub get && cd .. cd cw_polygon && flutter pub get && cd .. flutter packages pub run build_runner build --delete-conflicting-outputs diff --git a/pubspec_base.yaml b/pubspec_base.yaml index f38482ec3..758287601 100644 --- a/pubspec_base.yaml +++ b/pubspec_base.yaml @@ -106,6 +106,7 @@ dependencies: flutter_svg: ^2.0.9 polyseed: ^0.0.2 nostr_tools: ^1.0.9 + solana: ^0.30.1 dev_dependencies: flutter_test: @@ -152,6 +153,7 @@ flutter: - assets/nano_node_list.yml - assets/nano_pow_node_list.yml - assets/polygon_node_list.yml + - assets/solana_node_list.yml - assets/text/ - assets/faq/ - assets/animation/ diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 553262f79..3e3f595be 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -778,5 +778,6 @@ "you_pay": "انت تدفع", "you_will_get": "حول الى", "you_will_send": "تحويل من", - "yy": "YY" -} \ No newline at end of file + "yy": "YY", + "waitFewSecondForTxUpdate": "ﺕﻼﻣﺎﻌﻤﻟﺍ ﻞﺠﺳ ﻲﻓ ﺔﻠﻣﺎﻌﻤﻟﺍ ﺲﻜﻌﻨﺗ ﻰﺘﺣ ﻥﺍﻮﺛ ﻊﻀﺒﻟ ﺭﺎﻈﺘﻧﻻﺍ ﻰﺟﺮﻳ" +} diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index 8d89f463b..9d64e36ae 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -778,5 +778,6 @@ "you_pay": "Вие плащате", "you_will_get": "Обръщане в", "you_will_send": "Обръщане от", - "yy": "гг" -} \ No newline at end of file + "yy": "гг", + "waitFewSecondForTxUpdate": "Моля, изчакайте няколко секунди, докато транзакцията се отрази в историята на транзакциите" +} diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index e81eab570..8665efc2c 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -778,5 +778,6 @@ "you_pay": "Zaplatíte", "you_will_get": "Směnit na", "you_will_send": "Směnit z", - "yy": "YY" -} \ No newline at end of file + "yy": "YY", + "waitFewSecondForTxUpdate": "Počkejte několik sekund, než se transakce projeví v historii transakcí" +} diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 3ca972af4..28e3d4996 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -781,5 +781,6 @@ "you_pay": "Sie bezahlen", "you_will_get": "Konvertieren zu", "you_will_send": "Konvertieren von", - "yy": "YY" -} \ No newline at end of file + "yy": "YY", + "waitFewSecondForTxUpdate": "Bitte warten Sie einige Sekunden, bis die Transaktion im Transaktionsverlauf angezeigt wird" +} diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 2db7602c1..aae06f6b0 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -778,5 +778,6 @@ "you_pay": "You Pay", "you_will_get": "Convert to", "you_will_send": "Convert from", - "yy": "YY" -} \ No newline at end of file + "yy": "YY", + "waitFewSecondForTxUpdate": "Kindly wait for a few seconds for transaction to reflect in transactions history" +} diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 5ca5ff4d3..d9e786467 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -779,5 +779,6 @@ "you_pay": "Tú pagas", "you_will_get": "Convertir a", "you_will_send": "Convertir de", - "yy": "YY" -} \ No newline at end of file + "yy": "YY", + "waitFewSecondForTxUpdate": "Espere unos segundos para que la transacción se refleje en el historial de transacciones." +} diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index aee967d21..8b4fc10d1 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -778,5 +778,6 @@ "you_pay": "Vous payez", "you_will_get": "Convertir vers", "you_will_send": "Convertir depuis", - "yy": "AA" -} \ No newline at end of file + "yy": "AA", + "waitFewSecondForTxUpdate": "Veuillez attendre quelques secondes pour que la transaction soit reflétée dans l'historique des transactions." +} diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index dfffa8a8b..6d1a5db0c 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -780,5 +780,6 @@ "you_pay": "Ka Bayar", "you_will_get": "Maida zuwa", "you_will_send": "Maida daga", - "yy": "YY" -} \ No newline at end of file + "yy": "YY", + "waitFewSecondForTxUpdate": "Da fatan za a jira ƴan daƙiƙa don ciniki don yin tunani a tarihin ma'amala" +} diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index e67b00726..eaeffab92 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -780,5 +780,6 @@ "you_pay": "आप भुगतान करते हैं", "you_will_get": "में बदलें", "you_will_send": "से रूपांतरित करें", - "yy": "वाईवाई" -} \ No newline at end of file + "yy": "वाईवाई", + "waitFewSecondForTxUpdate": "लेन-देन इतिहास में लेन-देन प्रतिबिंबित होने के लिए कृपया कुछ सेकंड प्रतीक्षा करें" +} diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index c2fee8420..a915030f4 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -778,5 +778,6 @@ "you_pay": "Vi plaćate", "you_will_get": "Razmijeni u", "you_will_send": "Razmijeni iz", - "yy": "GG" -} \ No newline at end of file + "yy": "GG", + "waitFewSecondForTxUpdate": "Pričekajte nekoliko sekundi da se transakcija prikaže u povijesti transakcija" +} diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index 28a7df3c9..ed53b7e62 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -781,5 +781,6 @@ "you_pay": "Anda Membayar", "you_will_get": "Konversi ke", "you_will_send": "Konversi dari", - "yy": "YY" -} \ No newline at end of file + "yy": "YY", + "waitFewSecondForTxUpdate": "Mohon tunggu beberapa detik hingga transaksi terlihat di riwayat transaksi" +} diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 42f0b8d86..d83619855 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -781,5 +781,6 @@ "you_pay": "Tu paghi", "you_will_get": "Converti a", "you_will_send": "Conveti da", - "yy": "YY" -} \ No newline at end of file + "yy": "YY", + "waitFewSecondForTxUpdate": "Attendi qualche secondo affinché la transazione venga riflessa nella cronologia delle transazioni" +} diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index f4b014909..e04d8c000 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -779,5 +779,6 @@ "you_pay": "あなたが支払う", "you_will_get": "に変換", "you_will_send": "から変換", - "yy": "YY" -} \ No newline at end of file + "yy": "YY", + "waitFewSecondForTxUpdate": "取引履歴に取引が反映されるまで数秒お待ちください。" +} diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index 7af7376ce..cfd3df6c9 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -780,5 +780,6 @@ "you_will_get": "로 변환하다", "you_will_send": "다음에서 변환", "YY": "YY", - "yy": "YY" -} \ No newline at end of file + "yy": "YY", + "waitFewSecondForTxUpdate": "거래 내역에 거래가 반영될 때까지 몇 초 정도 기다려 주세요." +} diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index 6cba70ab2..281bb6cea 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -778,5 +778,6 @@ "you_pay": "သင်ပေးချေပါ။", "you_will_get": "သို့ပြောင်းပါ။", "you_will_send": "မှပြောင်းပါ။", - "yy": "YY" -} \ No newline at end of file + "yy": "YY", + "waitFewSecondForTxUpdate": "ငွေပေးငွေယူ မှတ်တမ်းတွင် ရောင်ပြန်ဟပ်ရန် စက္ကန့်အနည်းငယ်စောင့်ပါ။" +} diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 19451da27..19573b116 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -779,5 +779,6 @@ "you_pay": "U betaalt", "you_will_get": "Converteren naar", "you_will_send": "Converteren van", - "yy": "JJ" -} \ No newline at end of file + "yy": "JJ", + "waitFewSecondForTxUpdate": "Wacht een paar seconden totdat de transactie wordt weergegeven in de transactiegeschiedenis" +} diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 74aafd014..33fd1408a 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -778,5 +778,6 @@ "you_pay": "Płacisz", "you_will_get": "Konwertuj na", "you_will_send": "Konwertuj z", - "yy": "RR" -} \ No newline at end of file + "yy": "RR", + "waitFewSecondForTxUpdate": "Poczekaj kilka sekund, aż transakcja zostanie odzwierciedlona w historii transakcji" +} diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 53d93fe75..649551d01 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -781,5 +781,6 @@ "you_pay": "Você paga", "you_will_get": "Converter para", "you_will_send": "Converter de", - "yy": "aa" -} \ No newline at end of file + "yy": "aa", + "waitFewSecondForTxUpdate": "Aguarde alguns segundos para que a transação seja refletida no histórico de transações" +} diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 89a25db06..16c294ef7 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -779,5 +779,6 @@ "you_pay": "Вы платите", "you_will_get": "Конвертировать в", "you_will_send": "Конвертировать из", - "yy": "ГГ" -} \ No newline at end of file + "yy": "ГГ", + "waitFewSecondForTxUpdate": "Пожалуйста, подождите несколько секунд, чтобы транзакция отразилась в истории транзакций." +} diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index ef8992329..dc72090d4 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -778,5 +778,6 @@ "you_pay": "คุณจ่าย", "you_will_get": "แปลงเป็น", "you_will_send": "แปลงจาก", - "yy": "ปี" -} \ No newline at end of file + "yy": "ปี", + "waitFewSecondForTxUpdate": "กรุณารอสักครู่เพื่อให้ธุรกรรมปรากฏในประวัติการทำธุรกรรม" +} diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index 55b6adb51..4090a4669 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -778,5 +778,6 @@ "you_pay": "Magbabayad ka", "you_will_get": "Mag -convert sa", "you_will_send": "I -convert mula sa", - "yy": "YY" -} \ No newline at end of file + "yy": "YY", + "waitFewSecondForTxUpdate": "Mangyaring maghintay ng ilang segundo para makita ang transaksyon sa history ng mga transaksyon" +} diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index e6cab5027..39eab9f86 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -778,5 +778,6 @@ "you_pay": "Şu kadar ödeyeceksin: ", "you_will_get": "Biçimine dönüştür:", "you_will_send": "Biçiminden dönüştür:", - "yy": "YY" -} \ No newline at end of file + "yy": "YY", + "waitFewSecondForTxUpdate": "İşlemin işlem geçmişine yansıması için lütfen birkaç saniye bekleyin" +} diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index e81d97021..b655a902d 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -779,5 +779,6 @@ "you_pay": "Ви платите", "you_will_get": "Конвертувати в", "you_will_send": "Конвертувати з", - "yy": "YY" -} \ No newline at end of file + "yy": "YY", + "waitFewSecondForTxUpdate": "Будь ласка, зачекайте кілька секунд, поки транзакція відобразиться в історії транзакцій" +} diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index 465fac003..0dcd31069 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -780,5 +780,6 @@ "you_pay": "تم ادا کرو", "you_will_get": "میں تبدیل کریں۔", "you_will_send": "سے تبدیل کریں۔", - "yy": "YY" -} \ No newline at end of file + "yy": "YY", + "waitFewSecondForTxUpdate": "۔ﮟﯾﺮﮐ ﺭﺎﻈﺘﻧﺍ ﺎﮐ ﮉﻨﮑﯿﺳ ﺪﻨﭼ ﻡﺮﮐ ﮦﺍﺮﺑ ﮯﯿﻟ ﮯﮐ ﮯﻧﺮﮐ ﯽﺳﺎﮑﻋ ﯽﮐ ﻦﯾﺩ ﻦﯿﻟ ﮟﯿﻣ ﺦﯾﺭﺎﺗ ﯽﮐ ﻦ" +} diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index c88f488cd..af21c001b 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -779,5 +779,6 @@ "you_pay": "Ẹ sàn", "you_will_get": "Ṣe pàṣípààrọ̀ sí", "you_will_send": "Ṣe pàṣípààrọ̀ láti", - "yy": "Ọd" -} \ No newline at end of file + "yy": "Ọd", + "waitFewSecondForTxUpdate": "Fi inurere duro fun awọn iṣeju diẹ fun idunadura lati ṣe afihan ninu itan-akọọlẹ iṣowo" +} diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 7e05d4471..6c245d30f 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -778,5 +778,6 @@ "you_pay": "你付钱", "you_will_get": "转换到", "you_will_send": "转换自", - "yy": "YY" -} \ No newline at end of file + "yy": "YY", + "waitFewSecondForTxUpdate": "请等待几秒钟,交易才会反映在交易历史记录中" +} diff --git a/scripts/android/pubspec_gen.sh b/scripts/android/pubspec_gen.sh index 4b89c4afa..d238052fe 100755 --- a/scripts/android/pubspec_gen.sh +++ b/scripts/android/pubspec_gen.sh @@ -10,7 +10,7 @@ case $APP_ANDROID_TYPE in CONFIG_ARGS="--monero" ;; $CAKEWALLET) - CONFIG_ARGS="--monero --bitcoin --haven --ethereum --polygon --nano --bitcoinCash" + CONFIG_ARGS="--monero --bitcoin --haven --ethereum --polygon --nano --bitcoinCash --solana" ;; $HAVEN) CONFIG_ARGS="--haven" diff --git a/scripts/ios/app_config.sh b/scripts/ios/app_config.sh index 81752a015..9f59d6632 100755 --- a/scripts/ios/app_config.sh +++ b/scripts/ios/app_config.sh @@ -28,7 +28,7 @@ case $APP_IOS_TYPE in CONFIG_ARGS="--monero" ;; $CAKEWALLET) - CONFIG_ARGS="--monero --bitcoin --haven --ethereum --polygon --nano --bitcoinCash" + CONFIG_ARGS="--monero --bitcoin --haven --ethereum --polygon --nano --bitcoinCash --solana" ;; $HAVEN) diff --git a/scripts/macos/app_config.sh b/scripts/macos/app_config.sh index cda367b9c..bd1417c4b 100755 --- a/scripts/macos/app_config.sh +++ b/scripts/macos/app_config.sh @@ -31,7 +31,7 @@ case $APP_MACOS_TYPE in $MONERO_COM) CONFIG_ARGS="--monero";; $CAKEWALLET) - CONFIG_ARGS="--monero --bitcoin --ethereum --polygon --nano --bitcoinCash";; #--haven + CONFIG_ARGS="--monero --bitcoin --ethereum --polygon --nano --bitcoinCash --solana";; #--haven esac cp -rf pubspec_description.yaml pubspec.yaml diff --git a/tool/configure.dart b/tool/configure.dart index 408a6f6b1..bd2e4227c 100644 --- a/tool/configure.dart +++ b/tool/configure.dart @@ -7,6 +7,7 @@ const ethereumOutputPath = 'lib/ethereum/ethereum.dart'; const bitcoinCashOutputPath = 'lib/bitcoin_cash/bitcoin_cash.dart'; const nanoOutputPath = 'lib/nano/nano.dart'; const polygonOutputPath = 'lib/polygon/polygon.dart'; +const solanaOutputPath = 'lib/solana/solana.dart'; const walletTypesPath = 'lib/wallet_types.g.dart'; const pubspecDefaultPath = 'pubspec_default.yaml'; const pubspecOutputPath = 'pubspec.yaml'; @@ -21,6 +22,7 @@ Future main(List args) async { final hasNano = args.contains('${prefix}nano'); final hasBanano = args.contains('${prefix}banano'); final hasPolygon = args.contains('${prefix}polygon'); + final hasSolana = args.contains('${prefix}solana'); await generateBitcoin(hasBitcoin); await generateMonero(hasMonero); @@ -29,6 +31,7 @@ Future main(List args) async { await generateBitcoinCash(hasBitcoinCash); await generateNano(hasNano); await generatePolygon(hasPolygon); + await generateSolana(hasSolana); // await generateBanano(hasEthereum); await generatePubspec( @@ -40,6 +43,7 @@ Future main(List args) async { hasBanano: hasBanano, hasBitcoinCash: hasBitcoinCash, hasPolygon: hasPolygon, + hasSolana: hasSolana, ); await generateWalletTypes( hasMonero: hasMonero, @@ -50,6 +54,7 @@ Future main(List args) async { hasBanano: hasBanano, hasBitcoinCash: hasBitcoinCash, hasPolygon: hasPolygon, + hasSolana: hasSolana, ); } @@ -577,13 +582,14 @@ abstract class Ethereum { int formatterEthereumParseAmount(String amount); double formatterEthereumAmountToDouble({TransactionInfo? transaction, BigInt? amount, int exponent = 18}); List getERC20Currencies(WalletBase wallet); - Future addErc20Token(WalletBase wallet, Erc20Token token); - Future deleteErc20Token(WalletBase wallet, Erc20Token token); + Future addErc20Token(WalletBase wallet, CryptoCurrency token); + Future deleteErc20Token(WalletBase wallet, CryptoCurrency token); Future getErc20Token(WalletBase wallet, String contractAddress); CryptoCurrency assetOfTransaction(WalletBase wallet, TransactionInfo transaction); void updateEtherscanUsageState(WalletBase wallet, bool isEnabled); Web3Client? getWeb3Client(WalletBase wallet); + String getTokenAddress(CryptoCurrency asset); } """; @@ -669,13 +675,14 @@ abstract class Polygon { int formatterPolygonParseAmount(String amount); double formatterPolygonAmountToDouble({TransactionInfo? transaction, BigInt? amount, int exponent = 18}); List getERC20Currencies(WalletBase wallet); - Future addErc20Token(WalletBase wallet, Erc20Token token); - Future deleteErc20Token(WalletBase wallet, Erc20Token token); + Future addErc20Token(WalletBase wallet, CryptoCurrency token); + Future deleteErc20Token(WalletBase wallet, CryptoCurrency token); Future getErc20Token(WalletBase wallet, String contractAddress); CryptoCurrency assetOfTransaction(WalletBase wallet, TransactionInfo transaction); void updatePolygonScanUsageState(WalletBase wallet, bool isEnabled); Web3Client? getWeb3Client(WalletBase wallet); + String getTokenAddress(CryptoCurrency asset); } """; @@ -885,6 +892,86 @@ abstract class NanoUtil { await outputFile.writeAsString(output); } +Future generateSolana(bool hasImplementation) async { + final outputFile = File(solanaOutputPath); + const solanaCommonHeaders = """ +import 'package:cake_wallet/view_model/send/output.dart'; +import 'package:cw_core/crypto_currency.dart'; +import 'package:cw_core/output_info.dart'; +import 'package:cw_core/transaction_info.dart'; +import 'package:cw_core/wallet_base.dart'; +import 'package:cw_core/wallet_credentials.dart'; +import 'package:cw_core/wallet_info.dart'; +import 'package:cw_core/wallet_service.dart'; +import 'package:hive/hive.dart'; + +"""; + const solanaCWHeaders = """ +import 'package:cw_solana/spl_token.dart'; +import 'package:cw_solana/solana_wallet.dart'; +import 'package:cw_solana/solana_mnemonics.dart'; +import 'package:cw_solana/solana_wallet_service.dart'; +import 'package:cw_solana/solana_transaction_info.dart'; +import 'package:cw_solana/solana_transaction_credentials.dart'; +import 'package:cw_solana/solana_wallet_creation_credentials.dart'; +import 'package:solana/solana.dart'; +"""; + const solanaCwPart = "part 'cw_solana.dart';"; + const solanaContent = """ +abstract class Solana { + List getSolanaWordList(String language); + WalletService createSolanaWalletService(Box walletInfoSource); + WalletCredentials createSolanaNewWalletCredentials( + {required String name, WalletInfo? walletInfo}); + WalletCredentials createSolanaRestoreWalletFromSeedCredentials( + {required String name, required String mnemonic, required String password}); + WalletCredentials createSolanaRestoreWalletFromPrivateKey( + {required String name, required String privateKey, required String password}); + + String getAddress(WalletBase wallet); + String getPrivateKey(WalletBase wallet); + String getPublicKey(WalletBase wallet); + Ed25519HDKeyPair? getWalletKeyPair(WalletBase wallet); + + Object createSolanaTransactionCredentials( + List outputs, { + required CryptoCurrency currency, + }); + + Object createSolanaTransactionCredentialsRaw( + List outputs, { + required CryptoCurrency currency, + }); + List getSPLTokenCurrencies(WalletBase wallet); + Future addSPLToken(WalletBase wallet, CryptoCurrency token); + Future deleteSPLToken(WalletBase wallet, CryptoCurrency token); + Future getSPLToken(WalletBase wallet, String contractAddress); + + CryptoCurrency assetOfTransaction(WalletBase wallet, TransactionInfo transaction); + double getTransactionAmountRaw(TransactionInfo transactionInfo); + String getTokenAddress(CryptoCurrency asset); + List? getValidationLength(CryptoCurrency type); +} + + """; + + const solanaEmptyDefinition = 'Solana? solana;\n'; + const solanaCWDefinition = 'Solana? solana = CWSolana();\n'; + + final output = '$solanaCommonHeaders\n' + + (hasImplementation ? '$solanaCWHeaders\n' : '\n') + + (hasImplementation ? '$solanaCwPart\n\n' : '\n') + + (hasImplementation ? solanaCWDefinition : solanaEmptyDefinition) + + '\n' + + solanaContent; + + if (outputFile.existsSync()) { + await outputFile.delete(); + } + + await outputFile.writeAsString(output); +} + Future generatePubspec( {required bool hasMonero, required bool hasBitcoin, @@ -893,7 +980,8 @@ Future generatePubspec( required bool hasNano, required bool hasBanano, required bool hasBitcoinCash, - required bool hasPolygon}) async { + required bool hasPolygon, + required bool hasSolana}) async { const cwCore = """ cw_core: path: ./cw_core @@ -934,6 +1022,10 @@ Future generatePubspec( cw_polygon: path: ./cw_polygon """; + const cwSolana = """ + cw_solana: + path: ./cw_solana + """; const cwEVM = """ cw_evm: path: ./cw_evm @@ -972,6 +1064,10 @@ Future generatePubspec( output += '\n$cwPolygon'; } + if (hasSolana) { + output += '\n$cwSolana'; + } + if (hasHaven && !hasMonero) { output += '\n$cwSharedExternal\n$cwHaven'; } else if (hasHaven) { @@ -1002,7 +1098,8 @@ Future generateWalletTypes( required bool hasNano, required bool hasBanano, required bool hasBitcoinCash, - required bool hasPolygon}) async { + required bool hasPolygon, + required bool hasSolana}) async { final walletTypesFile = File(walletTypesPath); if (walletTypesFile.existsSync()) { @@ -1037,6 +1134,10 @@ Future generateWalletTypes( outputContent += '\tWalletType.polygon,\n'; } + if (hasSolana) { + outputContent += '\tWalletType.solana,\n'; + } + if (hasNano) { outputContent += '\tWalletType.nano,\n'; } diff --git a/tool/generate_secrets_config.dart b/tool/generate_secrets_config.dart index 58e7b8839..8745c2933 100644 --- a/tool/generate_secrets_config.dart +++ b/tool/generate_secrets_config.dart @@ -5,6 +5,7 @@ import 'utils/utils.dart'; const configPath = 'tool/.secrets-config.json'; const evmChainsConfigPath = 'tool/.evm-secrets-config.json'; +const solanaConfigPath = 'tool/.solana-secrets-config.json'; Future main(List args) async => generateSecretsConfig(args); @@ -18,8 +19,10 @@ Future generateSecretsConfig(List args) async { final configFile = File(configPath); final evmChainsConfigFile = File(evmChainsConfigPath); - final secrets = {}; + final solanaConfigFile = File(solanaConfigPath); + final secrets = {}; + secrets.addAll(extraInfo); secrets.removeWhere((key, dynamic value) { if (key.contains('--')) { @@ -49,6 +52,7 @@ Future generateSecretsConfig(List args) async { await configFile.writeAsString(secretsJson); secrets.clear(); + SecretKey.evmChainsSecrets.forEach((sec) { if (secrets[sec.name] != null) { return; @@ -60,4 +64,18 @@ Future generateSecretsConfig(List args) async { secretsJson = JsonEncoder.withIndent(' ').convert(secrets); await evmChainsConfigFile.writeAsString(secretsJson); + + secrets.clear(); + + SecretKey.solanaSecrets.forEach((sec) { + if (secrets[sec.name] != null) { + return; + } + + secrets[sec.name] = sec.generate(); + }); + + secretsJson = JsonEncoder.withIndent(' ').convert(secrets); + + await solanaConfigFile.writeAsString(secretsJson); } diff --git a/tool/import_secrets_config.dart b/tool/import_secrets_config.dart index 83e345f78..02061669b 100644 --- a/tool/import_secrets_config.dart +++ b/tool/import_secrets_config.dart @@ -8,6 +8,8 @@ const outputPath = 'lib/.secrets.g.dart'; const evmChainsConfigPath = 'tool/.evm-secrets-config.json'; const evmChainsOutputPath = 'cw_evm/lib/.secrets.g.dart'; +const solanaConfigPath = 'tool/.solana-secrets-config.json'; +const solanaOutputPath = 'cw_solana/lib/.secrets.g.dart'; Future main(List args) async => importSecretsConfig(); Future importSecretsConfig() async { @@ -21,6 +23,12 @@ Future importSecretsConfig() async { final evmChainsOutput = evmChainsInput.keys .fold('', (String acc, String val) => acc + generateConst(val, evmChainsInput)); + final solanaOutputFile = File(solanaOutputPath); + final solanaInput = + json.decode(File(solanaConfigPath).readAsStringSync()) as Map; + final solanaOutput = + solanaInput.keys.fold('', (String acc, String val) => acc + generateConst(val, solanaInput)); + if (outputFile.existsSync()) { await outputFile.delete(); } @@ -32,4 +40,10 @@ Future importSecretsConfig() async { } await evmChainsOutputFile.writeAsString(evmChainsOutput); + + if (solanaOutputFile.existsSync()) { + await solanaOutputFile.delete(); + } + + await solanaOutputFile.writeAsString(solanaOutput); } diff --git a/tool/utils/secret_key.dart b/tool/utils/secret_key.dart index f991c43cf..38b5129af 100644 --- a/tool/utils/secret_key.dart +++ b/tool/utils/secret_key.dart @@ -44,6 +44,10 @@ class SecretKey { SecretKey('polygonScanApiKey', () => ''), ]; + static final solanaSecrets = [ + SecretKey('ankrApiKey', () => ''), + ]; + final String name; final String Function() generate; } From a3a35f05e1d7347b1937caa08895833430c57fa5 Mon Sep 17 00:00:00 2001 From: Rafael <76502841+rafael-xmr@users.noreply.github.com> Date: Fri, 23 Feb 2024 13:13:30 -0300 Subject: [PATCH 11/30] Btc address types (#1263) * inital migration changes * feat: rest of changes * minor fix [skip ci] * fix: P2wshAddress & wallet address index * fix: address review comments * fix: address type restore * feat: add testnet * Fix review comments Remove bitcoin_base from cw_core * Fix address not matching selected type on start * remove un-necessary parameter [skip ci] * Remove bitcoin specific code from main lib Fix possible runtime exception from list wrong access * Minor fix * fix: fixes for Testnet * fix: bitcoin receive option dependency breaks monerocom * Fix issues when building Monero.com * feat: Transaction Builder changes * fix: discover addresses, testnet restoring, duplicate unspent coins, and taproot address vs schnorr sig tweak * fix: remove print * feat: improve error when failed broadcast response * feat: create fish shell env script * fix: unmodifiable maps * fix: build * fix: build * fix: computed observable side effect bug * feat: add nix script for android build_all * fix: wrong keypairs used for signing * fix: wrong addresses when using fromScriptPubKey scripts * fix(actual commit): testnet tx expanded + wrong addresses when using fromScriptPubKey scripts (update bitcoin_base deps) * fix: self-send [skip ci] * fix: p2wsh * fix: testnet fees * New versions * Update macos build number Minor UI fix * fix: use new bitcoin_base ref, fix tx list wrong hex value & refactor hidden vs hd use - if always use sideHd for isHidden, it is easier to simplify the functions instead of passing both which can be error prone - (ps: now this could probably be changed, for example from isHidden to isChange since with address list we now see "hidden" addresses) * Fix if condition to handle litecoin case * fix: self-send, change address was always making direction incoming * refactor: improve estimation function, add more inputs if balance missing * fix: new bitcoin_base update, fixes script issues * Update evm chain wallet service arguments * Fix translation [skip ci] * Fix translation [skip ci] * Update strings_fr.arb [skip ci] * fix: async isChange function not being awaited, refactor to reduce looping into a single place * fix: _address vs address, missing p2sh * fix: minor mistake in storing p2sh page type [skip ci] * refactor: use already matched addresses property * feat: improved perfomance for fetching transaction histories * feat: continue perfomance change, improve address discovery only to last address by type with history * fix: make sure transaction list is sorted by date * refactor: isTestnet only for bitcoin * fix: walletInfo type null case * fix: deprecated p2pk * refactor: make condition more readable * refactor: remove unnecessary Str variant * refactor: make condition more readable * fix: infinite loop possible * Revert removing isTestnet from other wallets [skip ci] * refactor: rename addresses when matched by receive type * Make the beta build [skip ci] Remove app_env.fish --------- Co-authored-by: OmarHatem --- assets/text/Release_Notes.txt | 8 +- cw_bitcoin/lib/address_from_output.dart | 36 +- cw_bitcoin/lib/address_to_output_script.dart | 24 +- cw_bitcoin/lib/bitcoin_address_record.dart | 56 +- .../lib/bitcoin_receive_page_option.dart | 42 ++ cw_bitcoin/lib/bitcoin_unspent.dart | 7 +- cw_bitcoin/lib/bitcoin_wallet.dart | 103 +-- cw_bitcoin/lib/bitcoin_wallet_addresses.dart | 48 +- cw_bitcoin/lib/bitcoin_wallet_service.dart | 35 +- cw_bitcoin/lib/electrum.dart | 133 ++-- cw_bitcoin/lib/electrum_transaction_info.dart | 83 ++- cw_bitcoin/lib/electrum_wallet.dart | 661 +++++++++++------- cw_bitcoin/lib/electrum_wallet_addresses.dart | 299 ++++---- cw_bitcoin/lib/electrum_wallet_snapshot.dart | 49 +- cw_bitcoin/lib/litecoin_wallet.dart | 106 +-- cw_bitcoin/lib/litecoin_wallet_addresses.dart | 43 +- cw_bitcoin/lib/litecoin_wallet_service.dart | 6 +- .../lib/pending_bitcoin_transaction.dart | 21 +- cw_bitcoin/lib/script_hash.dart | 7 +- cw_bitcoin/lib/utils.dart | 64 +- cw_bitcoin/pubspec.lock | 183 ++--- cw_bitcoin/pubspec.yaml | 5 + .../lib/src/bitcoin_cash_wallet.dart | 108 +-- .../src/bitcoin_cash_wallet_addresses.dart | 34 +- .../lib/src/bitcoin_cash_wallet_service.dart | 50 +- cw_bitcoin_cash/pubspec.yaml | 5 +- cw_core/lib/enumerate.dart | 13 + cw_core/lib/receive_page_option.dart | 21 + cw_core/lib/wallet_base.dart | 2 + cw_core/lib/wallet_info.dart | 6 + cw_core/lib/wallet_service.dart | 6 +- cw_core/pubspec.lock | 186 ++--- cw_ethereum/lib/ethereum_wallet_service.dart | 10 +- cw_evm/lib/evm_chain_wallet_service.dart | 6 +- cw_haven/lib/haven_wallet_service.dart | 6 +- cw_monero/lib/monero_wallet_service.dart | 8 +- cw_nano/lib/nano_wallet_service.dart | 6 +- cw_polygon/lib/polygon_wallet_service.dart | 12 +- lib/bitcoin/cw_bitcoin.dart | 352 +++++----- lib/core/address_validator.dart | 23 +- lib/core/wallet_creation_service.dart | 13 +- lib/di.dart | 2 +- lib/entities/default_settings_migration.dart | 21 +- lib/entities/receive_page_option.dart | 23 - lib/router.dart | 14 +- .../screens/dashboard/pages/address_page.dart | 28 +- .../advanced_privacy_settings_page.dart | 39 +- .../screens/new_wallet/new_wallet_page.dart | 14 +- .../screens/receive/anonpay_invoice_page.dart | 2 +- .../screens/receive/anonpay_receive_page.dart | 2 +- .../screens/restore/wallet_restore_page.dart | 8 +- .../anon_invoice_page_view_model.dart | 2 +- .../dashboard/dashboard_view_model.dart | 24 +- .../dashboard/receive_option_view_model.dart | 18 +- .../node_create_or_edit_view_model.dart | 2 + .../node_list/node_list_view_model.dart | 6 +- .../transaction_details_view_model.dart | 2 +- .../wallet_address_list_view_model.dart | 18 +- lib/view_model/wallet_creation_vm.dart | 11 + lib/view_model/wallet_new_vm.dart | 2 +- lib/view_model/wallet_restore_view_model.dart | 4 +- res/values/strings_ar.arb | 1 + res/values/strings_bg.arb | 1 + res/values/strings_cs.arb | 1 + res/values/strings_de.arb | 1 + res/values/strings_en.arb | 1 + res/values/strings_es.arb | 1 + res/values/strings_fr.arb | 1 + res/values/strings_ha.arb | 1 + res/values/strings_hi.arb | 1 + res/values/strings_hr.arb | 1 + res/values/strings_id.arb | 1 + res/values/strings_it.arb | 1 + res/values/strings_ja.arb | 1 + res/values/strings_ko.arb | 1 + res/values/strings_my.arb | 1 + res/values/strings_nl.arb | 1 + res/values/strings_pl.arb | 1 + res/values/strings_pt.arb | 1 + res/values/strings_ru.arb | 1 + res/values/strings_th.arb | 1 + res/values/strings_tl.arb | 1 + res/values/strings_tr.arb | 1 + res/values/strings_uk.arb | 1 + res/values/strings_ur.arb | 1 + res/values/strings_yo.arb | 1 + res/values/strings_zh.arb | 1 + scripts/android/app_env.sh | 4 +- scripts/android/shell.nix | 16 + scripts/ios/app_env.sh | 4 +- tool/configure.dart | 6 + 91 files changed, 1851 insertions(+), 1333 deletions(-) create mode 100644 cw_bitcoin/lib/bitcoin_receive_page_option.dart create mode 100644 cw_core/lib/enumerate.dart create mode 100644 cw_core/lib/receive_page_option.dart delete mode 100644 lib/entities/receive_page_option.dart create mode 100644 scripts/android/shell.nix diff --git a/assets/text/Release_Notes.txt b/assets/text/Release_Notes.txt index 2f5130bea..ac032e354 100644 --- a/assets/text/Release_Notes.txt +++ b/assets/text/Release_Notes.txt @@ -1,5 +1,3 @@ -Bitcoin transactions fixes and enhancements -EVM wallets enhancements (Ethereum and Polygon) -Improve wallet recovery and error tolerance -Enhance Background sync for Monero wallets -Bug fixes \ No newline at end of file +Support ALL Bitcoin address types (Legacy, Segwit (both variants), Taproot) +Enhance Sending/Receiving flow for Bitcoin +Improve fee calculations in Bitcoin \ No newline at end of file diff --git a/cw_bitcoin/lib/address_from_output.dart b/cw_bitcoin/lib/address_from_output.dart index d06ffe402..73bc101c4 100644 --- a/cw_bitcoin/lib/address_from_output.dart +++ b/cw_bitcoin/lib/address_from_output.dart @@ -1,23 +1,23 @@ -import 'dart:typed_data'; -import 'package:bitcoin_flutter/bitcoin_flutter.dart' as bitcoin; -import 'package:bitcoin_flutter/src/payments/index.dart' show PaymentData; +import 'package:bitcoin_base/bitcoin_base.dart'; -String addressFromOutput(Uint8List script, bitcoin.NetworkType networkType) { +String addressFromOutputScript(Script script, BasedUtxoNetwork network) { try { - return bitcoin.P2PKH( - data: PaymentData(output: script), - network: networkType) - .data - .address!; + switch (script.getAddressType()) { + case P2pkhAddressType.p2pkh: + return P2pkhAddress.fromScriptPubkey(script: script).toAddress(network); + case P2shAddressType.p2pkInP2sh: + return P2shAddress.fromScriptPubkey(script: script).toAddress(network); + case SegwitAddresType.p2wpkh: + return P2wpkhAddress.fromScriptPubkey(script: script).toAddress(network); + case P2shAddressType.p2pkhInP2sh: + return P2shAddress.fromScriptPubkey(script: script).toAddress(network); + case SegwitAddresType.p2wsh: + return P2wshAddress.fromScriptPubkey(script: script).toAddress(network); + case SegwitAddresType.p2tr: + return P2trAddress.fromScriptPubkey(script: script).toAddress(network); + default: + } } catch (_) {} - try { - return bitcoin.P2WPKH( - data: PaymentData(output: script), - network: networkType) - .data - .address!; - } catch(_) {} - return ''; -} \ No newline at end of file +} diff --git a/cw_bitcoin/lib/address_to_output_script.dart b/cw_bitcoin/lib/address_to_output_script.dart index 01c7b67a5..6ae50132b 100644 --- a/cw_bitcoin/lib/address_to_output_script.dart +++ b/cw_bitcoin/lib/address_to_output_script.dart @@ -1,27 +1,9 @@ import 'dart:typed_data'; -import 'package:bitcoin_flutter/bitcoin_flutter.dart' as bitcoin; -import 'package:bs58check/bs58check.dart' as bs58check; -import 'package:bitcoin_flutter/src/utils/constants/op.dart'; -import 'package:bitcoin_flutter/src/utils/script.dart' as bscript; -import 'package:bitcoin_flutter/src/address.dart'; +import 'package:bitcoin_base/bitcoin_base.dart' as bitcoin; -Uint8List p2shAddressToOutputScript(String address) { - final decodeBase58 = bs58check.decode(address); - final hash = decodeBase58.sublist(1); - return bscript.compile([OPS['OP_HASH160'], hash, OPS['OP_EQUAL']]); -} - -Uint8List addressToOutputScript( - String address, bitcoin.NetworkType networkType) { +List addressToOutputScript(String address, bitcoin.BasedUtxoNetwork network) { try { - // FIXME: improve validation for p2sh addresses - // 3 for bitcoin - // m for litecoin - if (address.startsWith('3') || address.toLowerCase().startsWith('m')) { - return p2shAddressToOutputScript(address); - } - - return Address.addressToOutputScript(address, networkType); + return bitcoin.addressToOutputScript(address: address, network: network); } catch (err) { print(err); return Uint8List(0); diff --git a/cw_bitcoin/lib/bitcoin_address_record.dart b/cw_bitcoin/lib/bitcoin_address_record.dart index 676edb4a5..d8d908230 100644 --- a/cw_bitcoin/lib/bitcoin_address_record.dart +++ b/cw_bitcoin/lib/bitcoin_address_record.dart @@ -1,6 +1,9 @@ import 'dart:convert'; import 'package:bitbox/bitbox.dart' as bitbox; +import 'package:bitcoin_base/bitcoin_base.dart'; +import 'package:cw_bitcoin/script_hash.dart' as sh; + class BitcoinAddressRecord { BitcoinAddressRecord( this.address, { @@ -10,23 +13,41 @@ class BitcoinAddressRecord { int balance = 0, String name = '', bool isUsed = false, + required this.type, + String? scriptHash, + required this.network, }) : _txCount = txCount, _balance = balance, _name = name, - _isUsed = isUsed; + _isUsed = isUsed, + scriptHash = + scriptHash ?? (network != null ? sh.scriptHash(address, network: network) : null); - factory BitcoinAddressRecord.fromJSON(String jsonSource) { + factory BitcoinAddressRecord.fromJSON(String jsonSource, BasedUtxoNetwork? network) { final decoded = json.decode(jsonSource) as Map; - return BitcoinAddressRecord(decoded['address'] as String, - index: decoded['index'] as int, - isHidden: decoded['isHidden'] as bool? ?? false, - isUsed: decoded['isUsed'] as bool? ?? false, - txCount: decoded['txCount'] as int? ?? 0, - name: decoded['name'] as String? ?? '', - balance: decoded['balance'] as int? ?? 0); + return BitcoinAddressRecord( + decoded['address'] as String, + index: decoded['index'] as int, + isHidden: decoded['isHidden'] as bool? ?? false, + isUsed: decoded['isUsed'] as bool? ?? false, + txCount: decoded['txCount'] as int? ?? 0, + name: decoded['name'] as String? ?? '', + balance: decoded['balance'] as int? ?? 0, + type: decoded['type'] != null && decoded['type'] != '' + ? BitcoinAddressType.values + .firstWhere((type) => type.toString() == decoded['type'] as String) + : SegwitAddresType.p2wpkh, + scriptHash: decoded['scriptHash'] as String?, + network: (decoded['network'] as String?) == null + ? network + : BasedUtxoNetwork.fromName(decoded['network'] as String), + ); } + @override + bool operator ==(Object o) => o is BitcoinAddressRecord && address == o.address; + final String address; bool isHidden; final int index; @@ -34,6 +55,8 @@ class BitcoinAddressRecord { int _balance; String _name; bool _isUsed; + String? scriptHash; + BasedUtxoNetwork? network; int get txCount => _txCount; @@ -50,21 +73,28 @@ class BitcoinAddressRecord { void setAsUsed() => _isUsed = true; void setNewName(String label) => _name = label; - @override - bool operator ==(Object o) => o is BitcoinAddressRecord && address == o.address; - @override int get hashCode => address.hashCode; String get cashAddr => bitbox.Address.toCashAddress(address); + BitcoinAddressType type; + + String updateScriptHash(BasedUtxoNetwork network) { + scriptHash = sh.scriptHash(address, network: network); + return scriptHash!; + } + String toJSON() => json.encode({ 'address': address, 'index': index, 'isHidden': isHidden, + 'isUsed': isUsed, 'txCount': txCount, 'name': name, - 'isUsed': isUsed, 'balance': balance, + 'type': type.toString(), + 'scriptHash': scriptHash, + 'network': network?.value, }); } diff --git a/cw_bitcoin/lib/bitcoin_receive_page_option.dart b/cw_bitcoin/lib/bitcoin_receive_page_option.dart new file mode 100644 index 000000000..2e246f532 --- /dev/null +++ b/cw_bitcoin/lib/bitcoin_receive_page_option.dart @@ -0,0 +1,42 @@ +import 'package:bitcoin_base/bitcoin_base.dart'; +import 'package:cw_core/receive_page_option.dart'; + +class BitcoinReceivePageOption implements ReceivePageOption { + static const p2wpkh = BitcoinReceivePageOption._('Segwit (P2WPKH)'); + static const p2sh = BitcoinReceivePageOption._('Segwit-Compatible (P2SH)'); + static const p2tr = BitcoinReceivePageOption._('Taproot (P2TR)'); + static const p2wsh = BitcoinReceivePageOption._('Segwit (P2WSH)'); + static const p2pkh = BitcoinReceivePageOption._('Legacy (P2PKH)'); + + const BitcoinReceivePageOption._(this.value); + + final String value; + + String toString() { + return value; + } + + static const all = [ + BitcoinReceivePageOption.p2wpkh, + BitcoinReceivePageOption.p2sh, + BitcoinReceivePageOption.p2tr, + BitcoinReceivePageOption.p2wsh, + BitcoinReceivePageOption.p2pkh + ]; + + factory BitcoinReceivePageOption.fromType(BitcoinAddressType type) { + switch (type) { + case SegwitAddresType.p2tr: + return BitcoinReceivePageOption.p2tr; + case SegwitAddresType.p2wsh: + return BitcoinReceivePageOption.p2wsh; + case P2pkhAddressType.p2pkh: + return BitcoinReceivePageOption.p2pkh; + case P2shAddressType.p2wpkhInP2sh: + return BitcoinReceivePageOption.p2sh; + case SegwitAddresType.p2wpkh: + default: + return BitcoinReceivePageOption.p2wpkh; + } + } +} diff --git a/cw_bitcoin/lib/bitcoin_unspent.dart b/cw_bitcoin/lib/bitcoin_unspent.dart index 9c198c27c..52edea091 100644 --- a/cw_bitcoin/lib/bitcoin_unspent.dart +++ b/cw_bitcoin/lib/bitcoin_unspent.dart @@ -6,10 +6,9 @@ class BitcoinUnspent extends Unspent { : bitcoinAddressRecord = addressRecord, super(addressRecord.address, hash, value, vout, null); - factory BitcoinUnspent.fromJSON( - BitcoinAddressRecord address, Map json) => - BitcoinUnspent(address, json['tx_hash'] as String, json['value'] as int, - json['tx_pos'] as int); + factory BitcoinUnspent.fromJSON(BitcoinAddressRecord address, Map json) => + BitcoinUnspent( + address, json['tx_hash'] as String, json['value'] as int, json['tx_pos'] as int); final BitcoinAddressRecord bitcoinAddressRecord; } diff --git a/cw_bitcoin/lib/bitcoin_wallet.dart b/cw_bitcoin/lib/bitcoin_wallet.dart index 9cdb78f2d..3b3e9c636 100644 --- a/cw_bitcoin/lib/bitcoin_wallet.dart +++ b/cw_bitcoin/lib/bitcoin_wallet.dart @@ -1,3 +1,4 @@ +import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:cw_bitcoin/bitcoin_mnemonic.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/unspent_coins_info.dart'; @@ -17,36 +18,42 @@ part 'bitcoin_wallet.g.dart'; class BitcoinWallet = BitcoinWalletBase with _$BitcoinWallet; abstract class BitcoinWalletBase extends ElectrumWallet with Store { - BitcoinWalletBase( - {required String mnemonic, - required String password, - required WalletInfo walletInfo, - required Box unspentCoinsInfo, - required Uint8List seedBytes, - List? initialAddresses, - ElectrumBalance? initialBalance, - int initialRegularAddressIndex = 0, - int initialChangeAddressIndex = 0}) - : super( + BitcoinWalletBase({ + required String mnemonic, + required String password, + required WalletInfo walletInfo, + required Box unspentCoinsInfo, + required Uint8List seedBytes, + String? addressPageType, + BasedUtxoNetwork? networkParam, + List? initialAddresses, + ElectrumBalance? initialBalance, + Map? initialRegularAddressIndex, + Map? initialChangeAddressIndex, + }) : super( mnemonic: mnemonic, password: password, walletInfo: walletInfo, unspentCoinsInfo: unspentCoinsInfo, - networkType: bitcoin.bitcoin, + networkType: networkParam == null + ? bitcoin.bitcoin + : networkParam == BitcoinNetwork.mainnet + ? bitcoin.bitcoin + : bitcoin.testnet, initialAddresses: initialAddresses, initialBalance: initialBalance, seedBytes: seedBytes, currency: CryptoCurrency.btc) { walletAddresses = BitcoinWalletAddresses( - walletInfo, - electrumClient: electrumClient, - initialAddresses: initialAddresses, - initialRegularAddressIndex: initialRegularAddressIndex, - initialChangeAddressIndex: initialChangeAddressIndex, - mainHd: hd, - sideHd: bitcoin.HDWallet.fromSeed(seedBytes, network: networkType) - .derivePath("m/0'/1"), - networkType: networkType); + walletInfo, + electrumClient: electrumClient, + initialAddresses: initialAddresses, + initialRegularAddressIndex: initialRegularAddressIndex, + initialChangeAddressIndex: initialChangeAddressIndex, + mainHd: hd, + sideHd: bitcoin.HDWallet.fromSeed(seedBytes, network: networkType).derivePath("m/0'/1"), + network: networkParam ?? network, + ); autorun((_) { this.walletAddresses.isEnabledAutoGenerateSubaddress = this.isEnabledAutoGenerateSubaddress; }); @@ -57,21 +64,26 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store { required String password, required WalletInfo walletInfo, required Box unspentCoinsInfo, + String? addressPageType, + BasedUtxoNetwork? network, List? initialAddresses, ElectrumBalance? initialBalance, - int initialRegularAddressIndex = 0, - int initialChangeAddressIndex = 0 + Map? initialRegularAddressIndex, + Map? initialChangeAddressIndex, }) async { return BitcoinWallet( - mnemonic: mnemonic, - password: password, - walletInfo: walletInfo, - unspentCoinsInfo: unspentCoinsInfo, - initialAddresses: initialAddresses, - initialBalance: initialBalance, - seedBytes: await mnemonicToSeedBytes(mnemonic), - initialRegularAddressIndex: initialRegularAddressIndex, - initialChangeAddressIndex: initialChangeAddressIndex); + mnemonic: mnemonic, + password: password, + walletInfo: walletInfo, + unspentCoinsInfo: unspentCoinsInfo, + initialAddresses: initialAddresses, + initialBalance: initialBalance, + seedBytes: await mnemonicToSeedBytes(mnemonic), + initialRegularAddressIndex: initialRegularAddressIndex, + initialChangeAddressIndex: initialChangeAddressIndex, + addressPageType: addressPageType, + networkParam: network, + ); } static Future open({ @@ -80,16 +92,21 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store { required Box unspentCoinsInfo, required String password, }) async { - final snp = await ElectrumWallletSnapshot.load(name, walletInfo.type, password); + final snp = await ElectrumWalletSnapshot.load(name, walletInfo.type, password, + walletInfo.network != null ? BasedUtxoNetwork.fromName(walletInfo.network!) : null); + return BitcoinWallet( - mnemonic: snp.mnemonic, - password: password, - walletInfo: walletInfo, - unspentCoinsInfo: unspentCoinsInfo, - initialAddresses: snp.addresses, - initialBalance: snp.balance, - seedBytes: await mnemonicToSeedBytes(snp.mnemonic), - initialRegularAddressIndex: snp.regularAddressIndex, - initialChangeAddressIndex: snp.changeAddressIndex); + mnemonic: snp.mnemonic, + password: password, + walletInfo: walletInfo, + unspentCoinsInfo: unspentCoinsInfo, + initialAddresses: snp.addresses, + initialBalance: snp.balance, + seedBytes: await mnemonicToSeedBytes(snp.mnemonic), + initialRegularAddressIndex: snp.regularAddressIndex, + initialChangeAddressIndex: snp.changeAddressIndex, + addressPageType: snp.addressPageType, + networkParam: snp.network, + ); } -} \ No newline at end of file +} diff --git a/cw_bitcoin/lib/bitcoin_wallet_addresses.dart b/cw_bitcoin/lib/bitcoin_wallet_addresses.dart index 36d37127d..f12577492 100644 --- a/cw_bitcoin/lib/bitcoin_wallet_addresses.dart +++ b/cw_bitcoin/lib/bitcoin_wallet_addresses.dart @@ -1,6 +1,5 @@ -import 'package:bitcoin_flutter/bitcoin_flutter.dart' as bitcoin; -import 'package:cw_bitcoin/bitcoin_address_record.dart'; -import 'package:cw_bitcoin/electrum.dart'; +import 'package:bitcoin_base/bitcoin_base.dart'; +import 'package:bitcoin_flutter/bitcoin_flutter.dart'; import 'package:cw_bitcoin/electrum_wallet_addresses.dart'; import 'package:cw_bitcoin/utils.dart'; import 'package:cw_core/wallet_info.dart'; @@ -11,24 +10,31 @@ part 'bitcoin_wallet_addresses.g.dart'; class BitcoinWalletAddresses = BitcoinWalletAddressesBase with _$BitcoinWalletAddresses; abstract class BitcoinWalletAddressesBase extends ElectrumWalletAddresses with Store { - BitcoinWalletAddressesBase(WalletInfo walletInfo, - {required bitcoin.HDWallet mainHd, - required bitcoin.HDWallet sideHd, - required bitcoin.NetworkType networkType, - required ElectrumClient electrumClient, - List? initialAddresses, - int initialRegularAddressIndex = 0, - int initialChangeAddressIndex = 0}) - : super(walletInfo, - initialAddresses: initialAddresses, - initialRegularAddressIndex: initialRegularAddressIndex, - initialChangeAddressIndex: initialChangeAddressIndex, - mainHd: mainHd, - sideHd: sideHd, - electrumClient: electrumClient, - networkType: networkType); + BitcoinWalletAddressesBase( + WalletInfo walletInfo, { + required super.mainHd, + required super.sideHd, + required super.network, + required super.electrumClient, + super.initialAddresses, + super.initialRegularAddressIndex, + super.initialChangeAddressIndex, + }) : super(walletInfo); @override - String getAddress({required int index, required bitcoin.HDWallet hd}) => - generateP2WPKHAddress(hd: hd, index: index, networkType: networkType); + String getAddress({required int index, required HDWallet hd, BitcoinAddressType? addressType}) { + if (addressType == P2pkhAddressType.p2pkh) + return generateP2PKHAddress(hd: hd, index: index, network: network); + + if (addressType == SegwitAddresType.p2tr) + return generateP2TRAddress(hd: hd, index: index, network: network); + + if (addressType == SegwitAddresType.p2wsh) + return generateP2WSHAddress(hd: hd, index: index, network: network); + + if (addressType == P2shAddressType.p2wpkhInP2sh) + return generateP2SHAddress(hd: hd, index: index, network: network); + + return generateP2WPKHAddress(hd: hd, index: index, network: network); + } } diff --git a/cw_bitcoin/lib/bitcoin_wallet_service.dart b/cw_bitcoin/lib/bitcoin_wallet_service.dart index 736ec1044..2b8c489d2 100644 --- a/cw_bitcoin/lib/bitcoin_wallet_service.dart +++ b/cw_bitcoin/lib/bitcoin_wallet_service.dart @@ -1,4 +1,5 @@ import 'dart:io'; +import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:cw_bitcoin/bitcoin_mnemonic.dart'; import 'package:cw_bitcoin/bitcoin_mnemonic_is_incorrect_exception.dart'; import 'package:cw_bitcoin/bitcoin_wallet_creation_credentials.dart'; @@ -23,12 +24,17 @@ class BitcoinWalletService extends WalletService WalletType.bitcoin; @override - Future create(BitcoinNewWalletCredentials credentials) async { + Future create(BitcoinNewWalletCredentials credentials, {bool? isTestnet}) async { + final network = isTestnet == true ? BitcoinNetwork.testnet : BitcoinNetwork.mainnet; + credentials.walletInfo?.network = network.value; + final wallet = await BitcoinWalletBase.create( - mnemonic: await generateMnemonic(), - password: credentials.password!, - walletInfo: credentials.walletInfo!, - unspentCoinsInfo: unspentCoinsInfoSource); + mnemonic: await generateMnemonic(), + password: credentials.password!, + walletInfo: credentials.walletInfo!, + unspentCoinsInfo: unspentCoinsInfoSource, + network: network, + ); await wallet.save(); await wallet.init(); return wallet; @@ -92,20 +98,27 @@ class BitcoinWalletService extends WalletService restoreFromKeys(BitcoinRestoreWalletFromWIFCredentials credentials) async => + Future restoreFromKeys(BitcoinRestoreWalletFromWIFCredentials credentials, + {bool? isTestnet}) async => throw UnimplementedError(); @override - Future restoreFromSeed(BitcoinRestoreWalletFromSeedCredentials credentials) async { + Future restoreFromSeed(BitcoinRestoreWalletFromSeedCredentials credentials, + {bool? isTestnet}) async { if (!validateMnemonic(credentials.mnemonic)) { throw BitcoinMnemonicIsIncorrectException(); } + final network = isTestnet == true ? BitcoinNetwork.testnet : BitcoinNetwork.mainnet; + credentials.walletInfo?.network = network.value; + final wallet = await BitcoinWalletBase.create( - password: credentials.password!, - mnemonic: credentials.mnemonic, - walletInfo: credentials.walletInfo!, - unspentCoinsInfo: unspentCoinsInfoSource); + password: credentials.password!, + mnemonic: credentials.mnemonic, + walletInfo: credentials.walletInfo!, + unspentCoinsInfo: unspentCoinsInfoSource, + network: network, + ); await wallet.save(); await wallet.init(); return wallet; diff --git a/cw_bitcoin/lib/electrum.dart b/cw_bitcoin/lib/electrum.dart index a05c251fe..51a53e285 100644 --- a/cw_bitcoin/lib/electrum.dart +++ b/cw_bitcoin/lib/electrum.dart @@ -2,12 +2,12 @@ import 'dart:async'; import 'dart:convert'; import 'dart:io'; import 'dart:typed_data'; -import 'package:bitcoin_flutter/bitcoin_flutter.dart'; +import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:cw_bitcoin/bitcoin_amount_format.dart'; import 'package:cw_bitcoin/script_hash.dart'; import 'package:flutter/foundation.dart'; import 'package:rxdart/rxdart.dart'; -import 'package:collection/collection.dart'; +import 'package:http/http.dart' as http; String jsonrpcparams(List params) { final _params = params?.map((val) => '"${val.toString()}"')?.join(','); @@ -22,10 +22,7 @@ String jsonrpc( '{"jsonrpc": "$version", "method": "$method", "id": "$id", "params": ${json.encode(params)}}\n'; class SocketTask { - SocketTask({ - required this.isSubscription, - this.completer, - this.subject}); + SocketTask({required this.isSubscription, this.completer, this.subject}); final Completer? completer; final BehaviorSubject? subject; @@ -51,8 +48,7 @@ class ElectrumClient { Timer? _aliveTimer; String unterminatedString; - Future connectToUri(Uri uri) async => - await connect(host: uri.host, port: uri.port); + Future connectToUri(Uri uri) async => await connect(host: uri.host, port: uri.port); Future connect({required String host, required int port}) async { try { @@ -104,21 +100,20 @@ class ElectrumClient { } if (isJSONStringCorrect(unterminatedString)) { - final response = - json.decode(unterminatedString) as Map; + final response = json.decode(unterminatedString) as Map; _handleResponse(response); unterminatedString = ''; } } on TypeError catch (e) { - if (!e.toString().contains('Map') && !e.toString().contains('Map')) { + if (!e.toString().contains('Map') && + !e.toString().contains('Map')) { return; } unterminatedString += message; if (isJSONStringCorrect(unterminatedString)) { - final response = - json.decode(unterminatedString) as Map; + final response = json.decode(unterminatedString) as Map; _handleResponse(response); // unterminatedString = null; unterminatedString = ''; @@ -142,8 +137,7 @@ class ElectrumClient { } } - Future> version() => - call(method: 'server.version').then((dynamic result) { + Future> version() => call(method: 'server.version').then((dynamic result) { if (result is List) { return result.map((dynamic val) => val.toString()).toList(); } @@ -178,11 +172,10 @@ class ElectrumClient { }); Future>> getListUnspentWithAddress( - String address, NetworkType networkType) => + String address, BasedUtxoNetwork network) => call( - method: 'blockchain.scripthash.listunspent', - params: [scriptHash(address, networkType: networkType)]) - .then((dynamic result) { + method: 'blockchain.scripthash.listunspent', + params: [scriptHash(address, network: network)]).then((dynamic result) { if (result is List) { return result.map((dynamic val) { if (val is Map) { @@ -229,8 +222,7 @@ class ElectrumClient { return []; }); - Future> getTransactionRaw( - {required String hash}) async => + Future> getTransactionRaw({required String hash}) async => callWithTimeout(method: 'blockchain.transaction.get', params: [hash, true], timeout: 10000) .then((dynamic result) { if (result is Map) { @@ -240,8 +232,7 @@ class ElectrumClient { return {}; }); - Future getTransactionHex( - {required String hash}) async => + Future getTransactionHex({required String hash}) async => callWithTimeout(method: 'blockchain.transaction.get', params: [hash, false], timeout: 10000) .then((dynamic result) { if (result is String) { @@ -252,29 +243,40 @@ class ElectrumClient { }); Future broadcastTransaction( - {required String transactionRaw}) async => - call(method: 'blockchain.transaction.broadcast', params: [transactionRaw]) - .then((dynamic result) { - if (result is String) { - return result; + {required String transactionRaw, BasedUtxoNetwork? network}) async { + if (network == BitcoinNetwork.testnet) { + return http + .post(Uri(scheme: 'https', host: 'blockstream.info', path: '/testnet/api/tx'), + headers: {'Content-Type': 'application/json; charset=utf-8'}, + body: transactionRaw) + .then((http.Response response) { + if (response.statusCode == 200) { + return response.body; } - return ''; + throw Exception('Failed to broadcast transaction: ${response.body}'); }); + } - Future> getMerkle( - {required String hash, required int height}) async => - await call( - method: 'blockchain.transaction.get_merkle', - params: [hash, height]) as Map; + return call(method: 'blockchain.transaction.broadcast', params: [transactionRaw]) + .then((dynamic result) { + if (result is String) { + return result; + } - Future> getHeader({required int height}) async => - await call(method: 'blockchain.block.get_header', params: [height]) + return ''; + }); + } + + Future> getMerkle({required String hash, required int height}) async => + await call(method: 'blockchain.transaction.get_merkle', params: [hash, height]) as Map; + Future> getHeader({required int height}) async => + await call(method: 'blockchain.block.get_header', params: [height]) as Map; + Future estimatefee({required int p}) => - call(method: 'blockchain.estimatefee', params: [p]) - .then((dynamic result) { + call(method: 'blockchain.estimatefee', params: [p]).then((dynamic result) { if (result is double) { return result; } @@ -314,20 +316,17 @@ class ElectrumClient { return []; }); - Future> feeRates() async { + Future> feeRates({BasedUtxoNetwork? network}) async { + if (network == BitcoinNetwork.testnet) { + return [1, 1, 1]; + } try { final topDoubleString = await estimatefee(p: 1); final middleDoubleString = await estimatefee(p: 5); 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(); + 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]; } catch (_) { @@ -335,6 +334,21 @@ class ElectrumClient { } } + // https://electrumx.readthedocs.io/en/latest/protocol-methods.html#blockchain-headers-subscribe + // example response: + // { + // "height": 520481, + // "hex": "00000020890208a0ae3a3892aa047c5468725846577cfcd9b512b50000000000000000005dc2b02f2d297a9064ee103036c14d678f9afc7e3d9409cf53fd58b82e938e8ecbeca05a2d2103188ce804c4" + // } + Future getCurrentBlockChainTip() => + call(method: 'blockchain.headers.subscribe').then((result) { + if (result is Map) { + return result["height"] as int; + } + + return null; + }); + BehaviorSubject? scripthashUpdate(String scripthash) { _id += 1; return subscribe( @@ -344,16 +358,14 @@ class ElectrumClient { } BehaviorSubject? subscribe( - {required String id, - required String method, - List params = const []}) { + {required String id, required String method, List params = const []}) { try { final subscription = BehaviorSubject(); _regisrySubscription(id, subscription); socket!.write(jsonrpc(method: method, id: _id, params: params)); return subscription; - } catch(e) { + } catch (e) { print(e.toString()); return null; } @@ -370,9 +382,7 @@ class ElectrumClient { } Future callWithTimeout( - {required String method, - List params = const [], - int timeout = 4000}) async { + {required String method, List params = const [], int timeout = 4000}) async { try { final completer = Completer(); _id += 1; @@ -386,7 +396,7 @@ class ElectrumClient { }); return completer.future; - } catch(e) { + } catch (e) { print(e.toString()); } } @@ -397,8 +407,8 @@ class ElectrumClient { onConnectionStatusChange = null; } - void _registryTask(int id, Completer completer) => _tasks[id.toString()] = - SocketTask(completer: completer, isSubscription: false); + void _registryTask(int id, Completer completer) => + _tasks[id.toString()] = SocketTask(completer: completer, isSubscription: false); void _regisrySubscription(String id, BehaviorSubject subject) => _tasks[id] = SocketTask(subject: subject, isSubscription: true); @@ -419,8 +429,7 @@ class ElectrumClient { } } - void _methodHandler( - {required String method, required Map request}) { + void _methodHandler({required String method, required Map request}) { switch (method) { case 'blockchain.scripthash.subscribe': final params = request['params'] as List; @@ -451,8 +460,8 @@ class ElectrumClient { _methodHandler(method: method, request: response); return; } - - if (id != null){ + + if (id != null) { _finish(id, result); } } diff --git a/cw_bitcoin/lib/electrum_transaction_info.dart b/cw_bitcoin/lib/electrum_transaction_info.dart index bf5ec2c4f..cfea0e089 100644 --- a/cw_bitcoin/lib/electrum_transaction_info.dart +++ b/cw_bitcoin/lib/electrum_transaction_info.dart @@ -1,3 +1,4 @@ +import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:bitcoin_flutter/bitcoin_flutter.dart' as bitcoin; import 'package:bitcoin_flutter/src/payments/index.dart' show PaymentData; import 'package:cw_bitcoin/address_from_output.dart'; @@ -10,13 +11,12 @@ import 'package:cw_core/wallet_type.dart'; class ElectrumTransactionBundle { ElectrumTransactionBundle(this.originalTransaction, - {required this.ins, - required this.confirmations, - this.time}); - final bitcoin.Transaction originalTransaction; - final List ins; + {required this.ins, required this.confirmations, this.time, required this.height}); + final BtcTransaction originalTransaction; + final List ins; final int? time; final int confirmations; + final int height; } class ElectrumTransactionInfo extends TransactionInfo { @@ -39,8 +39,7 @@ class ElectrumTransactionInfo extends TransactionInfo { this.confirmations = confirmations; } - factory ElectrumTransactionInfo.fromElectrumVerbose( - Map obj, WalletType type, + factory ElectrumTransactionInfo.fromElectrumVerbose(Map obj, WalletType type, {required List addresses, required int height}) { final addressesSet = addresses.map((addr) => addr.address).toSet(); final id = obj['txid'] as String; @@ -58,10 +57,8 @@ class ElectrumTransactionInfo extends TransactionInfo { for (dynamic vin in vins) { final vout = vin['vout'] as int; final out = vin['tx']['vout'][vout] as Map; - final outAddresses = - (out['scriptPubKey']['addresses'] as List?)?.toSet(); - inputsAmount += - stringDoubleToBitcoinAmount((out['value'] as double? ?? 0).toString()); + final outAddresses = (out['scriptPubKey']['addresses'] as List?)?.toSet(); + inputsAmount += stringDoubleToBitcoinAmount((out['value'] as double? ?? 0).toString()); if (outAddresses?.intersection(addressesSet).isNotEmpty ?? false) { direction = TransactionDirection.outgoing; @@ -69,11 +66,9 @@ class ElectrumTransactionInfo extends TransactionInfo { } for (dynamic out in vout) { - final outAddresses = - out['scriptPubKey']['addresses'] as List? ?? []; + final outAddresses = out['scriptPubKey']['addresses'] as List? ?? []; final ntrs = outAddresses.toSet().intersection(addressesSet); - final value = stringDoubleToBitcoinAmount( - (out['value'] as double? ?? 0.0).toString()); + final value = stringDoubleToBitcoinAmount((out['value'] as double? ?? 0.0).toString()); totalOutAmount += value; if ((direction == TransactionDirection.incoming && ntrs.isNotEmpty) || @@ -96,44 +91,50 @@ class ElectrumTransactionInfo extends TransactionInfo { } factory ElectrumTransactionInfo.fromElectrumBundle( - ElectrumTransactionBundle bundle, - WalletType type, - bitcoin.NetworkType networkType, - {required Set addresses, - required int height}) { + ElectrumTransactionBundle bundle, WalletType type, BasedUtxoNetwork network, + {required Set addresses, required int height}) { final date = bundle.time != null - ? DateTime.fromMillisecondsSinceEpoch(bundle.time! * 1000) - : DateTime.now(); + ? DateTime.fromMillisecondsSinceEpoch(bundle.time! * 1000) + : DateTime.now(); var direction = TransactionDirection.incoming; var amount = 0; var inputAmount = 0; var totalOutAmount = 0; - for (var i = 0; i < bundle.originalTransaction.ins.length; i++) { - final input = bundle.originalTransaction.ins[i]; + for (var i = 0; i < bundle.originalTransaction.inputs.length; i++) { + final input = bundle.originalTransaction.inputs[i]; final inputTransaction = bundle.ins[i]; - final vout = input.index; - final outTransaction = inputTransaction.outs[vout!]; - final address = addressFromOutput(outTransaction.script!, networkType); - inputAmount += outTransaction.value!; - if (addresses.contains(address)) { + final outTransaction = inputTransaction.outputs[input.txIndex]; + inputAmount += outTransaction.amount.toInt(); + if (addresses.contains(addressFromOutputScript(outTransaction.scriptPubKey, network))) { direction = TransactionDirection.outgoing; } } - for (final out in bundle.originalTransaction.outs) { - totalOutAmount += out.value!; - final address = addressFromOutput(out.script!, networkType); - final addressExists = addresses.contains(address); + final receivedAmounts = []; + for (final out in bundle.originalTransaction.outputs) { + totalOutAmount += out.amount.toInt(); + final addressExists = addresses.contains(addressFromOutputScript(out.scriptPubKey, network)); + + if (addressExists) { + receivedAmounts.add(out.amount.toInt()); + } + if ((direction == TransactionDirection.incoming && addressExists) || (direction == TransactionDirection.outgoing && !addressExists)) { - amount += out.value!; + amount += out.amount.toInt(); } } + if (receivedAmounts.length == bundle.originalTransaction.outputs.length) { + // Self-send + direction = TransactionDirection.incoming; + amount = receivedAmounts.reduce((a, b) => a + b); + } + final fee = inputAmount - totalOutAmount; return ElectrumTransactionInfo(type, - id: bundle.originalTransaction.getId(), + id: bundle.originalTransaction.txId(), height: height, isPending: bundle.confirmations == 0, fee: fee, @@ -152,8 +153,8 @@ class ElectrumTransactionInfo extends TransactionInfo { if (addresses != null) { tx.outs.forEach((out) { try { - final p2pkh = bitcoin.P2PKH( - data: PaymentData(output: out.script), network: bitcoin.bitcoin); + final p2pkh = + bitcoin.P2PKH(data: PaymentData(output: out.script), network: bitcoin.bitcoin); exist = addresses.contains(p2pkh.data.address); if (exist) { @@ -163,9 +164,8 @@ class ElectrumTransactionInfo extends TransactionInfo { }); } - final date = timestamp != null - ? DateTime.fromMillisecondsSinceEpoch(timestamp * 1000) - : DateTime.now(); + final date = + timestamp != null ? DateTime.fromMillisecondsSinceEpoch(timestamp * 1000) : DateTime.now(); return ElectrumTransactionInfo(type, id: tx.getId(), @@ -178,8 +178,7 @@ class ElectrumTransactionInfo extends TransactionInfo { confirmations: confirmations); } - factory ElectrumTransactionInfo.fromJson( - Map data, WalletType type) { + factory ElectrumTransactionInfo.fromJson(Map data, WalletType type) { return ElectrumTransactionInfo(type, id: data['id'] as String, height: data['height'] as int, diff --git a/cw_bitcoin/lib/electrum_wallet.dart b/cw_bitcoin/lib/electrum_wallet.dart index 8a41c1733..873fe2977 100644 --- a/cw_bitcoin/lib/electrum_wallet.dart +++ b/cw_bitcoin/lib/electrum_wallet.dart @@ -3,9 +3,10 @@ import 'dart:convert'; import 'dart:io'; import 'dart:math'; +import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:bitcoin_flutter/bitcoin_flutter.dart' as bitcoin; +import 'package:bitcoin_base/bitcoin_base.dart' as bitcoin_base; import 'package:collection/collection.dart'; -import 'package:cw_bitcoin/address_to_output_script.dart'; import 'package:cw_bitcoin/bitcoin_address_record.dart'; import 'package:cw_bitcoin/bitcoin_transaction_credentials.dart'; import 'package:cw_bitcoin/bitcoin_transaction_no_inputs_exception.dart'; @@ -18,6 +19,7 @@ import 'package:cw_bitcoin/electrum_balance.dart'; import 'package:cw_bitcoin/electrum_transaction_history.dart'; import 'package:cw_bitcoin/electrum_transaction_info.dart'; import 'package:cw_bitcoin/electrum_wallet_addresses.dart'; +import 'package:cw_bitcoin/litecoin_network.dart'; import 'package:cw_bitcoin/pending_bitcoin_transaction.dart'; import 'package:cw_bitcoin/script_hash.dart'; import 'package:cw_bitcoin/utils.dart'; @@ -37,6 +39,7 @@ import 'package:hex/hex.dart'; import 'package:hive/hive.dart'; import 'package:mobx/mobx.dart'; import 'package:rxdart/subjects.dart'; +import 'package:http/http.dart' as http; part 'electrum_wallet.g.dart'; @@ -73,6 +76,12 @@ abstract class ElectrumWalletBase } : {}), this.unspentCoinsInfo = unspentCoinsInfo, + this.network = networkType == bitcoin.bitcoin + ? BitcoinNetwork.mainnet + : networkType == litecoinNetwork + ? LitecoinNetwork.mainnet + : BitcoinNetwork.testnet, + this.isTestnet = networkType == bitcoin.testnet, super(walletInfo) { this.electrumClient = electrumClient ?? ElectrumClient(); this.walletInfo = walletInfo; @@ -106,13 +115,13 @@ abstract class ElectrumWalletBase @observable SyncStatus syncStatus; - List get scriptHashes => walletAddresses.addresses - .map((addr) => scriptHash(addr.address, networkType: networkType)) + List get scriptHashes => walletAddresses.addressesByReceiveType + .map((addr) => scriptHash(addr.address, network: network)) .toList(); - List get publicScriptHashes => walletAddresses.addresses + List get publicScriptHashes => walletAddresses.allAddresses .where((addr) => !addr.isHidden) - .map((addr) => scriptHash(addr.address, networkType: networkType)) + .map((addr) => scriptHash(addr.address, network: network)) .toList(); String get xpub => hd.base58!; @@ -121,6 +130,10 @@ abstract class ElectrumWalletBase String get seed => mnemonic; bitcoin.NetworkType networkType; + BasedUtxoNetwork network; + + @override + bool? isTestnet; @override BitcoinWalletKeys get keys => @@ -145,12 +158,11 @@ abstract class ElectrumWalletBase Future startSync() async { try { syncStatus = AttemptingSyncStatus(); - await walletAddresses.discoverAddresses(); await updateTransactions(); _subscribeForUpdates(); await updateUnspent(); await updateBalance(); - _feeRates = await electrumClient.feeRates(); + _feeRates = await electrumClient.feeRates(network: network); Timer.periodic( const Duration(minutes: 1), (timer) async => _feeRates = await electrumClient.feeRates()); @@ -181,183 +193,206 @@ abstract class ElectrumWalletBase } } - @override - Future createTransaction(Object credentials) async { - const minAmount = 546; - final transactionCredentials = credentials as BitcoinTransactionCredentials; - final inputs = []; - final outputs = transactionCredentials.outputs; - final hasMultiDestination = outputs.length > 1; + Future _estimateTxFeeAndInputsToUse( + int credentialsAmount, + bool sendAll, + List outputAddresses, + List outputs, + BitcoinTransactionCredentials transactionCredentials, + {int? inputsCount}) async { + final utxos = []; + List privateKeys = []; + + var leftAmount = credentialsAmount; var allInputsAmount = 0; - if (unspentCoins.isEmpty) { - await updateUnspent(); - } + for (int i = 0; i < unspentCoins.length; i++) { + final utx = unspentCoins[i]; - for (final utx in unspentCoins) { if (utx.isSending) { allInputsAmount += utx.value; - inputs.add(utx); - } - } - - if (inputs.isEmpty) { - throw BitcoinTransactionNoInputsException(); - } - - final allAmountFee = transactionCredentials.feeRate != null - ? feeAmountWithFeeRate(transactionCredentials.feeRate!, inputs.length, outputs.length) - : feeAmountForPriority(transactionCredentials.priority!, inputs.length, outputs.length); - - final allAmount = allInputsAmount - allAmountFee; - - var credentialsAmount = 0; - var amount = 0; - var fee = 0; - - if (hasMultiDestination) { - if (outputs.any((item) => item.sendAll || item.formattedCryptoAmount! <= 0)) { - throw BitcoinTransactionWrongBalanceException(currency); - } - - credentialsAmount = outputs.fold(0, (acc, value) => acc + value.formattedCryptoAmount!); - - if (allAmount - credentialsAmount < minAmount) { - throw BitcoinTransactionWrongBalanceException(currency); - } - - amount = credentialsAmount; - - if (transactionCredentials.feeRate != null) { - fee = calculateEstimatedFeeWithFeeRate(transactionCredentials.feeRate!, amount, - outputsCount: outputs.length + 1); - } else { - fee = calculateEstimatedFee(transactionCredentials.priority, amount, - outputsCount: outputs.length + 1); - } - } else { - final output = outputs.first; - credentialsAmount = !output.sendAll ? output.formattedCryptoAmount! : 0; - - if (credentialsAmount > allAmount) { - throw BitcoinTransactionWrongBalanceException(currency); - } - - amount = output.sendAll || allAmount - credentialsAmount < minAmount - ? allAmount - : credentialsAmount; - - if (output.sendAll || amount == allAmount) { - fee = allAmountFee; - } else if (transactionCredentials.feeRate != null) { - fee = calculateEstimatedFeeWithFeeRate(transactionCredentials.feeRate!, amount); - } else { - fee = calculateEstimatedFee(transactionCredentials.priority, amount); - } - } - - if (fee == 0) { - throw BitcoinTransactionWrongBalanceException(currency); - } - - final totalAmount = amount + fee; - - if (totalAmount > balance[currency]!.confirmed || totalAmount > allInputsAmount) { - throw BitcoinTransactionWrongBalanceException(currency); - } - - final txb = bitcoin.TransactionBuilder(network: networkType); - final changeAddress = await walletAddresses.getChangeAddress(); - var leftAmount = totalAmount; - var totalInputAmount = 0; - - inputs.clear(); - - for (final utx in unspentCoins) { - if (utx.isSending) { leftAmount = leftAmount - utx.value; - totalInputAmount += utx.value; - inputs.add(utx); - if (leftAmount <= 0) { + final address = _addressTypeFromStr(utx.address, network); + final privkey = generateECPrivate( + hd: utx.bitcoinAddressRecord.isHidden ? walletAddresses.sideHd : walletAddresses.mainHd, + index: utx.bitcoinAddressRecord.index, + network: network); + + privateKeys.add(privkey); + + utxos.add( + UtxoWithAddress( + utxo: BitcoinUtxo( + txHash: utx.hash, + value: BigInt.from(utx.value), + vout: utx.vout, + scriptType: _getScriptType(address), + ), + ownerDetails: + UtxoAddressDetails(publicKey: privkey.getPublic().toHex(), address: address), + ), + ); + + bool amountIsAcquired = !sendAll && leftAmount <= 0; + if ((inputsCount == null && amountIsAcquired) || inputsCount == i + 1) { break; } } } - if (inputs.isEmpty) { + if (utxos.isEmpty) { throw BitcoinTransactionNoInputsException(); } - if (amount <= 0 || totalInputAmount < totalAmount) { + var changeValue = allInputsAmount - credentialsAmount; + + if (!sendAll) { + if (changeValue > 0) { + final changeAddress = await walletAddresses.getChangeAddress(); + final address = _addressTypeFromStr(changeAddress, network); + outputAddresses.add(address); + outputs.add(BitcoinOutput(address: address, value: BigInt.from(changeValue))); + } + } + + final estimatedSize = BitcoinTransactionBuilder.estimateTransactionSize( + utxos: utxos, outputs: outputs, network: network); + + final fee = transactionCredentials.feeRate != null + ? feeAmountWithFeeRate(transactionCredentials.feeRate!, 0, 0, size: estimatedSize) + : feeAmountForPriority(transactionCredentials.priority!, 0, 0, size: estimatedSize); + + if (fee == 0) { throw BitcoinTransactionWrongBalanceException(currency); } - txb.setVersion(1); - inputs.forEach((input) { - if (input.isP2wpkh) { - final p2wpkh = bitcoin - .P2WPKH( - data: generatePaymentData( - hd: input.bitcoinAddressRecord.isHidden - ? walletAddresses.sideHd - : walletAddresses.mainHd, - index: input.bitcoinAddressRecord.index), - network: networkType) - .data; + var amount = credentialsAmount; - txb.addInput(input.hash, input.vout, null, p2wpkh.output); - } else { - txb.addInput(input.hash, input.vout); + final lastOutput = outputs.last; + if (!sendAll) { + if (changeValue > fee) { + // Here, lastOutput is change, deduct the fee from it + outputs[outputs.length - 1] = + BitcoinOutput(address: lastOutput.address, value: lastOutput.value - BigInt.from(fee)); } - }); - - outputs.forEach((item) { - final outputAmount = hasMultiDestination ? item.formattedCryptoAmount : amount; - final outputAddress = item.isParsedAddress ? item.extractedAddress! : item.address; - txb.addOutput(addressToOutputScript(outputAddress, networkType), outputAmount!); - }); - - final estimatedSize = estimatedTransactionSize(inputs.length, outputs.length + 1); - var feeAmount = 0; - - if (transactionCredentials.feeRate != null) { - feeAmount = transactionCredentials.feeRate! * estimatedSize; } else { - feeAmount = feeRate(transactionCredentials.priority!) * estimatedSize; + // Here, if sendAll, the output amount equals to the input value - fee to fully spend every input on the transaction and have no amount for change + amount = allInputsAmount - fee; + outputs[outputs.length - 1] = + BitcoinOutput(address: lastOutput.address, value: BigInt.from(amount)); } - final changeValue = totalInputAmount - amount - feeAmount; + final totalAmount = amount + fee; - if (changeValue > minAmount) { - txb.addOutput(changeAddress, changeValue); + if (totalAmount > balance[currency]!.confirmed) { + throw BitcoinTransactionWrongBalanceException(currency); } - for (var i = 0; i < inputs.length; i++) { - final input = inputs[i]; - final keyPair = generateKeyPair( - hd: input.bitcoinAddressRecord.isHidden ? walletAddresses.sideHd : walletAddresses.mainHd, - index: input.bitcoinAddressRecord.index, - network: networkType); - final witnessValue = input.isP2wpkh ? input.value : null; + if (totalAmount > allInputsAmount) { + if (unspentCoins.where((utx) => utx.isSending).length == utxos.length) { + throw BitcoinTransactionWrongBalanceException(currency); + } else { + if (changeValue > fee) { + outputAddresses.removeLast(); + outputs.removeLast(); + } - txb.sign(vin: i, keyPair: keyPair, witnessValue: witnessValue); + return _estimateTxFeeAndInputsToUse( + credentialsAmount, sendAll, outputAddresses, outputs, transactionCredentials, + inputsCount: utxos.length + 1); + } } - return PendingBitcoinTransaction(txb.build(), type, - electrumClient: electrumClient, amount: amount, fee: fee) - ..addListener((transaction) async { - transactionHistory.addOne(transaction); - await updateBalance(); + return EstimatedTxResult(utxos: utxos, privateKeys: privateKeys, fee: fee, amount: amount); + } + + @override + Future createTransaction(Object credentials) async { + try { + final outputs = []; + final outputAddresses = []; + final transactionCredentials = credentials as BitcoinTransactionCredentials; + final hasMultiDestination = transactionCredentials.outputs.length > 1; + final sendAll = !hasMultiDestination && transactionCredentials.outputs.first.sendAll; + + var credentialsAmount = 0; + + for (final out in transactionCredentials.outputs) { + final outputAddress = out.isParsedAddress ? out.extractedAddress! : out.address; + final address = _addressTypeFromStr(outputAddress, network); + + outputAddresses.add(address); + + if (hasMultiDestination) { + if (out.sendAll || out.formattedCryptoAmount! <= 0) { + throw BitcoinTransactionWrongBalanceException(currency); + } + + final outputAmount = out.formattedCryptoAmount!; + credentialsAmount += outputAmount; + + outputs.add(BitcoinOutput(address: address, value: BigInt.from(outputAmount))); + } else { + if (!sendAll) { + final outputAmount = out.formattedCryptoAmount!; + credentialsAmount += outputAmount; + outputs.add(BitcoinOutput(address: address, value: BigInt.from(outputAmount))); + } else { + // The value will be changed after estimating the Tx size and deducting the fee from the total + outputs.add(BitcoinOutput(address: address, value: BigInt.from(0))); + } + } + } + + final estimatedTx = await _estimateTxFeeAndInputsToUse( + credentialsAmount, sendAll, outputAddresses, outputs, transactionCredentials); + + final txb = BitcoinTransactionBuilder( + utxos: estimatedTx.utxos, + outputs: outputs, + fee: BigInt.from(estimatedTx.fee), + network: network); + + final transaction = txb.buildTransaction((txDigest, utxo, publicKey, sighash) { + final key = estimatedTx.privateKeys + .firstWhereOrNull((element) => element.getPublic().toHex() == publicKey); + + if (key == null) { + throw Exception("Cannot find private key"); + } + + if (utxo.utxo.isP2tr()) { + return key.signTapRoot(txDigest, sighash: sighash); + } else { + return key.signInput(txDigest, sigHash: sighash); + } }); + + return PendingBitcoinTransaction(transaction, type, + electrumClient: electrumClient, + amount: estimatedTx.amount, + fee: estimatedTx.fee, + network: network) + ..addListener((transaction) async { + transactionHistory.addOne(transaction); + await updateBalance(); + }); + } catch (e) { + throw e; + } } String toJSON() => json.encode({ 'mnemonic': mnemonic, - 'account_index': walletAddresses.currentReceiveAddressIndex.toString(), - 'change_address_index': walletAddresses.currentChangeAddressIndex.toString(), - 'addresses': walletAddresses.addresses.map((addr) => addr.toJSON()).toList(), - 'balance': balance[currency]?.toJSON() + 'account_index': walletAddresses.currentReceiveAddressIndexByType, + 'change_address_index': walletAddresses.currentChangeAddressIndexByType, + 'addresses': walletAddresses.allAddresses.map((addr) => addr.toJSON()).toList(), + 'address_page_type': walletInfo.addressPageType == null + ? SegwitAddresType.p2wpkh.toString() + : walletInfo.addressPageType.toString(), + 'balance': balance[currency]?.toJSON(), + 'network_type': network == BitcoinNetwork.testnet ? 'testnet' : 'mainnet', }); int feeRate(TransactionPriority priority) { @@ -372,24 +407,29 @@ abstract class ElectrumWalletBase } } - int feeAmountForPriority( - BitcoinTransactionPriority priority, int inputsCount, int outputsCount) => - feeRate(priority) * estimatedTransactionSize(inputsCount, outputsCount); + int feeAmountForPriority(BitcoinTransactionPriority priority, int inputsCount, int outputsCount, + {int? size}) => + feeRate(priority) * (size ?? estimatedTransactionSize(inputsCount, outputsCount)); - int feeAmountWithFeeRate(int feeRate, int inputsCount, int outputsCount) => - feeRate * estimatedTransactionSize(inputsCount, outputsCount); + int feeAmountWithFeeRate(int feeRate, int inputsCount, int outputsCount, {int? size}) => + feeRate * (size ?? estimatedTransactionSize(inputsCount, outputsCount)); @override - int calculateEstimatedFee(TransactionPriority? priority, int? amount, {int? outputsCount}) { + int calculateEstimatedFee(TransactionPriority? priority, int? amount, + {int? outputsCount, int? size}) { if (priority is BitcoinTransactionPriority) { return calculateEstimatedFeeWithFeeRate(feeRate(priority), amount, - outputsCount: outputsCount); + outputsCount: outputsCount, size: size); } return 0; } - int calculateEstimatedFeeWithFeeRate(int feeRate, int? amount, {int? outputsCount}) { + int calculateEstimatedFeeWithFeeRate(int feeRate, int? amount, {int? outputsCount, int? size}) { + if (size != null) { + return feeAmountWithFeeRate(feeRate, 0, 0, size: size); + } + int inputsCount = 0; if (amount != null) { @@ -457,9 +497,6 @@ abstract class ElectrumWalletBase await transactionHistory.changePassword(password); } - bitcoin.ECPair keyPairFor({required int index}) => - generateKeyPair(hd: hd, index: index, network: networkType); - @override Future rescan({required int height}) async => throw UnimplementedError(); @@ -473,20 +510,23 @@ abstract class ElectrumWalletBase Future makePath() async => pathForWallet(name: walletInfo.name, type: walletInfo.type); Future updateUnspent() async { - final unspent = await Future.wait(walletAddresses.addresses.map((address) => electrumClient - .getListUnspentWithAddress(address.address, networkType) - .then((unspent) => unspent.map((unspent) { + List updatedUnspentCoins = []; + + final addressesSet = walletAddresses.allAddresses.map((addr) => addr.address).toSet(); + + await Future.wait(walletAddresses.allAddresses.map((address) => electrumClient + .getListUnspentWithAddress(address.address, network) + .then((unspent) => Future.forEach>(unspent, (unspent) async { try { - return BitcoinUnspent.fromJSON(address, unspent); - } catch (_) { - return null; - } - }).whereNotNull()))); - unspentCoins = unspent.expand((e) => e).toList(); - unspentCoins.forEach((coin) async { - final tx = await fetchTransactionInfo(hash: coin.hash, height: 0); - coin.isChange = tx?.direction == TransactionDirection.outgoing; - }); + final coin = BitcoinUnspent.fromJSON(address, unspent); + final tx = await fetchTransactionInfo( + hash: coin.hash, height: 0, myAddresses: addressesSet); + coin.isChange = tx?.direction == TransactionDirection.outgoing; + updatedUnspentCoins.add(coin); + } catch (_) {} + })))); + + unspentCoins = updatedUnspentCoins; if (unspentCoinsInfo.isEmpty) { unspentCoins.forEach((coin) => _addCoinInfo(coin)); @@ -495,8 +535,10 @@ abstract class ElectrumWalletBase if (unspentCoins.isNotEmpty) { unspentCoins.forEach((coin) { - final coinInfoList = unspentCoinsInfo.values - .where((element) => element.walletId.contains(id) && element.hash.contains(coin.hash)); + final coinInfoList = unspentCoinsInfo.values.where((element) => + element.walletId.contains(id) && + element.hash.contains(coin.hash) && + element.vout == coin.vout); if (coinInfoList.isNotEmpty) { final coinInfo = coinInfoList.first; @@ -537,7 +579,8 @@ abstract class ElectrumWalletBase if (currentWalletUnspentCoins.isNotEmpty) { currentWalletUnspentCoins.forEach((element) { - final existUnspentCoins = unspentCoins.where((coin) => element.hash.contains(coin.hash)); + final existUnspentCoins = unspentCoins + .where((coin) => element.hash.contains(coin.hash) && element.vout == coin.vout); if (existUnspentCoins.isEmpty) { keys.add(element.key); @@ -555,92 +598,152 @@ abstract class ElectrumWalletBase Future getTransactionExpanded( {required String hash, required int height}) async { - final verboseTransaction = await electrumClient.getTransactionRaw(hash: hash); - final transactionHex = verboseTransaction['hex'] as String; - final original = bitcoin.Transaction.fromHex(transactionHex); - final ins = []; - final time = verboseTransaction['time'] as int?; - final confirmations = verboseTransaction['confirmations'] as int? ?? 0; + String transactionHex; + int? time; + int confirmations = 0; + if (network == BitcoinNetwork.testnet) { + // Testnet public electrum server does not support verbose transaction fetching + transactionHex = await electrumClient.getTransactionHex(hash: hash); - for (final vin in original.ins) { - final id = HEX.encode(vin.hash!.reversed.toList()); - final txHex = await electrumClient.getTransactionHex(hash: id); - final tx = bitcoin.Transaction.fromHex(txHex); - ins.add(tx); + final status = json.decode( + (await http.get(Uri.parse("https://blockstream.info/testnet/api/tx/$hash/status"))).body); + + time = status["block_time"] as int?; + final tip = await electrumClient.getCurrentBlockChainTip() ?? 0; + confirmations = tip - (status["block_height"] as int? ?? 0); + } else { + final verboseTransaction = await electrumClient.getTransactionRaw(hash: hash); + + transactionHex = verboseTransaction['hex'] as String; + time = verboseTransaction['time'] as int?; + confirmations = verboseTransaction['confirmations'] as int? ?? 0; } - return ElectrumTransactionBundle(original, ins: ins, time: time, confirmations: confirmations); + final original = bitcoin_base.BtcTransaction.fromRaw(transactionHex); + final ins = []; + + for (final vin in original.inputs) { + try { + final id = HEX.encode(HEX.decode(vin.txId).reversed.toList()); + final txHex = await electrumClient.getTransactionHex(hash: id); + final tx = bitcoin_base.BtcTransaction.fromRaw(txHex); + ins.add(tx); + } catch (_) { + ins.add(bitcoin_base.BtcTransaction.fromRaw( + await electrumClient.getTransactionHex(hash: vin.txId), + )); + } + } + + return ElectrumTransactionBundle(original, + ins: ins, time: time, confirmations: confirmations, height: height); } Future fetchTransactionInfo( - {required String hash, required int height}) async { + {required String hash, + required int height, + required Set myAddresses, + bool? retryOnFailure}) async { try { - final tx = await getTransactionExpanded(hash: hash, height: height); - final addresses = walletAddresses.addresses.map((addr) => addr.address).toSet(); - return ElectrumTransactionInfo.fromElectrumBundle(tx, walletInfo.type, networkType, - addresses: addresses, height: height); - } catch (_) { + return ElectrumTransactionInfo.fromElectrumBundle( + await getTransactionExpanded(hash: hash, height: height), walletInfo.type, network, + addresses: myAddresses, height: height); + } catch (e) { + if (e is FormatException && retryOnFailure == true) { + await Future.delayed(const Duration(seconds: 2)); + return fetchTransactionInfo(hash: hash, height: height, myAddresses: myAddresses); + } return null; } } @override Future> fetchTransactions() async { - final addressHashes = {}; - final normalizedHistories = >[]; - final newTxCounts = {}; - - walletAddresses.addresses.forEach((addressRecord) { - final sh = scriptHash(addressRecord.address, networkType: networkType); - addressHashes[sh] = addressRecord; - newTxCounts[sh] = 0; - }); - try { - final histories = addressHashes.keys.map((scriptHash) => - electrumClient.getHistory(scriptHash).then((history) => {scriptHash: history})); - final historyResults = await Future.wait(histories); + final Map historiesWithDetails = {}; + final addressesSet = walletAddresses.allAddresses.map((addr) => addr.address).toSet(); + final currentHeight = await electrumClient.getCurrentBlockChainTip() ?? 0; - historyResults.forEach((history) { - history.entries.forEach((historyItem) { - if (historyItem.value.isNotEmpty) { - final address = addressHashes[historyItem.key]; - address?.setAsUsed(); - newTxCounts[historyItem.key] = historyItem.value.length; - normalizedHistories.addAll(historyItem.value); + await Future.wait(ADDRESS_TYPES.map((type) { + final addressesByType = walletAddresses.allAddresses.where((addr) => addr.type == type); + + return Future.wait(addressesByType.map((addressRecord) async { + final history = await _fetchAddressHistory(addressRecord, addressesSet, currentHeight); + + if (history.isNotEmpty) { + addressRecord.txCount = history.length; + historiesWithDetails.addAll(history); + + final matchedAddresses = + addressesByType.where((addr) => addr.isHidden == addressRecord.isHidden); + + final isLastUsedAddress = + history.isNotEmpty && addressRecord.address == matchedAddresses.last.address; + + if (isLastUsedAddress) { + await walletAddresses.discoverAddresses( + matchedAddresses.toList(), + addressRecord.isHidden, + (address, addressesSet) => + _fetchAddressHistory(address, addressesSet, currentHeight) + .then((history) => history.isNotEmpty ? address.address : null), + type: type); + } } - }); - }); - - for (var sh in addressHashes.keys) { - var balanceData = await electrumClient.getBalance(sh); - var addressRecord = addressHashes[sh]; - if (addressRecord != null) { - addressRecord.balance = balanceData['confirmed'] as int? ?? 0; - } - } - - addressHashes.forEach((sh, addressRecord) { - addressRecord.txCount = newTxCounts[sh] ?? 0; - }); - - final historiesWithDetails = await Future.wait(normalizedHistories.map((transaction) { - try { - return fetchTransactionInfo( - hash: transaction['tx_hash'] as String, height: transaction['height'] as int); - } catch (_) { - return Future.value(null); - } + })); })); - return historiesWithDetails.fold>( - {}, (acc, tx) { - if (tx == null) { - return acc; - } - acc[tx.id] = acc[tx.id]?.updated(tx) ?? tx; - return acc; - }); + return historiesWithDetails; + } catch (e) { + print(e.toString()); + return {}; + } + } + + Future> _fetchAddressHistory( + BitcoinAddressRecord addressRecord, Set addressesSet, int currentHeight) async { + try { + final Map historiesWithDetails = {}; + + final history = await electrumClient + .getHistory(addressRecord.scriptHash ?? addressRecord.updateScriptHash(network)); + + if (history.isNotEmpty) { + addressRecord.setAsUsed(); + + await Future.wait(history.map((transaction) async { + final txid = transaction['tx_hash'] as String; + final height = transaction['height'] as int; + final storedTx = transactionHistory.transactions[txid]; + + if (storedTx != null) { + if (height > 0) { + storedTx.height = height; + // the tx's block itself is the first confirmation so add 1 + storedTx.confirmations = currentHeight - height + 1; + storedTx.isPending = storedTx.confirmations == 0; + } + + historiesWithDetails[txid] = storedTx; + } else { + final tx = await fetchTransactionInfo( + hash: txid, height: height, myAddresses: addressesSet, retryOnFailure: true); + + if (tx != null) { + historiesWithDetails[txid] = tx; + + // Got a new transaction fetched, add it to the transaction history + // instead of waiting all to finish, and next time it will be faster + transactionHistory.addOne(tx); + await transactionHistory.save(); + } + } + + return Future.value(null); + })); + } + + return historiesWithDetails; } catch (e) { print(e.toString()); return {}; @@ -654,10 +757,8 @@ abstract class ElectrumWalletBase } _isTransactionUpdating = true; - final transactions = await fetchTransactions(); - transactionHistory.addMany(transactions); + await fetchTransactions(); walletAddresses.updateReceiveAddresses(); - await transactionHistory.save(); _isTransactionUpdating = false; } catch (e, stacktrace) { print(stacktrace); @@ -688,11 +789,11 @@ abstract class ElectrumWalletBase } Future _fetchBalances() async { - final addresses = walletAddresses.addresses.toList(); + final addresses = walletAddresses.allAddresses.toList(); final balanceFutures = >>[]; for (var i = 0; i < addresses.length; i++) { final addressRecord = addresses[i]; - final sh = scriptHash(addressRecord.address, networkType: networkType); + final sh = scriptHash(addressRecord.address, network: network); final balanceFuture = electrumClient.getBalance(sh); balanceFutures.add(balanceFuture); } @@ -701,6 +802,7 @@ abstract class ElectrumWalletBase unspentCoinsInfo.values.forEach((info) { unspentCoins.forEach((element) { if (element.hash == info.hash && + element.vout == info.vout && info.isFrozen && element.bitcoinAddressRecord.address == info.address && element.value == info.value) { @@ -738,10 +840,10 @@ abstract class ElectrumWalletBase String getChangeAddress() { const minCountOfHiddenAddresses = 5; final random = Random(); - var addresses = walletAddresses.addresses.where((addr) => addr.isHidden).toList(); + var addresses = walletAddresses.allAddresses.where((addr) => addr.isHidden).toList(); if (addresses.length < minCountOfHiddenAddresses) { - addresses = walletAddresses.addresses.toList(); + addresses = walletAddresses.allAddresses.toList(); } return addresses[random.nextInt(addresses.length)].address; @@ -753,9 +855,62 @@ abstract class ElectrumWalletBase @override String signMessage(String message, {String? address = null}) { final index = address != null - ? walletAddresses.addresses.firstWhere((element) => element.address == address).index + ? walletAddresses.allAddresses.firstWhere((element) => element.address == address).index : null; final HD = index == null ? hd : hd.derive(index); return base64Encode(HD.signMessage(message)); } } + +class EstimateTxParams { + EstimateTxParams( + {required this.amount, + required this.feeRate, + required this.priority, + required this.outputsCount, + required this.size}); + + final int amount; + final int feeRate; + final TransactionPriority priority; + final int outputsCount; + final int size; +} + +class EstimatedTxResult { + EstimatedTxResult( + {required this.utxos, required this.privateKeys, required this.fee, required this.amount}); + + final List utxos; + final List privateKeys; + final int fee; + final int amount; +} + +BitcoinBaseAddress _addressTypeFromStr(String address, BasedUtxoNetwork network) { + if (P2pkhAddress.regex.hasMatch(address)) { + return P2pkhAddress.fromAddress(address: address, network: network); + } else if (P2shAddress.regex.hasMatch(address)) { + return P2shAddress.fromAddress(address: address, network: network); + } else if (P2wshAddress.regex.hasMatch(address)) { + return P2wshAddress.fromAddress(address: address, network: network); + } else if (P2trAddress.regex.hasMatch(address)) { + return P2trAddress.fromAddress(address: address, network: network); + } else { + return P2wpkhAddress.fromAddress(address: address, network: network); + } +} + +BitcoinAddressType _getScriptType(BitcoinBaseAddress type) { + if (type is P2pkhAddress) { + return P2pkhAddressType.p2pkh; + } else if (type is P2shAddress) { + return P2shAddressType.p2wpkhInP2sh; + } else if (type is P2wshAddress) { + return SegwitAddresType.p2wsh; + } else if (type is P2trAddress) { + return SegwitAddresType.p2tr; + } else { + return SegwitAddresType.p2wpkh; + } +} diff --git a/cw_bitcoin/lib/electrum_wallet_addresses.dart b/cw_bitcoin/lib/electrum_wallet_addresses.dart index 850d58f40..5880f5a19 100644 --- a/cw_bitcoin/lib/electrum_wallet_addresses.dart +++ b/cw_bitcoin/lib/electrum_wallet_addresses.dart @@ -1,8 +1,8 @@ -import 'package:bitbox/bitbox.dart' as bitbox; +import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:bitcoin_flutter/bitcoin_flutter.dart' as bitcoin; +import 'package:bitbox/bitbox.dart' as bitbox; import 'package:cw_bitcoin/bitcoin_address_record.dart'; import 'package:cw_bitcoin/electrum.dart'; -import 'package:cw_bitcoin/script_hash.dart'; import 'package:cw_core/wallet_addresses.dart'; import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_type.dart'; @@ -12,25 +12,41 @@ part 'electrum_wallet_addresses.g.dart'; class ElectrumWalletAddresses = ElectrumWalletAddressesBase with _$ElectrumWalletAddresses; +const List ADDRESS_TYPES = [ + SegwitAddresType.p2wpkh, + P2pkhAddressType.p2pkh, + SegwitAddresType.p2tr, + SegwitAddresType.p2wsh, + P2shAddressType.p2wpkhInP2sh, +]; + abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { - ElectrumWalletAddressesBase(WalletInfo walletInfo, - {required this.mainHd, - required this.sideHd, - required this.electrumClient, - required this.networkType, - List? initialAddresses, - int initialRegularAddressIndex = 0, - int initialChangeAddressIndex = 0}) - : addresses = ObservableList.of((initialAddresses ?? []).toSet()), + ElectrumWalletAddressesBase( + WalletInfo walletInfo, { + required this.mainHd, + required this.sideHd, + required this.electrumClient, + required this.network, + List? initialAddresses, + Map? initialRegularAddressIndex, + Map? initialChangeAddressIndex, + }) : _addresses = ObservableList.of((initialAddresses ?? []).toSet()), + addressesByReceiveType = + ObservableList.of(([]).toSet()), receiveAddresses = ObservableList.of((initialAddresses ?? []) .where((addressRecord) => !addressRecord.isHidden && !addressRecord.isUsed) .toSet()), changeAddresses = ObservableList.of((initialAddresses ?? []) .where((addressRecord) => addressRecord.isHidden && !addressRecord.isUsed) .toSet()), - currentReceiveAddressIndex = initialRegularAddressIndex, - currentChangeAddressIndex = initialChangeAddressIndex, - super(walletInfo); + currentReceiveAddressIndexByType = initialRegularAddressIndex ?? {}, + currentChangeAddressIndexByType = initialChangeAddressIndex ?? {}, + _addressPageType = walletInfo.addressPageType != null + ? BitcoinAddressType.fromValue(walletInfo.addressPageType!) + : SegwitAddresType.p2wpkh, + super(walletInfo) { + updateAddressesByMatch(); + } static const defaultReceiveAddressesCount = 22; static const defaultChangeAddressesCount = 17; @@ -40,37 +56,48 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { static String toLegacy(String address) => bitbox.Address.toLegacyAddress(address); - final ObservableList addresses; + final ObservableList _addresses; + // Matched by addressPageType + late ObservableList addressesByReceiveType; final ObservableList receiveAddresses; final ObservableList changeAddresses; final ElectrumClient electrumClient; - final bitcoin.NetworkType networkType; + final BasedUtxoNetwork network; final bitcoin.HDWallet mainHd; final bitcoin.HDWallet sideHd; + @observable + BitcoinAddressType _addressPageType = SegwitAddresType.p2wpkh; + + @computed + BitcoinAddressType get addressPageType => _addressPageType; + + @computed + List get allAddresses => _addresses; + @override @computed String get address { - if (isEnabledAutoGenerateSubaddress) { - if (receiveAddresses.isEmpty) { - final newAddress = generateNewAddress(hd: mainHd).address; - return walletInfo.type == WalletType.bitcoinCash ? toCashAddr(newAddress) : newAddress; - } - final receiveAddress = receiveAddresses.first.address; + String receiveAddress; - return walletInfo.type == WalletType.bitcoinCash - ? toCashAddr(receiveAddress) - : receiveAddress; + final typeMatchingReceiveAddresses = receiveAddresses.where(_isAddressPageTypeMatch); + + if ((isEnabledAutoGenerateSubaddress && receiveAddresses.isEmpty) || + typeMatchingReceiveAddresses.isEmpty) { + receiveAddress = generateNewAddress().address; } else { - final receiveAddress = (receiveAddresses.first.address != addresses.first.address && - previousAddressRecord != null) - ? previousAddressRecord!.address - : addresses.first.address; + final previousAddressMatchesType = + previousAddressRecord != null && previousAddressRecord!.type == addressPageType; - return walletInfo.type == WalletType.bitcoinCash - ? toCashAddr(receiveAddress) - : receiveAddress; + if (previousAddressMatchesType && + typeMatchingReceiveAddresses.first.address != addressesByReceiveType.first.address) { + receiveAddress = previousAddressRecord!.address; + } else { + receiveAddress = typeMatchingReceiveAddresses.first.address; + } } + + return walletInfo.type == WalletType.bitcoinCash ? toCashAddr(receiveAddress) : receiveAddress; } @observable @@ -81,7 +108,7 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { if (addr.startsWith('bitcoincash:')) { addr = toLegacy(addr); } - final addressRecord = addresses.firstWhere((addressRecord) => addressRecord.address == addr); + final addressRecord = _addresses.firstWhere((addressRecord) => addressRecord.address == addr); previousAddressRecord = addressRecord; receiveAddresses.remove(addressRecord); @@ -89,16 +116,29 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { } @override - String get primaryAddress => getAddress(index: 0, hd: mainHd); + String get primaryAddress => getAddress(index: 0, hd: mainHd, addressType: addressPageType); - int currentReceiveAddressIndex; - int currentChangeAddressIndex; + Map currentReceiveAddressIndexByType; + + int get currentReceiveAddressIndex => + currentReceiveAddressIndexByType[_addressPageType.toString()] ?? 0; + + void set currentReceiveAddressIndex(int index) => + currentReceiveAddressIndexByType[_addressPageType.toString()] = index; + + Map currentChangeAddressIndexByType; + + int get currentChangeAddressIndex => + currentChangeAddressIndexByType[_addressPageType.toString()] ?? 0; + + void set currentChangeAddressIndex(int index) => + currentChangeAddressIndexByType[_addressPageType.toString()] = index; @observable BitcoinAddressRecord? previousAddressRecord; @computed - int get totalCountOfReceiveAddresses => addresses.fold(0, (acc, addressRecord) { + int get totalCountOfReceiveAddresses => addressesByReceiveType.fold(0, (acc, addressRecord) { if (!addressRecord.isHidden) { return acc + 1; } @@ -106,22 +146,21 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { }); @computed - int get totalCountOfChangeAddresses => addresses.fold(0, (acc, addressRecord) { + int get totalCountOfChangeAddresses => addressesByReceiveType.fold(0, (acc, addressRecord) { if (addressRecord.isHidden) { return acc + 1; } return acc; }); - Future discoverAddresses() async { - await _discoverAddresses(mainHd, false); - await _discoverAddresses(sideHd, true); - await updateAddressesInBox(); - } - @override Future init() async { await _generateInitialAddresses(); + await _generateInitialAddresses(type: P2pkhAddressType.p2pkh); + await _generateInitialAddresses(type: P2shAddressType.p2wpkhInP2sh); + await _generateInitialAddresses(type: SegwitAddresType.p2tr); + await _generateInitialAddresses(type: SegwitAddresType.p2wsh); + updateAddressesByMatch(); updateReceiveAddresses(); updateChangeAddresses(); await updateAddressesInBox(); @@ -141,10 +180,9 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { if (changeAddresses.isEmpty) { final newAddresses = await _createNewAddresses(gap, - hd: sideHd, startIndex: totalCountOfChangeAddresses > 0 ? totalCountOfChangeAddresses - 1 : 0, isHidden: true); - _addAddresses(newAddresses); + addAddresses(newAddresses); } if (currentChangeAddressIndex >= changeAddresses.length) { @@ -157,19 +195,26 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { return address; } - BitcoinAddressRecord generateNewAddress({bitcoin.HDWallet? hd, String? label}) { - final isHidden = hd == sideHd; + BitcoinAddressRecord generateNewAddress({String label = ''}) { + final newAddressIndex = addressesByReceiveType.fold( + 0, (int acc, addressRecord) => addressRecord.isHidden == false ? acc + 1 : acc); - final newAddressIndex = addresses.fold( - 0, (int acc, addressRecord) => isHidden == addressRecord.isHidden ? acc + 1 : acc); - - final address = BitcoinAddressRecord(getAddress(index: newAddressIndex, hd: hd ?? sideHd), - index: newAddressIndex, isHidden: isHidden, name: label ?? ''); - addresses.add(address); + final address = BitcoinAddressRecord( + getAddress(index: newAddressIndex, hd: mainHd, addressType: addressPageType), + index: newAddressIndex, + isHidden: false, + name: label, + type: addressPageType, + network: network, + ); + _addresses.add(address); + updateAddressesByMatch(); return address; } - String getAddress({required int index, required bitcoin.HDWallet hd}) => ''; + String getAddress( + {required int index, required bitcoin.HDWallet hd, BitcoinAddressType? addressType}) => + ''; @override Future updateAddressesInBox() async { @@ -187,126 +232,138 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { if (address.startsWith('bitcoincash:')) { address = toLegacy(address); } - final addressRecord = addresses.firstWhere((addressRecord) => addressRecord.address == address); + final addressRecord = + _addresses.firstWhere((addressRecord) => addressRecord.address == address); addressRecord.setNewName(label); - final index = addresses.indexOf(addressRecord); - addresses.remove(addressRecord); - addresses.insert(index, addressRecord); + final index = _addresses.indexOf(addressRecord); + _addresses.remove(addressRecord); + _addresses.insert(index, addressRecord); + } + + @action + void updateAddressesByMatch() { + addressesByReceiveType.clear(); + addressesByReceiveType.addAll(_addresses.where(_isAddressPageTypeMatch).toList()); } @action void updateReceiveAddresses() { receiveAddresses.removeRange(0, receiveAddresses.length); final newAddresses = - addresses.where((addressRecord) => !addressRecord.isHidden && !addressRecord.isUsed); + _addresses.where((addressRecord) => !addressRecord.isHidden && !addressRecord.isUsed); receiveAddresses.addAll(newAddresses); } @action void updateChangeAddresses() { changeAddresses.removeRange(0, changeAddresses.length); - final newAddresses = - addresses.where((addressRecord) => addressRecord.isHidden && !addressRecord.isUsed); + final newAddresses = _addresses.where((addressRecord) => + addressRecord.isHidden && + !addressRecord.isUsed && + // TODO: feature to change change address type. For now fixed to p2wpkh, the cheapest type + addressRecord.type == SegwitAddresType.p2wpkh); changeAddresses.addAll(newAddresses); } - Future _discoverAddresses(bitcoin.HDWallet hd, bool isHidden) async { - var hasAddrUse = true; - List addrs; - - if (addresses.isNotEmpty) { - - - if(!isHidden) { - final receiveAddressesList = addresses.where((addr) => !addr.isHidden).toList(); - validateSideHdAddresses(receiveAddressesList); - } - - addrs = addresses.where((addr) => addr.isHidden == isHidden).toList(); - } else { - addrs = await _createNewAddresses( - isHidden ? defaultChangeAddressesCount : defaultReceiveAddressesCount, - startIndex: 0, - hd: hd, - isHidden: isHidden); + @action + Future discoverAddresses(List addressList, bool isHidden, + Future Function(BitcoinAddressRecord, Set) getAddressHistory, + {BitcoinAddressType type = SegwitAddresType.p2wpkh}) async { + if (!isHidden) { + _validateSideHdAddresses(addressList.toList()); } - while (hasAddrUse) { - final addr = addrs.last.address; - hasAddrUse = await _hasAddressUsed(addr); + final newAddresses = await _createNewAddresses(gap, + startIndex: addressList.length, isHidden: isHidden, type: type); + addAddresses(newAddresses); - if (!hasAddrUse) { - break; - } + final addressesWithHistory = await Future.wait(newAddresses + .map((addr) => getAddressHistory(addr, _addresses.map((e) => e.address).toSet()))); + final isLastAddressUsed = addressesWithHistory.last == addressList.last.address; - final start = addrs.length; - final count = start + gap; - final batch = await _createNewAddresses(count, startIndex: start, hd: hd, isHidden: isHidden); - addrs.addAll(batch); - } - - if (addresses.length < addrs.length) { - _addAddresses(addrs); + if (isLastAddressUsed) { + discoverAddresses(addressList, isHidden, getAddressHistory, type: type); } } - Future _generateInitialAddresses() async { + Future _generateInitialAddresses( + {BitcoinAddressType type = SegwitAddresType.p2wpkh}) async { var countOfReceiveAddresses = 0; var countOfHiddenAddresses = 0; - addresses.forEach((addr) { - if (addr.isHidden) { - countOfHiddenAddresses += 1; - return; - } + _addresses.forEach((addr) { + if (addr.type == type) { + if (addr.isHidden) { + countOfHiddenAddresses += 1; + return; + } - countOfReceiveAddresses += 1; + countOfReceiveAddresses += 1; + } }); if (countOfReceiveAddresses < defaultReceiveAddressesCount) { final addressesCount = defaultReceiveAddressesCount - countOfReceiveAddresses; final newAddresses = await _createNewAddresses(addressesCount, - startIndex: countOfReceiveAddresses, hd: mainHd, isHidden: false); - addresses.addAll(newAddresses); + startIndex: countOfReceiveAddresses, isHidden: false, type: type); + addAddresses(newAddresses); } if (countOfHiddenAddresses < defaultChangeAddressesCount) { final addressesCount = defaultChangeAddressesCount - countOfHiddenAddresses; final newAddresses = await _createNewAddresses(addressesCount, - startIndex: countOfHiddenAddresses, hd: sideHd, isHidden: true); - addresses.addAll(newAddresses); + startIndex: countOfHiddenAddresses, isHidden: true, type: type); + addAddresses(newAddresses); } } Future> _createNewAddresses(int count, - {required bitcoin.HDWallet hd, int startIndex = 0, bool isHidden = false}) async { + {int startIndex = 0, bool isHidden = false, BitcoinAddressType? type}) async { final list = []; for (var i = startIndex; i < count + startIndex; i++) { - final address = - BitcoinAddressRecord(getAddress(index: i, hd: hd), index: i, isHidden: isHidden); + final address = BitcoinAddressRecord( + getAddress(index: i, hd: _getHd(isHidden), addressType: type ?? addressPageType), + index: i, + isHidden: isHidden, + type: type ?? addressPageType, + network: network, + ); list.add(address); } return list; } - void _addAddresses(Iterable addresses) { - final addressesSet = this.addresses.toSet(); + @action + void addAddresses(Iterable addresses) { + final addressesSet = this._addresses.toSet(); addressesSet.addAll(addresses); - this.addresses.removeRange(0, this.addresses.length); - this.addresses.addAll(addressesSet); + this._addresses.clear(); + this._addresses.addAll(addressesSet); + updateAddressesByMatch(); } - Future _hasAddressUsed(String address) async { - final sh = scriptHash(address, networkType: networkType); - final transactionHistory = await electrumClient.getHistory(sh); - return transactionHistory.isNotEmpty; - } - - void validateSideHdAddresses(List addrWithTransactions) { + void _validateSideHdAddresses(List addrWithTransactions) { addrWithTransactions.forEach((element) { - if (element.address != getAddress(index: element.index, hd: mainHd)) element.isHidden = true; + if (element.address != + getAddress(index: element.index, hd: mainHd, addressType: element.type)) + element.isHidden = true; }); } + + @action + Future setAddressType(BitcoinAddressType type) async { + _addressPageType = type; + updateAddressesByMatch(); + walletInfo.addressPageType = addressPageType.toString(); + await walletInfo.save(); + } + + bool _isAddressPageTypeMatch(BitcoinAddressRecord addressRecord) { + return _isAddressByType(addressRecord, addressPageType); + } + + bitcoin.HDWallet _getHd(bool isHidden) => isHidden ? sideHd : mainHd; + bool _isAddressByType(BitcoinAddressRecord addr, BitcoinAddressType type) => addr.type == type; } diff --git a/cw_bitcoin/lib/electrum_wallet_snapshot.dart b/cw_bitcoin/lib/electrum_wallet_snapshot.dart index 86d3e2fed..98c3753db 100644 --- a/cw_bitcoin/lib/electrum_wallet_snapshot.dart +++ b/cw_bitcoin/lib/electrum_wallet_snapshot.dart @@ -1,12 +1,13 @@ import 'dart:convert'; +import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:cw_bitcoin/bitcoin_address_record.dart'; import 'package:cw_bitcoin/electrum_balance.dart'; import 'package:cw_core/pathForWallet.dart'; import 'package:cw_core/utils/file.dart'; import 'package:cw_core/wallet_type.dart'; -class ElectrumWallletSnapshot { - ElectrumWallletSnapshot({ +class ElectrumWalletSnapshot { + ElectrumWalletSnapshot({ required this.name, required this.type, required this.password, @@ -14,19 +15,24 @@ class ElectrumWallletSnapshot { required this.addresses, required this.balance, required this.regularAddressIndex, - required this.changeAddressIndex}); + required this.changeAddressIndex, + required this.addressPageType, + required this.network, + }); final String name; final String password; final WalletType type; + final String addressPageType; + final BasedUtxoNetwork network; String mnemonic; List addresses; ElectrumBalance balance; - int regularAddressIndex; - int changeAddressIndex; + Map regularAddressIndex; + Map changeAddressIndex; - static Future load(String name, WalletType type, String password) async { + static Future load(String name, WalletType type, String password, BasedUtxoNetwork? network) async { final path = await pathForWallet(name: name, type: type); final jsonSource = await read(path: path, password: password); final data = json.decode(jsonSource) as Map; @@ -34,26 +40,39 @@ class ElectrumWallletSnapshot { final mnemonic = data['mnemonic'] as String; final addresses = addressesTmp .whereType() - .map((addr) => BitcoinAddressRecord.fromJSON(addr)) + .map((addr) => BitcoinAddressRecord.fromJSON(addr, network)) .toList(); final balance = ElectrumBalance.fromJSON(data['balance'] as String) ?? ElectrumBalance(confirmed: 0, unconfirmed: 0, frozen: 0); - var regularAddressIndex = 0; - var changeAddressIndex = 0; + var regularAddressIndexByType = {SegwitAddresType.p2wpkh.toString(): 0}; + var changeAddressIndexByType = {SegwitAddresType.p2wpkh.toString(): 0}; try { - regularAddressIndex = int.parse(data['account_index'] as String? ?? '0'); - changeAddressIndex = int.parse(data['change_address_index'] as String? ?? '0'); - } catch (_) {} + regularAddressIndexByType = { + SegwitAddresType.p2wpkh.toString(): int.parse(data['account_index'] as String? ?? '0') + }; + changeAddressIndexByType = { + SegwitAddresType.p2wpkh.toString(): + int.parse(data['change_address_index'] as String? ?? '0') + }; + } catch (_) { + try { + regularAddressIndexByType = data["account_index"] as Map? ?? {}; + changeAddressIndexByType = data["change_address_index"] as Map? ?? {}; + } catch (_) {} + } - return ElectrumWallletSnapshot( + return ElectrumWalletSnapshot( name: name, type: type, password: password, mnemonic: mnemonic, addresses: addresses, balance: balance, - regularAddressIndex: regularAddressIndex, - changeAddressIndex: changeAddressIndex); + regularAddressIndex: regularAddressIndexByType, + changeAddressIndex: changeAddressIndexByType, + addressPageType: data['address_page_type'] as String? ?? SegwitAddresType.p2wpkh.toString(), + network: data['network_type'] == 'testnet' ? BitcoinNetwork.testnet : BitcoinNetwork.mainnet, + ); } } diff --git a/cw_bitcoin/lib/litecoin_wallet.dart b/cw_bitcoin/lib/litecoin_wallet.dart index 222e95acc..d2379d5a5 100644 --- a/cw_bitcoin/lib/litecoin_wallet.dart +++ b/cw_bitcoin/lib/litecoin_wallet.dart @@ -1,3 +1,4 @@ +import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:cw_bitcoin/bitcoin_mnemonic.dart'; import 'package:cw_bitcoin/bitcoin_transaction_priority.dart'; import 'package:cw_core/crypto_currency.dart'; @@ -20,17 +21,18 @@ part 'litecoin_wallet.g.dart'; class LitecoinWallet = LitecoinWalletBase with _$LitecoinWallet; abstract class LitecoinWalletBase extends ElectrumWallet with Store { - LitecoinWalletBase( - {required String mnemonic, - required String password, - required WalletInfo walletInfo, - required Box unspentCoinsInfo, - required Uint8List seedBytes, - List? initialAddresses, - ElectrumBalance? initialBalance, - int initialRegularAddressIndex = 0, - int initialChangeAddressIndex = 0}) - : super( + LitecoinWalletBase({ + required String mnemonic, + required String password, + required WalletInfo walletInfo, + required Box unspentCoinsInfo, + required Uint8List seedBytes, + String? addressPageType, + List? initialAddresses, + ElectrumBalance? initialBalance, + Map? initialRegularAddressIndex, + Map? initialChangeAddressIndex, + }) : super( mnemonic: mnemonic, password: password, walletInfo: walletInfo, @@ -41,41 +43,42 @@ abstract class LitecoinWalletBase extends ElectrumWallet with Store { seedBytes: seedBytes, currency: CryptoCurrency.ltc) { walletAddresses = LitecoinWalletAddresses( - walletInfo, - electrumClient: electrumClient, - initialAddresses: initialAddresses, - initialRegularAddressIndex: initialRegularAddressIndex, - initialChangeAddressIndex: initialChangeAddressIndex, - mainHd: hd, - sideHd: bitcoin.HDWallet - .fromSeed(seedBytes, network: networkType) - .derivePath("m/0'/1"), - networkType: networkType,); + walletInfo, + electrumClient: electrumClient, + initialAddresses: initialAddresses, + initialRegularAddressIndex: initialRegularAddressIndex, + initialChangeAddressIndex: initialChangeAddressIndex, + mainHd: hd, + sideHd: bitcoin.HDWallet.fromSeed(seedBytes, network: networkType).derivePath("m/0'/1"), + network: network, + ); autorun((_) { this.walletAddresses.isEnabledAutoGenerateSubaddress = this.isEnabledAutoGenerateSubaddress; }); } - static Future create({ - required String mnemonic, - required String password, - required WalletInfo walletInfo, - required Box unspentCoinsInfo, - List? initialAddresses, - ElectrumBalance? initialBalance, - int initialRegularAddressIndex = 0, - int initialChangeAddressIndex = 0 - }) async { + static Future create( + {required String mnemonic, + required String password, + required WalletInfo walletInfo, + required Box unspentCoinsInfo, + String? addressPageType, + List? initialAddresses, + ElectrumBalance? initialBalance, + Map? initialRegularAddressIndex, + Map? initialChangeAddressIndex}) async { return LitecoinWallet( - mnemonic: mnemonic, - password: password, - walletInfo: walletInfo, - unspentCoinsInfo: unspentCoinsInfo, - initialAddresses: initialAddresses, - initialBalance: initialBalance, - seedBytes: await mnemonicToSeedBytes(mnemonic), - initialRegularAddressIndex: initialRegularAddressIndex, - initialChangeAddressIndex: initialChangeAddressIndex); + mnemonic: mnemonic, + password: password, + walletInfo: walletInfo, + unspentCoinsInfo: unspentCoinsInfo, + initialAddresses: initialAddresses, + initialBalance: initialBalance, + seedBytes: await mnemonicToSeedBytes(mnemonic), + initialRegularAddressIndex: initialRegularAddressIndex, + initialChangeAddressIndex: initialChangeAddressIndex, + addressPageType: addressPageType, + ); } static Future open({ @@ -84,17 +87,20 @@ abstract class LitecoinWalletBase extends ElectrumWallet with Store { required Box unspentCoinsInfo, required String password, }) async { - final snp = await ElectrumWallletSnapshot.load (name, walletInfo.type, password); + final snp = + await ElectrumWalletSnapshot.load(name, walletInfo.type, password, LitecoinNetwork.mainnet); return LitecoinWallet( - mnemonic: snp.mnemonic, - password: password, - walletInfo: walletInfo, - unspentCoinsInfo: unspentCoinsInfo, - initialAddresses: snp.addresses, - initialBalance: snp.balance, - seedBytes: await mnemonicToSeedBytes(snp.mnemonic), - initialRegularAddressIndex: snp.regularAddressIndex, - initialChangeAddressIndex: snp.changeAddressIndex); + mnemonic: snp.mnemonic, + password: password, + walletInfo: walletInfo, + unspentCoinsInfo: unspentCoinsInfo, + initialAddresses: snp.addresses, + initialBalance: snp.balance, + seedBytes: await mnemonicToSeedBytes(snp.mnemonic), + initialRegularAddressIndex: snp.regularAddressIndex, + initialChangeAddressIndex: snp.changeAddressIndex, + addressPageType: snp.addressPageType, + ); } @override diff --git a/cw_bitcoin/lib/litecoin_wallet_addresses.dart b/cw_bitcoin/lib/litecoin_wallet_addresses.dart index a317fa9f2..993d17933 100644 --- a/cw_bitcoin/lib/litecoin_wallet_addresses.dart +++ b/cw_bitcoin/lib/litecoin_wallet_addresses.dart @@ -1,39 +1,28 @@ +import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:bitcoin_flutter/bitcoin_flutter.dart' as bitcoin; -import 'package:cw_bitcoin/electrum.dart'; import 'package:cw_bitcoin/utils.dart'; -import 'package:cw_bitcoin/bitcoin_address_record.dart'; import 'package:cw_bitcoin/electrum_wallet_addresses.dart'; import 'package:cw_core/wallet_info.dart'; -import 'package:flutter/foundation.dart'; import 'package:mobx/mobx.dart'; part 'litecoin_wallet_addresses.g.dart'; -class LitecoinWalletAddresses = LitecoinWalletAddressesBase - with _$LitecoinWalletAddresses; +class LitecoinWalletAddresses = LitecoinWalletAddressesBase with _$LitecoinWalletAddresses; -abstract class LitecoinWalletAddressesBase extends ElectrumWalletAddresses - with Store { +abstract class LitecoinWalletAddressesBase extends ElectrumWalletAddresses with Store { LitecoinWalletAddressesBase( - WalletInfo walletInfo, - {required bitcoin.HDWallet mainHd, - required bitcoin.HDWallet sideHd, - required bitcoin.NetworkType networkType, - required ElectrumClient electrumClient, - List? initialAddresses, - int initialRegularAddressIndex = 0, - int initialChangeAddressIndex = 0}) - : super( - walletInfo, - initialAddresses: initialAddresses, - initialRegularAddressIndex: initialRegularAddressIndex, - initialChangeAddressIndex: initialChangeAddressIndex, - mainHd: mainHd, - sideHd: sideHd, - electrumClient: electrumClient, - networkType: networkType); + WalletInfo walletInfo, { + required super.mainHd, + required super.sideHd, + required super.network, + required super.electrumClient, + super.initialAddresses, + super.initialRegularAddressIndex, + super.initialChangeAddressIndex, + }) : super(walletInfo); @override - String getAddress({required int index, required bitcoin.HDWallet hd}) => - generateP2WPKHAddress(hd: hd, index: index, networkType: networkType); -} \ No newline at end of file + String getAddress( + {required int index, required bitcoin.HDWallet hd, BitcoinAddressType? addressType}) => + generateP2WPKHAddress(hd: hd, index: index, network: network); +} diff --git a/cw_bitcoin/lib/litecoin_wallet_service.dart b/cw_bitcoin/lib/litecoin_wallet_service.dart index 69d1dfc7e..3d7462fa1 100644 --- a/cw_bitcoin/lib/litecoin_wallet_service.dart +++ b/cw_bitcoin/lib/litecoin_wallet_service.dart @@ -25,7 +25,7 @@ class LitecoinWalletService extends WalletService< WalletType getType() => WalletType.litecoin; @override - Future create(BitcoinNewWalletCredentials credentials) async { + Future create(BitcoinNewWalletCredentials credentials, {bool? isTestnet}) async { final wallet = await LitecoinWalletBase.create( mnemonic: await generateMnemonic(), password: credentials.password!, @@ -94,12 +94,12 @@ class LitecoinWalletService extends WalletService< @override Future restoreFromKeys( - BitcoinRestoreWalletFromWIFCredentials credentials) async => + BitcoinRestoreWalletFromWIFCredentials credentials, {bool? isTestnet}) async => throw UnimplementedError(); @override Future restoreFromSeed( - BitcoinRestoreWalletFromSeedCredentials credentials) async { + BitcoinRestoreWalletFromSeedCredentials credentials, {bool? isTestnet}) async { if (!validateMnemonic(credentials.mnemonic)) { throw BitcoinMnemonicIsIncorrectException(); } diff --git a/cw_bitcoin/lib/pending_bitcoin_transaction.dart b/cw_bitcoin/lib/pending_bitcoin_transaction.dart index e2dc10bfb..fa413febd 100644 --- a/cw_bitcoin/lib/pending_bitcoin_transaction.dart +++ b/cw_bitcoin/lib/pending_bitcoin_transaction.dart @@ -1,5 +1,5 @@ import 'package:cw_bitcoin/bitcoin_commit_transaction_exception.dart'; -import 'package:bitcoin_flutter/bitcoin_flutter.dart' as bitcoin; +import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:cw_core/pending_transaction.dart'; import 'package:cw_bitcoin/electrum.dart'; import 'package:cw_bitcoin/bitcoin_amount_format.dart'; @@ -9,22 +9,21 @@ import 'package:cw_core/wallet_type.dart'; class PendingBitcoinTransaction with PendingTransaction { PendingBitcoinTransaction(this._tx, this.type, - {required this.electrumClient, - required this.amount, - required this.fee}) + {required this.electrumClient, required this.amount, required this.fee, this.network}) : _listeners = []; final WalletType type; - final bitcoin.Transaction _tx; + final BtcTransaction _tx; final ElectrumClient electrumClient; final int amount; final int fee; + final BasedUtxoNetwork? network; @override - String get id => _tx.getId(); + String get id => _tx.txId(); @override - String get hex => _tx.toHex(); + String get hex => _tx.serialize(); @override String get amountFormatted => bitcoinAmountToString(amount: amount); @@ -36,18 +35,16 @@ class PendingBitcoinTransaction with PendingTransaction { @override Future commit() async { - final result = - await electrumClient.broadcastTransaction(transactionRaw: _tx.toHex()); + final result = await electrumClient.broadcastTransaction(transactionRaw: hex, network: network); if (result.isEmpty) { throw BitcoinCommitTransactionException(); } - _listeners?.forEach((listener) => listener(transactionInfo())); + _listeners.forEach((listener) => listener(transactionInfo())); } - void addListener( - void Function(ElectrumTransactionInfo transaction) listener) => + void addListener(void Function(ElectrumTransactionInfo transaction) listener) => _listeners.add(listener); ElectrumTransactionInfo transactionInfo() => ElectrumTransactionInfo(type, diff --git a/cw_bitcoin/lib/script_hash.dart b/cw_bitcoin/lib/script_hash.dart index 76a1bfcf0..620d3d28a 100644 --- a/cw_bitcoin/lib/script_hash.dart +++ b/cw_bitcoin/lib/script_hash.dart @@ -1,9 +1,8 @@ -import 'package:bitcoin_flutter/bitcoin_flutter.dart' as bitcoin; +import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:crypto/crypto.dart'; -String scriptHash(String address, {required bitcoin.NetworkType networkType}) { - final outputScript = - bitcoin.Address.addressToOutputScript(address, networkType); +String scriptHash(String address, {required BasedUtxoNetwork network}) { + final outputScript = addressToOutputScript(address: address, network: network); final parts = sha256.convert(outputScript).toString().split(''); var res = ''; diff --git a/cw_bitcoin/lib/utils.dart b/cw_bitcoin/lib/utils.dart index 0d5a413b3..b156ccba3 100644 --- a/cw_bitcoin/lib/utils.dart +++ b/cw_bitcoin/lib/utils.dart @@ -1,55 +1,33 @@ import 'dart:typed_data'; +import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:flutter/foundation.dart'; import 'package:bitcoin_flutter/bitcoin_flutter.dart' as bitcoin; import 'package:bitcoin_flutter/src/payments/index.dart' show PaymentData; import 'package:hex/hex.dart'; -bitcoin.PaymentData generatePaymentData( - {required bitcoin.HDWallet hd, required int index}) => - PaymentData( - pubkey: Uint8List.fromList(HEX.decode(hd.derive(index).pubKey!))); +bitcoin.PaymentData generatePaymentData({required bitcoin.HDWallet hd, required int index}) => + PaymentData(pubkey: Uint8List.fromList(HEX.decode(hd.derive(index).pubKey!))); -bitcoin.ECPair generateKeyPair( - {required bitcoin.HDWallet hd, - required int index, - required bitcoin.NetworkType network}) => - bitcoin.ECPair.fromWIF(hd.derive(index).wif!, network: network); +ECPrivate generateECPrivate( + {required bitcoin.HDWallet hd, required int index, required BasedUtxoNetwork network}) => + ECPrivate.fromWif(hd.derive(index).wif!, netVersion: network.wifNetVer); String generateP2WPKHAddress( - {required bitcoin.HDWallet hd, - required int index, - required bitcoin.NetworkType networkType}) => - bitcoin - .P2WPKH( - data: PaymentData( - pubkey: - Uint8List.fromList(HEX.decode(hd.derive(index).pubKey!))), - network: networkType) - .data - .address!; + {required bitcoin.HDWallet hd, required int index, required BasedUtxoNetwork network}) => + ECPublic.fromHex(hd.derive(index).pubKey!).toP2wpkhAddress().toAddress(network); -String generateP2WPKHAddressByPath( - {required bitcoin.HDWallet hd, - required String path, - required bitcoin.NetworkType networkType}) => - bitcoin - .P2WPKH( - data: PaymentData( - pubkey: - Uint8List.fromList(HEX.decode(hd.derivePath(path).pubKey!))), - network: networkType) - .data - .address!; +String generateP2SHAddress( + {required bitcoin.HDWallet hd, required int index, required BasedUtxoNetwork network}) => + ECPublic.fromHex(hd.derive(index).pubKey!).toP2wpkhInP2sh().toAddress(network); + +String generateP2WSHAddress( + {required bitcoin.HDWallet hd, required int index, required BasedUtxoNetwork network}) => + ECPublic.fromHex(hd.derive(index).pubKey!).toP2wshAddress().toAddress(network); String generateP2PKHAddress( - {required bitcoin.HDWallet hd, - required int index, - required bitcoin.NetworkType networkType}) => - bitcoin - .P2PKH( - data: PaymentData( - pubkey: - Uint8List.fromList(HEX.decode(hd.derive(index).pubKey!))), - network: networkType) - .data - .address!; + {required bitcoin.HDWallet hd, required int index, required BasedUtxoNetwork network}) => + ECPublic.fromHex(hd.derive(index).pubKey!).toP2pkhAddress().toAddress(network); + +String generateP2TRAddress( + {required bitcoin.HDWallet hd, required int index, required BasedUtxoNetwork network}) => + ECPublic.fromHex(hd.derive(index).pubKey!).toTaprootAddress().toAddress(network); diff --git a/cw_bitcoin/pubspec.lock b/cw_bitcoin/pubspec.lock index 3344cb807..25e6f269d 100644 --- a/cw_bitcoin/pubspec.lock +++ b/cw_bitcoin/pubspec.lock @@ -21,18 +21,18 @@ packages: dependency: transitive description: name: args - sha256: "139d809800a412ebb26a3892da228b2d0ba36f0ef5d9a82166e5e52ec8d61611" + sha256: eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596 url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.4.2" asn1lib: dependency: transitive description: name: asn1lib - sha256: ab96a1cb3beeccf8145c52e449233fe68364c9641623acd3adad66f8184f1039 + sha256: c9c85fedbe2188b95133cbe960e16f5f448860f7133330e272edbbca5893ddc6 url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.5.2" async: dependency: transitive description: @@ -75,6 +75,15 @@ packages: url: "https://github.com/cake-tech/bitbox-flutter.git" source: git version: "1.0.1" + bitcoin_base: + dependency: "direct main" + description: + path: "." + ref: cake-update-v1 + resolved-ref: "9611e9db77e92a8434e918cdfb620068f6fcb1aa" + url: "https://github.com/cake-tech/bitcoin_base.git" + source: git + version: "4.0.0" bitcoin_flutter: dependency: "direct main" description: @@ -84,6 +93,14 @@ packages: url: "https://github.com/cake-tech/bitcoin_flutter.git" source: git version: "2.1.0" + blockchain_utils: + dependency: "direct main" + description: + name: blockchain_utils + sha256: "9701dfaa74caad4daae1785f1ec4445cf7fb94e45620bc3a4aca1b9b281dc6c9" + url: "https://pub.dev" + source: hosted + version: "1.6.0" boolean_selector: dependency: transitive description: @@ -104,10 +121,10 @@ packages: dependency: transitive description: name: build - sha256: "3fbda25365741f8251b39f3917fb3c8e286a96fd068a5a242e11c2012d495777" + sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.4.1" build_config: dependency: transitive description: @@ -120,10 +137,10 @@ packages: dependency: transitive description: name: build_daemon - sha256: "6bc5544ea6ce4428266e7ea680e945c68806c4aae2da0eb5e9ccf38df8d6acbf" + sha256: "0343061a33da9c5810b2d6cee51945127d8f4c060b7fbdd9d54917f0a3feaaa1" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "4.0.1" build_resolvers: dependency: "direct dev" description: @@ -136,18 +153,18 @@ packages: dependency: "direct dev" description: name: build_runner - sha256: b0a8a7b8a76c493e85f1b84bffa0588859a06197863dba8c9036b15581fd9727 + sha256: "581bacf68f89ec8792f5e5a0b2c4decd1c948e97ce659dc783688c8a88fbec21" url: "https://pub.dev" source: hosted - version: "2.3.3" + version: "2.4.8" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: "14febe0f5bac5ae474117a36099b4de6f1dbc52df6c5e55534b3da9591bf4292" + sha256: "6d6ee4276b1c5f34f21fdf39425202712d2be82019983d52f351c94aafbc2c41" url: "https://pub.dev" source: hosted - version: "7.2.7" + version: "7.2.10" built_collection: dependency: transitive description: @@ -160,10 +177,10 @@ packages: dependency: transitive description: name: built_value - sha256: "169565c8ad06adb760c3645bf71f00bff161b00002cace266cad42c5d22a7725" + sha256: a3ec2e0f967bc47f69f95009bb93db936288d61d5343b9436e378b28a2f830c6 url: "https://pub.dev" source: hosted - version: "8.4.3" + version: "8.9.0" characters: dependency: transitive description: @@ -176,10 +193,10 @@ packages: dependency: transitive description: name: checked_yaml - sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311" + sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff url: "https://pub.dev" source: hosted - version: "2.0.2" + version: "2.0.3" clock: dependency: transitive description: @@ -192,10 +209,10 @@ packages: dependency: transitive description: name: code_builder - sha256: "0d43dd1288fd145de1ecc9a3948ad4a6d5a82f0a14c4fdd0892260787d975cbe" + sha256: f692079e25e7869c14132d39f223f8eec9830eb76131925143b2129c4bb01b37 url: "https://pub.dev" source: hosted - version: "4.4.0" + version: "4.10.0" collection: dependency: transitive description: @@ -216,18 +233,18 @@ packages: dependency: transitive description: name: crypto - sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 + sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.3" cryptography: dependency: "direct main" description: name: cryptography - sha256: e0e37f79665cd5c86e8897f9abe1accfe813c0cc5299dab22256e22fddc1fef8 + sha256: df156c5109286340817d21fa7b62f9140f17915077127dd70f8bd7a2a0997a35 url: "https://pub.dev" source: hosted - version: "2.0.5" + version: "2.5.0" cw_core: dependency: "direct main" description: @@ -247,10 +264,10 @@ packages: dependency: transitive description: name: encrypt - sha256: "4fd4e4fdc21b9d7d4141823e1e6515cd94e7b8d84749504c232999fba25d9bbb" + sha256: "62d9aa4670cc2a8798bab89b39fc71b6dfbacf615de6cf5001fb39f7e4a996a2" url: "https://pub.dev" source: hosted - version: "5.0.1" + version: "5.0.3" fake_async: dependency: transitive description: @@ -263,10 +280,10 @@ packages: dependency: transitive description: name: ffi - sha256: a38574032c5f1dd06c4aee541789906c12ccaab8ba01446e800d9c5b79c4a978 + sha256: "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "2.1.0" file: dependency: transitive description: @@ -292,10 +309,10 @@ packages: dependency: "direct main" description: name: flutter_mobx - sha256: "0da4add0016387a7bf309a0d0c41d36c6b3ae25ed7a176409267f166509e723e" + sha256: "4a5d062ff85ed3759f4aac6410ff0ffae32e324b2e71ca722ae1b37b32e865f4" url: "https://pub.dev" source: hosted - version: "2.0.6+5" + version: "2.2.0+2" flutter_test: dependency: "direct dev" description: flutter @@ -313,18 +330,18 @@ packages: dependency: transitive description: name: glob - sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c" + sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" graphs: dependency: transitive description: name: graphs - sha256: f9e130f3259f52d26f0cfc0e964513796dafed572fa52e45d2f8d6ca14db39b2 + sha256: aedc5a15e78fc65a6e23bcd927f24c64dd995062bcd1ca6eda65a3cff92a4d19 url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.3.1" hex: dependency: transitive description: @@ -401,18 +418,18 @@ packages: dependency: transitive description: name: json_annotation - sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317 + sha256: b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467 url: "https://pub.dev" source: hosted - version: "4.8.0" + version: "4.8.1" logging: dependency: transitive description: name: logging - sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d" + sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340" url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.2.0" matcher: dependency: transitive description: @@ -449,18 +466,26 @@ packages: dependency: "direct main" description: name: mobx - sha256: f1862bd92c6a903fab67338f27e2f731117c3cb9ea37cee1a487f9e4e0de314a + sha256: "74ee54012dc7c1b3276eaa960a600a7418ef5f9997565deb8fca1fd88fb36b78" url: "https://pub.dev" source: hosted - version: "2.1.3+1" + version: "2.3.0+1" mobx_codegen: dependency: "direct dev" description: name: mobx_codegen - sha256: "86122e410d8ea24dda0c69adb5c2a6ccadd5ce02ad46e144764e0d0184a06181" + sha256: d4beb9cea4b7b014321235f8fdc7c2193ee0fe1d1198e9da7403f8bc85c4407c url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.3.0" + nested: + dependency: transitive + description: + name: nested + sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" + url: "https://pub.dev" + source: hosted + version: "1.0.0" package_config: dependency: transitive description: @@ -481,26 +506,26 @@ packages: dependency: "direct main" description: name: path_provider - sha256: a1aa8aaa2542a6bc57e381f132af822420216c80d4781f7aa085ca3229208aaa + sha256: b27217933eeeba8ff24845c34003b003b2b22151de3c908d0e679e8fe1aa078b url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" path_provider_android: dependency: transitive description: name: path_provider_android - sha256: e595b98692943b4881b219f0a9e3945118d3c16bd7e2813f98ec6e532d905f72 + sha256: "477184d672607c0a3bf68fbbf601805f92ef79c82b64b4d6eb318cbca4c48668" url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.2.2" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: "19314d595120f82aca0ba62787d58dde2cc6b5df7d2f0daf72489e38d1b57f2d" + sha256: "5a7999be66e000916500be4f15a3633ebceb8302719b47b9cc49ce924125350f" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.2" path_provider_linux: dependency: transitive description: @@ -513,10 +538,10 @@ packages: dependency: transitive description: name: path_provider_platform_interface - sha256: "94b1e0dd80970c1ce43d5d4e050a9918fce4f4a775e6142424c30a29a363265c" + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" path_provider_windows: dependency: transitive description: @@ -529,26 +554,26 @@ packages: dependency: transitive description: name: platform - sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76" + sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.1.4" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface - sha256: dbf0f707c78beedc9200146ad3cb0ab4d5da13c246336987be6940f026500d3a + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.1.8" pointycastle: dependency: transitive description: name: pointycastle - sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346 + sha256: "43ac87de6e10afabc85c445745a7b799e04de84cebaa4fd7bf55a5e1e9604d29" url: "https://pub.dev" source: hosted - version: "3.6.2" + version: "3.7.4" pool: dependency: transitive description: @@ -557,30 +582,30 @@ packages: url: "https://pub.dev" source: hosted version: "1.5.1" - process: + provider: dependency: transitive description: - name: process - sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09" + name: provider + sha256: "9a96a0a19b594dbc5bf0f1f27d2bc67d5f95957359b461cd9feb44ed6ae75096" url: "https://pub.dev" source: hosted - version: "4.2.4" + version: "6.1.1" pub_semver: dependency: transitive description: name: pub_semver - sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17" + sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c" url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.1.4" pubspec_parse: dependency: transitive description: name: pubspec_parse - sha256: "75f6614d6dde2dc68948dffbaa4fe5dae32cd700eb9fb763fe11dfb45a3c4d0a" + sha256: c63b2876e58e194e4b0828fcb080ad0e06d051cb607a6be51a9e084f47cb9367 url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.2.3" rxdart: dependency: "direct main" description: @@ -593,18 +618,18 @@ packages: dependency: transitive description: name: shelf - sha256: c24a96135a2ccd62c64b69315a14adc5c3419df63b4d7c05832a346fdb73682c + sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.4.1" shelf_web_socket: dependency: transitive description: name: shelf_web_socket - sha256: a988c0e8d8ffbdb8a28aa7ec8e449c260f3deb808781fe1284d22c5bba7156e8 + sha256: "9ca081be41c60190ebcb4766b2486a7d50261db7bd0f5d9615f2d653637a84c1" url: "https://pub.dev" source: hosted - version: "1.0.3" + version: "1.0.4" sky_engine: dependency: transitive description: flutter @@ -702,10 +727,10 @@ packages: dependency: transitive description: name: typed_data - sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" + sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c url: "https://pub.dev" source: hosted - version: "1.3.1" + version: "1.3.2" unorm_dart: dependency: "direct main" description: @@ -726,42 +751,42 @@ packages: dependency: transitive description: name: watcher - sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0" + sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" url: "https://pub.dev" source: hosted - version: "1.0.2" + version: "1.1.0" web_socket_channel: dependency: transitive description: name: web_socket_channel - sha256: ca49c0bc209c687b887f30527fb6a9d80040b072cc2990f34b9bec3e7663101b + sha256: d88238e5eac9a42bb43ca4e721edba3c08c6354d4a53063afaa568516217621b url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "2.4.0" win32: dependency: transitive description: name: win32 - sha256: c9ebe7ee4ab0c2194e65d3a07d8c54c5d00bb001b76081c4a04cdb8448b59e46 + sha256: "350a11abd2d1d97e0cc7a28a81b781c08002aa2864d9e3f192ca0ffa18b06ed3" url: "https://pub.dev" source: hosted - version: "3.1.3" + version: "5.0.9" xdg_directories: dependency: transitive description: name: xdg_directories - sha256: bd512f03919aac5f1313eb8249f223bacf4927031bf60b02601f81f687689e86 + sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d url: "https://pub.dev" source: hosted - version: "0.2.0+3" + version: "1.0.4" yaml: dependency: transitive description: name: yaml - sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" + sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" url: "https://pub.dev" source: hosted - version: "3.1.1" + version: "3.1.2" sdks: dart: ">=3.0.0 <4.0.0" - flutter: ">=3.7.0" + flutter: ">=3.10.0" diff --git a/cw_bitcoin/pubspec.yaml b/cw_bitcoin/pubspec.yaml index a50ff68ad..847b77773 100644 --- a/cw_bitcoin/pubspec.yaml +++ b/cw_bitcoin/pubspec.yaml @@ -30,6 +30,11 @@ dependencies: rxdart: ^0.27.5 unorm_dart: ^0.2.0 cryptography: ^2.0.5 + bitcoin_base: + git: + url: https://github.com/cake-tech/bitcoin_base.git + ref: cake-update-v1 + blockchain_utils: ^1.6.0 dev_dependencies: flutter_test: diff --git a/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet.dart b/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet.dart index 1b87e2231..3c40cf9e9 100644 --- a/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet.dart +++ b/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet.dart @@ -28,17 +28,18 @@ part 'bitcoin_cash_wallet.g.dart'; class BitcoinCashWallet = BitcoinCashWalletBase with _$BitcoinCashWallet; abstract class BitcoinCashWalletBase extends ElectrumWallet with Store { - BitcoinCashWalletBase( - {required String mnemonic, - required String password, - required WalletInfo walletInfo, - required Box unspentCoinsInfo, - required Uint8List seedBytes, - List? initialAddresses, - ElectrumBalance? initialBalance, - int initialRegularAddressIndex = 0, - int initialChangeAddressIndex = 0}) - : super( + BitcoinCashWalletBase({ + required String mnemonic, + required String password, + required WalletInfo walletInfo, + required Box unspentCoinsInfo, + required Uint8List seedBytes, + String? addressPageType, + List? initialAddresses, + ElectrumBalance? initialBalance, + Map? initialRegularAddressIndex, + Map? initialChangeAddressIndex, + }) : super( mnemonic: mnemonic, password: password, walletInfo: walletInfo, @@ -48,40 +49,43 @@ abstract class BitcoinCashWalletBase extends ElectrumWallet with Store { initialBalance: initialBalance, seedBytes: seedBytes, currency: CryptoCurrency.bch) { - walletAddresses = BitcoinCashWalletAddresses(walletInfo, - electrumClient: electrumClient, - initialAddresses: initialAddresses, - initialRegularAddressIndex: initialRegularAddressIndex, - initialChangeAddressIndex: initialChangeAddressIndex, - mainHd: hd, - sideHd: bitcoin.HDWallet.fromSeed(seedBytes) - .derivePath("m/44'/145'/0'/1"), - networkType: networkType); + walletAddresses = BitcoinCashWalletAddresses( + walletInfo, + electrumClient: electrumClient, + initialAddresses: initialAddresses, + initialRegularAddressIndex: initialRegularAddressIndex, + initialChangeAddressIndex: initialChangeAddressIndex, + mainHd: hd, + sideHd: bitcoin.HDWallet.fromSeed(seedBytes).derivePath("m/44'/145'/0'/1"), + network: network, + ); autorun((_) { this.walletAddresses.isEnabledAutoGenerateSubaddress = this.isEnabledAutoGenerateSubaddress; }); } - static Future create( {required String mnemonic, required String password, required WalletInfo walletInfo, required Box unspentCoinsInfo, + String? addressPageType, List? initialAddresses, ElectrumBalance? initialBalance, - int initialRegularAddressIndex = 0, - int initialChangeAddressIndex = 0}) async { + Map? initialRegularAddressIndex, + Map? initialChangeAddressIndex}) async { return BitcoinCashWallet( - mnemonic: mnemonic, - password: password, - walletInfo: walletInfo, - unspentCoinsInfo: unspentCoinsInfo, - initialAddresses: initialAddresses, - initialBalance: initialBalance, - seedBytes: await Mnemonic.toSeed(mnemonic), - initialRegularAddressIndex: initialRegularAddressIndex, - initialChangeAddressIndex: initialChangeAddressIndex); + mnemonic: mnemonic, + password: password, + walletInfo: walletInfo, + unspentCoinsInfo: unspentCoinsInfo, + initialAddresses: initialAddresses, + initialBalance: initialBalance, + seedBytes: await Mnemonic.toSeed(mnemonic), + initialRegularAddressIndex: initialRegularAddressIndex, + initialChangeAddressIndex: initialChangeAddressIndex, + addressPageType: addressPageType, + ); } static Future open({ @@ -90,17 +94,20 @@ abstract class BitcoinCashWalletBase extends ElectrumWallet with Store { required Box unspentCoinsInfo, required String password, }) async { - final snp = await ElectrumWallletSnapshot.load(name, walletInfo.type, password); + final snp = await ElectrumWalletSnapshot.load( + name, walletInfo.type, password, BitcoinCashNetwork.mainnet); return BitcoinCashWallet( - mnemonic: snp.mnemonic, - password: password, - walletInfo: walletInfo, - unspentCoinsInfo: unspentCoinsInfo, - initialAddresses: snp.addresses, - initialBalance: snp.balance, - seedBytes: await Mnemonic.toSeed(snp.mnemonic), - initialRegularAddressIndex: snp.regularAddressIndex, - initialChangeAddressIndex: snp.changeAddressIndex); + mnemonic: snp.mnemonic, + password: password, + walletInfo: walletInfo, + unspentCoinsInfo: unspentCoinsInfo, + initialAddresses: snp.addresses, + initialBalance: snp.balance, + seedBytes: await Mnemonic.toSeed(snp.mnemonic), + initialRegularAddressIndex: snp.regularAddressIndex, + initialChangeAddressIndex: snp.changeAddressIndex, + addressPageType: snp.addressPageType, + ); } @override @@ -270,20 +277,18 @@ abstract class BitcoinCashWalletBase extends ElectrumWallet with Store { electrumClient: electrumClient, amount: amount, fee: fee); } - bitbox.ECPair generateKeyPair( - {required bitcoin.HDWallet hd, - required int index}) => + bitbox.ECPair generateKeyPair({required bitcoin.HDWallet hd, required int index}) => bitbox.ECPair.fromWIF(hd.derive(index).wif!); @override - int feeAmountForPriority( - BitcoinTransactionPriority priority, int inputsCount, int outputsCount) => + int feeAmountForPriority(BitcoinTransactionPriority priority, int inputsCount, int outputsCount, + {int? size}) => feeRate(priority) * bitbox.BitcoinCash.getByteCount(inputsCount, outputsCount); - int feeAmountWithFeeRate(int feeRate, int inputsCount, int outputsCount) => + int feeAmountWithFeeRate(int feeRate, int inputsCount, int outputsCount, {int? size}) => feeRate * bitbox.BitcoinCash.getByteCount(inputsCount, outputsCount); - int calculateEstimatedFeeWithFeeRate(int feeRate, int? amount, {int? outputsCount}) { + int calculateEstimatedFeeWithFeeRate(int feeRate, int? amount, {int? outputsCount, int? size}) { int inputsCount = 0; int totalValue = 0; @@ -323,9 +328,10 @@ abstract class BitcoinCashWalletBase extends ElectrumWallet with Store { @override String signMessage(String message, {String? address = null}) { final index = address != null - ? walletAddresses.addresses + ? walletAddresses.allAddresses .firstWhere((element) => element.address == AddressUtils.toLegacyAddress(address)) - .index : null; + .index + : null; final HD = index == null ? hd : hd.derive(index); return base64Encode(HD.signMessage(message)); } diff --git a/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet_addresses.dart b/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet_addresses.dart index 1709c4d8f..8291ce2a5 100644 --- a/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet_addresses.dart +++ b/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet_addresses.dart @@ -1,6 +1,5 @@ +import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:bitcoin_flutter/bitcoin_flutter.dart' as bitcoin; -import 'package:cw_bitcoin/bitcoin_address_record.dart'; -import 'package:cw_bitcoin/electrum.dart'; import 'package:cw_bitcoin/electrum_wallet_addresses.dart'; import 'package:cw_bitcoin/utils.dart'; import 'package:cw_core/wallet_info.dart'; @@ -11,24 +10,19 @@ part 'bitcoin_cash_wallet_addresses.g.dart'; class BitcoinCashWalletAddresses = BitcoinCashWalletAddressesBase with _$BitcoinCashWalletAddresses; abstract class BitcoinCashWalletAddressesBase extends ElectrumWalletAddresses with Store { - BitcoinCashWalletAddressesBase(WalletInfo walletInfo, - {required bitcoin.HDWallet mainHd, - required bitcoin.HDWallet sideHd, - required bitcoin.NetworkType networkType, - required ElectrumClient electrumClient, - List? initialAddresses, - int initialRegularAddressIndex = 0, - int initialChangeAddressIndex = 0}) - : super(walletInfo, - initialAddresses: initialAddresses, - initialRegularAddressIndex: initialRegularAddressIndex, - initialChangeAddressIndex: initialChangeAddressIndex, - mainHd: mainHd, - sideHd: sideHd, - electrumClient: electrumClient, - networkType: networkType); + BitcoinCashWalletAddressesBase( + WalletInfo walletInfo, { + required super.mainHd, + required super.sideHd, + required super.network, + required super.electrumClient, + super.initialAddresses, + super.initialRegularAddressIndex, + super.initialChangeAddressIndex, + }) : super(walletInfo); @override - String getAddress({required int index, required bitcoin.HDWallet hd}) => - generateP2PKHAddress(hd: hd, index: index, networkType: networkType); + String getAddress( + {required int index, required bitcoin.HDWallet hd, BitcoinAddressType? addressType}) => + generateP2PKHAddress(hd: hd, index: index, network: network); } diff --git a/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet_service.dart b/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet_service.dart index f66e38ca7..df8e841f8 100644 --- a/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet_service.dart +++ b/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet_service.dart @@ -2,10 +2,7 @@ import 'dart:io'; import 'package:bip39/bip39.dart'; import 'package:cw_bitcoin_cash/cw_bitcoin_cash.dart'; -import 'package:cw_core/balance.dart'; import 'package:cw_core/pathForWallet.dart'; -import 'package:cw_core/transaction_history.dart'; -import 'package:cw_core/transaction_info.dart'; import 'package:cw_core/unspent_coins_info.dart'; import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/wallet_info.dart'; @@ -15,8 +12,7 @@ import 'package:collection/collection.dart'; import 'package:hive/hive.dart'; class BitcoinCashWalletService extends WalletService { + BitcoinCashRestoreWalletFromSeedCredentials, BitcoinCashRestoreWalletFromWIFCredentials> { BitcoinCashWalletService(this.walletInfoSource, this.unspentCoinsInfoSource); final Box walletInfoSource; @@ -30,13 +26,9 @@ class BitcoinCashWalletService extends WalletService create( - credentials) async { - final strength = (credentials.seedPhraseLength == 12) - ? 128 - : (credentials.seedPhraseLength == 24) - ? 256 - : 128; + Future create(credentials, {bool? isTestnet}) async { + final strength = credentials.seedPhraseLength == 24 ? 256 : 128; + final wallet = await BitcoinCashWalletBase.create( mnemonic: await Mnemonic.generate(strength: strength), password: credentials.password!, @@ -49,21 +41,25 @@ class BitcoinCashWalletService extends WalletService openWallet(String name, String password) async { - final walletInfo = walletInfoSource.values.firstWhereOrNull( - (info) => info.id == WalletBase.idFor(name, getType()))!; + final walletInfo = walletInfoSource.values + .firstWhereOrNull((info) => info.id == WalletBase.idFor(name, getType()))!; try { final wallet = await BitcoinCashWalletBase.open( - password: password, name: name, walletInfo: walletInfo, + password: password, + name: name, + walletInfo: walletInfo, unspentCoinsInfo: unspentCoinsInfoSource); await wallet.init(); saveBackup(name); return wallet; - } catch(_) { + } catch (_) { await restoreWalletFilesFromBackup(name); final wallet = await BitcoinCashWalletBase.open( - password: password, name: name, walletInfo: walletInfo, - unspentCoinsInfo: unspentCoinsInfoSource); + password: password, + name: name, + walletInfo: walletInfo, + unspentCoinsInfo: unspentCoinsInfoSource); await wallet.init(); return wallet; } @@ -71,17 +67,16 @@ class BitcoinCashWalletService extends WalletService remove(String wallet) async { - File(await pathForWalletDir(name: wallet, type: getType())) - .delete(recursive: true); - final walletInfo = walletInfoSource.values.firstWhereOrNull( - (info) => info.id == WalletBase.idFor(wallet, getType()))!; + File(await pathForWalletDir(name: wallet, type: getType())).delete(recursive: true); + final walletInfo = walletInfoSource.values + .firstWhereOrNull((info) => info.id == WalletBase.idFor(wallet, getType()))!; await walletInfoSource.delete(walletInfo.key); } @override Future rename(String currentName, String password, String newName) async { - final currentWalletInfo = walletInfoSource.values.firstWhereOrNull( - (info) => info.id == WalletBase.idFor(currentName, getType()))!; + final currentWalletInfo = walletInfoSource.values + .firstWhereOrNull((info) => info.id == WalletBase.idFor(currentName, getType()))!; final currentWallet = await BitcoinCashWalletBase.open( password: password, name: currentName, @@ -99,15 +94,14 @@ class BitcoinCashWalletService extends WalletService - restoreFromKeys(credentials) { + Future restoreFromKeys(credentials, {bool? isTestnet}) { // TODO: implement restoreFromKeys throw UnimplementedError('restoreFromKeys() is not implemented'); } @override - Future restoreFromSeed( - BitcoinCashRestoreWalletFromSeedCredentials credentials) async { + Future restoreFromSeed(BitcoinCashRestoreWalletFromSeedCredentials credentials, + {bool? isTestnet}) async { if (!validateMnemonic(credentials.mnemonic)) { throw BitcoinCashMnemonicIsIncorrectException(); } diff --git a/cw_bitcoin_cash/pubspec.yaml b/cw_bitcoin_cash/pubspec.yaml index 49a5efb15..9c098c0ff 100644 --- a/cw_bitcoin_cash/pubspec.yaml +++ b/cw_bitcoin_cash/pubspec.yaml @@ -29,7 +29,10 @@ dependencies: git: url: https://github.com/cake-tech/bitbox-flutter.git ref: master - bitcoin_base: ^3.0.1 + bitcoin_base: + git: + url: https://github.com/cake-tech/bitcoin_base.git + ref: cake-update-v1 diff --git a/cw_core/lib/enumerate.dart b/cw_core/lib/enumerate.dart new file mode 100644 index 000000000..d92347e91 --- /dev/null +++ b/cw_core/lib/enumerate.dart @@ -0,0 +1,13 @@ +abstract class Enumerate { + String get value; + + @override + operator ==(other) { + if (identical(other, this)) return true; + if (other is! Enumerate) return false; + return other.runtimeType == runtimeType && value == other.value; + } + + @override + int get hashCode => value.hashCode; +} diff --git a/cw_core/lib/receive_page_option.dart b/cw_core/lib/receive_page_option.dart new file mode 100644 index 000000000..786d07bc5 --- /dev/null +++ b/cw_core/lib/receive_page_option.dart @@ -0,0 +1,21 @@ +import 'package:cw_core/enumerate.dart'; + +class ReceivePageOption implements Enumerate { + static const mainnet = ReceivePageOption._('mainnet'); + static const anonPayInvoice = ReceivePageOption._('anonPayInvoice'); + static const anonPayDonationLink = ReceivePageOption._('anonPayDonationLink'); + + const ReceivePageOption._(this.value); + + final String value; + + String toString() { + return value; + } +} + +const ReceivePageOptions = [ + ReceivePageOption.mainnet, + ReceivePageOption.anonPayInvoice, + ReceivePageOption.anonPayDonationLink +]; diff --git a/cw_core/lib/wallet_base.dart b/cw_core/lib/wallet_base.dart index 09b423c14..49f1bdc94 100644 --- a/cw_core/lib/wallet_base.dart +++ b/cw_core/lib/wallet_base.dart @@ -88,4 +88,6 @@ abstract class WalletBase renameWalletFiles(String newWalletName); String signMessage(String message, {String? address = null}) => throw UnimplementedError(); + + bool? isTestnet; } diff --git a/cw_core/lib/wallet_info.dart b/cw_core/lib/wallet_info.dart index c4ccea00a..2a44175a7 100644 --- a/cw_core/lib/wallet_info.dart +++ b/cw_core/lib/wallet_info.dart @@ -148,6 +148,12 @@ class WalletInfo extends HiveObject { @HiveField(17) String? derivationPath; + @HiveField(18) + String? addressPageType; + + @HiveField(19) + String? network; + String get yatLastUsedAddress => yatLastUsedAddressRaw ?? ''; set yatLastUsedAddress(String address) { diff --git a/cw_core/lib/wallet_service.dart b/cw_core/lib/wallet_service.dart index 3b4908386..22981b9db 100644 --- a/cw_core/lib/wallet_service.dart +++ b/cw_core/lib/wallet_service.dart @@ -9,11 +9,11 @@ abstract class WalletService { WalletType getType(); - Future create(N credentials); + Future create(N credentials, {bool? isTestnet}); - Future restoreFromSeed(RFS credentials); + Future restoreFromSeed(RFS credentials, {bool? isTestnet}); - Future restoreFromKeys(RFK credentials); + Future restoreFromKeys(RFK credentials, {bool? isTestnet}); Future openWallet(String name, String password); diff --git a/cw_core/pubspec.lock b/cw_core/pubspec.lock index aacbd9ddd..678e57b54 100644 --- a/cw_core/pubspec.lock +++ b/cw_core/pubspec.lock @@ -5,34 +5,34 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: "4897882604d919befd350648c7f91926a9d5de99e67b455bf0917cc2362f4bb8" + sha256: eb376e9acf6938204f90eb3b1f00b578640d3188b4c8a8ec054f9f479af8d051 url: "https://pub.dev" source: hosted - version: "47.0.0" + version: "64.0.0" analyzer: dependency: transitive description: name: analyzer - sha256: "690e335554a8385bc9d787117d9eb52c0c03ee207a607e593de3c9d71b1cfe80" + sha256: "69f54f967773f6c26c7dcb13e93d7ccee8b17a641689da39e878d5cf13b06893" url: "https://pub.dev" source: hosted - version: "4.7.0" + version: "6.2.0" args: dependency: transitive description: name: args - sha256: "139d809800a412ebb26a3892da228b2d0ba36f0ef5d9a82166e5e52ec8d61611" + sha256: eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596 url: "https://pub.dev" source: hosted - version: "2.3.2" + version: "2.4.2" asn1lib: dependency: transitive description: name: asn1lib - sha256: ab96a1cb3beeccf8145c52e449233fe68364c9641623acd3adad66f8184f1039 + sha256: "21afe4333076c02877d14f4a89df111e658a6d466cbfc802eb705eb91bd5adfd" url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.5.0" async: dependency: transitive description: @@ -53,10 +53,10 @@ packages: dependency: transitive description: name: build - sha256: "3fbda25365741f8251b39f3917fb3c8e286a96fd068a5a242e11c2012d495777" + sha256: "80184af8b6cb3e5c1c4ec6d8544d27711700bc3e6d2efad04238c7b5290889f0" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.4.1" build_config: dependency: transitive description: @@ -69,34 +69,34 @@ packages: dependency: transitive description: name: build_daemon - sha256: "6bc5544ea6ce4428266e7ea680e945c68806c4aae2da0eb5e9ccf38df8d6acbf" + sha256: "0343061a33da9c5810b2d6cee51945127d8f4c060b7fbdd9d54917f0a3feaaa1" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "4.0.1" build_resolvers: dependency: "direct dev" description: name: build_resolvers - sha256: "687cf90a3951affac1bd5f9ecb5e3e90b60487f3d9cdc359bb310f8876bb02a6" + sha256: "339086358431fa15d7eca8b6a36e5d783728cf025e559b834f4609a1fcfb7b0a" url: "https://pub.dev" source: hosted - version: "2.0.10" + version: "2.4.2" build_runner: dependency: "direct dev" description: name: build_runner - sha256: b0a8a7b8a76c493e85f1b84bffa0588859a06197863dba8c9036b15581fd9727 + sha256: "581bacf68f89ec8792f5e5a0b2c4decd1c948e97ce659dc783688c8a88fbec21" url: "https://pub.dev" source: hosted - version: "2.3.3" + version: "2.4.8" build_runner_core: dependency: transitive description: name: build_runner_core - sha256: "14febe0f5bac5ae474117a36099b4de6f1dbc52df6c5e55534b3da9591bf4292" + sha256: c9e32d21dd6626b5c163d48b037ce906bbe428bc23ab77bcd77bb21e593b6185 url: "https://pub.dev" source: hosted - version: "7.2.7" + version: "7.2.11" built_collection: dependency: transitive description: @@ -109,10 +109,10 @@ packages: dependency: transitive description: name: built_value - sha256: "169565c8ad06adb760c3645bf71f00bff161b00002cace266cad42c5d22a7725" + sha256: c9aabae0718ec394e5bc3c7272e6bb0dc0b32201a08fe185ec1d8401d3e39309 url: "https://pub.dev" source: hosted - version: "8.4.3" + version: "8.8.1" characters: dependency: transitive description: @@ -125,10 +125,10 @@ packages: dependency: transitive description: name: checked_yaml - sha256: "3d1505d91afa809d177efd4eed5bb0eb65805097a1463abdd2add076effae311" + sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff url: "https://pub.dev" source: hosted - version: "2.0.2" + version: "2.0.3" clock: dependency: transitive description: @@ -141,10 +141,10 @@ packages: dependency: transitive description: name: code_builder - sha256: "0d43dd1288fd145de1ecc9a3948ad4a6d5a82f0a14c4fdd0892260787d975cbe" + sha256: f692079e25e7869c14132d39f223f8eec9830eb76131925143b2129c4bb01b37 url: "https://pub.dev" source: hosted - version: "4.4.0" + version: "4.10.0" collection: dependency: transitive description: @@ -165,26 +165,26 @@ packages: dependency: transitive description: name: crypto - sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 + sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.3" dart_style: dependency: transitive description: name: dart_style - sha256: "7a03456c3490394c8e7665890333e91ae8a49be43542b616e414449ac358acd4" + sha256: "40ae61a5d43feea6d24bd22c0537a6629db858963b99b4bc1c3db80676f32368" url: "https://pub.dev" source: hosted - version: "2.2.4" + version: "2.3.4" encrypt: dependency: "direct main" description: name: encrypt - sha256: "4fd4e4fdc21b9d7d4141823e1e6515cd94e7b8d84749504c232999fba25d9bbb" + sha256: "62d9aa4670cc2a8798bab89b39fc71b6dfbacf615de6cf5001fb39f7e4a996a2" url: "https://pub.dev" source: hosted - version: "5.0.1" + version: "5.0.3" fake_async: dependency: transitive description: @@ -197,10 +197,10 @@ packages: dependency: transitive description: name: ffi - sha256: a38574032c5f1dd06c4aee541789906c12ccaab8ba01446e800d9c5b79c4a978 + sha256: "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878" url: "https://pub.dev" source: hosted - version: "2.0.1" + version: "2.1.0" file: dependency: "direct main" description: @@ -226,10 +226,10 @@ packages: dependency: "direct main" description: name: flutter_mobx - sha256: "0da4add0016387a7bf309a0d0c41d36c6b3ae25ed7a176409267f166509e723e" + sha256: "4a5d062ff85ed3759f4aac6410ff0ffae32e324b2e71ca722ae1b37b32e865f4" url: "https://pub.dev" source: hosted - version: "2.0.6+5" + version: "2.2.0+2" flutter_test: dependency: "direct dev" description: flutter @@ -247,18 +247,18 @@ packages: dependency: transitive description: name: glob - sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c" + sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" graphs: dependency: transitive description: name: graphs - sha256: f9e130f3259f52d26f0cfc0e964513796dafed572fa52e45d2f8d6ca14db39b2 + sha256: aedc5a15e78fc65a6e23bcd927f24c64dd995062bcd1ca6eda65a3cff92a4d19 url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.3.1" hive: dependency: transitive description: @@ -327,18 +327,18 @@ packages: dependency: transitive description: name: json_annotation - sha256: c33da08e136c3df0190bd5bbe51ae1df4a7d96e7954d1d7249fea2968a72d317 + sha256: b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467 url: "https://pub.dev" source: hosted - version: "4.8.0" + version: "4.8.1" logging: dependency: transitive description: name: logging - sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d" + sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340" url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.2.0" matcher: dependency: transitive description: @@ -375,18 +375,26 @@ packages: dependency: "direct main" description: name: mobx - sha256: f1862bd92c6a903fab67338f27e2f731117c3cb9ea37cee1a487f9e4e0de314a + sha256: "74ee54012dc7c1b3276eaa960a600a7418ef5f9997565deb8fca1fd88fb36b78" url: "https://pub.dev" source: hosted - version: "2.1.3+1" + version: "2.3.0+1" mobx_codegen: dependency: "direct dev" description: name: mobx_codegen - sha256: "86122e410d8ea24dda0c69adb5c2a6ccadd5ce02ad46e144764e0d0184a06181" + sha256: b26c7f9c20b38f0ea572c1ed3f29d8e027cb265538bbd1aed3ec198642cfca42 url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.6.0+1" + nested: + dependency: transitive + description: + name: nested + sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" + url: "https://pub.dev" + source: hosted + version: "1.0.0" package_config: dependency: transitive description: @@ -407,26 +415,26 @@ packages: dependency: "direct main" description: name: path_provider - sha256: a1aa8aaa2542a6bc57e381f132af822420216c80d4781f7aa085ca3229208aaa + sha256: b27217933eeeba8ff24845c34003b003b2b22151de3c908d0e679e8fe1aa078b url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" path_provider_android: dependency: transitive description: name: path_provider_android - sha256: e595b98692943b4881b219f0a9e3945118d3c16bd7e2813f98ec6e532d905f72 + sha256: "477184d672607c0a3bf68fbbf601805f92ef79c82b64b4d6eb318cbca4c48668" url: "https://pub.dev" source: hosted - version: "2.2.1" + version: "2.2.2" path_provider_foundation: dependency: transitive description: name: path_provider_foundation - sha256: "19314d595120f82aca0ba62787d58dde2cc6b5df7d2f0daf72489e38d1b57f2d" + sha256: "5a7999be66e000916500be4f15a3633ebceb8302719b47b9cc49ce924125350f" url: "https://pub.dev" source: hosted - version: "2.3.1" + version: "2.3.2" path_provider_linux: dependency: transitive description: @@ -439,10 +447,10 @@ packages: dependency: transitive description: name: path_provider_platform_interface - sha256: "94b1e0dd80970c1ce43d5d4e050a9918fce4f4a775e6142424c30a29a363265c" + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" url: "https://pub.dev" source: hosted - version: "2.1.1" + version: "2.1.2" path_provider_windows: dependency: transitive description: @@ -455,26 +463,26 @@ packages: dependency: transitive description: name: platform - sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76" + sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec" url: "https://pub.dev" source: hosted - version: "3.1.0" + version: "3.1.4" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface - sha256: dbf0f707c78beedc9200146ad3cb0ab4d5da13c246336987be6940f026500d3a + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.1.8" pointycastle: dependency: transitive description: name: pointycastle - sha256: db7306cf0249f838d1a24af52b5a5887c5bf7f31d8bb4e827d071dc0939ad346 + sha256: "43ac87de6e10afabc85c445745a7b799e04de84cebaa4fd7bf55a5e1e9604d29" url: "https://pub.dev" source: hosted - version: "3.6.2" + version: "3.7.4" pool: dependency: transitive description: @@ -483,46 +491,46 @@ packages: url: "https://pub.dev" source: hosted version: "1.5.1" - process: + provider: dependency: transitive description: - name: process - sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09" + name: provider + sha256: "9a96a0a19b594dbc5bf0f1f27d2bc67d5f95957359b461cd9feb44ed6ae75096" url: "https://pub.dev" source: hosted - version: "4.2.4" + version: "6.1.1" pub_semver: dependency: transitive description: name: pub_semver - sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17" + sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c" url: "https://pub.dev" source: hosted - version: "2.1.3" + version: "2.1.4" pubspec_parse: dependency: transitive description: name: pubspec_parse - sha256: "75f6614d6dde2dc68948dffbaa4fe5dae32cd700eb9fb763fe11dfb45a3c4d0a" + sha256: c63b2876e58e194e4b0828fcb080ad0e06d051cb607a6be51a9e084f47cb9367 url: "https://pub.dev" source: hosted - version: "1.2.1" + version: "1.2.3" shelf: dependency: transitive description: name: shelf - sha256: c24a96135a2ccd62c64b69315a14adc5c3419df63b4d7c05832a346fdb73682c + sha256: ad29c505aee705f41a4d8963641f91ac4cee3c8fad5947e033390a7bd8180fa4 url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.4.1" shelf_web_socket: dependency: transitive description: name: shelf_web_socket - sha256: a988c0e8d8ffbdb8a28aa7ec8e449c260f3deb808781fe1284d22c5bba7156e8 + sha256: "9ca081be41c60190ebcb4766b2486a7d50261db7bd0f5d9615f2d653637a84c1" url: "https://pub.dev" source: hosted - version: "1.0.3" + version: "1.0.4" sky_engine: dependency: transitive description: flutter @@ -540,18 +548,18 @@ packages: dependency: transitive description: name: source_gen - sha256: "2d79738b6bbf38a43920e2b8d189e9a3ce6cc201f4b8fc76be5e4fe377b1c38d" + sha256: "14658ba5f669685cd3d63701d01b31ea748310f7ab854e471962670abcf57832" url: "https://pub.dev" source: hosted - version: "1.2.6" + version: "1.5.0" source_helper: dependency: transitive description: name: source_helper - sha256: "3b67aade1d52416149c633ba1bb36df44d97c6b51830c2198e934e3fca87ca1f" + sha256: "6adebc0006c37dd63fe05bca0a929b99f06402fc95aa35bf36d67f5c06de01fd" url: "https://pub.dev" source: hosted - version: "1.3.3" + version: "1.3.4" source_span: dependency: transitive description: @@ -620,10 +628,10 @@ packages: dependency: transitive description: name: typed_data - sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" + sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c url: "https://pub.dev" source: hosted - version: "1.3.1" + version: "1.3.2" vector_math: dependency: transitive description: @@ -636,42 +644,42 @@ packages: dependency: transitive description: name: watcher - sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0" + sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" url: "https://pub.dev" source: hosted - version: "1.0.2" + version: "1.1.0" web_socket_channel: dependency: transitive description: name: web_socket_channel - sha256: ca49c0bc209c687b887f30527fb6a9d80040b072cc2990f34b9bec3e7663101b + sha256: d88238e5eac9a42bb43ca4e721edba3c08c6354d4a53063afaa568516217621b url: "https://pub.dev" source: hosted - version: "2.3.0" + version: "2.4.0" win32: dependency: transitive description: name: win32 - sha256: c9ebe7ee4ab0c2194e65d3a07d8c54c5d00bb001b76081c4a04cdb8448b59e46 + sha256: "350a11abd2d1d97e0cc7a28a81b781c08002aa2864d9e3f192ca0ffa18b06ed3" url: "https://pub.dev" source: hosted - version: "3.1.3" + version: "5.0.9" xdg_directories: dependency: transitive description: name: xdg_directories - sha256: bd512f03919aac5f1313eb8249f223bacf4927031bf60b02601f81f687689e86 + sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d url: "https://pub.dev" source: hosted - version: "0.2.0+3" + version: "1.0.4" yaml: dependency: transitive description: name: yaml - sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" + sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" url: "https://pub.dev" source: hosted - version: "3.1.1" + version: "3.1.2" sdks: dart: ">=3.0.0 <4.0.0" - flutter: ">=3.7.0" + flutter: ">=3.10.0" diff --git a/cw_ethereum/lib/ethereum_wallet_service.dart b/cw_ethereum/lib/ethereum_wallet_service.dart index 5e8c22718..53c8bfea9 100644 --- a/cw_ethereum/lib/ethereum_wallet_service.dart +++ b/cw_ethereum/lib/ethereum_wallet_service.dart @@ -16,7 +16,7 @@ class EthereumWalletService extends EVMChainWalletService { WalletType getType() => WalletType.ethereum; @override - Future create(EVMChainNewWalletCredentials credentials) async { + Future create(EVMChainNewWalletCredentials credentials, {bool? isTestnet}) async { final strength = credentials.seedPhraseLength == 24 ? 256 : 128; final mnemonic = bip39.generateMnemonic(strength: strength); @@ -52,7 +52,6 @@ class EthereumWalletService extends EVMChainWalletService { saveBackup(name); return wallet; } catch (_) { - await restoreWalletFilesFromBackup(name); final wallet = await EthereumWallet.open( @@ -84,7 +83,8 @@ class EthereumWalletService extends EVMChainWalletService { } @override - Future restoreFromKeys(EVMChainRestoreWalletFromPrivateKey credentials) async { + Future restoreFromKeys(EVMChainRestoreWalletFromPrivateKey credentials, + {bool? isTestnet}) async { final wallet = EthereumWallet( password: credentials.password!, privateKey: credentials.privateKey, @@ -100,8 +100,8 @@ class EthereumWalletService extends EVMChainWalletService { } @override - Future restoreFromSeed( - EVMChainRestoreWalletFromSeedCredentials credentials) async { + Future restoreFromSeed(EVMChainRestoreWalletFromSeedCredentials credentials, + {bool? isTestnet}) async { if (!bip39.validateMnemonic(credentials.mnemonic)) { throw EthereumMnemonicIsIncorrectException(); } diff --git a/cw_evm/lib/evm_chain_wallet_service.dart b/cw_evm/lib/evm_chain_wallet_service.dart index 988a38684..d77a3a81a 100644 --- a/cw_evm/lib/evm_chain_wallet_service.dart +++ b/cw_evm/lib/evm_chain_wallet_service.dart @@ -22,7 +22,7 @@ abstract class EVMChainWalletService extends WalletSer WalletType getType(); @override - Future create(EVMChainNewWalletCredentials credentials); + Future create(EVMChainNewWalletCredentials credentials, {bool? isTestnet}); @override Future openWallet(String name, String password); @@ -31,10 +31,10 @@ abstract class EVMChainWalletService extends WalletSer Future rename(String currentName, String password, String newName); @override - Future restoreFromKeys(EVMChainRestoreWalletFromPrivateKey credentials); + Future restoreFromKeys(EVMChainRestoreWalletFromPrivateKey credentials, {bool? isTestnet}); @override - Future restoreFromSeed(EVMChainRestoreWalletFromSeedCredentials credentials); + Future restoreFromSeed(EVMChainRestoreWalletFromSeedCredentials credentials, {bool? isTestnet}); @override Future isWalletExit(String name) async => diff --git a/cw_haven/lib/haven_wallet_service.dart b/cw_haven/lib/haven_wallet_service.dart index dd7713e08..d4808c2d6 100644 --- a/cw_haven/lib/haven_wallet_service.dart +++ b/cw_haven/lib/haven_wallet_service.dart @@ -68,7 +68,7 @@ class HavenWalletService extends WalletService< WalletType getType() => WalletType.haven; @override - Future create(HavenNewWalletCredentials credentials) async { + Future create(HavenNewWalletCredentials credentials, {bool? isTestnet}) async { try { final path = await pathForWallet(name: credentials.name, type: getType()); await haven_wallet_manager.createWallet( @@ -174,7 +174,7 @@ class HavenWalletService extends WalletService< @override Future restoreFromKeys( - HavenRestoreWalletFromKeysCredentials credentials) async { + HavenRestoreWalletFromKeysCredentials credentials, {bool? isTestnet}) async { try { final path = await pathForWallet(name: credentials.name, type: getType()); await haven_wallet_manager.restoreFromKeys( @@ -198,7 +198,7 @@ class HavenWalletService extends WalletService< @override Future restoreFromSeed( - HavenRestoreWalletFromSeedCredentials credentials) async { + HavenRestoreWalletFromSeedCredentials credentials, {bool? isTestnet}) async { try { final path = await pathForWallet(name: credentials.name, type: getType()); await haven_wallet_manager.restoreFromSeed( diff --git a/cw_monero/lib/monero_wallet_service.dart b/cw_monero/lib/monero_wallet_service.dart index 3dea7fc0e..1f33dbb3d 100644 --- a/cw_monero/lib/monero_wallet_service.dart +++ b/cw_monero/lib/monero_wallet_service.dart @@ -68,7 +68,7 @@ class MoneroWalletService extends WalletService WalletType.monero; @override - Future create(MoneroNewWalletCredentials credentials) async { + Future create(MoneroNewWalletCredentials credentials, {bool? isTestnet}) async { try { final path = await pathForWallet(name: credentials.name, type: getType()); @@ -203,7 +203,8 @@ class MoneroWalletService extends WalletService restoreFromKeys(MoneroRestoreWalletFromKeysCredentials credentials) async { + Future restoreFromKeys(MoneroRestoreWalletFromKeysCredentials credentials, + {bool? isTestnet}) async { try { final path = await pathForWallet(name: credentials.name, type: getType()); await monero_wallet_manager.restoreFromKeys( @@ -227,7 +228,8 @@ class MoneroWalletService extends WalletService restoreFromSeed(MoneroRestoreWalletFromSeedCredentials credentials) async { + Future restoreFromSeed(MoneroRestoreWalletFromSeedCredentials credentials, + {bool? isTestnet}) async { // Restore from Polyseed if (Polyseed.isValidSeed(credentials.mnemonic)) { return restoreFromPolyseed(credentials); diff --git a/cw_nano/lib/nano_wallet_service.dart b/cw_nano/lib/nano_wallet_service.dart index a76f0393d..7ab502d49 100644 --- a/cw_nano/lib/nano_wallet_service.dart +++ b/cw_nano/lib/nano_wallet_service.dart @@ -26,7 +26,7 @@ class NanoWalletService extends WalletService WalletType.nano; @override - Future create(NanoNewWalletCredentials credentials) async { + Future create(NanoNewWalletCredentials credentials, {bool? isTestnet}) async { // nano standard: DerivationType derivationType = DerivationType.nano; String seedKey = NanoSeeds.generateSeed(); @@ -79,7 +79,7 @@ class NanoWalletService extends WalletService restoreFromKeys(NanoRestoreWalletFromKeysCredentials credentials) async { + Future restoreFromKeys(NanoRestoreWalletFromKeysCredentials credentials, {bool? isTestnet}) async { if (credentials.seedKey.contains(' ')) { throw Exception("Invalid key!"); } else { @@ -113,7 +113,7 @@ class NanoWalletService extends WalletService restoreFromSeed(NanoRestoreWalletFromSeedCredentials credentials) async { + Future restoreFromSeed(NanoRestoreWalletFromSeedCredentials credentials, {bool? isTestnet}) async { if (credentials.mnemonic.contains(' ')) { if (!bip39.validateMnemonic(credentials.mnemonic)) { throw nm.NanoMnemonicIsIncorrectException(); diff --git a/cw_polygon/lib/polygon_wallet_service.dart b/cw_polygon/lib/polygon_wallet_service.dart index 0199a1552..59e14abbf 100644 --- a/cw_polygon/lib/polygon_wallet_service.dart +++ b/cw_polygon/lib/polygon_wallet_service.dart @@ -19,7 +19,7 @@ class PolygonWalletService extends EVMChainWalletService { WalletType getType() => WalletType.polygon; @override - Future create(EVMChainNewWalletCredentials credentials) async { + Future create(EVMChainNewWalletCredentials credentials, {bool? isTestnet}) async { final strength = credentials.seedPhraseLength == 24 ? 256 : 128; final mnemonic = bip39.generateMnemonic(strength: strength); @@ -62,7 +62,7 @@ class PolygonWalletService extends EVMChainWalletService { password: password, walletInfo: walletInfo, ); - + await wallet.init(); await wallet.save(); return wallet; @@ -70,8 +70,8 @@ class PolygonWalletService extends EVMChainWalletService { } @override - Future restoreFromKeys(EVMChainRestoreWalletFromPrivateKey credentials) async { - + Future restoreFromKeys(EVMChainRestoreWalletFromPrivateKey credentials, + {bool? isTestnet}) async { final wallet = PolygonWallet( password: credentials.password!, privateKey: credentials.privateKey, @@ -87,8 +87,8 @@ class PolygonWalletService extends EVMChainWalletService { } @override - Future restoreFromSeed( - EVMChainRestoreWalletFromSeedCredentials credentials) async { + Future restoreFromSeed(EVMChainRestoreWalletFromSeedCredentials credentials, + {bool? isTestnet}) async { if (!bip39.validateMnemonic(credentials.mnemonic)) { throw PolygonMnemonicIsIncorrectException(); } diff --git a/lib/bitcoin/cw_bitcoin.dart b/lib/bitcoin/cw_bitcoin.dart index 688825013..f9c20d45e 100644 --- a/lib/bitcoin/cw_bitcoin.dart +++ b/lib/bitcoin/cw_bitcoin.dart @@ -1,181 +1,191 @@ part of 'bitcoin.dart'; class CWBitcoin extends Bitcoin { - @override - TransactionPriority getMediumTransactionPriority() => BitcoinTransactionPriority.medium; - - @override - WalletCredentials createBitcoinRestoreWalletFromSeedCredentials({ - required String name, - required String mnemonic, - required String password}) - => BitcoinRestoreWalletFromSeedCredentials(name: name, mnemonic: mnemonic, password: password); - - @override - WalletCredentials createBitcoinRestoreWalletFromWIFCredentials({ - required String name, - required String password, - required String wif, - WalletInfo? walletInfo}) - => BitcoinRestoreWalletFromWIFCredentials(name: name, password: password, wif: wif, walletInfo: walletInfo); - - @override - WalletCredentials createBitcoinNewWalletCredentials({ - required String name, - WalletInfo? walletInfo}) - => BitcoinNewWalletCredentials(name: name, walletInfo: walletInfo); - - @override - List getWordList() => wordlist; - - @override - Map getWalletKeys(Object wallet) { - final bitcoinWallet = wallet as ElectrumWallet; - final keys = bitcoinWallet.keys; - - return { - 'wif': keys.wif, - 'privateKey': keys.privateKey, - 'publicKey': keys.publicKey - }; - } - - @override - List getTransactionPriorities() - => BitcoinTransactionPriority.all; - - @override - List getLitecoinTransactionPriorities() - => LitecoinTransactionPriority.all; - - @override - TransactionPriority deserializeBitcoinTransactionPriority(int raw) - => BitcoinTransactionPriority.deserialize(raw: raw); - - @override - TransactionPriority deserializeLitecoinTransactionPriority(int raw) - => LitecoinTransactionPriority.deserialize(raw: raw); - - @override - int getFeeRate(Object wallet, TransactionPriority priority) { - final bitcoinWallet = wallet as ElectrumWallet; - return bitcoinWallet.feeRate(priority); - } - - @override - Future generateNewAddress(Object wallet, String label) async { - final bitcoinWallet = wallet as ElectrumWallet; - await bitcoinWallet.walletAddresses.generateNewAddress(label: label, hd: bitcoinWallet.hd); - await wallet.save(); - } - - @override - Future updateAddress(Object wallet,String address, String label) async { - final bitcoinWallet = wallet as ElectrumWallet; - bitcoinWallet.walletAddresses.updateAddress(address, label); - await wallet.save(); - } - - @override - Object createBitcoinTransactionCredentials(List outputs, {required TransactionPriority priority, int? feeRate}) - => BitcoinTransactionCredentials( - outputs.map((out) => OutputInfo( - fiatAmount: out.fiatAmount, - cryptoAmount: out.cryptoAmount, - address: out.address, - note: out.note, - sendAll: out.sendAll, - extractedAddress: out.extractedAddress, - isParsedAddress: out.isParsedAddress, - formattedCryptoAmount: out.formattedCryptoAmount)) - .toList(), - priority: priority as BitcoinTransactionPriority, - feeRate: feeRate); - - @override - Object createBitcoinTransactionCredentialsRaw(List outputs, {TransactionPriority? priority, required int feeRate}) - => BitcoinTransactionCredentials( - outputs, - priority: priority != null ? priority as BitcoinTransactionPriority : null, - feeRate: feeRate); - - @override - List getAddresses(Object wallet) { - final bitcoinWallet = wallet as ElectrumWallet; - return bitcoinWallet.walletAddresses.addresses - .map((BitcoinAddressRecord addr) => addr.address) - .toList(); - } - - @override - @computed - List getSubAddresses(Object wallet) { - final electrumWallet = wallet as ElectrumWallet; - return electrumWallet.walletAddresses.addresses - .map((BitcoinAddressRecord addr) => ElectrumSubAddress( - id: addr.index, - name: addr.name, - address: electrumWallet.type == WalletType.bitcoinCash ? addr.cashAddr : addr.address, - txCount: addr.txCount, - balance: addr.balance, - isChange: addr.isHidden)) - .toList(); - } - - @override - String getAddress(Object wallet) { - final bitcoinWallet = wallet as ElectrumWallet; - return bitcoinWallet.walletAddresses.address; - } - - @override - String formatterBitcoinAmountToString({required int amount}) - => bitcoinAmountToString(amount: amount); - - @override - double formatterBitcoinAmountToDouble({required int amount}) - => bitcoinAmountToDouble(amount: amount); - - @override - int formatterStringDoubleToBitcoinAmount(String amount) - => stringDoubleToBitcoinAmount(amount); + @override + TransactionPriority getMediumTransactionPriority() => BitcoinTransactionPriority.medium; @override - String bitcoinTransactionPriorityWithLabel(TransactionPriority priority, int rate) - => (priority as BitcoinTransactionPriority).labelWithRate(rate); - - @override - List getUnspents(Object wallet) { - final bitcoinWallet = wallet as ElectrumWallet; - return bitcoinWallet.unspentCoins; - } - - Future updateUnspents(Object wallet) async { - final bitcoinWallet = wallet as ElectrumWallet; - await bitcoinWallet.updateUnspent(); - } - - WalletService createBitcoinWalletService(Box walletInfoSource, Box unspentCoinSource) { - return BitcoinWalletService(walletInfoSource, unspentCoinSource); - } - - WalletService createLitecoinWalletService(Box walletInfoSource, Box unspentCoinSource) { - return LitecoinWalletService(walletInfoSource, unspentCoinSource); - } - - @override - TransactionPriority getBitcoinTransactionPriorityMedium() - => BitcoinTransactionPriority.medium; + WalletCredentials createBitcoinRestoreWalletFromSeedCredentials( + {required String name, required String mnemonic, required String password}) => + BitcoinRestoreWalletFromSeedCredentials(name: name, mnemonic: mnemonic, password: password); @override - TransactionPriority getLitecoinTransactionPriorityMedium() - => LitecoinTransactionPriority.medium; + WalletCredentials createBitcoinRestoreWalletFromWIFCredentials( + {required String name, + required String password, + required String wif, + WalletInfo? walletInfo}) => + BitcoinRestoreWalletFromWIFCredentials( + name: name, password: password, wif: wif, walletInfo: walletInfo); @override - TransactionPriority getBitcoinTransactionPrioritySlow() - => BitcoinTransactionPriority.slow; - + WalletCredentials createBitcoinNewWalletCredentials( + {required String name, WalletInfo? walletInfo}) => + BitcoinNewWalletCredentials(name: name, walletInfo: walletInfo); + @override - TransactionPriority getLitecoinTransactionPrioritySlow() - => LitecoinTransactionPriority.slow; -} \ No newline at end of file + List getWordList() => wordlist; + + @override + Map getWalletKeys(Object wallet) { + final bitcoinWallet = wallet as ElectrumWallet; + final keys = bitcoinWallet.keys; + + return { + 'wif': keys.wif, + 'privateKey': keys.privateKey, + 'publicKey': keys.publicKey + }; + } + + @override + List getTransactionPriorities() => BitcoinTransactionPriority.all; + + @override + List getLitecoinTransactionPriorities() => LitecoinTransactionPriority.all; + + @override + TransactionPriority deserializeBitcoinTransactionPriority(int raw) => + BitcoinTransactionPriority.deserialize(raw: raw); + + @override + TransactionPriority deserializeLitecoinTransactionPriority(int raw) => + LitecoinTransactionPriority.deserialize(raw: raw); + + @override + int getFeeRate(Object wallet, TransactionPriority priority) { + final bitcoinWallet = wallet as ElectrumWallet; + return bitcoinWallet.feeRate(priority); + } + + @override + Future generateNewAddress(Object wallet, String label) async { + final bitcoinWallet = wallet as ElectrumWallet; + await bitcoinWallet.walletAddresses.generateNewAddress(label: label); + await wallet.save(); + } + + @override + Future updateAddress(Object wallet, String address, String label) async { + final bitcoinWallet = wallet as ElectrumWallet; + bitcoinWallet.walletAddresses.updateAddress(address, label); + await wallet.save(); + } + + @override + Object createBitcoinTransactionCredentials(List outputs, + {required TransactionPriority priority, int? feeRate}) => + BitcoinTransactionCredentials( + outputs + .map((out) => OutputInfo( + fiatAmount: out.fiatAmount, + cryptoAmount: out.cryptoAmount, + address: out.address, + note: out.note, + sendAll: out.sendAll, + extractedAddress: out.extractedAddress, + isParsedAddress: out.isParsedAddress, + formattedCryptoAmount: out.formattedCryptoAmount)) + .toList(), + priority: priority as BitcoinTransactionPriority, + feeRate: feeRate); + + @override + Object createBitcoinTransactionCredentialsRaw(List outputs, + {TransactionPriority? priority, required int feeRate}) => + BitcoinTransactionCredentials(outputs, + priority: priority != null ? priority as BitcoinTransactionPriority : null, + feeRate: feeRate); + + @override + List getAddresses(Object wallet) { + final bitcoinWallet = wallet as ElectrumWallet; + return bitcoinWallet.walletAddresses.addressesByReceiveType + .map((BitcoinAddressRecord addr) => addr.address) + .toList(); + } + + @override + @computed + List getSubAddresses(Object wallet) { + final electrumWallet = wallet as ElectrumWallet; + return electrumWallet.walletAddresses.addressesByReceiveType + .map((BitcoinAddressRecord addr) => ElectrumSubAddress( + id: addr.index, + name: addr.name, + address: electrumWallet.type == WalletType.bitcoinCash ? addr.cashAddr : addr.address, + txCount: addr.txCount, + balance: addr.balance, + isChange: addr.isHidden)) + .toList(); + } + + @override + String getAddress(Object wallet) { + final bitcoinWallet = wallet as ElectrumWallet; + return bitcoinWallet.walletAddresses.address; + } + + @override + String formatterBitcoinAmountToString({required int amount}) => + bitcoinAmountToString(amount: amount); + + @override + double formatterBitcoinAmountToDouble({required int amount}) => + bitcoinAmountToDouble(amount: amount); + + @override + int formatterStringDoubleToBitcoinAmount(String amount) => stringDoubleToBitcoinAmount(amount); + + @override + String bitcoinTransactionPriorityWithLabel(TransactionPriority priority, int rate) => + (priority as BitcoinTransactionPriority).labelWithRate(rate); + + @override + List getUnspents(Object wallet) { + final bitcoinWallet = wallet as ElectrumWallet; + return bitcoinWallet.unspentCoins; + } + + Future updateUnspents(Object wallet) async { + final bitcoinWallet = wallet as ElectrumWallet; + await bitcoinWallet.updateUnspent(); + } + + WalletService createBitcoinWalletService( + Box walletInfoSource, Box unspentCoinSource) { + return BitcoinWalletService(walletInfoSource, unspentCoinSource); + } + + WalletService createLitecoinWalletService( + Box walletInfoSource, Box unspentCoinSource) { + return LitecoinWalletService(walletInfoSource, unspentCoinSource); + } + + @override + TransactionPriority getBitcoinTransactionPriorityMedium() => BitcoinTransactionPriority.medium; + + @override + TransactionPriority getLitecoinTransactionPriorityMedium() => LitecoinTransactionPriority.medium; + + @override + TransactionPriority getBitcoinTransactionPrioritySlow() => BitcoinTransactionPriority.slow; + + @override + TransactionPriority getLitecoinTransactionPrioritySlow() => LitecoinTransactionPriority.slow; + + @override + Future setAddressType(Object wallet, dynamic option) async { + final bitcoinWallet = wallet as ElectrumWallet; + await bitcoinWallet.walletAddresses.setAddressType(option as BitcoinAddressType); + } + + @override + BitcoinReceivePageOption getSelectedAddressType(Object wallet) { + final bitcoinWallet = wallet as ElectrumWallet; + return BitcoinReceivePageOption.fromType(bitcoinWallet.walletAddresses.addressPageType); + } + + @override + List getBitcoinReceivePageOptions() => BitcoinReceivePageOption.all; +} diff --git a/lib/core/address_validator.dart b/lib/core/address_validator.dart index 21f3c3557..432471655 100644 --- a/lib/core/address_validator.dart +++ b/lib/core/address_validator.dart @@ -1,4 +1,4 @@ -import 'package:bitcoin_flutter/bitcoin_flutter.dart' as bitcoin; +import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/core/validator.dart'; import 'package:cake_wallet/solana/solana.dart'; @@ -9,7 +9,9 @@ class AddressValidator extends TextValidator { AddressValidator({required CryptoCurrency type}) : super( errorMessage: S.current.error_text_address, - useAdditionalValidation: type == CryptoCurrency.btc ? bitcoin.Address.validateAddress : null, + useAdditionalValidation: type == CryptoCurrency.btc + ? (String txt) => validateAddress(address: txt, network: BitcoinNetwork.mainnet) + : null, pattern: getPattern(type), length: getLength(type)); @@ -24,7 +26,7 @@ class AddressValidator extends TextValidator { return '^[0-9a-zA-Z]{59}\$|^[0-9a-zA-Z]{92}\$|^[0-9a-zA-Z]{104}\$' '|^[0-9a-zA-Z]{105}\$|^addr1[0-9a-zA-Z]{98}\$'; case CryptoCurrency.btc: - return '^3[0-9a-zA-Z]{32}\$|^3[0-9a-zA-Z]{33}\$|^bc1[0-9a-zA-Z]{59}\$'; + return '^${P2pkhAddress.regex.pattern}\$|^${P2shAddress.regex.pattern}\$|^${P2wpkhAddress.regex.pattern}\$|${P2trAddress.regex.pattern}\$|^${P2wshAddress.regex.pattern}\$'; case CryptoCurrency.nano: return '[0-9a-zA-Z_]'; case CryptoCurrency.banano: @@ -89,7 +91,7 @@ class AddressValidator extends TextValidator { case CryptoCurrency.dai: case CryptoCurrency.dash: case CryptoCurrency.eos: - return '[0-9a-zA-Z]'; + return '[0-9a-zA-Z]'; case CryptoCurrency.bch: return '^(?!bitcoincash:)[0-9a-zA-Z]*\$|^(?!bitcoincash:)q|p[0-9a-zA-Z]{41}\$|^(?!bitcoincash:)q|p[0-9a-zA-Z]{42}\$|^bitcoincash:q|p[0-9a-zA-Z]{41}\$|^bitcoincash:q|p[0-9a-zA-Z]{42}\$'; case CryptoCurrency.bnb: @@ -268,12 +270,11 @@ class AddressValidator extends TextValidator { '|([^0-9a-zA-Z]|^)8[0-9a-zA-Z]{94}([^0-9a-zA-Z]|\$)' '|([^0-9a-zA-Z]|^)[0-9a-zA-Z]{106}([^0-9a-zA-Z]|\$)'; case CryptoCurrency.btc: - return '([^0-9a-zA-Z]|^)1[0-9a-zA-Z]{32}([^0-9a-zA-Z]|\$)' - '|([^0-9a-zA-Z]|^)1[0-9a-zA-Z]{33}([^0-9a-zA-Z]|\$)' - '|([^0-9a-zA-Z]|^)3[0-9a-zA-Z]{32}([^0-9a-zA-Z]|\$)' - '|([^0-9a-zA-Z]|^)3[0-9a-zA-Z]{33}([^0-9a-zA-Z]|\$)' - '|([^0-9a-zA-Z]|^)bc1[0-9a-zA-Z]{39}([^0-9a-zA-Z]|\$)' - '|([^0-9a-zA-Z]|^)bc1[0-9a-zA-Z]{59}([^0-9a-zA-Z]|\$)'; + return '([^0-9a-zA-Z]|^)${P2pkhAddress.regex.pattern}|\$)' + '([^0-9a-zA-Z]|^)${P2shAddress.regex.pattern}|\$)' + '([^0-9a-zA-Z]|^)${P2wpkhAddress.regex.pattern}|\$)' + '([^0-9a-zA-Z]|^)${P2wshAddress.regex.pattern}|\$)' + '([^0-9a-zA-Z]|^)${P2trAddress.regex.pattern}|\$)'; case CryptoCurrency.ltc: return '([^0-9a-zA-Z]|^)^L[a-zA-Z0-9]{26,33}([^0-9a-zA-Z]|\$)' '|([^0-9a-zA-Z]|^)[LM][a-km-zA-HJ-NP-Z1-9]{26,33}([^0-9a-zA-Z]|\$)' @@ -297,4 +298,4 @@ class AddressValidator extends TextValidator { return null; } } -} \ No newline at end of file +} diff --git a/lib/core/wallet_creation_service.dart b/lib/core/wallet_creation_service.dart index 8548f079f..31a893ad6 100644 --- a/lib/core/wallet_creation_service.dart +++ b/lib/core/wallet_creation_service.dart @@ -2,7 +2,6 @@ import 'package:cake_wallet/di.dart'; import 'package:cake_wallet/store/settings_store.dart'; import 'package:cw_core/wallet_info.dart'; import 'package:cake_wallet/entities/preferences_key.dart'; -import 'package:flutter/foundation.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:hive/hive.dart'; import 'package:shared_preferences/shared_preferences.dart'; @@ -55,7 +54,7 @@ class WalletCreationService { } } - Future create(WalletCredentials credentials) async { + Future create(WalletCredentials credentials, {bool? isTestnet}) async { checkIfExists(credentials.name); final password = generateWalletPassword(); credentials.password = password; @@ -63,7 +62,7 @@ class WalletCreationService { credentials.seedPhraseLength = settingsStore.seedPhraseLength.value; } await keyService.saveWalletPassword(password: password, walletName: credentials.name); - final wallet = await _service!.create(credentials); + final wallet = await _service!.create(credentials, isTestnet: isTestnet); if (wallet.type == WalletType.monero) { await sharedPreferences.setBool( @@ -73,12 +72,12 @@ class WalletCreationService { return wallet; } - Future restoreFromKeys(WalletCredentials credentials) async { + Future restoreFromKeys(WalletCredentials credentials, {bool? isTestnet}) async { checkIfExists(credentials.name); final password = generateWalletPassword(); credentials.password = password; await keyService.saveWalletPassword(password: password, walletName: credentials.name); - final wallet = await _service!.restoreFromKeys(credentials); + final wallet = await _service!.restoreFromKeys(credentials, isTestnet: isTestnet); if (wallet.type == WalletType.monero) { await sharedPreferences.setBool( @@ -88,12 +87,12 @@ class WalletCreationService { return wallet; } - Future restoreFromSeed(WalletCredentials credentials) async { + Future restoreFromSeed(WalletCredentials credentials, {bool? isTestnet}) async { checkIfExists(credentials.name); final password = generateWalletPassword(); credentials.password = password; await keyService.saveWalletPassword(password: password, walletName: credentials.name); - final wallet = await _service!.restoreFromSeed(credentials); + final wallet = await _service!.restoreFromSeed(credentials, isTestnet: isTestnet); if (wallet.type == WalletType.monero) { await sharedPreferences.setBool( diff --git a/lib/di.dart b/lib/di.dart index 4a005a4de..473eaed00 100644 --- a/lib/di.dart +++ b/lib/di.dart @@ -13,7 +13,7 @@ import 'package:cake_wallet/core/yat_service.dart'; import 'package:cake_wallet/entities/background_tasks.dart'; import 'package:cake_wallet/entities/exchange_api_mode.dart'; import 'package:cake_wallet/entities/parse_address_from_domain.dart'; -import 'package:cake_wallet/entities/receive_page_option.dart'; +import 'package:cw_core/receive_page_option.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/nano/nano.dart'; import 'package:cake_wallet/ionia/ionia_anypay.dart'; diff --git a/lib/entities/default_settings_migration.dart b/lib/entities/default_settings_migration.dart index 019276227..fb3e9e80c 100644 --- a/lib/entities/default_settings_migration.dart +++ b/lib/entities/default_settings_migration.dart @@ -23,6 +23,10 @@ import 'package:collection/collection.dart'; const newCakeWalletMoneroUri = 'xmr-node.cakewallet.com:18081'; const cakeWalletBitcoinElectrumUri = 'electrum.cakewallet.com:50002'; +const publicBitcoinTestnetElectrumAddress = 'electrum.blockstream.info'; +const publicBitcoinTestnetElectrumPort = '60002'; +const publicBitcoinTestnetElectrumUri = + '$publicBitcoinTestnetElectrumAddress:$publicBitcoinTestnetElectrumPort'; const cakeWalletLitecoinElectrumUri = 'ltc-electrum.cakewallet.com:50002'; const havenDefaultNodeUri = 'nodes.havenprotocol.org:443'; const ethereumDefaultNodeUri = 'ethereum.publicnode.com'; @@ -334,6 +338,12 @@ Node? getBitcoinDefaultElectrumServer({required Box nodes}) { nodes.values.firstWhereOrNull((node) => node.type == WalletType.bitcoin); } +Node? getBitcoinTestnetDefaultElectrumServer({required Box nodes}) { + return nodes.values + .firstWhereOrNull((Node node) => node.uriRaw == publicBitcoinTestnetElectrumUri) ?? + nodes.values.firstWhereOrNull((node) => node.type == WalletType.bitcoin); +} + Node? getLitecoinDefaultElectrumServer({required Box nodes}) { return nodes.values .firstWhereOrNull((Node node) => node.uriRaw == cakeWalletLitecoinElectrumUri) ?? @@ -503,8 +513,15 @@ Future rewriteSecureStoragePin({required FlutterSecureStorage secureStorag } Future changeBitcoinCurrentElectrumServerToDefault( - {required SharedPreferences sharedPreferences, required Box nodes}) async { - final server = getBitcoinDefaultElectrumServer(nodes: nodes); + {required SharedPreferences sharedPreferences, + required Box nodes, + bool? isTestnet}) async { + Node? server; + if (isTestnet == true) { + server = getBitcoinTestnetDefaultElectrumServer(nodes: nodes); + } else { + server = getBitcoinDefaultElectrumServer(nodes: nodes); + } final serverId = server?.key as int? ?? 0; await sharedPreferences.setInt(PreferencesKey.currentBitcoinElectrumSererIdKey, serverId); diff --git a/lib/entities/receive_page_option.dart b/lib/entities/receive_page_option.dart deleted file mode 100644 index 3ee9abe96..000000000 --- a/lib/entities/receive_page_option.dart +++ /dev/null @@ -1,23 +0,0 @@ - -enum ReceivePageOption { - mainnet, - anonPayInvoice, - anonPayDonationLink; - - @override - String toString() { - String label = ''; - switch (this) { - case ReceivePageOption.mainnet: - label = 'Mainnet'; - break; - case ReceivePageOption.anonPayInvoice: - label = 'Trocador AnonPay Invoice'; - break; - case ReceivePageOption.anonPayDonationLink: - label = 'Trocador AnonPay Donation Link'; - break; - } - return label; - } -} diff --git a/lib/router.dart b/lib/router.dart index b7b7c9a8e..ef7b7f31e 100644 --- a/lib/router.dart +++ b/lib/router.dart @@ -532,13 +532,19 @@ Route createRoute(RouteSettings settings) { builder: (_) => getIt.get(param1: title, param2: url)); case Routes.advancedPrivacySettings: - final type = settings.arguments as WalletType; + final args = settings.arguments as Map; + final type = args['type'] as WalletType; + final useTestnet = args['useTestnet'] as bool; + final toggleTestnet = args['toggleTestnet'] as Function(bool? val); return CupertinoPageRoute( builder: (_) => AdvancedPrivacySettingsPage( - getIt.get(param1: type), - getIt.get(param1: type, param2: false), - getIt.get())); + useTestnet, + toggleTestnet, + getIt.get(param1: type), + getIt.get(param1: type, param2: false), + getIt.get(), + )); case Routes.anonPayInvoicePage: final args = settings.arguments as List; diff --git a/lib/src/screens/dashboard/pages/address_page.dart b/lib/src/screens/dashboard/pages/address_page.dart index b4460edc9..7b7c84c28 100644 --- a/lib/src/screens/dashboard/pages/address_page.dart +++ b/lib/src/screens/dashboard/pages/address_page.dart @@ -5,7 +5,8 @@ import 'package:cake_wallet/src/screens/base_page.dart'; import 'package:cake_wallet/src/screens/monero_accounts/monero_account_list_page.dart'; import 'package:cake_wallet/anonpay/anonpay_donation_link_info.dart'; import 'package:cake_wallet/entities/preferences_key.dart'; -import 'package:cake_wallet/entities/receive_page_option.dart'; +import 'package:cw_core/receive_page_option.dart'; +import 'package:cw_bitcoin/bitcoin_receive_page_option.dart'; import 'package:cake_wallet/src/screens/dashboard/widgets/present_receive_option_picker.dart'; import 'package:cake_wallet/src/widgets/gradient_background.dart'; import 'package:cake_wallet/src/widgets/keyboard_done_button.dart'; @@ -27,6 +28,7 @@ import 'package:keyboard_actions/keyboard_actions.dart'; import 'package:mobx/mobx.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:cake_wallet/themes/extensions/balance_page_theme.dart'; +import 'package:bitcoin_base/bitcoin_base.dart'; class AddressPage extends BasePage { AddressPage({ @@ -69,7 +71,7 @@ class AddressPage extends BasePage { size: 16, ); final _closeButton = - currentTheme.type == ThemeType.dark ? closeButtonImageDarkTheme : closeButtonImage; + currentTheme.type == ThemeType.dark ? closeButtonImageDarkTheme : closeButtonImage; bool isMobileView = responsiveLayoutUtil.shouldRenderMobileUI; @@ -163,11 +165,10 @@ class AddressPage extends BasePage { return SelectButton( text: addressListViewModel.buttonTitle, onTap: () async => dashboardViewModel.isAutoGenerateSubaddressesEnabled && - (WalletType.monero == addressListViewModel.wallet.type || - WalletType.haven == addressListViewModel.wallet.type) + (WalletType.monero == addressListViewModel.wallet.type || + WalletType.haven == addressListViewModel.wallet.type) ? await showPopUp( - context: context, - builder: (_) => getIt.get()) + context: context, builder: (_) => getIt.get()) : Navigator.of(context).pushNamed(Routes.receive), textColor: Theme.of(context).extension()!.textColor, color: Theme.of(context).extension()!.syncedBackgroundColor, @@ -229,6 +230,21 @@ class AddressPage extends BasePage { ); } break; + case BitcoinReceivePageOption.p2pkh: + addressListViewModel.setAddressType(P2pkhAddressType.p2pkh); + break; + case BitcoinReceivePageOption.p2sh: + addressListViewModel.setAddressType(P2shAddressType.p2wpkhInP2sh); + break; + case BitcoinReceivePageOption.p2wpkh: + addressListViewModel.setAddressType(SegwitAddresType.p2wpkh); + break; + case BitcoinReceivePageOption.p2tr: + addressListViewModel.setAddressType(SegwitAddresType.p2tr); + break; + case BitcoinReceivePageOption.p2wsh: + addressListViewModel.setAddressType(SegwitAddresType.p2wsh); + break; default: } }); diff --git a/lib/src/screens/new_wallet/advanced_privacy_settings_page.dart b/lib/src/screens/new_wallet/advanced_privacy_settings_page.dart index a4bd6c7b9..26478345e 100644 --- a/lib/src/screens/new_wallet/advanced_privacy_settings_page.dart +++ b/lib/src/screens/new_wallet/advanced_privacy_settings_page.dart @@ -1,3 +1,4 @@ +import 'package:cake_wallet/entities/default_settings_migration.dart'; import 'package:cake_wallet/entities/exchange_api_mode.dart'; import 'package:cake_wallet/entities/fiat_api_mode.dart'; import 'package:cake_wallet/entities/seed_phrase_length.dart'; @@ -11,6 +12,7 @@ import 'package:cake_wallet/view_model/node_list/node_create_or_edit_view_model. import 'package:cake_wallet/view_model/advanced_privacy_settings_view_model.dart'; import 'package:cake_wallet/view_model/seed_type_view_model.dart'; import 'package:cake_wallet/view_model/settings/choices_list_item.dart'; +import 'package:cw_core/wallet_type.dart'; import 'package:flutter_mobx/flutter_mobx.dart'; import 'package:flutter/material.dart'; import 'package:cake_wallet/generated/i18n.dart'; @@ -19,7 +21,7 @@ import 'package:cake_wallet/src/widgets/primary_button.dart'; import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart'; class AdvancedPrivacySettingsPage extends BasePage { - AdvancedPrivacySettingsPage( + AdvancedPrivacySettingsPage(this.useTestnet, this.toggleUseTestnet, this.advancedPrivacySettingsViewModel, this.nodeViewModel, this.seedTypeViewModel); final AdvancedPrivacySettingsViewModel advancedPrivacySettingsViewModel; @@ -29,13 +31,16 @@ class AdvancedPrivacySettingsPage extends BasePage { @override String get title => S.current.privacy_settings; + final bool useTestnet; + final Function(bool? val) toggleUseTestnet; + @override - Widget body(BuildContext context) => AdvancedPrivacySettingsBody( + Widget body(BuildContext context) => AdvancedPrivacySettingsBody(useTestnet, toggleUseTestnet, advancedPrivacySettingsViewModel, nodeViewModel, seedTypeViewModel); } class AdvancedPrivacySettingsBody extends StatefulWidget { - const AdvancedPrivacySettingsBody( + const AdvancedPrivacySettingsBody(this.useTestnet, this.toggleUseTestnet, this.privacySettingsViewModel, this.nodeViewModel, this.seedTypeViewModel, {Key? key}) : super(key: key); @@ -44,6 +49,9 @@ class AdvancedPrivacySettingsBody extends StatefulWidget { final NodeCreateOrEditViewModel nodeViewModel; final SeedTypeViewModel seedTypeViewModel; + final bool useTestnet; + final Function(bool? val) toggleUseTestnet; + @override _AdvancedPrivacySettingsBodyState createState() => _AdvancedPrivacySettingsBodyState(); } @@ -52,9 +60,14 @@ class _AdvancedPrivacySettingsBodyState extends State(); + bool? testnetValue; @override Widget build(BuildContext context) { + if (testnetValue == null && widget.useTestnet != null) { + testnetValue = widget.useTestnet; + } + return Container( padding: EdgeInsets.only(top: 24), child: ScrollableWithBottomSection( @@ -125,6 +138,19 @@ class _AdvancedPrivacySettingsBodyState extends State WalletNameForm( - _walletNewVM, currentTheme.type == ThemeType.dark ? walletNameImage : walletNameLightImage, _seedTypeViewModel); + _walletNewVM, + currentTheme.type == ThemeType.dark ? walletNameImage : walletNameLightImage, + _seedTypeViewModel); } class WalletNameForm extends StatefulWidget { @@ -187,7 +189,6 @@ class _WalletNameFormState extends State { ), ), ), - if (_walletNewVM.hasLanguageSelector) ...[ if (_walletNewVM.hasSeedType) ...[ Observer( @@ -222,7 +223,7 @@ class _WalletNameFormState extends State { ), ), ) - ] + ], ], ), ), @@ -245,8 +246,11 @@ class _WalletNameFormState extends State { const SizedBox(height: 25), GestureDetector( onTap: () { - Navigator.of(context) - .pushNamed(Routes.advancedPrivacySettings, arguments: _walletNewVM.type); + Navigator.of(context).pushNamed(Routes.advancedPrivacySettings, arguments: { + "type": _walletNewVM.type, + "useTestnet": _walletNewVM.useTestnet, + "toggleTestnet": _walletNewVM.toggleUseTestnet + }); }, child: Text(S.of(context).advanced_settings), ), diff --git a/lib/src/screens/receive/anonpay_invoice_page.dart b/lib/src/screens/receive/anonpay_invoice_page.dart index fc835c72d..f33cdcc5b 100644 --- a/lib/src/screens/receive/anonpay_invoice_page.dart +++ b/lib/src/screens/receive/anonpay_invoice_page.dart @@ -4,7 +4,7 @@ import 'package:cake_wallet/anonpay/anonpay_donation_link_info.dart'; import 'package:cake_wallet/core/execution_state.dart'; import 'package:cake_wallet/di.dart'; import 'package:cake_wallet/entities/preferences_key.dart'; -import 'package:cake_wallet/entities/receive_page_option.dart'; +import 'package:cw_core/receive_page_option.dart'; import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/src/screens/dashboard/widgets/present_receive_option_picker.dart'; import 'package:cake_wallet/src/screens/receive/widgets/anonpay_input_form.dart'; diff --git a/lib/src/screens/receive/anonpay_receive_page.dart b/lib/src/screens/receive/anonpay_receive_page.dart index b602abde6..7d71e3a22 100644 --- a/lib/src/screens/receive/anonpay_receive_page.dart +++ b/lib/src/screens/receive/anonpay_receive_page.dart @@ -1,7 +1,7 @@ import 'package:cake_wallet/anonpay/anonpay_info_base.dart'; import 'package:cake_wallet/anonpay/anonpay_invoice_info.dart'; import 'package:cake_wallet/entities/qr_view_data.dart'; -import 'package:cake_wallet/entities/receive_page_option.dart'; +import 'package:cw_core/receive_page_option.dart'; import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/src/screens/base_page.dart'; diff --git a/lib/src/screens/restore/wallet_restore_page.dart b/lib/src/screens/restore/wallet_restore_page.dart index 899aacd19..fe5ac8487 100644 --- a/lib/src/screens/restore/wallet_restore_page.dart +++ b/lib/src/screens/restore/wallet_restore_page.dart @@ -210,8 +210,12 @@ class WalletRestorePage extends BasePage { const SizedBox(height: 25), GestureDetector( onTap: () { - Navigator.of(context).pushNamed(Routes.advancedPrivacySettings, - arguments: walletRestoreViewModel.type); + Navigator.of(context) + .pushNamed(Routes.advancedPrivacySettings, arguments: { + 'type': walletRestoreViewModel.type, + 'useTestnet': walletRestoreViewModel.useTestnet, + 'toggleTestnet': walletRestoreViewModel.toggleUseTestnet + }); }, child: Text(S.of(context).advanced_settings), ), diff --git a/lib/view_model/anon_invoice_page_view_model.dart b/lib/view_model/anon_invoice_page_view_model.dart index 53e8473a0..187eea375 100644 --- a/lib/view_model/anon_invoice_page_view_model.dart +++ b/lib/view_model/anon_invoice_page_view_model.dart @@ -4,7 +4,7 @@ import 'package:cake_wallet/anonpay/anonpay_request.dart'; import 'package:cake_wallet/core/execution_state.dart'; import 'package:cake_wallet/entities/fiat_currency.dart'; import 'package:cake_wallet/entities/preferences_key.dart'; -import 'package:cake_wallet/entities/receive_page_option.dart'; +import 'package:cw_core/receive_page_option.dart'; import 'package:cake_wallet/store/settings_store.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/currency.dart'; diff --git a/lib/view_model/dashboard/dashboard_view_model.dart b/lib/view_model/dashboard/dashboard_view_model.dart index a794c2262..da5eb0373 100644 --- a/lib/view_model/dashboard/dashboard_view_model.dart +++ b/lib/view_model/dashboard/dashboard_view_model.dart @@ -148,17 +148,21 @@ abstract class DashboardViewModelBase with Store { monero!.getTransactionInfoAccountId(tx) == monero!.getCurrentAccount(wallet).id) .toList(); - transactions = ObservableList.of(_accountTransactions.map((transaction) => - TransactionListItem( - transaction: transaction, - balanceViewModel: balanceViewModel, - settingsStore: appStore.settingsStore))); + final sortedTransactions = [..._accountTransactions]; + sortedTransactions.sort((a, b) => a.date.compareTo(b.date)); + + transactions = ObservableList.of(sortedTransactions.map((transaction) => TransactionListItem( + transaction: transaction, + balanceViewModel: balanceViewModel, + settingsStore: appStore.settingsStore))); } else { - transactions = ObservableList.of(wallet.transactionHistory.transactions.values.map( - (transaction) => TransactionListItem( - transaction: transaction, - balanceViewModel: balanceViewModel, - settingsStore: appStore.settingsStore))); + final sortedTransactions = [...wallet.transactionHistory.transactions.values]; + sortedTransactions.sort((a, b) => a.date.compareTo(b.date)); + + transactions = ObservableList.of(sortedTransactions.map((transaction) => TransactionListItem( + transaction: transaction, + balanceViewModel: balanceViewModel, + settingsStore: appStore.settingsStore))); } // TODO: nano sub-account generation is disabled: diff --git a/lib/view_model/dashboard/receive_option_view_model.dart b/lib/view_model/dashboard/receive_option_view_model.dart index 0eaa2a5f0..1e4726eee 100644 --- a/lib/view_model/dashboard/receive_option_view_model.dart +++ b/lib/view_model/dashboard/receive_option_view_model.dart @@ -1,4 +1,5 @@ -import 'package:cake_wallet/entities/receive_page_option.dart'; +import 'package:cake_wallet/bitcoin/bitcoin.dart'; +import 'package:cw_core/receive_page_option.dart'; import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:mobx/mobx.dart'; @@ -9,11 +10,20 @@ class ReceiveOptionViewModel = ReceiveOptionViewModelBase with _$ReceiveOptionVi abstract class ReceiveOptionViewModelBase with Store { ReceiveOptionViewModelBase(this._wallet, this.initialPageOption) - : selectedReceiveOption = initialPageOption ?? ReceivePageOption.mainnet, + : selectedReceiveOption = initialPageOption ?? + (_wallet.type == WalletType.bitcoin + ? bitcoin!.getSelectedAddressType(_wallet) + : ReceivePageOption.mainnet), _options = [] { final walletType = _wallet.type; - _options = - walletType == WalletType.haven ? [ReceivePageOption.mainnet] : ReceivePageOption.values; + _options = walletType == WalletType.haven + ? [ReceivePageOption.mainnet] + : walletType == WalletType.bitcoin + ? [ + ...bitcoin!.getBitcoinReceivePageOptions(), + ...ReceivePageOptions.where((element) => element != ReceivePageOption.mainnet) + ] + : ReceivePageOptions; } final WalletBase _wallet; diff --git a/lib/view_model/node_list/node_create_or_edit_view_model.dart b/lib/view_model/node_list/node_create_or_edit_view_model.dart index 0fb9a83c6..e323268a0 100644 --- a/lib/view_model/node_list/node_create_or_edit_view_model.dart +++ b/lib/view_model/node_list/node_create_or_edit_view_model.dart @@ -65,6 +65,8 @@ abstract class NodeCreateOrEditViewModelBase with Store { bool get hasAuthCredentials => _walletType == WalletType.monero || _walletType == WalletType.haven; + bool get hasTestnetSupport => _walletType == WalletType.bitcoin; + String get uri { var uri = address; diff --git a/lib/view_model/node_list/node_list_view_model.dart b/lib/view_model/node_list/node_list_view_model.dart index 5526cc6d2..9c2d2611e 100644 --- a/lib/view_model/node_list/node_list_view_model.dart +++ b/lib/view_model/node_list/node_list_view_model.dart @@ -52,7 +52,11 @@ abstract class NodeListViewModelBase with Store { switch (_appStore.wallet!.type) { case WalletType.bitcoin: - node = getBitcoinDefaultElectrumServer(nodes: _nodeSource)!; + if (_appStore.wallet!.isTestnet == true) { + node = getBitcoinTestnetDefaultElectrumServer(nodes: _nodeSource)!; + } else { + node = getBitcoinDefaultElectrumServer(nodes: _nodeSource)!; + } break; case WalletType.monero: node = getMoneroDefaultNode(nodes: _nodeSource); diff --git a/lib/view_model/transaction_details_view_model.dart b/lib/view_model/transaction_details_view_model.dart index 04eaf25e4..1b1ceb814 100644 --- a/lib/view_model/transaction_details_view_model.dart +++ b/lib/view_model/transaction_details_view_model.dart @@ -119,7 +119,7 @@ abstract class TransactionDetailsViewModelBase with Store { case WalletType.monero: return 'https://monero.com/tx/${txId}'; case WalletType.bitcoin: - return 'https://mempool.space/tx/${txId}'; + return 'https://mempool.space/${wallet.isTestnet == true ? "testnet/" : ""}tx/${txId}'; case WalletType.litecoin: return 'https://blockchair.com/litecoin/transaction/${txId}'; case WalletType.bitcoinCash: diff --git a/lib/view_model/wallet_address_list/wallet_address_list_view_model.dart b/lib/view_model/wallet_address_list/wallet_address_list_view_model.dart index bde535a23..a2aab5251 100644 --- a/lib/view_model/wallet_address_list/wallet_address_list_view_model.dart +++ b/lib/view_model/wallet_address_list/wallet_address_list_view_model.dart @@ -388,9 +388,6 @@ abstract class WalletAddressListViewModelBase extends WalletChangeListenerViewMo wallet.type == WalletType.bitcoin || wallet.type == WalletType.litecoin; - // wallet.type == WalletType.nano || - // wallet.type == WalletType.banano; TODO: nano accounts are disabled for now - @computed bool get isElectrumWallet => wallet.type == WalletType.bitcoin || @@ -409,16 +406,17 @@ abstract class WalletAddressListViewModelBase extends WalletChangeListenerViewMo void setAddress(WalletAddressListItem address) => wallet.walletAddresses.address = address.address; + @action + Future setAddressType(dynamic option) async { + if (wallet.type == WalletType.bitcoin) { + await bitcoin!.setAddressType(wallet, option); + } + } + void _init() { _baseItems = []; - if (wallet.type == WalletType.monero || - wallet.type == - WalletType - .haven /*|| - wallet.type == WalletType.nano || - wallet.type == WalletType.banano*/ - ) { + if (wallet.type == WalletType.monero || wallet.type == WalletType.haven) { _baseItems.add(WalletAccountListHeader()); } diff --git a/lib/view_model/wallet_creation_vm.dart b/lib/view_model/wallet_creation_vm.dart index 45306905c..4a1e054d6 100644 --- a/lib/view_model/wallet_creation_vm.dart +++ b/lib/view_model/wallet_creation_vm.dart @@ -23,6 +23,12 @@ abstract class WalletCreationVMBase with Store { : state = InitialExecutionState(), name = ''; + @observable + bool _useTestnet = false; + + @computed + bool get useTestnet => _useTestnet; + @observable String name; @@ -94,4 +100,9 @@ abstract class WalletCreationVMBase with Store { Future processFromRestoredWallet( WalletCredentials credentials, RestoredWallet restoreWallet) => throw UnimplementedError(); + + @action + void toggleUseTestnet(bool? value) { + _useTestnet = value ?? !_useTestnet; + } } diff --git a/lib/view_model/wallet_new_vm.dart b/lib/view_model/wallet_new_vm.dart index 6f3e0280e..8b19108ec 100644 --- a/lib/view_model/wallet_new_vm.dart +++ b/lib/view_model/wallet_new_vm.dart @@ -87,6 +87,6 @@ abstract class WalletNewVMBase extends WalletCreationVM with Store { @override Future process(WalletCredentials credentials) async { walletCreationService.changeWalletType(type: type); - return walletCreationService.create(credentials); + return walletCreationService.create(credentials, isTestnet: useTestnet); } } diff --git a/lib/view_model/wallet_restore_view_model.dart b/lib/view_model/wallet_restore_view_model.dart index 98dce3d92..93ca813d6 100644 --- a/lib/view_model/wallet_restore_view_model.dart +++ b/lib/view_model/wallet_restore_view_model.dart @@ -207,9 +207,9 @@ abstract class WalletRestoreViewModelBase extends WalletCreationVM with Store { @override Future process(WalletCredentials credentials) async { if (mode == WalletRestoreMode.keys) { - return walletCreationService.restoreFromKeys(credentials); + return walletCreationService.restoreFromKeys(credentials, isTestnet: useTestnet); } - return walletCreationService.restoreFromSeed(credentials); + return walletCreationService.restoreFromSeed(credentials, isTestnet: useTestnet); } } diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 3e3f595be..9e822c474 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -719,6 +719,7 @@ "use_card_info_two": "يتم تحويل الأموال إلى الدولار الأمريكي عند الاحتفاظ بها في الحساب المدفوع مسبقًا ، وليس بالعملات الرقمية.", "use_ssl": "استخدم SSL", "use_suggested": "استخدام المقترح", + "use_testnet": "استخدم testnet", "variable_pair_not_supported": "هذا الزوج المتغير غير مدعوم في التبادلات المحددة", "verification": "تَحَقّق", "verify_with_2fa": "تحقق مع Cake 2FA", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index 9d64e36ae..8dbdf4b98 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -719,6 +719,7 @@ "use_card_info_two": "Средствата се обръщат в USD, когато биват запазени в предплатената карта, а не в дигитална валута.", "use_ssl": "Използване на SSL", "use_suggested": "Използване на предложеното", + "use_testnet": "Използвайте TestNet", "variable_pair_not_supported": "Този variable pair не се поддържа от избраната борса", "verification": "Потвърждаване", "verify_with_2fa": "Проверете с Cake 2FA", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 8665efc2c..ff22febf0 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -719,6 +719,7 @@ "use_card_info_two": "Prostředky jsou převedeny na USD, když jsou drženy na předplaceném účtu, nikoliv na digitální měnu.", "use_ssl": "Použít SSL", "use_suggested": "Použít doporučený", + "use_testnet": "Použijte testNet", "variable_pair_not_supported": "Tento pár s tržním kurzem není ve zvolené směnárně podporován", "verification": "Ověření", "verify_with_2fa": "Ověřte pomocí Cake 2FA", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 28e3d4996..366d7d529 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -721,6 +721,7 @@ "use_card_info_two": "Guthaben werden auf dem Prepaid-Konto in USD umgerechnet, nicht in digitale Währung.", "use_ssl": "SSL verwenden", "use_suggested": "Vorgeschlagen verwenden", + "use_testnet": "TESTNET verwenden", "variable_pair_not_supported": "Dieses Variablenpaar wird von den ausgewählten Börsen nicht unterstützt", "verification": "Verifizierung", "verify_with_2fa": "Verifizieren Sie mit Cake 2FA", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index aae06f6b0..b7aecc739 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -719,6 +719,7 @@ "use_card_info_two": "Funds are converted to USD when they're held in the prepaid account, not in digital currencies.", "use_ssl": "Use SSL", "use_suggested": "Use Suggested", + "use_testnet": "Use Testnet", "variable_pair_not_supported": "This variable pair is not supported with the selected exchanges", "verification": "Verification", "verify_with_2fa": "Verify with Cake 2FA", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index d9e786467..832d66b5b 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -720,6 +720,7 @@ "use_card_info_two": "Los fondos se convierten a USD cuando se mantienen en la cuenta prepaga, no en monedas digitales.", "use_ssl": "Utilice SSL", "use_suggested": "Usar sugerido", + "use_testnet": "Use TestNet", "variable_pair_not_supported": "Este par de variables no es compatible con los intercambios seleccionados", "verification": "Verificación", "verify_with_2fa": "Verificar con Cake 2FA", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index 8b4fc10d1..80b44d6ed 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -719,6 +719,7 @@ "use_card_info_two": "Les fonds sont convertis en USD lorsqu'ils sont détenus sur le compte prépayé, et non en devises numériques.", "use_ssl": "Utiliser SSL", "use_suggested": "Suivre la suggestion", + "use_testnet": "Utiliser TestNet", "variable_pair_not_supported": "Cette paire variable n'est pas prise en charge avec les échanges sélectionnés", "verification": "Vérification", "verify_with_2fa": "Vérifier avec Cake 2FA", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index 6d1a5db0c..e1b77f346 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -721,6 +721,7 @@ "use_card_info_two": "Ana canza kuɗi zuwa dalar Amurka lokacin da ake riƙe su a cikin asusun da aka riga aka biya, ba cikin agogon dijital ba.", "use_ssl": "Yi amfani da SSL", "use_suggested": "Amfani da Shawarwari", + "use_testnet": "Amfani da gwaji", "variable_pair_not_supported": "Ba a samun goyan bayan wannan m biyu tare da zaɓaɓɓun musayar", "verification": "tabbatar", "verify_with_2fa": "Tabbatar da Cake 2FA", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index eaeffab92..555e1fff5 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -721,6 +721,7 @@ "use_card_info_two": "डिजिटल मुद्राओं में नहीं, प्रीपेड खाते में रखे जाने पर निधियों को यूएसडी में बदल दिया जाता है।", "use_ssl": "उपयोग SSL", "use_suggested": "सुझाए गए का प्रयोग करें", + "use_testnet": "टेस्टनेट का उपयोग करें", "variable_pair_not_supported": "यह परिवर्तनीय जोड़ी चयनित एक्सचेंजों के साथ समर्थित नहीं है", "verification": "सत्यापन", "verify_with_2fa": "केक 2FA के साथ सत्यापित करें", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index a915030f4..2b2e80198 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -719,6 +719,7 @@ "use_card_info_two": "Sredstva se pretvaraju u USD kada se drže na prepaid računu, a ne u digitalnim valutama.", "use_ssl": "Koristi SSL", "use_suggested": "Koristite predloženo", + "use_testnet": "Koristite TestNet", "variable_pair_not_supported": "Ovaj par varijabli nije podržan s odabranim burzama", "verification": "Potvrda", "verify_with_2fa": "Provjerite s Cake 2FA", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index ed53b7e62..10af2f8ad 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -722,6 +722,7 @@ "use_card_info_two": "Dana dikonversi ke USD ketika disimpan dalam akun pra-bayar, bukan dalam mata uang digital.", "use_ssl": "Gunakan SSL", "use_suggested": "Gunakan yang Disarankan", + "use_testnet": "Gunakan TestNet", "variable_pair_not_supported": "Pasangan variabel ini tidak didukung dengan bursa yang dipilih", "verification": "Verifikasi", "verify_with_2fa": "Verifikasi dengan Cake 2FA", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index d83619855..a4093f077 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -721,6 +721,7 @@ "use_card_info_two": "I fondi vengono convertiti in USD quando sono detenuti nel conto prepagato, non in valute digitali.", "use_ssl": "Usa SSL", "use_suggested": "Usa suggerito", + "use_testnet": "Usa TestNet", "variable_pair_not_supported": "Questa coppia di variabili non è supportata con gli scambi selezionati", "verification": "Verifica", "verify_with_2fa": "Verifica con Cake 2FA", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index e04d8c000..001e26f65 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -720,6 +720,7 @@ "use_card_info_two": "デジタル通貨ではなく、プリペイドアカウントで保持されている場合、資金は米ドルに変換されます。", "use_ssl": "SSLを使用する", "use_suggested": "推奨を使用", + "use_testnet": "テストネットを使用します", "variable_pair_not_supported": "この変数ペアは、選択した取引所ではサポートされていません", "verification": "検証", "verify_with_2fa": "Cake 2FA で検証する", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index cfd3df6c9..bc708b246 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -720,6 +720,7 @@ "use_card_info_two": "디지털 화폐가 아닌 선불 계정에 보유하면 자금이 USD로 변환됩니다.", "use_ssl": "SSL 사용", "use_suggested": "추천 사용", + "use_testnet": "TestNet을 사용하십시오", "variable_pair_not_supported": "이 변수 쌍은 선택한 교환에서 지원되지 않습니다.", "verification": "검증", "verify_with_2fa": "케이크 2FA로 확인", diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index 281bb6cea..56cdb802d 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -719,6 +719,7 @@ "use_card_info_two": "ဒစ်ဂျစ်တယ်ငွေကြေးများဖြင့်မဟုတ်ဘဲ ကြိုတင်ငွေပေးချေသည့်အကောင့်တွင် သိမ်းထားသည့်အခါ ရန်ပုံငွေများကို USD သို့ ပြောင်းလဲပါသည်။", "use_ssl": "SSL ကိုသုံးပါ။", "use_suggested": "အကြံပြုထားသည်ကို အသုံးပြုပါ။", + "use_testnet": "testnet ကိုသုံးပါ", "variable_pair_not_supported": "ရွေးချယ်ထားသော ဖလှယ်မှုများဖြင့် ဤပြောင်းလဲနိုင်သောအတွဲကို ပံ့ပိုးမထားပါ။", "verification": "စိစစ်ခြင်း။", "verify_with_2fa": "Cake 2FA ဖြင့် စစ်ဆေးပါ။", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 19573b116..3ab2c06e6 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -719,6 +719,7 @@ "use_card_info_two": "Tegoeden worden omgezet naar USD wanneer ze op de prepaid-rekening staan, niet in digitale valuta.", "use_ssl": "Gebruik SSL", "use_suggested": "Gebruik aanbevolen", + "use_testnet": "Gebruik testnet", "variable_pair_not_supported": "Dit variabelenpaar wordt niet ondersteund met de geselecteerde uitwisselingen", "verification": "Verificatie", "verify_with_2fa": "Controleer met Cake 2FA", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 33fd1408a..855fb6680 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -719,6 +719,7 @@ "use_card_info_two": "Środki są przeliczane na USD, gdy są przechowywane na koncie przedpłaconym, a nie w walutach cyfrowych.", "use_ssl": "Użyj SSL", "use_suggested": "Użyj sugerowane", + "use_testnet": "Użyj testne", "variable_pair_not_supported": "Ta para zmiennych nie jest obsługiwana na wybranych giełdach", "verification": "Weryfikacja", "verify_with_2fa": "Sprawdź za pomocą Cake 2FA", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 649551d01..df3f0cdd1 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -721,6 +721,7 @@ "use_card_info_two": "Os fundos são convertidos para USD quando mantidos na conta pré-paga, não em moedas digitais.", "use_ssl": "Use SSL", "use_suggested": "Uso sugerido", + "use_testnet": "Use testNet", "variable_pair_not_supported": "Este par de variáveis não é compatível com as trocas selecionadas", "verification": "Verificação", "verify_with_2fa": "Verificar com Cake 2FA", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 16c294ef7..ebd444461 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -720,6 +720,7 @@ "use_card_info_two": "Средства конвертируются в доллары США, когда они хранятся на предоплаченном счете, а не в цифровых валютах.", "use_ssl": "Использовать SSL", "use_suggested": "Использовать предложенный", + "use_testnet": "Используйте Testnet", "variable_pair_not_supported": "Эта пара переменных не поддерживается выбранными биржами.", "verification": "Проверка", "verify_with_2fa": "Подтвердить с помощью Cake 2FA", diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index dc72090d4..5e04f780f 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -719,6 +719,7 @@ "use_card_info_two": "เงินจะถูกแปลงค่าเป็นดอลลาร์สหรัฐเมื่อถือไว้ในบัญชีสำรองเงิน ไม่ใช่สกุลเงินดิจิตอล", "use_ssl": "ใช้ SSL", "use_suggested": "ใช้ที่แนะนำ", + "use_testnet": "ใช้ testnet", "variable_pair_not_supported": "คู่ความสัมพันธ์ที่เปลี่ยนแปลงได้นี้ไม่สนับสนุนกับหุ้นที่เลือก", "verification": "การตรวจสอบ", "verify_with_2fa": "ตรวจสอบกับ Cake 2FA", diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index 4090a4669..6be45a997 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -719,6 +719,7 @@ "use_card_info_two": "Ang mga pondo ay na -convert sa USD kapag gaganapin sila sa prepaid account, hindi sa mga digital na pera.", "use_ssl": "Gumamit ng SSL", "use_suggested": "Gumamit ng iminungkahing", + "use_testnet": "Gumamit ng testnet", "variable_pair_not_supported": "Ang variable na pares na ito ay hindi suportado sa mga napiling palitan", "verification": "Pag -verify", "verify_with_2fa": "Mag -verify sa cake 2FA", diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index 39eab9f86..60773f37d 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -719,6 +719,7 @@ "use_card_info_two": "Paralar, dijital para birimlerinde değil, ön ödemeli hesapta tutulduğunda USD'ye dönüştürülür.", "use_ssl": "SSL kullan", "use_suggested": "Önerileni Kullan", + "use_testnet": "TestNet kullanın", "variable_pair_not_supported": "Bu değişken paritesi seçilen borsalarda desteklenmemekte", "verification": "Doğrulama", "verify_with_2fa": "Cake 2FA ile Doğrulayın", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index b655a902d..ae4efdd8f 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -720,6 +720,7 @@ "use_card_info_two": "Кошти конвертуються в долари США, якщо вони зберігаються на передплаченому рахунку, а не в цифрових валютах.", "use_ssl": "Використати SSL", "use_suggested": "Використати запропоноване", + "use_testnet": "Використовуйте тестову мережу", "variable_pair_not_supported": "Ця пара змінних не підтримується вибраними біржами", "verification": "Перевірка", "verify_with_2fa": "Перевірте за допомогою Cake 2FA", diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index 0dcd31069..929f7de2e 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -721,6 +721,7 @@ "use_card_info_two": "رقوم کو امریکی ڈالر میں تبدیل کیا جاتا ہے جب پری پیڈ اکاؤنٹ میں رکھا جاتا ہے، ڈیجیٹل کرنسیوں میں نہیں۔", "use_ssl": "SSL استعمال کریں۔", "use_suggested": "تجویز کردہ استعمال کریں۔", + "use_testnet": "ٹیسٹ نیٹ استعمال کریں", "variable_pair_not_supported": "یہ متغیر جوڑا منتخب ایکسچینجز کے ساتھ تعاون یافتہ نہیں ہے۔", "verification": "تصدیق", "verify_with_2fa": "کیک 2FA سے تصدیق کریں۔", diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index af21c001b..9813cc976 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -720,6 +720,7 @@ "use_card_info_two": "A pààrọ̀ owó sí owó Amẹ́ríkà tó bá wà nínú àkanti t'á ti fikún tẹ́lẹ̀tẹ́lẹ̀. A kò kó owó náà nínú owó ayélujára.", "use_ssl": "Lo SSL", "use_suggested": "Lo àbá", + "use_testnet": "Lo tele", "variable_pair_not_supported": "A kì í ṣe k'á fi àwọn ilé pàṣípààrọ̀ yìí ṣe pàṣípààrọ̀ irú owó méji yìí", "verification": "Ìjẹ́rìísí", "verify_with_2fa": "Ṣeẹda pẹlu Cake 2FA", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 6c245d30f..3a2104ecc 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -719,6 +719,7 @@ "use_card_info_two": "预付账户中的资金转换为美元,不是数字货币。", "use_ssl": "使用SSL", "use_suggested": "使用建议", + "use_testnet": "使用TestNet", "variable_pair_not_supported": "所选交易所不支持此变量对", "verification": "验证", "verify_with_2fa": "用 Cake 2FA 验证", diff --git a/scripts/android/app_env.sh b/scripts/android/app_env.sh index f659239e7..9251ec31a 100644 --- a/scripts/android/app_env.sh +++ b/scripts/android/app_env.sh @@ -22,8 +22,8 @@ MONERO_COM_PACKAGE="com.monero.app" MONERO_COM_SCHEME="monero.com" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="4.13.3" -CAKEWALLET_BUILD_NUMBER=192 +CAKEWALLET_VERSION="4.14.0" +CAKEWALLET_BUILD_NUMBER=193 CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet" CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet" CAKEWALLET_SCHEME="cakewallet" diff --git a/scripts/android/shell.nix b/scripts/android/shell.nix new file mode 100644 index 000000000..b89da09c0 --- /dev/null +++ b/scripts/android/shell.nix @@ -0,0 +1,16 @@ +{ pkgs ? import {} }: + +pkgs.mkShell { + buildInputs = [ + pkgs.curl + pkgs.unzip + pkgs.automake + pkgs.file + pkgs.pkg-config + pkgs.git + pkgs.libtool + pkgs.ncurses5 + pkgs.openjdk8 + pkgs.clang + ]; +} diff --git a/scripts/ios/app_env.sh b/scripts/ios/app_env.sh index bb4ca77f8..47d80013c 100644 --- a/scripts/ios/app_env.sh +++ b/scripts/ios/app_env.sh @@ -18,8 +18,8 @@ MONERO_COM_BUILD_NUMBER=73 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="4.13.3" -CAKEWALLET_BUILD_NUMBER=212 +CAKEWALLET_VERSION="4.14.0" +CAKEWALLET_BUILD_NUMBER=213 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" HAVEN_NAME="Haven" diff --git a/tool/configure.dart b/tool/configure.dart index bd2e4227c..3a69e86b1 100644 --- a/tool/configure.dart +++ b/tool/configure.dart @@ -72,6 +72,7 @@ import 'package:cake_wallet/view_model/send/output.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:hive/hive.dart';"""; const bitcoinCWHeaders = """ +import 'package:cw_bitcoin/bitcoin_receive_page_option.dart'; import 'package:cw_bitcoin/electrum_wallet.dart'; import 'package:cw_bitcoin/bitcoin_unspent.dart'; import 'package:cw_bitcoin/bitcoin_mnemonic.dart'; @@ -82,6 +83,7 @@ import 'package:cw_bitcoin/bitcoin_amount_format.dart'; import 'package:cw_bitcoin/bitcoin_address_record.dart'; import 'package:cw_bitcoin/bitcoin_transaction_credentials.dart'; import 'package:cw_bitcoin/litecoin_wallet_service.dart'; +import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:mobx/mobx.dart'; """; const bitcoinCwPart = "part 'cw_bitcoin.dart';"; @@ -139,6 +141,10 @@ abstract class Bitcoin { TransactionPriority getLitecoinTransactionPriorityMedium(); TransactionPriority getBitcoinTransactionPrioritySlow(); TransactionPriority getLitecoinTransactionPrioritySlow(); + + Future setAddressType(Object wallet, dynamic option); + BitcoinReceivePageOption getSelectedAddressType(Object wallet); + List getBitcoinReceivePageOptions(); } """; From cbc0c3afd6bcb5999bc0928d9aa209e34d674849 Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Fri, 23 Feb 2024 19:09:24 +0200 Subject: [PATCH 12/30] Generic fixes (#1304) * fix mobx no element error * fix mobx issue * Remove unused code * Enhance error handling for monero sync failure case * Separate litecoin mnemonic exception from bitcoin * - Enable onramper for polygon - Add Kaspa validation * Set null as the default length of address validation * Modify EVM fee text [skip ci] * Add seed length option to polygon * Add digibyte * Update configure_cake_wallet.sh and fix conflicts * Pin bottom section * Fix Solana missing isTestnet param --- .gitignore | 1 + assets/images/digibyte.png | Bin 0 -> 6008 bytes configure_cake_wallet.sh | 1 + cw_bitcoin/lib/bitcoin_wallet_service.dart | 2 +- cw_bitcoin/lib/litecoin_wallet_service.dart | 4 +- ...t => mnemonic_is_incorrect_exception.dart} | 6 +++ cw_core/lib/crypto_currency.dart | 9 ++-- cw_evm/lib/evm_chain_wallet_addresses.dart | 1 + cw_monero/lib/monero_wallet.dart | 20 ++++---- cw_solana/lib/default_spl_tokens.dart | 2 - cw_solana/lib/solana_wallet_service.dart | 8 ++-- lib/bitcoin_cash/cw_bitcoin_cash.dart | 6 --- lib/core/address_validator.dart | 4 +- lib/entities/provider_types.dart | 4 +- lib/src/screens/send/send_page.dart | 5 +- .../scollable_with_bottom_section.dart | 43 +++++++----------- .../advanced_privacy_settings_view_model.dart | 24 ++++++++-- .../unspent_coins_list_view_model.dart | 6 ++- lib/view_model/wallet_keys_view_model.dart | 4 +- tool/configure.dart | 4 -- 20 files changed, 84 insertions(+), 70 deletions(-) create mode 100644 assets/images/digibyte.png rename cw_bitcoin/lib/{bitcoin_mnemonic_is_incorrect_exception.dart => mnemonic_is_incorrect_exception.dart} (50%) diff --git a/.gitignore b/.gitignore index 25edfcfb0..6f2d0a182 100644 --- a/.gitignore +++ b/.gitignore @@ -86,6 +86,7 @@ cw_monero/cw_monero/android/.cxx/ **/*.g.dart android/key.properties +android/app/key.jks **/tool/.secrets-prod.json **/tool/.secrets-test.json diff --git a/assets/images/digibyte.png b/assets/images/digibyte.png new file mode 100644 index 0000000000000000000000000000000000000000..0045c68521f06503057c4168c7ec3bc3a6b48905 GIT binary patch literal 6008 zcmV-;7l-JHP)XQq34 z)Nz?^3l~~i+HSM~MHCxEM1celkwqE^VF@7tLP7|s?cFs-fqLt|vOW?}(x0!oVn0O}BYM0= z;CLVp7zYdoE(Hbyy=~sA9M}o$1$F?%ph`j10|DvJ5B@&`z9D*15{L|-FE9<54ot8Z z(T+_8Kx_a$0<{K28JH)ezwq?`Nd_3c;#^>mMfBO0q<3c925KdURlsiP&)@&8XMo`= zc3Ea+ibeEkUBnW646Fe8F{dgw%eSsq-#P{uzT!#1TwsP}&%0n#yFjc2-jV+NwciQ` z81ps`LWoB|TnprKakTwfBY0l=^S{0*8DRK|4d6-O2S5(s;^JyjGeW%z?thp5vC{Ar zi}rSBMaM{e(J+LV4~(%~%Jz9xVSQSBZ3Rj-`fit24{Qe>k^cOmF0TQGujt1h{s~BI z+nb5AL`OiV7V4|vOcjLcKs6JG#iv3-3dARaH%<4h{TOl*cvkxJpX!nfFnmQRz#AZL zXuI-9ptc;UN}%ch>U0H|A)Bvk5!w}pNbUpO`$3N!NbU`WyUn9CsJD@!2jwf1j&~Ub z824=$g5g>W3~e33O^5`c`XC(LhN{}H{|gI=5UqSoWg!t#B0OH`kqf;?Yo-_;Fj_q< z6@mJp^cQTs;0!Q)#j}7{9l!*ZX#v9Z+N@OUfFoa`0@W5_j1I7l3Z&H9~B{AV-=VYNJvBU9tnNMKw`QRCImqJK>7<7bvOgG%~!91h;4QnOiJZ$)Pc{T zrc8HM7+n;JkeVc^*@#OfK;|%Q9_^W=V<__hIlu57Cjpxy1{m`;3_-a5ik=XOac4un z{DIFg$Pw~Yj0*So0W zdqIXT9^yA1s9kPEj~o~=S33{(yrdl2(MP?Dk_Qh?i{(woSYLB#0Yr-7!)Rn-)NI8Q+ekptc;fd4YBwVlzR2 zxXSPqKh-WK$nX^p2R6pWb_AF~)TY73l4~{q=H~b+XGrLB1(lTwHsHA z9Za{xbA5xbl>G9g#o%@`W6D?(;}V)&{_>)ggaRRO8Hl!wSB3{p9)z+jkTc0LMJ={I zK!X+pVws@J(WxU*9&W(NLmF7q*4HNSB?$>$?!0Rj{W8-KLRiV4!WJte3Mm!6dZaOX z+SsPBWL-V?-#!y>f`?mX6gD|tSyjWJ+Vw_KBa(gnAcx;lAEp?PQ2R-!sQ5z zYG9Hf1Rl4mi3Ce235E558|QI1Ic}N}YR?1+gd)@hg6!OLh~=xc@RtwQQ+cQY65^aQ zLYjz-JQ#hu9YK5;cv<@MBh50vN*A0@w2U<&psED5WuawyY)XH9kU4X%Z?L3g=w0cs;g(&s?Ge{i+^U%-oprw!?|M_L5%x8bkB)lR@Dw5U-}E`TN;E1 z5i4CVTo2{j^<;_z)05OAm3g;aO;$!47jhmzH2P%-1CQH7dTI*y-aL)sWxwLF`)?%C z8|N%w69$xiW}{nT7>H5LdO^m#4N0J;#(Y?PwVpy@$Fg@E-EK`%*p&W=Np4<$Zo6(GDcuq- z0?bG9&|S0n$pbf&;Ei)IAiLne=QbFi=DP1&=V{Ia^#!8C&5;0JMChp1zo#F+3y;S^?vOH}d}~b4PzmGK^Wy+7a8=9)9Q_Jh_Q5P+Xl!Qj z^7Vwn;Z7TT1q#FEqGyj3Mh?wk?9g1Cd-;kHm-b`CkQ_E|-GeZMErFwA7v#noO4T*z zGaw!)jOA*ns{M{3hb>?2WAm4LS{3xR&5{_TBqz|XPfw=i59M*+P2~3N=S?ph z!R9Y^V>h{51*#EsC%~H$1)LQ94d2F0=^tO=wpJtN5iN^ZXe^vauyy&B!ngpQr{dJ9 zGwe87!p_|X`08&5dHq+9lG`uSCKI%v?E_xL!6^9Rz@ z$!D?iPA_jTK?X1~CIwF(06GrwRHn(GynftqTD-#1Uvwa_A@+4*MMmL7*BuiP6l^paw%H&)ai?OZjBu4shV3D=A6NO1J!adjt*2FhyH; zw*n!JK;TrY=LjI%Al8a>As~2)j&fs^Qlum&F?;&u7&ba;N=ebS5{~REL%19SNfDD# zLvl!rv+u>NUbmAoj;Ah#4#>jwu{6K{(hXwfc?zA^*@3N3W)J3GGtt($2g{G~-l|P{ zBE?Ayg_%Ba1SyG$wuNcIJF8nKc1r35HDWTLm)n*>lxBw!-{WyJZNdn$($j1Wj9-@= z;?tt-;6Rd2JSpE67*2Rwv3qWj~dBKx56TETU|Gk;E&aJ6C z!}5>6fcl`b`P@K=nUlvbXh5dzOI}*IqV1FS_MpEDiFpYMMqbM3%Pz5X{)y_-ELye> zyz!2tpLh?qUN@dTz3eUKsXST3+bcdN95KJ$3;@Ls@0?|C42_tqUca5HBgbq7UyY^z zJ6Dcldf`ZfO+4YnH&(F!P(|lJR<=eY(f(Bil!EN6p4>R2&<2|nfpCyF7Juw$@KsXM zBQu>J+&qm-`q(o+e=99#>B=Gk^})8Nw%s`sVW7)=MWUhHZ_8TTMclJcv=fC*-6@0b(fTJL6%~%}+SO9XCv-XOARXUT|G7%`^ub+G0jSsTi2_IF0>|axPbv*M>Rp-RB*+$D-$01yV;FVn&^_bdJ|O@RkmDD zB_+cLUBU}b`4~5Bpe?;U6AI#Aw31~Xd=70%UvJC+Z)z+JsFwcxa03JO#8NAf+`C;$ zz^HJ9abpKFdRUI-m55jn8qY6W5mWk=DYe-t9Kmb<`6H(04~xlO0I4L4-(Sx&{&#gh z+XL}+#aRr9s@=Ol!_g954=4ISoYqgz^t83^QZUS;chAOSv!h>^ma%@*t`-3?r4-Z$ zN$=B>Td%!>pFK2(?96oA6OZqIvW1`idLgydwTQTOkbdDpbn9t(j^SuT-PXVW1r)~| zSi0xHzBS-#Jp+^}>7CP?X@$dZ*}Tt-fA|n3n~uLqN~jOwN=ahYb(6X4rYYPqa{_M5 ze%m4biZxq!?5S5NJ8%@?Z6_0JxHYY!LlH_SHUhY%KVKQX;!?{S^0ue}DZLS%M3fBC zYGm|GfP3a#O-8D{th4%1m?bOL>opNlfoVcSf0BD=aNT#Oas5@7bH%vJ=%1PH=)D#$ zTg%UWy^wQ_Dj?|1BS^*+Si! z0K(nQ5xx-6YnUBp<-LXcwjv;)5 zXr$+90X3s}Kb!)wrWppv<6wLcl>vrZmvA|_5hqKNh?rb6X%xe9`*s4p3ZYPlqbE-C z`jSt1cK%YTE2|Olo(?3w_29na>`Y$0CH?ub2?L~m{At5iyb5?C>g9>)h^*nLBVXFm z0%b}v`(-kzU?_1OcZc;~D#eNFTFNR;@b(Am`Q4iMCR(Pn+pBA=RqV8<1*XZwaf2B@Dz8KOUU{O5!xhzR-+P#MR~575 z!wp1gPJ=fd(P`@u1ms<9V;WNJ#xORu$N=fjFExC{A4Fw<0FrwnGKa?00;LoQ$%#zK zA52DC`v7|3NQBa|W9%tC!k*G{Hg4O?r$swCy!SA;42bg}k~(oAh#A(aB-65OAjaZ3 z6lOFH09a#b!r&HNnz$tBJqk{iMqi|DN=6OIVeYjPofFy&;Wpfe^X|R(;87m@hu^X7 z>jRvusM7D_aU+tvbb3bDw2EC>&wc z=iB*Y!=UtVCC|)XMx4iu+wH<-7(`6TbypQMIe+KA!#uy>eYS1dh40Rp#JSz) zJhP^@mbczp2MO_Q$L!m|^pHMKkB70>OdJOBzMNlZuU3Tg7pw)ff@rfP%7nxW#3d7B zEJn~CN+1~GbX`3)C#soJIGp}jO~-^Uc9pR0i``70Ii7LDbDIo4rH3n7_t}@uld?L% z>me=?F<_D|-W0q24|+2pVroF64nGgf0tQB9Lgr9J?NQXh4J~>Bq9IJTBH4@{DZIY; z<8M+6g%DJpIK>-(Sp!niEg^vwA8*Fvc70Q@ur3^8;oF~pAv)Hdx8v{&1CcXTYd~z+ zVJq-n9L`eosg2%Y30j0P4ZLvB8FZMDcN=sZ-bx~NPod9JGiesY|>Zs zXArm8f@FiIV8=34Rms^g;$oG0rL@@@G!we@iiLDGw0FRDyY!EZd9rRvZdfDEKplfd)+@M`n zB|AQd6GEpCrswGaHe-+9=3osW$ER5LZ&kp!1=Pb%yq%8I0AG=i{sLwA ziu(XBqYFQITP2x>Rl1_?n65Z-@&Kytn9f6z5xvuqGMm>FAuM9M^nDDsp0h~GfbIiy zjpxK377!I_t)_+0NmWm@*ACnru$gD^zXEp>tMGSBt#F-PCRBe?@3N_D z!0>=4UT?Qn9j literal 0 HcmV?d00001 diff --git a/configure_cake_wallet.sh b/configure_cake_wallet.sh index 5009cd9e3..cc55e8fcc 100755 --- a/configure_cake_wallet.sh +++ b/configure_cake_wallet.sh @@ -30,6 +30,7 @@ cd cw_bitcoin && flutter pub get && flutter packages pub run build_runner build cd cw_haven && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. cd cw_nano && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. cd cw_bitcoin_cash && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. +cd cw_solana && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. cd cw_ethereum && flutter pub get && cd .. cd cw_polygon && flutter pub get && cd .. flutter packages pub run build_runner build --delete-conflicting-outputs diff --git a/cw_bitcoin/lib/bitcoin_wallet_service.dart b/cw_bitcoin/lib/bitcoin_wallet_service.dart index 2b8c489d2..38e769d15 100644 --- a/cw_bitcoin/lib/bitcoin_wallet_service.dart +++ b/cw_bitcoin/lib/bitcoin_wallet_service.dart @@ -1,7 +1,7 @@ import 'dart:io'; import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:cw_bitcoin/bitcoin_mnemonic.dart'; -import 'package:cw_bitcoin/bitcoin_mnemonic_is_incorrect_exception.dart'; +import 'package:cw_bitcoin/mnemonic_is_incorrect_exception.dart'; import 'package:cw_bitcoin/bitcoin_wallet_creation_credentials.dart'; import 'package:cw_core/unspent_coins_info.dart'; import 'package:cw_core/wallet_base.dart'; diff --git a/cw_bitcoin/lib/litecoin_wallet_service.dart b/cw_bitcoin/lib/litecoin_wallet_service.dart index 3d7462fa1..ee3b0e628 100644 --- a/cw_bitcoin/lib/litecoin_wallet_service.dart +++ b/cw_bitcoin/lib/litecoin_wallet_service.dart @@ -2,7 +2,7 @@ import 'dart:io'; import 'package:cw_core/unspent_coins_info.dart'; import 'package:hive/hive.dart'; import 'package:cw_bitcoin/bitcoin_mnemonic.dart'; -import 'package:cw_bitcoin/bitcoin_mnemonic_is_incorrect_exception.dart'; +import 'package:cw_bitcoin/mnemonic_is_incorrect_exception.dart'; import 'package:cw_bitcoin/bitcoin_wallet_creation_credentials.dart'; import 'package:cw_bitcoin/litecoin_wallet.dart'; import 'package:cw_core/wallet_service.dart'; @@ -101,7 +101,7 @@ class LitecoinWalletService extends WalletService< Future restoreFromSeed( BitcoinRestoreWalletFromSeedCredentials credentials, {bool? isTestnet}) async { if (!validateMnemonic(credentials.mnemonic)) { - throw BitcoinMnemonicIsIncorrectException(); + throw LitecoinMnemonicIsIncorrectException(); } final wallet = await LitecoinWalletBase.create( diff --git a/cw_bitcoin/lib/bitcoin_mnemonic_is_incorrect_exception.dart b/cw_bitcoin/lib/mnemonic_is_incorrect_exception.dart similarity index 50% rename from cw_bitcoin/lib/bitcoin_mnemonic_is_incorrect_exception.dart rename to cw_bitcoin/lib/mnemonic_is_incorrect_exception.dart index 8d0583ce5..779bd3ea2 100644 --- a/cw_bitcoin/lib/bitcoin_mnemonic_is_incorrect_exception.dart +++ b/cw_bitcoin/lib/mnemonic_is_incorrect_exception.dart @@ -3,3 +3,9 @@ class BitcoinMnemonicIsIncorrectException implements Exception { String toString() => 'Bitcoin mnemonic has incorrect format. Mnemonic should contain 12 or 24 words separated by space.'; } + +class LitecoinMnemonicIsIncorrectException implements Exception { + @override + String toString() => + 'Litecoin mnemonic has incorrect format. Mnemonic should contain 24 words separated by space.'; +} diff --git a/cw_core/lib/crypto_currency.dart b/cw_core/lib/crypto_currency.dart index 62c0ad437..67581ecb8 100644 --- a/cw_core/lib/crypto_currency.dart +++ b/cw_core/lib/crypto_currency.dart @@ -9,7 +9,8 @@ class CryptoCurrency extends EnumerableItem with Serializable implemen required this.decimals, this.fullName, this.iconPath, - this.tag, this.enabled = false, + this.tag, + this.enabled = false, }) : super(title: title, raw: raw); @@ -100,6 +101,7 @@ class CryptoCurrency extends EnumerableItem with Serializable implemen CryptoCurrency.usdtPoly, CryptoCurrency.usdcEPoly, CryptoCurrency.kaspa, + CryptoCurrency.digibyte, ]; static const havenCurrencies = [ @@ -211,8 +213,9 @@ class CryptoCurrency extends EnumerableItem with Serializable implemen static const banano = CryptoCurrency(title: 'BAN', fullName: 'Banano', raw: 86, name: 'banano', iconPath: 'assets/images/nano_icon.png', decimals: 29); static const usdtPoly = CryptoCurrency(title: 'USDT', tag: 'POLY', fullName: 'Tether USD (PoS)', raw: 87, name: 'usdtpoly', iconPath: 'assets/images/usdt_icon.png', decimals: 6); static const usdcEPoly = CryptoCurrency(title: 'USDC.E', tag: 'POLY', fullName: 'USD Coin (PoS)', raw: 88, name: 'usdcepoly', iconPath: 'assets/images/usdc_icon.png', decimals: 6); - static const kaspa = CryptoCurrency(title: 'KAS', fullName: 'Kaspa', raw: 89, name: 'kaspa', iconPath: 'assets/images/kaspa_icon.png', decimals: 8); - static const usdtSol = CryptoCurrency(title: 'USDT', tag: 'SOL', fullName: 'USDT Tether', raw: 90, name: 'usdtsol', iconPath: 'assets/images/usdt_icon.png', decimals: 6); + static const kaspa = CryptoCurrency(title: 'KAS', fullName: 'Kaspa', raw: 89, name: 'kas', iconPath: 'assets/images/kaspa_icon.png', decimals: 8); + static const digibyte = CryptoCurrency(title: 'DGB', fullName: 'DigiByte', raw: 90, name: 'dgb', iconPath: 'assets/images/digibyte.png', decimals: 8); + static const usdtSol = CryptoCurrency(title: 'USDT', tag: 'SOL', fullName: 'USDT Tether', raw: 90, name: 'usdtsol', iconPath: 'assets/images/usdt_icon.png', decimals: 6); static final Map _rawCurrencyMap = diff --git a/cw_evm/lib/evm_chain_wallet_addresses.dart b/cw_evm/lib/evm_chain_wallet_addresses.dart index d5d39f21d..4615d79ed 100644 --- a/cw_evm/lib/evm_chain_wallet_addresses.dart +++ b/cw_evm/lib/evm_chain_wallet_addresses.dart @@ -14,6 +14,7 @@ abstract class EVMChainWalletAddressesBase extends WalletAddresses with Store { super(walletInfo); @override + @observable String address; @override diff --git a/cw_monero/lib/monero_wallet.dart b/cw_monero/lib/monero_wallet.dart index 1a34e4bd6..ab4bfb0b0 100644 --- a/cw_monero/lib/monero_wallet.dart +++ b/cw_monero/lib/monero_wallet.dart @@ -576,15 +576,19 @@ abstract class MoneroWalletBase return; } - final height = _getHeightByDate(walletInfo.date); - - if (height > MIN_RESTORE_HEIGHT) { - monero_wallet.setRecoveringFromSeed(isRecovery: true); - monero_wallet.setRefreshFromBlockHeight(height: height); - return; + int height = 0; + try { + height = _getHeightByDate(walletInfo.date); + } catch (e, s) { + onError?.call(FlutterErrorDetails( + exception: e, + stack: s, + library: this.runtimeType.toString(), + )); } - throw Exception("height isn't > $MIN_RESTORE_HEIGHT!"); + monero_wallet.setRecoveringFromSeed(isRecovery: true); + monero_wallet.setRefreshFromBlockHeight(height: height); } int _getHeightDistance(DateTime date) { @@ -600,7 +604,7 @@ abstract class MoneroWalletBase final heightDistance = _getHeightDistance(date); if (nodeHeight <= 0) { - // the node returned 0 (an error state), so lets just restore from cache: + // the node returned 0 (an error state) throw Exception("nodeHeight is <= 0!"); } diff --git a/cw_solana/lib/default_spl_tokens.dart b/cw_solana/lib/default_spl_tokens.dart index f96d62d86..7acad78e0 100644 --- a/cw_solana/lib/default_spl_tokens.dart +++ b/cw_solana/lib/default_spl_tokens.dart @@ -25,7 +25,6 @@ class DefaultSPLTokens { mintAddress: '2FPyTwcZLUg1MDrwsyoP4D6s1tM7hAkHYRjkNb5w6Pxk', decimal: 6, mint: 'soEth', - enabled: true, iconPath: 'assets/images/eth_icon.png', ), SPLToken( @@ -34,7 +33,6 @@ class DefaultSPLTokens { mintAddress: 'So11111111111111111111111111111111111111112', decimal: 9, mint: 'WSOL', - enabled: true, iconPath: 'assets/images/sol_icon.png', ), SPLToken( diff --git a/cw_solana/lib/solana_wallet_service.dart b/cw_solana/lib/solana_wallet_service.dart index 8abf1ffbb..b3ff22e7e 100644 --- a/cw_solana/lib/solana_wallet_service.dart +++ b/cw_solana/lib/solana_wallet_service.dart @@ -19,7 +19,7 @@ class SolanaWalletService extends WalletService walletInfoSource; @override - Future create(SolanaNewWalletCredentials credentials) async { + Future create(SolanaNewWalletCredentials credentials, {bool? isTestnet}) async { final strength = credentials.seedPhraseLength == 24 ? 256 : 128; final mnemonic = bip39.generateMnemonic(strength: strength); @@ -67,7 +67,8 @@ class SolanaWalletService extends WalletService restoreFromKeys(SolanaRestoreWalletFromPrivateKey credentials) async { + Future restoreFromKeys(SolanaRestoreWalletFromPrivateKey credentials, + {bool? isTestnet}) async { final wallet = SolanaWallet( password: credentials.password!, privateKey: credentials.privateKey, @@ -82,7 +83,8 @@ class SolanaWalletService extends WalletService restoreFromSeed(SolanaRestoreWalletFromSeedCredentials credentials) async { + Future restoreFromSeed(SolanaRestoreWalletFromSeedCredentials credentials, + {bool? isTestnet}) async { if (!bip39.validateMnemonic(credentials.mnemonic)) { throw SolanaMnemonicIsIncorrectException(); } diff --git a/lib/bitcoin_cash/cw_bitcoin_cash.dart b/lib/bitcoin_cash/cw_bitcoin_cash.dart index 7dbb8614f..6e169209f 100644 --- a/lib/bitcoin_cash/cw_bitcoin_cash.dart +++ b/lib/bitcoin_cash/cw_bitcoin_cash.dart @@ -1,12 +1,6 @@ part of 'bitcoin_cash.dart'; class CWBitcoinCash extends BitcoinCash { - @override - String getMnemonic(int? strength) => Mnemonic.generate(); - - @override - Uint8List getSeedFromMnemonic(String seed) => Mnemonic.toSeed(seed); - @override String getCashAddrFormat(String address) => AddressUtils.getCashAddrFormat(address); diff --git a/lib/core/address_validator.dart b/lib/core/address_validator.dart index 432471655..853762a1c 100644 --- a/lib/core/address_validator.dart +++ b/lib/core/address_validator.dart @@ -257,9 +257,9 @@ class AddressValidator extends TextValidator { case CryptoCurrency.near: return [64]; case CryptoCurrency.btcln: - return null; + case CryptoCurrency.kaspa: default: - return []; + return null; } } diff --git a/lib/entities/provider_types.dart b/lib/entities/provider_types.dart index 9a4b68dd7..f9c2f1a82 100644 --- a/lib/entities/provider_types.dart +++ b/lib/entities/provider_types.dart @@ -66,7 +66,7 @@ class ProvidersHelper { case WalletType.bitcoinCash: return [ProviderType.askEachTime, ProviderType.onramper, ProviderType.robinhood]; case WalletType.polygon: - return [ProviderType.askEachTime, ProviderType.dfx]; + return [ProviderType.askEachTime, ProviderType.onramper, ProviderType.dfx]; case WalletType.solana: return [ProviderType.askEachTime, ProviderType.onramper, ProviderType.robinhood]; case WalletType.none: @@ -89,7 +89,7 @@ class ProvidersHelper { case WalletType.bitcoinCash: return [ProviderType.askEachTime, ProviderType.moonpaySell]; case WalletType.polygon: - return [ProviderType.askEachTime, ProviderType.dfx]; + return [ProviderType.askEachTime, ProviderType.onramper, ProviderType.dfx]; case WalletType.solana: return [ ProviderType.askEachTime, diff --git a/lib/src/screens/send/send_page.dart b/lib/src/screens/send/send_page.dart index 5870b1c4d..a3b7eaf85 100644 --- a/lib/src/screens/send/send_page.dart +++ b/lib/src/screens/send/send_page.dart @@ -1,6 +1,7 @@ import 'package:cake_wallet/core/auth_service.dart'; import 'package:cake_wallet/entities/fiat_currency.dart'; import 'package:cake_wallet/entities/template.dart'; +import 'package:cake_wallet/reactions/wallet_connect.dart'; import 'package:cake_wallet/src/screens/dashboard/widgets/sync_indicator_icon.dart'; import 'package:cake_wallet/src/screens/send/widgets/send_card.dart'; import 'package:cake_wallet/src/widgets/add_template_button.dart'; @@ -420,7 +421,9 @@ class SendPage extends BasePage { amount: S.of(_dialogContext).send_amount, amountValue: sendViewModel.pendingTransaction!.amountFormatted, fiatAmountValue: sendViewModel.pendingTransactionFiatAmountFormatted, - fee: S.of(_dialogContext).send_fee, + fee: isEVMCompatibleChain(sendViewModel.walletType) + ? S.of(_dialogContext).send_estimated_fee + : S.of(_dialogContext).send_fee, feeValue: sendViewModel.pendingTransaction!.feeFormatted, feeFiatAmount: sendViewModel.pendingTransactionFeeFiatAmountFormatted, outputs: sendViewModel.outputs, diff --git a/lib/src/widgets/scollable_with_bottom_section.dart b/lib/src/widgets/scollable_with_bottom_section.dart index 53f56716c..2487e6130 100644 --- a/lib/src/widgets/scollable_with_bottom_section.dart +++ b/lib/src/widgets/scollable_with_bottom_section.dart @@ -14,37 +14,28 @@ class ScrollableWithBottomSection extends StatefulWidget { final EdgeInsets? bottomSectionPadding; @override - ScrollableWithBottomSectionState createState() => - ScrollableWithBottomSectionState(); + ScrollableWithBottomSectionState createState() => ScrollableWithBottomSectionState(); } -class ScrollableWithBottomSectionState - extends State { +class ScrollableWithBottomSectionState extends State { @override Widget build(BuildContext context) { - return LayoutBuilder(builder: (context, constraints) { - return SingleChildScrollView( - // physics: - // const AlwaysScrollableScrollPhysics(), // const NeverScrollableScrollPhysics(), // - child: ConstrainedBox( - constraints: BoxConstraints( - minHeight: constraints.heightConstraints().maxHeight), - child: Column( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Padding( - padding: widget.contentPadding ?? - EdgeInsets.only(left: 20, right: 20), - child: widget.content, - ), - Padding( - padding: widget.bottomSectionPadding ?? - EdgeInsets.only(bottom: 20, right: 20, left: 20), - child: widget.bottomSection) - ], + return Column( + children: [ + Expanded( + child: SingleChildScrollView( + child: Padding( + padding: widget.contentPadding ?? EdgeInsets.only(left: 20, right: 20), + child: widget.content, + ), ), ), - ); - }); + Padding( + padding: widget.bottomSectionPadding?.copyWith(top: 10) ?? + EdgeInsets.only(top: 10, bottom: 20, right: 20, left: 20), + child: widget.bottomSection, + ), + ], + ); } } diff --git a/lib/view_model/advanced_privacy_settings_view_model.dart b/lib/view_model/advanced_privacy_settings_view_model.dart index 14033b368..b78d831a4 100644 --- a/lib/view_model/advanced_privacy_settings_view_model.dart +++ b/lib/view_model/advanced_privacy_settings_view_model.dart @@ -27,11 +27,25 @@ abstract class AdvancedPrivacySettingsViewModelBase with Store { final SettingsStore _settingsStore; - bool get hasSeedPhraseLengthOption => - type == WalletType.bitcoinCash || - type == WalletType.ethereum || - type == WalletType.polygon || - type == WalletType.solana; + bool get hasSeedPhraseLengthOption { + // convert to switch case so that it give a syntax error when adding a new wallet type + // thus we don't forget about it + switch (type) { + case WalletType.ethereum: + case WalletType.bitcoinCash: + case WalletType.polygon: + case WalletType.solana: + return true; + case WalletType.monero: + case WalletType.none: + case WalletType.bitcoin: + case WalletType.litecoin: + case WalletType.haven: + case WalletType.nano: + case WalletType.banano: + return false; + } + } bool get hasSeedTypeOption => type == WalletType.monero; diff --git a/lib/view_model/unspent_coins/unspent_coins_list_view_model.dart b/lib/view_model/unspent_coins/unspent_coins_list_view_model.dart index 6380bb07e..3b90aff41 100644 --- a/lib/view_model/unspent_coins/unspent_coins_list_view_model.dart +++ b/lib/view_model/unspent_coins/unspent_coins_list_view_model.dart @@ -15,7 +15,8 @@ class UnspentCoinsListViewModel = UnspentCoinsListViewModelBase with _$UnspentCo abstract class UnspentCoinsListViewModelBase with Store { UnspentCoinsListViewModelBase( {required this.wallet, required Box unspentCoinsInfo}) - : _unspentCoinsInfo = unspentCoinsInfo { + : _unspentCoinsInfo = unspentCoinsInfo, + _items = ObservableList() { _updateUnspentCoinsInfo(); _updateUnspents(); } @@ -23,7 +24,8 @@ abstract class UnspentCoinsListViewModelBase with Store { WalletBase wallet; final Box _unspentCoinsInfo; - final ObservableList _items = ObservableList(); + @observable + ObservableList _items; @computed ObservableList get items => _items; diff --git a/lib/view_model/wallet_keys_view_model.dart b/lib/view_model/wallet_keys_view_model.dart index a84f1a4c4..d88316a04 100644 --- a/lib/view_model/wallet_keys_view_model.dart +++ b/lib/view_model/wallet_keys_view_model.dart @@ -20,9 +20,7 @@ abstract class WalletKeysViewModelBase with Store { WalletKeysViewModelBase(this._appStore) : title = _appStore.wallet!.type == WalletType.bitcoin || _appStore.wallet!.type == WalletType.litecoin || - _appStore.wallet!.type == WalletType.bitcoinCash || - _appStore.wallet!.type == WalletType.ethereum || - _appStore.wallet!.type == WalletType.polygon + _appStore.wallet!.type == WalletType.bitcoinCash ? S.current.wallet_seed : S.current.wallet_keys, _restoreHeight = _appStore.wallet!.walletInfo.restoreHeight, diff --git a/tool/configure.dart b/tool/configure.dart index 3a69e86b1..fb1647e13 100644 --- a/tool/configure.dart +++ b/tool/configure.dart @@ -729,10 +729,6 @@ import 'package:cw_bitcoin/bitcoin_transaction_priority.dart'; const bitcoinCashCwPart = "part 'cw_bitcoin_cash.dart';"; const bitcoinCashContent = """ abstract class BitcoinCash { - String getMnemonic(int? strength); - - Uint8List getSeedFromMnemonic(String seed); - String getCashAddrFormat(String address); WalletService createBitcoinCashWalletService( From 52983edf91fb9b11fe9ed1ac69fbe40301d10ece Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Fri, 23 Feb 2024 13:49:21 -0500 Subject: [PATCH 13/30] UI Enhancements (#1308) * Center the account text on the balance page * Modify dashboard button spacing * Change default theme to Dark theme * Remove legacyTheme and modify theme order * Add condition for Monero.com wallet default theme * Add locale for new themes * Add new themes * Update padding * Fixes * Update settings_store.dart --------- Co-authored-by: Omar Hatem --- lib/core/backup_service.dart | 2 -- lib/entities/preferences_key.dart | 1 - lib/palette.dart | 3 +++ lib/src/screens/dashboard/dashboard_page.dart | 2 +- .../widgets/home_screen_account_widget.dart | 4 ++-- lib/store/settings_store.dart | 11 +++------ lib/themes/monero_dark_theme.dart | 4 ++-- lib/themes/purple_dark_theme.dart | 13 +++++++++++ lib/themes/red_dark_theme.dart | 13 +++++++++++ lib/themes/red_light_theme.dart | 13 +++++++++++ lib/themes/theme_list.dart | 23 +++++++++++++++---- res/values/strings_ar.arb | 3 +++ res/values/strings_bg.arb | 3 +++ res/values/strings_cs.arb | 3 +++ res/values/strings_de.arb | 3 +++ res/values/strings_en.arb | 3 +++ res/values/strings_es.arb | 3 +++ res/values/strings_fr.arb | 3 +++ res/values/strings_ha.arb | 3 +++ res/values/strings_hi.arb | 3 +++ res/values/strings_hr.arb | 3 +++ res/values/strings_id.arb | 3 +++ res/values/strings_it.arb | 3 +++ res/values/strings_ja.arb | 3 +++ res/values/strings_ko.arb | 3 +++ res/values/strings_my.arb | 3 +++ res/values/strings_nl.arb | 3 +++ res/values/strings_pl.arb | 3 +++ res/values/strings_pt.arb | 3 +++ res/values/strings_ru.arb | 3 +++ res/values/strings_th.arb | 3 +++ res/values/strings_tl.arb | 3 +++ res/values/strings_tr.arb | 3 +++ res/values/strings_uk.arb | 3 +++ res/values/strings_ur.arb | 3 +++ res/values/strings_yo.arb | 3 +++ res/values/strings_zh.arb | 3 +++ 37 files changed, 147 insertions(+), 20 deletions(-) create mode 100644 lib/themes/purple_dark_theme.dart create mode 100644 lib/themes/red_dark_theme.dart create mode 100644 lib/themes/red_light_theme.dart diff --git a/lib/core/backup_service.dart b/lib/core/backup_service.dart index 9b5c4c8db..2ec5f293d 100644 --- a/lib/core/backup_service.dart +++ b/lib/core/backup_service.dart @@ -464,8 +464,6 @@ class BackupService { PreferencesKey.disableSellKey: _sharedPreferences.getBool(PreferencesKey.disableSellKey), PreferencesKey.defaultBuyProvider: _sharedPreferences.getInt(PreferencesKey.defaultBuyProvider), - PreferencesKey.isDarkThemeLegacy: - _sharedPreferences.getBool(PreferencesKey.isDarkThemeLegacy), PreferencesKey.currentPinLength: _sharedPreferences.getInt(PreferencesKey.currentPinLength), PreferencesKey.currentTransactionPriorityKeyLegacy: _sharedPreferences.getInt(PreferencesKey.currentTransactionPriorityKeyLegacy), diff --git a/lib/entities/preferences_key.dart b/lib/entities/preferences_key.dart index 7adb2df7f..0dd251aaa 100644 --- a/lib/entities/preferences_key.dart +++ b/lib/entities/preferences_key.dart @@ -28,7 +28,6 @@ class PreferencesKey { static const disableExchangeKey = 'disable_exchange'; static const exchangeStatusKey = 'exchange_status'; static const currentTheme = 'current_theme'; - static const isDarkThemeLegacy = 'dark_theme'; static const displayActionListModeKey = 'display_list_mode'; static const currentPinLength = 'current_pin_length'; static const currentLanguageCode = 'language_code'; diff --git a/lib/palette.dart b/lib/palette.dart index 46e2e8165..58cbeb697 100644 --- a/lib/palette.dart +++ b/lib/palette.dart @@ -23,6 +23,7 @@ class Palette { static const Color cornflower = Color.fromRGBO(85, 147, 240, 1.0); static const Color royalBlue = Color.fromRGBO(43, 114, 221, 1.0); static const Color lightRed = Color.fromRGBO(227, 87, 87, 1.0); + static const Color veryLightRed = Color.fromRGBO(239, 156, 156, 1.0); static const Color persianRed = Color.fromRGBO(206, 55, 55, 1.0); static const Color blueCraiola = Color.fromRGBO(69, 110, 255, 1.0); static const Color blueGreyCraiola = Color.fromRGBO(106, 177, 207, 1.0); @@ -97,4 +98,6 @@ class PaletteDark { static const Color matrixGreen = Color.fromRGBO(18, 229, 90, 1.0); static const Color moneroOrange = Color.fromRGBO(255, 102, 0, 1.0); static const Color moneroCard = Color.fromRGBO(20, 21, 24, 1.0); + static const Color red = Color.fromRGBO(190, 30, 30, 1.0); + static const Color darkPurple = Color.fromRGBO(117, 36, 204, 1.0); } diff --git a/lib/src/screens/dashboard/dashboard_page.dart b/lib/src/screens/dashboard/dashboard_page.dart index 356c69c00..61e7d6176 100644 --- a/lib/src/screens/dashboard/dashboard_page.dart +++ b/lib/src/screens/dashboard/dashboard_page.dart @@ -224,7 +224,7 @@ class _DashboardPageView extends BasePage { .syncedBackgroundColor, ), child: Container( - padding: EdgeInsets.only(left: 32, right: 32), + padding: EdgeInsets.only(left: 24, right: 32), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: MainActions.all diff --git a/lib/src/screens/dashboard/widgets/home_screen_account_widget.dart b/lib/src/screens/dashboard/widgets/home_screen_account_widget.dart index fa036978f..df20c5c43 100644 --- a/lib/src/screens/dashboard/widgets/home_screen_account_widget.dart +++ b/lib/src/screens/dashboard/widgets/home_screen_account_widget.dart @@ -19,8 +19,8 @@ class HomeScreenAccountWidget extends StatelessWidget { builder: (_) => getIt.get()); }, behavior: HitTestBehavior.opaque, - child: Container( - height: 100.0, + child: Padding( + padding: EdgeInsets.only(top: 25, bottom: 25, left: 25, right: 0), child: Row( mainAxisSize: MainAxisSize.min, mainAxisAlignment: MainAxisAlignment.center, diff --git a/lib/store/settings_store.dart b/lib/store/settings_store.dart index 672b29269..488049656 100644 --- a/lib/store/settings_store.dart +++ b/lib/store/settings_store.dart @@ -19,6 +19,7 @@ import 'package:cake_wallet/exchange/provider/trocador_exchange_provider.dart'; import 'package:cake_wallet/view_model/settings/sync_mode.dart'; import 'package:cake_wallet/utils/device_info.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; +import 'package:cake_wallet/wallet_type_utils.dart'; import 'package:cw_core/transaction_priority.dart'; import 'package:cake_wallet/themes/theme_base.dart'; import 'package:cake_wallet/themes/theme_list.dart'; @@ -789,12 +790,9 @@ abstract class SettingsStoreBase with Store { final exchangeStatus = ExchangeApiMode.deserialize( raw: sharedPreferences.getInt(PreferencesKey.exchangeStatusKey) ?? ExchangeApiMode.enabled.raw); - final legacyTheme = (sharedPreferences.getBool(PreferencesKey.isDarkThemeLegacy) ?? false) - ? ThemeType.dark.index - : ThemeType.bright.index; final savedTheme = initialTheme ?? ThemeList.deserialize( - raw: sharedPreferences.getInt(PreferencesKey.currentTheme) ?? legacyTheme); + raw: sharedPreferences.getInt(PreferencesKey.currentTheme) ?? (isMoneroOnly ? ThemeList.moneroDarkTheme.raw : ThemeList.darkTheme.raw)); final actionListDisplayMode = ObservableList(); actionListDisplayMode.addAll(deserializeActionlistDisplayModes( sharedPreferences.getInt(PreferencesKey.displayActionListModeKey) ?? defaultActionsMode)); @@ -1152,11 +1150,8 @@ abstract class SettingsStoreBase with Store { exchangeStatus = ExchangeApiMode.deserialize( raw: sharedPreferences.getInt(PreferencesKey.exchangeStatusKey) ?? ExchangeApiMode.enabled.raw); - final legacyTheme = (sharedPreferences.getBool(PreferencesKey.isDarkThemeLegacy) ?? false) - ? ThemeType.dark.index - : ThemeType.bright.index; currentTheme = ThemeList.deserialize( - raw: sharedPreferences.getInt(PreferencesKey.currentTheme) ?? legacyTheme); + raw: sharedPreferences.getInt(PreferencesKey.currentTheme) ?? (isMoneroOnly ? ThemeList.moneroDarkTheme.raw : ThemeList.darkTheme.raw)); actionlistDisplayMode = ObservableList(); actionlistDisplayMode.addAll(deserializeActionlistDisplayModes( sharedPreferences.getInt(PreferencesKey.displayActionListModeKey) ?? defaultActionsMode)); diff --git a/lib/themes/monero_dark_theme.dart b/lib/themes/monero_dark_theme.dart index 4931d74bc..1478ba8c5 100644 --- a/lib/themes/monero_dark_theme.dart +++ b/lib/themes/monero_dark_theme.dart @@ -95,12 +95,12 @@ class MoneroDarkTheme extends DarkTheme { @override CakeMenuTheme get menuTheme => super.menuTheme.copyWith( - headerFirstGradientColor: containerColor, + headerFirstGradientColor: primaryColor, headerSecondGradientColor: containerColor, backgroundColor: containerColor, subnameTextColor: Colors.grey, dividerColor: colorScheme.secondaryContainer, - iconColor: colorScheme.secondaryContainer, + iconColor: Colors.white, settingActionsIconColor: colorScheme.secondaryContainer); @override diff --git a/lib/themes/purple_dark_theme.dart b/lib/themes/purple_dark_theme.dart new file mode 100644 index 000000000..04365de38 --- /dev/null +++ b/lib/themes/purple_dark_theme.dart @@ -0,0 +1,13 @@ +import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/palette.dart'; +import 'package:cake_wallet/themes/monero_dark_theme.dart'; +import 'package:flutter/material.dart'; + +class PurpleDarkTheme extends MoneroDarkTheme { + PurpleDarkTheme({required int raw}) : super(raw: raw); + + @override + String get title => S.current.purple_dark_theme; + @override + Color get primaryColor => PaletteDark.darkPurple; +} \ No newline at end of file diff --git a/lib/themes/red_dark_theme.dart b/lib/themes/red_dark_theme.dart new file mode 100644 index 000000000..d378fc66a --- /dev/null +++ b/lib/themes/red_dark_theme.dart @@ -0,0 +1,13 @@ +import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/palette.dart'; +import 'package:cake_wallet/themes/monero_dark_theme.dart'; +import 'package:flutter/material.dart'; + +class RedDarkTheme extends MoneroDarkTheme { + RedDarkTheme({required int raw}) : super(raw: raw); + + @override + String get title => S.current.red_dark_theme; + @override + Color get primaryColor => PaletteDark.red; +} \ No newline at end of file diff --git a/lib/themes/red_light_theme.dart b/lib/themes/red_light_theme.dart new file mode 100644 index 000000000..47a995a11 --- /dev/null +++ b/lib/themes/red_light_theme.dart @@ -0,0 +1,13 @@ +import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/palette.dart'; +import 'package:cake_wallet/themes/monero_light_theme.dart'; +import 'package:flutter/material.dart'; + +class RedLightTheme extends MoneroLightTheme { + RedLightTheme({required int raw}) : super(raw: raw); + + @override + String get title => S.current.red_light_theme; + @override + Color get primaryColor => Palette.darkRed; +} \ No newline at end of file diff --git a/lib/themes/theme_list.dart b/lib/themes/theme_list.dart index cb65dc2b9..6d0d44225 100644 --- a/lib/themes/theme_list.dart +++ b/lib/themes/theme_list.dart @@ -3,23 +3,29 @@ import 'package:cake_wallet/themes/dark_theme.dart'; import 'package:cake_wallet/themes/light_theme.dart'; import 'package:cake_wallet/themes/monero_light_theme.dart'; import 'package:cake_wallet/themes/monero_dark_theme.dart'; +import 'package:cake_wallet/themes/purple_dark_theme.dart'; import 'package:cake_wallet/themes/matrix_green_theme.dart'; import 'package:cake_wallet/themes/bitcoin_dark_theme.dart'; import 'package:cake_wallet/themes/bitcoin_light_theme.dart'; import 'package:cake_wallet/themes/high_contrast_theme.dart'; +import 'package:cake_wallet/themes/red_dark_theme.dart'; +import 'package:cake_wallet/themes/red_light_theme.dart'; import 'package:cake_wallet/themes/theme_base.dart'; class ThemeList { static final all = [ - brightTheme, - lightTheme, darkTheme, + lightTheme, + brightTheme, moneroDarkTheme, moneroLightTheme, - matrixGreenTheme, + purpleDarkTheme, bitcoinDarkTheme, bitcoinLightTheme, - highContrastTheme + matrixGreenTheme, + redDarkTheme, + redLightTheme, + highContrastTheme, ]; static final lightTheme = LightTheme(raw: 0); @@ -31,6 +37,9 @@ class ThemeList { static final bitcoinDarkTheme = BitcoinDarkTheme(raw: 6); static final bitcoinLightTheme = BitcoinLightTheme(raw: 7); static final highContrastTheme = HighContrastTheme(raw: 8); + static final redLightTheme = RedLightTheme(raw: 9); + static final redDarkTheme = RedDarkTheme(raw: 10); + static final purpleDarkTheme = PurpleDarkTheme(raw: 11); static ThemeBase deserialize({required int raw}) { switch (raw) { @@ -52,6 +61,12 @@ class ThemeList { return bitcoinLightTheme; case 8: return highContrastTheme; + case 9: + return redLightTheme; + case 10: + return redDarkTheme; + case 11: + return purpleDarkTheme; default: throw Exception( 'Unexpected token raw: $raw for deserialization of ThemeBase'); diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 9e822c474..af92cead4 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -429,6 +429,7 @@ "provider_error": "خطأ ${provider}", "public_key": "مفتاح عمومي", "purchase_gift_card": "شراء بطاقة هدايا", + "purple_dark_theme": "موضوع الظلام الأرجواني", "qr_fullscreen": "انقر لفتح ال QR بملء الشاشة", "qr_payment_amount": "يحتوي هذا ال QR على مبلغ الدفع. هل تريد تغير المبلغ فوق القيمة الحالية؟", "question_to_disable_2fa": "هل أنت متأكد أنك تريد تعطيل Cake 2FA؟ لن تكون هناك حاجة إلى رمز 2FA للوصول إلى المحفظة ووظائف معينة.", @@ -440,6 +441,8 @@ "reconnect": "أعد الاتصال", "reconnect_alert_text": "هل أنت متأكد من رغبتك في إعادة الاتصال؟", "reconnection": "إعادة الاتصال", + "red_dark_theme": "موضوع الظلام الأحمر", + "red_light_theme": "موضوع الضوء الأحمر", "redeemed": "استردت", "refund_address": "عنوان إعادة المال", "reject": "ﺾﻓﺮﻳ", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index 8dbdf4b98..9f46ac2f4 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -429,6 +429,7 @@ "provider_error": "Грешка на ${provider} ", "public_key": "Публичен ключ", "purchase_gift_card": "Купуване на Gift Card", + "purple_dark_theme": "Лилава тъмна тема", "qr_fullscreen": "Натиснете, за да отворите QR кода на цял екран", "qr_payment_amount": "Този QR код съдържа сума за плащане. Искате ли да промените стойността?", "question_to_disable_2fa": "Сигурни ли сте, че искате да деактивирате Cake 2FA? Вече няма да е необходим 2FA код за достъп до портфейла и определени функции.", @@ -440,6 +441,8 @@ "reconnect": "Reconnect", "reconnect_alert_text": "Сигурни ли сте, че искате да се свържете отново?", "reconnection": "Свързване отново", + "red_dark_theme": "Червена тъмна тема", + "red_light_theme": "Тема на червената светлина", "redeemed": "Използвани", "refund_address": "Refund address", "reject": "Отхвърляне", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index ff22febf0..f47c7acb3 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -429,6 +429,7 @@ "provider_error": "${provider} chyba", "public_key": "Veřejný klíč", "purchase_gift_card": "Objednat dárkovou kartu", + "purple_dark_theme": "Fialové temné téma", "qr_fullscreen": "Poklepáním otevřete QR kód na celé obrazovce", "qr_payment_amount": "Tento QR kód obsahuje i částku. Chcete přepsat současnou hodnotu?", "question_to_disable_2fa": "Opravdu chcete deaktivovat Cake 2FA? Pro přístup k peněžence a některým funkcím již nebude potřeba kód 2FA.", @@ -440,6 +441,8 @@ "reconnect": "Znovu připojit", "reconnect_alert_text": "Opravdu se chcete znovu připojit?", "reconnection": "Znovu připojit", + "red_dark_theme": "Červené temné téma", + "red_light_theme": "Téma červeného světla", "redeemed": "Uplatněné", "refund_address": "Adresa pro vrácení", "reject": "Odmítnout", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 366d7d529..338112022 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -430,6 +430,7 @@ "provider_error": "${provider}-Fehler", "public_key": "Öffentlicher Schlüssel", "purchase_gift_card": "Geschenkkarte kaufen", + "purple_dark_theme": "Lila dunkle Thema", "qr_fullscreen": "Tippen Sie hier, um den QR-Code im Vollbildmodus zu öffnen", "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", "question_to_disable_2fa": "Sind Sie sicher, dass Sie Cake 2FA deaktivieren möchten? Für den Zugriff auf die Wallet und bestimmte Funktionen wird kein 2FA-Code mehr benötigt.", @@ -441,6 +442,8 @@ "reconnect": "Erneut verbinden", "reconnect_alert_text": "Sind Sie sicher, dass Sie sich neu verbinden möchten?", "reconnection": "Neu verbinden", + "red_dark_theme": "Red Dark Thema", + "red_light_theme": "Rotlichtthema", "redeemed": "Versilbert", "refund_address": "Rückerstattungsadresse", "reject": "Ablehnen", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index b7aecc739..86dc6518d 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -429,6 +429,7 @@ "provider_error": "${provider} error", "public_key": "Public key", "purchase_gift_card": "Purchase Gift Card", + "purple_dark_theme": "Purple Dark Theme", "qr_fullscreen": "Tap to open full screen QR code", "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", "question_to_disable_2fa": "Are you sure that you want to disable Cake 2FA? A 2FA code will no longer be needed to access the wallet and certain functions.", @@ -440,6 +441,8 @@ "reconnect": "Reconnect", "reconnect_alert_text": "Are you sure you want to reconnect?", "reconnection": "Reconnection", + "red_dark_theme": "Red Dark Theme", + "red_light_theme": "Red Light Theme", "redeemed": "Redeemed", "refund_address": "Refund address", "reject": "Reject", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 832d66b5b..09ad9948b 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -430,6 +430,7 @@ "provider_error": "${provider} error", "public_key": "Clave pública", "purchase_gift_card": "Comprar tarjeta de regalo", + "purple_dark_theme": "Tema morado oscuro", "qr_fullscreen": "Toque para abrir el código QR en pantalla completa", "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", "question_to_disable_2fa": "¿Está seguro de que desea deshabilitar Cake 2FA? Ya no se necesitará un código 2FA para acceder a la billetera y a ciertas funciones.", @@ -441,6 +442,8 @@ "reconnect": "Volver a conectar", "reconnect_alert_text": "¿Estás seguro de reconectar?", "reconnection": "Reconexión", + "red_dark_theme": "Tema rojo oscuro", + "red_light_theme": "Tema de la luz roja", "redeemed": "Redimido", "refund_address": "Dirección de reembolso", "reject": "Rechazar", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index 80b44d6ed..e552dfafa 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -429,6 +429,7 @@ "provider_error": "Erreur de ${provider}", "public_key": "Clef publique", "purchase_gift_card": "Acheter une carte-cadeau", + "purple_dark_theme": "THÈME PURPLE DARK", "qr_fullscreen": "Appuyez pour ouvrir le QR code en mode plein écran", "qr_payment_amount": "Ce QR code contient un montant de paiement. Voulez-vous remplacer la valeur actuelle ?", "question_to_disable_2fa": "Êtes-vous sûr de vouloir désactiver Cake 2FA ? Un code 2FA ne sera plus nécessaire pour accéder au portefeuille (wallet) et à certaines fonctions.", @@ -440,6 +441,8 @@ "reconnect": "Reconnecter", "reconnect_alert_text": "Êtes vous certain de vouloir vous reconnecter ?", "reconnection": "Reconnexion", + "red_dark_theme": "Thème rouge noir", + "red_light_theme": "Thème de la lumière rouge", "redeemed": "Converties", "refund_address": "Adresse de Remboursement", "reject": "Rejeter", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index e1b77f346..40f6b2857 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -431,6 +431,7 @@ "provider_error": "${provider} kuskure", "public_key": "Maɓallin jama'a", "purchase_gift_card": "Katin Kyautar Sayi", + "purple_dark_theme": "M duhu jigo", "qr_fullscreen": "Matsa don buɗe lambar QR na cikakken allo", "qr_payment_amount": "Wannan QR code yana da adadin kuɗi. Kuna so ku overwrite wannan adadi?", "question_to_disable_2fa": "Ka tabbata cewa kana son kashe cake 2fa? Ba za a sake buƙatar lambar 2FA ba don samun damar yin walat da takamaiman ayyuka.", @@ -442,6 +443,8 @@ "reconnect": "Sake haɗawa", "reconnect_alert_text": "Shin kun tabbata kuna son sake haɗawa?", "reconnection": "Sake haɗawa", + "red_dark_theme": "Ja duhu taken", + "red_light_theme": "Ja mai haske", "redeemed": "An fanshi", "refund_address": "Adireshin maidowa", "reject": "Ƙi", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 555e1fff5..d35a5f716 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -430,6 +430,7 @@ "provider_error": "${provider} त्रुटि", "public_key": "सार्वजनिक कुंजी", "purchase_gift_card": "गिफ्ट कार्ड खरीदें", + "purple_dark_theme": "पर्पल डार्क थीम", "qr_fullscreen": "फ़ुल स्क्रीन क्यूआर कोड खोलने के लिए टैप करें", "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", "question_to_disable_2fa": "क्या आप सुनिश्चित हैं कि आप Cake 2FA को अक्षम करना चाहते हैं? वॉलेट और कुछ कार्यों तक पहुँचने के लिए अब 2FA कोड की आवश्यकता नहीं होगी।", @@ -442,6 +443,8 @@ "reconnect": "रिकनेक्ट", "reconnect_alert_text": "क्या आप पुन: कनेक्ट होना सुनिश्चित करते हैं?", "reconnection": "पुनर्संयोजन", + "red_dark_theme": "लाल डार्क थीम", + "red_light_theme": "लाल प्रकाश थीम", "redeemed": "रिडीम किया गया", "refund_address": "वापसी का पता", "reject": "अस्वीकार करना", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 2b2e80198..c41310441 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -429,6 +429,7 @@ "provider_error": "${provider} greška", "public_key": "Javni ključ", "purchase_gift_card": "Kupnja darovne kartice", + "purple_dark_theme": "Ljubičasta tamna tema", "qr_fullscreen": "Dodirnite za otvaranje QR koda preko cijelog zaslona", "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", "question_to_disable_2fa": "Jeste li sigurni da želite onemogućiti Cake 2FA? 2FA kod više neće biti potreban za pristup novčaniku i određenim funkcijama.", @@ -440,6 +441,8 @@ "reconnect": "Ponovno povezivanje", "reconnect_alert_text": "Jeste li sigurni da se želite ponovno povezati?", "reconnection": "Ponovno povezivanje", + "red_dark_theme": "Crvena tamna tema", + "red_light_theme": "Tema crvenog svjetla", "redeemed": "otkupljeno", "refund_address": "Adresa za povrat", "reject": "Odbiti", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index 10af2f8ad..a9b9b50b3 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -431,6 +431,7 @@ "provider_error": "${provider} error", "public_key": "Kunci publik", "purchase_gift_card": "Beli Kartu Hadiah", + "purple_dark_theme": "Tema gelap ungu", "qr_fullscreen": "Tap untuk membuka layar QR code penuh", "qr_payment_amount": "QR code ini berisi jumlah pembayaran. Apakah Anda ingin menimpa nilai saat ini?", "question_to_disable_2fa": "Apakah Anda yakin ingin menonaktifkan Cake 2FA? Kode 2FA tidak lagi diperlukan untuk mengakses dompet dan fungsi tertentu.", @@ -442,6 +443,8 @@ "reconnect": "Sambungkan kembali", "reconnect_alert_text": "Apakah Anda yakin ingin menyambungkan kembali?", "reconnection": "Koneksi kembali", + "red_dark_theme": "Tema gelap merah", + "red_light_theme": "Tema lampu merah", "redeemed": "Ditukar", "refund_address": "Alamat pengembalian", "reject": "Menolak", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index a4093f077..9682e3d7f 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -431,6 +431,7 @@ "provider_error": "${provider} errore", "public_key": "Chiave pubblica", "purchase_gift_card": "Acquista carta regalo", + "purple_dark_theme": "Tema oscuro viola", "qr_fullscreen": "Tocca per aprire il codice QR a schermo intero", "qr_payment_amount": "Questo codice QR contiene l'ammontare del pagamento. Vuoi sovrascrivere il varlore attuale?", "question_to_disable_2fa": "Sei sicuro di voler disabilitare Cake 2FA? Non sarà più necessario un codice 2FA per accedere al portafoglio e ad alcune funzioni.", @@ -442,6 +443,8 @@ "reconnect": "Riconnetti", "reconnect_alert_text": "Sei sicuro di volerti riconnettere?", "reconnection": "Riconnessione", + "red_dark_theme": "Red Dark Theme", + "red_light_theme": "Tema della luce rossa", "redeemed": "Redento", "refund_address": "Indirizzo di rimborso", "reject": "Rifiutare", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 001e26f65..0f4513eee 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -430,6 +430,7 @@ "provider_error": "${provider} エラー", "public_key": "公開鍵", "purchase_gift_card": "ギフトカードを購入", + "purple_dark_theme": "紫色の暗いテーマ", "qr_fullscreen": "タップして全画面QRコードを開く", "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", "question_to_disable_2fa": "Cake 2FA を無効にしてもよろしいですか?ウォレットと特定の機能にアクセスするために 2FA コードは必要なくなります。", @@ -441,6 +442,8 @@ "reconnect": "再接続", "reconnect_alert_text": "再接続しますか?", "reconnection": "再接続", + "red_dark_theme": "赤い暗いテーマ", + "red_light_theme": "赤色光のテーマ", "redeemed": "償還", "refund_address": "払い戻し住所", "reject": "拒否する", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index bc708b246..2dd80cf5c 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -430,6 +430,7 @@ "provider_error": "${provider} 오류", "public_key": "공개 키", "purchase_gift_card": "기프트 카드 구매", + "purple_dark_theme": "보라색 어두운 테마", "qr_fullscreen": "전체 화면 QR 코드를 열려면 탭하세요.", "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", "question_to_disable_2fa": "Cake 2FA를 비활성화하시겠습니까? 지갑 및 특정 기능에 액세스하는 데 더 이상 2FA 코드가 필요하지 않습니다.", @@ -441,6 +442,8 @@ "reconnect": "다시 연결", "reconnect_alert_text": "다시 연결 하시겠습니까?", "reconnection": "재 연결", + "red_dark_theme": "빨간 어두운 테마", + "red_light_theme": "빨간불 테마", "redeemed": "구함", "refund_address": "환불 주소", "reject": "거부하다", diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index 56cdb802d..1bc338dcb 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -429,6 +429,7 @@ "provider_error": "${provider} အမှား", "public_key": "အများသူငှာသော့", "purchase_gift_card": "လက်ဆောင်ကတ်ဝယ်ပါ။", + "purple_dark_theme": "ခရမ်းရောင် Drwing Theme", "qr_fullscreen": "မျက်နှာပြင်အပြည့် QR ကုဒ်ကိုဖွင့်ရန် တို့ပါ။", "qr_payment_amount": "ဤ QR ကုဒ်တွင် ငွေပေးချေမှုပမာဏတစ်ခုပါရှိသည်။ လက်ရှိတန်ဖိုးကို ထပ်ရေးလိုပါသလား။", "question_to_disable_2fa": "Cake 2FA ကို ပိတ်လိုသည်မှာ သေချာပါသလား။ ပိုက်ဆံအိတ်နှင့် အချို့သောလုပ်ဆောင်ချက်များကို အသုံးပြုရန်အတွက် 2FA ကုဒ်တစ်ခု မလိုအပ်တော့ပါ။", @@ -440,6 +441,8 @@ "reconnect": "ပြန်လည်ချိတ်ဆက်ပါ။", "reconnect_alert_text": "ပြန်လည်ချိတ်ဆက်လိုသည်မှာ သေချာပါသလား။ ?", "reconnection": "ပြန်လည်ချိတ်ဆက်မှု", + "red_dark_theme": "အနီရောင်မှောင်မိုက်ဆောင်ပုဒ်", + "red_light_theme": "အနီရောင်အလင်းအကြောင်းအရာ", "redeemed": "ရွေးနှုတ်ခဲ့သည်။", "refund_address": "ပြန်အမ်းငွေလိပ်စာ", "reject": "ငြင်းပယ်ပါ။", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 3ab2c06e6..56175b636 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -429,6 +429,7 @@ "provider_error": "${provider} fout", "public_key": "Publieke sleutel", "purchase_gift_card": "Cadeaubon kopen", + "purple_dark_theme": "Paars donker thema", "qr_fullscreen": "Tik om de QR-code op volledig scherm te openen", "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", "question_to_disable_2fa": "Weet je zeker dat je Cake 2FA wilt uitschakelen? Er is geen 2FA-code meer nodig om toegang te krijgen tot de portemonnee en bepaalde functies.", @@ -440,6 +441,8 @@ "reconnect": "Sluit", "reconnect_alert_text": "Weet u zeker dat u opnieuw verbinding wilt maken?", "reconnection": "Reconnection", + "red_dark_theme": "Rood donker thema", + "red_light_theme": "Rood licht thema", "redeemed": "Verzilverd", "refund_address": "Adres voor terugbetaling", "reject": "Afwijzen", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 855fb6680..cbd1a7171 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -429,6 +429,7 @@ "provider_error": "${provider} pomyłka", "public_key": "Klucz publiczny", "purchase_gift_card": "Kup kartę podarunkową", + "purple_dark_theme": "Purple Dark Temat", "qr_fullscreen": "Dotknij, aby otworzyć pełnoekranowy kod QR", "qr_payment_amount": "Ten kod QR zawiera kwotę do zapłaty. Czy chcesz nadpisać obecną wartość?", "question_to_disable_2fa": "Czy na pewno chcesz wyłączyć Cake 2FA? Kod 2FA nie będzie już potrzebny do uzyskania dostępu do portfela i niektórych funkcji.", @@ -440,6 +441,8 @@ "reconnect": "Połącz ponownie", "reconnect_alert_text": "Czy na pewno ponownie się ponownie połączysz?", "reconnection": "Ponowne łączenie", + "red_dark_theme": "Czerwony Mroczny motyw", + "red_light_theme": "Motyw czerwony światło", "redeemed": "wykupione", "refund_address": "Adres do zwrotu", "reject": "Odrzucić", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index df3f0cdd1..7520f9327 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -431,6 +431,7 @@ "provider_error": "${provider} erro", "public_key": "Chave pública", "purchase_gift_card": "Comprar vale-presente", + "purple_dark_theme": "Tema escuro roxo", "qr_fullscreen": "Toque para abrir o código QR em tela cheia", "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", "question_to_disable_2fa": "Tem certeza de que deseja desativar o Cake 2FA? Um código 2FA não será mais necessário para acessar a carteira e certas funções.", @@ -442,6 +443,8 @@ "reconnect": "Reconectar", "reconnect_alert_text": "Você tem certeza de que deseja reconectar?", "reconnection": "Reconectar", + "red_dark_theme": "Tema escuro vermelho", + "red_light_theme": "Tema da luz vermelha", "redeemed": "Resgatado", "refund_address": "Endereço de reembolso", "reject": "Rejeitar", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index ebd444461..ee31e003a 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -430,6 +430,7 @@ "provider_error": "${provider} ошибка", "public_key": "Публичный ключ", "purchase_gift_card": "Купить подарочную карту", + "purple_dark_theme": "Пурпурная темная тема", "qr_fullscreen": "Нажмите, чтобы открыть полноэкранный QR-код", "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", "question_to_disable_2fa": "Вы уверены, что хотите отключить Cake 2FA? Код 2FA больше не потребуется для доступа к кошельку и некоторым функциям.", @@ -441,6 +442,8 @@ "reconnect": "Переподключиться", "reconnect_alert_text": "Вы хотите переподключиться?", "reconnection": "Переподключение", + "red_dark_theme": "Красная темная тема", + "red_light_theme": "Тема красного света", "redeemed": "искуплен", "refund_address": "Адрес возврата", "reject": "Отклонять", diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index 5e04f780f..3fddae170 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -429,6 +429,7 @@ "provider_error": "ข้อผิดพลาด ${provider}", "public_key": "คีย์สาธารณะ", "purchase_gift_card": "ซื้อบัตรของขวัญ", + "purple_dark_theme": "ธีมสีม่วงเข้ม", "qr_fullscreen": "แตะเพื่อเปิดหน้าจอ QR code แบบเต็มจอ", "qr_payment_amount": "QR code นี้มีจำนวนการชำระเงิน คุณต้องการเขียนทับค่าปัจจุบันหรือไม่?", "question_to_disable_2fa": "คุณแน่ใจหรือไม่ว่าต้องการปิดการใช้งาน Cake 2FA ไม่จำเป็นต้องใช้รหัส 2FA ในการเข้าถึงกระเป๋าเงินและฟังก์ชั่นบางอย่างอีกต่อไป", @@ -440,6 +441,8 @@ "reconnect": "เชื่อมต่อใหม่", "reconnect_alert_text": "คุณแน่ใจหรือไม่ว่าต้องการเชื่อมต่อใหม่?", "reconnection": "เชื่อมต่อใหม่", + "red_dark_theme": "ธีมสีแดงเข้ม", + "red_light_theme": "ธีมแสงสีแดง", "redeemed": "แลกของขวัญ", "refund_address": "ที่อยู่สำหรับส่งคืน", "reject": "ปฏิเสธ", diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index 6be45a997..6dc6d793a 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -429,6 +429,7 @@ "provider_error": "${provider} error", "public_key": "Pampublikong susi", "purchase_gift_card": "Bumili ng Gift Card", + "purple_dark_theme": "Purple Madilim na Tema", "qr_fullscreen": "Tapikin upang buksan ang buong screen QR code", "qr_payment_amount": "Ang QR code na ito ay naglalaman ng isang halaga ng pagbabayad. Nais mo bang i -overwrite ang kasalukuyang halaga?", "question_to_disable_2fa": "Sigurado ka bang nais mong huwag paganahin ang cake 2fa? Ang isang 2FA code ay hindi na kinakailangan upang ma -access ang pitaka at ilang mga pag -andar.", @@ -440,6 +441,8 @@ "reconnect": "Kumonekta muli", "reconnect_alert_text": "Sigurado ka bang nais mong muling kumonekta?", "reconnection": "Pag -ugnay muli", + "red_dark_theme": "Red Madilim na Tema", + "red_light_theme": "Red light tema", "redeemed": "Tinubos", "refund_address": "Refund address", "reject": "Tanggihan", diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index 60773f37d..585ef495a 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -429,6 +429,7 @@ "provider_error": "${provider} hatası", "public_key": "Genel Anahtar", "purchase_gift_card": "Hediye Kartı Satın Al", + "purple_dark_theme": "Mor karanlık tema", "qr_fullscreen": "QR kodunu tam ekranda açmak için dokun", "qr_payment_amount": "Bu QR kodu ödeme tutarını içeriyor. Geçerli miktarın üzerine yazmak istediğine emin misin?", "question_to_disable_2fa": "Cake 2FA'yı devre dışı bırakmak istediğinizden emin misiniz? M-cüzdana ve belirli işlevlere erişmek için artık 2FA koduna gerek kalmayacak.", @@ -440,6 +441,8 @@ "reconnect": "Yeniden Bağlan", "reconnect_alert_text": "Yeniden bağlanmak istediğinden emin misin?", "reconnection": "Yeniden bağlantı", + "red_dark_theme": "Kırmızı Karanlık Tema", + "red_light_theme": "Kırmızı Işık Teması", "redeemed": "Kullanılmış", "refund_address": "İade adresi", "reject": "Reddetmek", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index ae4efdd8f..a22fa8fb1 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -429,6 +429,7 @@ "provider_error": "${provider} помилка", "public_key": "Публічний ключ", "purchase_gift_card": "Придбати подарункову картку", + "purple_dark_theme": "Фіолетова темна тема", "qr_fullscreen": "Торкніться, щоб відкрити QR-код на весь екран", "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", "question_to_disable_2fa": "Ви впевнені, що хочете вимкнути Cake 2FA? Код 2FA більше не потрібен для доступу до гаманця та певних функцій.", @@ -440,6 +441,8 @@ "reconnect": "Перепідключитися", "reconnect_alert_text": "Ви хочете перепідключитися?", "reconnection": "Перепідключення", + "red_dark_theme": "Червона темна тема", + "red_light_theme": "Тема червоного світла", "redeeded": "Викуплено", "redeemed": "Викуплений", "refund_address": "Адреса повернення коштів", diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index 929f7de2e..35e17feac 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -431,6 +431,7 @@ "provider_error": "${provider} خرابی۔", "public_key": "عوامی کلید", "purchase_gift_card": "گفٹ کارڈ خریدیں۔", + "purple_dark_theme": "ارغوانی ڈارک تھیم", "qr_fullscreen": "فل سکرین QR کوڈ کھولنے کے لیے تھپتھپائیں۔", "qr_payment_amount": "اس QR کوڈ میں ادائیگی کی رقم شامل ہے۔ کیا آپ موجودہ قدر کو اوور رائٹ کرنا چاہتے ہیں؟", "question_to_disable_2fa": "کیا آپ واقعی کیک 2FA کو غیر فعال کرنا چاہتے ہیں؟ بٹوے اور بعض افعال تک رسائی کے لیے اب 2FA کوڈ کی ضرورت نہیں ہوگی۔", @@ -442,6 +443,8 @@ "reconnect": "دوبارہ جڑیں۔", "reconnect_alert_text": "کیا آپ واقعی دوبارہ جڑنا چاہتے ہیں؟", "reconnection": "دوبارہ رابطہ", + "red_dark_theme": "ریڈ ڈارک تھیم", + "red_light_theme": "ریڈ لائٹ تھیم", "redeemed": "چھڑایا", "refund_address": "رقم کی واپسی کا پتہ", "reject": "ﺎﻧﺮﮐ ﺩﺭ", diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index 9813cc976..0f141ebdf 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -430,6 +430,7 @@ "provider_error": "Àṣìṣe ${provider}", "public_key": "Kọ́kọ́rọ́ tó kò àdáni", "purchase_gift_card": "Ra káàdì ìrajà t'á lò nínú irú kan ìtajà", + "purple_dark_theme": "Akọle dudu dudu", "qr_fullscreen": "Àmì ìlujá túbọ̀ máa tóbi tí o bá tẹ̀", "qr_payment_amount": "Iye owó t'á ránṣé wà nínú àmì ìlujá yìí. Ṣé ẹ fẹ́ pààrọ̀ ẹ̀?", "question_to_disable_2fa": "Ṣe o wa daadaa pe o fẹ ko 2FA Cake? Ko si itumọ ti a yoo nilo lati ranse si iwe iwe naa ati eyikeyi iṣẹ ti o ni.", @@ -441,6 +442,8 @@ "reconnect": "Ṣe àtúnse", "reconnect_alert_text": "Ṣó dá ẹ lójú pé ẹ fẹ́ ṣe àtúnse?", "reconnection": "Àtúnṣe", + "red_dark_theme": "Akọle dudu pupa", + "red_light_theme": "Akori ina pupa", "redeemed": "Ó lílò", "refund_address": "Àdírẹ́sì t'ẹ́ gba owó sí", "reject": "Kọ", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 3a2104ecc..ffea168a9 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -429,6 +429,7 @@ "provider_error": "${provider} 错误", "public_key": "公钥", "purchase_gift_card": "购买礼品卡", + "purple_dark_theme": "紫色的黑暗主题", "qr_fullscreen": "点击打开全屏二维码", "qr_payment_amount": "This QR code contains a payment amount. Do you want to overwrite the current value?", "question_to_disable_2fa": "您确定要禁用 Cake 2FA 吗?访问钱包和某些功能将不再需要 2FA 代码。", @@ -440,6 +441,8 @@ "reconnect": "重新连接", "reconnect_alert_text": "您确定要重新连接吗?", "reconnection": "重新连接", + "red_dark_theme": "红色的黑暗主题", + "red_light_theme": "红灯主题", "redeemed": "赎回", "refund_address": "退款地址", "reject": "拒绝", From 948669b5c2fc3464f548e7c725f2a7c1e8936c89 Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Fri, 23 Feb 2024 15:00:16 -0500 Subject: [PATCH 14/30] Fix colors (#1311) * Fix colors * Update colors * oops --- lib/palette.dart | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/palette.dart b/lib/palette.dart index 58cbeb697..6681888c8 100644 --- a/lib/palette.dart +++ b/lib/palette.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; class Palette { static const Color green = Color.fromRGBO(39, 206, 80, 1.0); static const Color red = Color.fromRGBO(255, 51, 51, 1.0); - static const Color darkRed = Color.fromRGBO(204, 38, 38, 1.0); + static const Color darkRed = Color.fromRGBO(205, 0, 0, 1.0); static const Color blueAlice = Color.fromRGBO(229, 247, 255, 1.0); static const Color lightBlue = Color.fromRGBO(172, 203, 238, 1.0); static const Color lavender = Color.fromRGBO(237, 245, 252, 1.0); @@ -98,6 +98,6 @@ class PaletteDark { static const Color matrixGreen = Color.fromRGBO(18, 229, 90, 1.0); static const Color moneroOrange = Color.fromRGBO(255, 102, 0, 1.0); static const Color moneroCard = Color.fromRGBO(20, 21, 24, 1.0); - static const Color red = Color.fromRGBO(190, 30, 30, 1.0); - static const Color darkPurple = Color.fromRGBO(117, 36, 204, 1.0); + static const Color red = Color.fromRGBO(195, 0, 0, 1.0); + static const Color darkPurple = Color.fromRGBO(109, 14, 210, 1.0); } From 5b1f17c1fbcfbf3b4989421779acbfafb5269f05 Mon Sep 17 00:00:00 2001 From: Matthew Fosse Date: Fri, 23 Feb 2024 16:50:17 -0800 Subject: [PATCH 15/30] fix (#1232) --- macos/Podfile | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/macos/Podfile b/macos/Podfile index fe5678c70..16db2b54c 100644 --- a/macos/Podfile +++ b/macos/Podfile @@ -41,4 +41,20 @@ post_install do |installer| config.build_settings['MACOSX_DEPLOYMENT_TARGET'] = '12.0' end end + + installer.aggregate_targets.each do |target| + target.xcconfigs.each do |variant, xcconfig| + xcconfig_path = target.client_root + target.xcconfig_relative_path(variant) + IO.write(xcconfig_path, IO.read(xcconfig_path).gsub("DT_TOOLCHAIN_DIR", "TOOLCHAIN_DIR")) + end + end + + installer.pods_project.targets.each do |target| + target.build_configurations.each do |config| + if config.base_configuration_reference.is_a? Xcodeproj::Project::Object::PBXFileReference + xcconfig_path = config.base_configuration_reference.real_path + IO.write(xcconfig_path, IO.read(xcconfig_path).gsub("DT_TOOLCHAIN_DIR", "TOOLCHAIN_DIR")) + end + end + end end From 2549b0fa0a7171846e7dd872a54dc2e41075e6f6 Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Tue, 27 Feb 2024 21:15:18 -0500 Subject: [PATCH 16/30] Replace purple with "Cake Dark Blue" theme and make it default (#1314) --- lib/palette.dart | 2 ++ lib/store/settings_store.dart | 4 ++-- lib/themes/cake_dark_theme.dart | 24 ++++++++++++++++++++++++ lib/themes/purple_dark_theme.dart | 13 ------------- lib/themes/theme_list.dart | 10 +++++----- res/values/strings_ar.arb | 7 ++++--- res/values/strings_bg.arb | 7 ++++--- res/values/strings_cs.arb | 7 ++++--- res/values/strings_de.arb | 9 +++++---- res/values/strings_en.arb | 7 ++++--- res/values/strings_es.arb | 7 ++++--- res/values/strings_fr.arb | 7 ++++--- res/values/strings_ha.arb | 7 ++++--- res/values/strings_hi.arb | 7 ++++--- res/values/strings_hr.arb | 7 ++++--- res/values/strings_id.arb | 7 ++++--- res/values/strings_it.arb | 7 ++++--- res/values/strings_ja.arb | 7 ++++--- res/values/strings_ko.arb | 9 +++++---- res/values/strings_my.arb | 7 ++++--- res/values/strings_nl.arb | 7 ++++--- res/values/strings_pl.arb | 7 ++++--- res/values/strings_pt.arb | 7 ++++--- res/values/strings_ru.arb | 7 ++++--- res/values/strings_th.arb | 7 ++++--- res/values/strings_tl.arb | 7 ++++--- res/values/strings_tr.arb | 7 ++++--- res/values/strings_uk.arb | 7 ++++--- res/values/strings_ur.arb | 7 ++++--- res/values/strings_yo.arb | 7 ++++--- res/values/strings_zh.arb | 7 ++++--- 31 files changed, 139 insertions(+), 100 deletions(-) create mode 100644 lib/themes/cake_dark_theme.dart delete mode 100644 lib/themes/purple_dark_theme.dart diff --git a/lib/palette.dart b/lib/palette.dart index 6681888c8..eb0ff50e9 100644 --- a/lib/palette.dart +++ b/lib/palette.dart @@ -100,4 +100,6 @@ class PaletteDark { static const Color moneroCard = Color.fromRGBO(20, 21, 24, 1.0); static const Color red = Color.fromRGBO(195, 0, 0, 1.0); static const Color darkPurple = Color.fromRGBO(109, 14, 210, 1.0); + static const Color cakeBlue = Color.fromRGBO(0, 184, 250, 1.0); + static const Color darkBlue = Color.fromRGBO(0, 123, 168, 1.0); } diff --git a/lib/store/settings_store.dart b/lib/store/settings_store.dart index 488049656..fe6c98826 100644 --- a/lib/store/settings_store.dart +++ b/lib/store/settings_store.dart @@ -792,7 +792,7 @@ abstract class SettingsStoreBase with Store { ExchangeApiMode.enabled.raw); final savedTheme = initialTheme ?? ThemeList.deserialize( - raw: sharedPreferences.getInt(PreferencesKey.currentTheme) ?? (isMoneroOnly ? ThemeList.moneroDarkTheme.raw : ThemeList.darkTheme.raw)); + raw: sharedPreferences.getInt(PreferencesKey.currentTheme) ?? (isMoneroOnly ? ThemeList.moneroDarkTheme.raw : ThemeList.cakeDarkTheme.raw)); final actionListDisplayMode = ObservableList(); actionListDisplayMode.addAll(deserializeActionlistDisplayModes( sharedPreferences.getInt(PreferencesKey.displayActionListModeKey) ?? defaultActionsMode)); @@ -1151,7 +1151,7 @@ abstract class SettingsStoreBase with Store { raw: sharedPreferences.getInt(PreferencesKey.exchangeStatusKey) ?? ExchangeApiMode.enabled.raw); currentTheme = ThemeList.deserialize( - raw: sharedPreferences.getInt(PreferencesKey.currentTheme) ?? (isMoneroOnly ? ThemeList.moneroDarkTheme.raw : ThemeList.darkTheme.raw)); + raw: sharedPreferences.getInt(PreferencesKey.currentTheme) ?? (isMoneroOnly ? ThemeList.moneroDarkTheme.raw : ThemeList.cakeDarkTheme.raw)); actionlistDisplayMode = ObservableList(); actionlistDisplayMode.addAll(deserializeActionlistDisplayModes( sharedPreferences.getInt(PreferencesKey.displayActionListModeKey) ?? defaultActionsMode)); diff --git a/lib/themes/cake_dark_theme.dart b/lib/themes/cake_dark_theme.dart new file mode 100644 index 000000000..262ee1d64 --- /dev/null +++ b/lib/themes/cake_dark_theme.dart @@ -0,0 +1,24 @@ +import 'package:cake_wallet/generated/i18n.dart'; +import 'package:cake_wallet/palette.dart'; +import 'package:cake_wallet/themes/monero_dark_theme.dart'; +import 'package:flutter/material.dart'; +import 'package:cake_wallet/themes/extensions/menu_theme.dart'; + +class CakeDarkTheme extends MoneroDarkTheme { + CakeDarkTheme({required int raw}) : super(raw: raw); + + @override + String get title => S.current.cake_dark_theme; + @override + Color get primaryColor => PaletteDark.cakeBlue; + + @override + CakeMenuTheme get menuTheme => super.menuTheme.copyWith( + headerFirstGradientColor: PaletteDark.darkBlue, + headerSecondGradientColor: containerColor, + backgroundColor: containerColor, + subnameTextColor: Colors.grey, + dividerColor: colorScheme.secondaryContainer, + iconColor: Colors.white, + settingActionsIconColor: colorScheme.secondaryContainer); +} \ No newline at end of file diff --git a/lib/themes/purple_dark_theme.dart b/lib/themes/purple_dark_theme.dart deleted file mode 100644 index 04365de38..000000000 --- a/lib/themes/purple_dark_theme.dart +++ /dev/null @@ -1,13 +0,0 @@ -import 'package:cake_wallet/generated/i18n.dart'; -import 'package:cake_wallet/palette.dart'; -import 'package:cake_wallet/themes/monero_dark_theme.dart'; -import 'package:flutter/material.dart'; - -class PurpleDarkTheme extends MoneroDarkTheme { - PurpleDarkTheme({required int raw}) : super(raw: raw); - - @override - String get title => S.current.purple_dark_theme; - @override - Color get primaryColor => PaletteDark.darkPurple; -} \ No newline at end of file diff --git a/lib/themes/theme_list.dart b/lib/themes/theme_list.dart index 6d0d44225..3ca7346b3 100644 --- a/lib/themes/theme_list.dart +++ b/lib/themes/theme_list.dart @@ -3,7 +3,7 @@ import 'package:cake_wallet/themes/dark_theme.dart'; import 'package:cake_wallet/themes/light_theme.dart'; import 'package:cake_wallet/themes/monero_light_theme.dart'; import 'package:cake_wallet/themes/monero_dark_theme.dart'; -import 'package:cake_wallet/themes/purple_dark_theme.dart'; +import 'package:cake_wallet/themes/cake_dark_theme.dart'; import 'package:cake_wallet/themes/matrix_green_theme.dart'; import 'package:cake_wallet/themes/bitcoin_dark_theme.dart'; import 'package:cake_wallet/themes/bitcoin_light_theme.dart'; @@ -14,12 +14,12 @@ import 'package:cake_wallet/themes/theme_base.dart'; class ThemeList { static final all = [ + cakeDarkTheme, darkTheme, lightTheme, - brightTheme, moneroDarkTheme, moneroLightTheme, - purpleDarkTheme, + brightTheme, bitcoinDarkTheme, bitcoinLightTheme, matrixGreenTheme, @@ -39,7 +39,7 @@ class ThemeList { static final highContrastTheme = HighContrastTheme(raw: 8); static final redLightTheme = RedLightTheme(raw: 9); static final redDarkTheme = RedDarkTheme(raw: 10); - static final purpleDarkTheme = PurpleDarkTheme(raw: 11); + static final cakeDarkTheme = CakeDarkTheme(raw: 11); static ThemeBase deserialize({required int raw}) { switch (raw) { @@ -66,7 +66,7 @@ class ThemeList { case 10: return redDarkTheme; case 11: - return purpleDarkTheme; + return cakeDarkTheme; default: throw Exception( 'Unexpected token raw: $raw for deserialization of ThemeBase'); diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index af92cead4..a5ea72ce7 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -84,6 +84,7 @@ "buy_with": "اشتر بواسطة", "by_cake_pay": "عن طريق Cake Pay", "cake_2fa_preset": " كعكة 2FA مسبقا", + "cake_dark_theme": "موضوع الكعكة الظلام", "cake_pay_account_note": "قم بالتسجيل باستخدام عنوان بريد إلكتروني فقط لمشاهدة البطاقات وشرائها. حتى أن بعضها متوفر بسعر مخفض!", "cake_pay_learn_more": "شراء واسترداد بطاقات الهدايا على الفور في التطبيق!\nاسحب من اليسار إلى اليمين لمعرفة المزيد.", "cake_pay_subtitle": "شراء بطاقات هدايا مخفضة السعر (الولايات المتحدة فقط)", @@ -732,6 +733,7 @@ "view_key_private": "مفتاح العرض (خاص)", "view_key_public": "مفتاح العرض (عام)", "view_transaction_on": "عرض العملية على", + "waitFewSecondForTxUpdate": "ﺕﻼﻣﺎﻌﻤﻟﺍ ﻞﺠﺳ ﻲﻓ ﺔﻠﻣﺎﻌﻤﻟﺍ ﺲﻜﻌﻨﺗ ﻰﺘﺣ ﻥﺍﻮﺛ ﻊﻀﺒﻟ ﺭﺎﻈﺘﻧﻻﺍ ﻰﺟﺮﻳ", "wallet_keys": "سييد المحفظة / المفاتيح", "wallet_list_create_new_wallet": "إنشاء محفظة جديدة", "wallet_list_edit_wallet": "تحرير المحفظة", @@ -782,6 +784,5 @@ "you_pay": "انت تدفع", "you_will_get": "حول الى", "you_will_send": "تحويل من", - "yy": "YY", - "waitFewSecondForTxUpdate": "ﺕﻼﻣﺎﻌﻤﻟﺍ ﻞﺠﺳ ﻲﻓ ﺔﻠﻣﺎﻌﻤﻟﺍ ﺲﻜﻌﻨﺗ ﻰﺘﺣ ﻥﺍﻮﺛ ﻊﻀﺒﻟ ﺭﺎﻈﺘﻧﻻﺍ ﻰﺟﺮﻳ" -} + "yy": "YY" +} \ No newline at end of file diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index 9f46ac2f4..a42460619 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -84,6 +84,7 @@ "buy_with": "Купуване чрез", "by_cake_pay": "от Cake Pay", "cake_2fa_preset": "Торта 2FA Preset", + "cake_dark_theme": "Торта тъмна тема", "cake_pay_account_note": "Регистрайте се само с един имейл, за да виждате и купувате карти. За някои има дори и отстъпка!", "cake_pay_learn_more": "Купете и използвайте гифткарти директно в приложението!\nПлъзнете отляво надясно, за да научите още.", "cake_pay_subtitle": "Купете гифткарти на намалени цени (само за САЩ)", @@ -732,6 +733,7 @@ "view_key_private": "View key (таен)", "view_key_public": "View key (публичен)", "view_transaction_on": "Вижте транзакция на ", + "waitFewSecondForTxUpdate": "Моля, изчакайте няколко секунди, докато транзакцията се отрази в историята на транзакциите", "wallet_keys": "Seed/keys на портфейла", "wallet_list_create_new_wallet": "Създаване на нов портфейл", "wallet_list_edit_wallet": "Редактиране на портфейла", @@ -782,6 +784,5 @@ "you_pay": "Вие плащате", "you_will_get": "Обръщане в", "you_will_send": "Обръщане от", - "yy": "гг", - "waitFewSecondForTxUpdate": "Моля, изчакайте няколко секунди, докато транзакцията се отрази в историята на транзакциите" -} + "yy": "гг" +} \ No newline at end of file diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index f47c7acb3..8970d394a 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -84,6 +84,7 @@ "buy_with": "Nakoupit pomocí", "by_cake_pay": "od Cake Pay", "cake_2fa_preset": "Předvolba Cake 2FA", + "cake_dark_theme": "Dort tmavé téma", "cake_pay_account_note": "Přihlaste se svou e-mailovou adresou pro zobrazení a nákup karet. Některé jsou dostupné ve slevě!", "cake_pay_learn_more": "Okamžitý nákup a uplatnění dárkových karet v aplikaci!\nPřejeďte prstem zleva doprava pro další informace.", "cake_pay_subtitle": "Kupte si zlevněné dárkové karty (pouze USA)", @@ -732,6 +733,7 @@ "view_key_private": "Klíč pro zobrazení (soukromý)", "view_key_public": "Klíč pro zobrazení (veřejný)", "view_transaction_on": "Zobrazit transakci na ", + "waitFewSecondForTxUpdate": "Počkejte několik sekund, než se transakce projeví v historii transakcí", "wallet_keys": "Seed/klíče peněženky", "wallet_list_create_new_wallet": "Vytvořit novou peněženku", "wallet_list_edit_wallet": "Upravit peněženku", @@ -782,6 +784,5 @@ "you_pay": "Zaplatíte", "you_will_get": "Směnit na", "you_will_send": "Směnit z", - "yy": "YY", - "waitFewSecondForTxUpdate": "Počkejte několik sekund, než se transakce projeví v historii transakcí" -} + "yy": "YY" +} \ No newline at end of file diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 338112022..93d421061 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -84,6 +84,7 @@ "buy_with": "Kaufen mit", "by_cake_pay": "von Cake Pay", "cake_2fa_preset": "Kuchen 2FA-Voreinstellung", + "cake_dark_theme": "Cake Dark Thema", "cake_pay_account_note": "Melden Sie sich nur mit einer E-Mail-Adresse an, um Karten anzuzeigen und zu kaufen. Einige sind sogar mit Rabatt erhältlich!", "cake_pay_learn_more": "Kaufen und lösen Sie Geschenkkarten sofort in der App ein!\nWischen Sie von links nach rechts, um mehr zu erfahren.", "cake_pay_subtitle": "Kaufen Sie ermäßigte Geschenkkarten (nur USA)", @@ -409,8 +410,8 @@ "placeholder_transactions": "Ihre Transaktionen werden hier angezeigt", "please_fill_totp": "Bitte geben Sie den 8-stelligen Code ein, der auf Ihrem anderen Gerät vorhanden ist", "please_make_selection": "Bitte treffen Sie unten eine Auswahl zum Erstellen oder Wiederherstellen Ihrer Wallet.", - "Please_reference_document": "Weitere Informationen finden Sie in den Dokumenten unten.", "please_reference_document": "Bitte verweisen Sie auf die folgenden Dokumente, um weitere Informationen zu erhalten.", + "Please_reference_document": "Weitere Informationen finden Sie in den Dokumenten unten.", "please_select": "Bitte auswählen:", "please_select_backup_file": "Bitte wählen Sie die Sicherungsdatei und geben Sie das Sicherungskennwort ein.", "please_try_to_connect_to_another_node": "Bitte versuchen Sie, sich mit einem anderen Knoten zu verbinden", @@ -734,6 +735,7 @@ "view_key_private": "View Key (geheim)", "view_key_public": "View Key (öffentlich)", "view_transaction_on": "Anzeigen der Transaktion auf ", + "waitFewSecondForTxUpdate": "Bitte warten Sie einige Sekunden, bis die Transaktion im Transaktionsverlauf angezeigt wird", "waiting_payment_confirmation": "Warte auf Zahlungsbestätigung", "wallet_keys": "Wallet-Seed/-Schlüssel", "wallet_list_create_new_wallet": "Neue Wallet erstellen", @@ -785,6 +787,5 @@ "you_pay": "Sie bezahlen", "you_will_get": "Konvertieren zu", "you_will_send": "Konvertieren von", - "yy": "YY", - "waitFewSecondForTxUpdate": "Bitte warten Sie einige Sekunden, bis die Transaktion im Transaktionsverlauf angezeigt wird" -} + "yy": "YY" +} \ No newline at end of file diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 86dc6518d..4ccade317 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -84,6 +84,7 @@ "buy_with": "Buy with", "by_cake_pay": "by Cake Pay", "cake_2fa_preset": "Cake 2FA Preset", + "cake_dark_theme": "Cake Dark Theme", "cake_pay_account_note": "Sign up with just an email address to see and purchase cards. Some are even available at a discount!", "cake_pay_learn_more": "Instantly purchase and redeem gift cards in the app!\nSwipe left to right to learn more.", "cake_pay_subtitle": "Buy discounted gift cards (USA only)", @@ -732,6 +733,7 @@ "view_key_private": "View key (private)", "view_key_public": "View key (public)", "view_transaction_on": "View Transaction on ", + "waitFewSecondForTxUpdate": "Kindly wait for a few seconds for transaction to reflect in transactions history", "wallet_keys": "Wallet seed/keys", "wallet_list_create_new_wallet": "Create New Wallet", "wallet_list_edit_wallet": "Edit wallet", @@ -782,6 +784,5 @@ "you_pay": "You Pay", "you_will_get": "Convert to", "you_will_send": "Convert from", - "yy": "YY", - "waitFewSecondForTxUpdate": "Kindly wait for a few seconds for transaction to reflect in transactions history" -} + "yy": "YY" +} \ No newline at end of file diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 09ad9948b..611f3bd35 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -84,6 +84,7 @@ "buy_with": "Compra con", "by_cake_pay": "por Cake Pay", "cake_2fa_preset": "Pastel 2FA preestablecido", + "cake_dark_theme": "Tema oscuro del pastel", "cake_pay_account_note": "Regístrese con solo una dirección de correo electrónico para ver y comprar tarjetas. ¡Algunas incluso están disponibles con descuento!", "cake_pay_learn_more": "¡Compre y canjee tarjetas de regalo al instante en la aplicación!\nDeslice el dedo de izquierda a derecha para obtener más información.", "cake_pay_subtitle": "Compre tarjetas de regalo con descuento (solo EE. UU.)", @@ -733,6 +734,7 @@ "view_key_private": "View clave (privado)", "view_key_public": "View clave (público)", "view_transaction_on": "View Transaction on ", + "waitFewSecondForTxUpdate": "Espere unos segundos para que la transacción se refleje en el historial de transacciones.", "wallet_keys": "Billetera semilla/claves", "wallet_list_create_new_wallet": "Crear nueva billetera", "wallet_list_edit_wallet": "Editar billetera", @@ -783,6 +785,5 @@ "you_pay": "Tú pagas", "you_will_get": "Convertir a", "you_will_send": "Convertir de", - "yy": "YY", - "waitFewSecondForTxUpdate": "Espere unos segundos para que la transacción se refleje en el historial de transacciones." -} + "yy": "YY" +} \ No newline at end of file diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index e552dfafa..f00a85310 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -84,6 +84,7 @@ "buy_with": "Acheter avec", "by_cake_pay": "par Cake Pay", "cake_2fa_preset": "Cake 2FA prédéfini", + "cake_dark_theme": "Thème sombre du gâteau", "cake_pay_account_note": "Inscrivez-vous avec juste une adresse e-mail pour voir et acheter des cartes. Certaines sont même disponibles à prix réduit !", "cake_pay_learn_more": "Achetez et utilisez instantanément des cartes-cadeaux dans l'application !\nBalayer de gauche à droite pour en savoir plus.", "cake_pay_subtitle": "Achetez des cartes-cadeaux à prix réduit (États-Unis uniquement)", @@ -732,6 +733,7 @@ "view_key_private": "Clef d'audit (view key) (privée)", "view_key_public": "Clef d'audit (view key) (publique)", "view_transaction_on": "Voir la Transaction sur ", + "waitFewSecondForTxUpdate": "Veuillez attendre quelques secondes pour que la transaction soit reflétée dans l'historique des transactions.", "wallet_keys": "Phrase secrète (seed)/Clefs du portefeuille (wallet)", "wallet_list_create_new_wallet": "Créer un Nouveau Portefeuille (Wallet)", "wallet_list_edit_wallet": "Modifier le portefeuille", @@ -782,6 +784,5 @@ "you_pay": "Vous payez", "you_will_get": "Convertir vers", "you_will_send": "Convertir depuis", - "yy": "AA", - "waitFewSecondForTxUpdate": "Veuillez attendre quelques secondes pour que la transaction soit reflétée dans l'historique des transactions." -} + "yy": "AA" +} \ No newline at end of file diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index 40f6b2857..ab314af7f 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -84,6 +84,7 @@ "buy_with": "Saya da", "by_cake_pay": "da Cake Pay", "cake_2fa_preset": "Cake 2FA saiti", + "cake_dark_theme": "Cake Dark Jigo", "cake_pay_account_note": "Yi rajista tare da adireshin imel kawai don gani da siyan katunan. Wasu ma suna samuwa a rangwame!", "cake_pay_learn_more": "Nan take siya ku kwaso katunan kyaututtuka a cikin app!\nTake hagu zuwa dama don ƙarin koyo.", "cake_pay_subtitle": "Sayi katunan kyauta masu rahusa (Amurka kawai)", @@ -734,6 +735,7 @@ "view_key_private": "Duba maɓallin (maɓallin kalmar sirri)", "view_key_public": "Maɓallin Duba (maɓallin jama'a)", "view_transaction_on": "Dubo aikace-aikacen akan", + "waitFewSecondForTxUpdate": "Da fatan za a jira ƴan daƙiƙa don ciniki don yin tunani a tarihin ma'amala", "wallet_keys": "Iri/maɓalli na walat", "wallet_list_create_new_wallet": "Ƙirƙiri Sabon Wallet", "wallet_list_edit_wallet": "Gyara walat", @@ -784,6 +786,5 @@ "you_pay": "Ka Bayar", "you_will_get": "Maida zuwa", "you_will_send": "Maida daga", - "yy": "YY", - "waitFewSecondForTxUpdate": "Da fatan za a jira ƴan daƙiƙa don ciniki don yin tunani a tarihin ma'amala" -} + "yy": "YY" +} \ No newline at end of file diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index d35a5f716..da7d97c46 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -84,6 +84,7 @@ "buy_with": "के साथ खरीदें", "by_cake_pay": "केकपे द्वारा", "cake_2fa_preset": "केक 2एफए प्रीसेट", + "cake_dark_theme": "केक डार्क थीम", "cake_pay_account_note": "कार्ड देखने और खरीदने के लिए केवल एक ईमेल पते के साथ साइन अप करें। कुछ छूट पर भी उपलब्ध हैं!", "cake_pay_learn_more": "ऐप में उपहार कार्ड तुरंत खरीदें और रिडीम करें!\nअधिक जानने के लिए बाएं से दाएं स्वाइप करें।", "cake_pay_subtitle": "रियायती उपहार कार्ड खरीदें (केवल यूएसए)", @@ -734,6 +735,7 @@ "view_key_private": "कुंजी देखें(निजी)", "view_key_public": "कुंजी देखें (जनता)", "view_transaction_on": "View Transaction on ", + "waitFewSecondForTxUpdate": "लेन-देन इतिहास में लेन-देन प्रतिबिंबित होने के लिए कृपया कुछ सेकंड प्रतीक्षा करें", "wallet_keys": "बटुआ बीज / चाबियाँ", "wallet_list_create_new_wallet": "नया बटुआ बनाएँ", "wallet_list_edit_wallet": "बटुआ संपादित करें", @@ -784,6 +786,5 @@ "you_pay": "आप भुगतान करते हैं", "you_will_get": "में बदलें", "you_will_send": "से रूपांतरित करें", - "yy": "वाईवाई", - "waitFewSecondForTxUpdate": "लेन-देन इतिहास में लेन-देन प्रतिबिंबित होने के लिए कृपया कुछ सेकंड प्रतीक्षा करें" -} + "yy": "वाईवाई" +} \ No newline at end of file diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index c41310441..22b486a1c 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -84,6 +84,7 @@ "buy_with": "Kupite s", "by_cake_pay": "od Cake Paya", "cake_2fa_preset": "Cake 2FA Preset", + "cake_dark_theme": "TOKA DARKA TEMA", "cake_pay_account_note": "Prijavite se samo s adresom e-pošte da biste vidjeli i kupili kartice. Neke su čak dostupne uz popust!", "cake_pay_learn_more": "Azonnal vásárolhat és válthat be ajándékutalványokat az alkalmazásban!\nTovábbi információért csúsztassa balról jobbra az ujját.", "cake_pay_subtitle": "Kupite darovne kartice s popustom (samo SAD)", @@ -732,6 +733,7 @@ "view_key_private": "View key (privatni)", "view_key_public": "View key (javni)", "view_transaction_on": "View Transaction on ", + "waitFewSecondForTxUpdate": "Pričekajte nekoliko sekundi da se transakcija prikaže u povijesti transakcija", "wallet_keys": "Pristupni izraz/ključ novčanika", "wallet_list_create_new_wallet": "Izradi novi novčanik", "wallet_list_edit_wallet": "Uredi novčanik", @@ -782,6 +784,5 @@ "you_pay": "Vi plaćate", "you_will_get": "Razmijeni u", "you_will_send": "Razmijeni iz", - "yy": "GG", - "waitFewSecondForTxUpdate": "Pričekajte nekoliko sekundi da se transakcija prikaže u povijesti transakcija" -} + "yy": "GG" +} \ No newline at end of file diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index a9b9b50b3..a2f3ed017 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -84,6 +84,7 @@ "buy_with": "Beli dengan", "by_cake_pay": "oleh Cake Pay", "cake_2fa_preset": "Preset Kue 2FA", + "cake_dark_theme": "Tema Kue Gelap", "cake_pay_account_note": "Daftar hanya dengan alamat email untuk melihat dan membeli kartu. Beberapa di antaranya bahkan tersedia dengan diskon!", "cake_pay_learn_more": "Beli dan tukar kartu hadiah secara instan di aplikasi!\nGeser ke kanan untuk informasi lebih lanjut.", "cake_pay_subtitle": "Beli kartu hadiah dengan harga diskon (hanya USA)", @@ -735,6 +736,7 @@ "view_key_private": "Kunci tampilan (privat)", "view_key_public": "Kunci tampilan (publik)", "view_transaction_on": "Lihat Transaksi di ", + "waitFewSecondForTxUpdate": "Mohon tunggu beberapa detik hingga transaksi terlihat di riwayat transaksi", "wallet_keys": "Seed/kunci dompet", "wallet_list_create_new_wallet": "Buat Dompet Baru", "wallet_list_edit_wallet": "Edit dompet", @@ -785,6 +787,5 @@ "you_pay": "Anda Membayar", "you_will_get": "Konversi ke", "you_will_send": "Konversi dari", - "yy": "YY", - "waitFewSecondForTxUpdate": "Mohon tunggu beberapa detik hingga transaksi terlihat di riwayat transaksi" -} + "yy": "YY" +} \ No newline at end of file diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 9682e3d7f..015b63d47 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -84,6 +84,7 @@ "buy_with": "Acquista con", "by_cake_pay": "da Cake Pay", "cake_2fa_preset": "Torta 2FA Preset", + "cake_dark_theme": "Tema oscuro della torta", "cake_pay_account_note": "Iscriviti con solo un indirizzo email per vedere e acquistare le carte. Alcune sono anche disponibili con uno sconto!", "cake_pay_learn_more": "Acquista e riscatta istantaneamente carte regalo nell'app!\nScorri da sinistra a destra per saperne di più.", "cake_pay_subtitle": "Acquista buoni regalo scontati (solo USA)", @@ -734,6 +735,7 @@ "view_key_private": "Chiave di visualizzazione (privata)", "view_key_public": "Chiave di visualizzazione (pubblica)", "view_transaction_on": "View Transaction on ", + "waitFewSecondForTxUpdate": "Attendi qualche secondo affinché la transazione venga riflessa nella cronologia delle transazioni", "waiting_payment_confirmation": "In attesa di conferma del pagamento", "wallet_keys": "Seme Portafoglio /chiavi", "wallet_list_create_new_wallet": "Crea Nuovo Portafoglio", @@ -785,6 +787,5 @@ "you_pay": "Tu paghi", "you_will_get": "Converti a", "you_will_send": "Conveti da", - "yy": "YY", - "waitFewSecondForTxUpdate": "Attendi qualche secondo affinché la transazione venga riflessa nella cronologia delle transazioni" -} + "yy": "YY" +} \ No newline at end of file diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 0f4513eee..36ec1932b 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -84,6 +84,7 @@ "buy_with": "で購入", "by_cake_pay": "by Cake Pay", "cake_2fa_preset": "ケーキ 2FA プリセット", + "cake_dark_theme": "ケーキ暗いテーマ", "cake_pay_account_note": "メールアドレスだけでサインアップして、カードを表示して購入できます。割引価格で利用できるカードもあります!", "cake_pay_learn_more": "アプリですぐにギフトカードを購入して引き換えましょう!\n左から右にスワイプして詳細をご覧ください。", "cake_pay_subtitle": "割引ギフトカードを購入する (米国のみ)", @@ -733,6 +734,7 @@ "view_key_private": "ビューキー (プライベート)", "view_key_public": "ビューキー (パブリック)", "view_transaction_on": "View Transaction on ", + "waitFewSecondForTxUpdate": "取引履歴に取引が反映されるまで数秒お待ちください。", "wallet_keys": "ウォレットシード/キー", "wallet_list_create_new_wallet": "新しいウォレットを作成", "wallet_list_edit_wallet": "ウォレットを編集する", @@ -783,6 +785,5 @@ "you_pay": "あなたが支払う", "you_will_get": "に変換", "you_will_send": "から変換", - "yy": "YY", - "waitFewSecondForTxUpdate": "取引履歴に取引が反映されるまで数秒お待ちください。" -} + "yy": "YY" +} \ No newline at end of file diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index 2dd80cf5c..b51f42e8f 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -84,6 +84,7 @@ "buy_with": "구매", "by_cake_pay": "Cake Pay로", "cake_2fa_preset": "케이크 2FA 프리셋", + "cake_dark_theme": "케이크 다크 테마", "cake_pay_account_note": "이메일 주소로 가입하면 카드를 보고 구매할 수 있습니다. 일부는 할인된 가격으로 사용 가능합니다!", "cake_pay_learn_more": "앱에서 즉시 기프트 카드를 구매하고 사용하세요!\n자세히 알아보려면 왼쪽에서 오른쪽으로 스와이프하세요.", "cake_pay_subtitle": "할인된 기프트 카드 구매(미국만 해당)", @@ -409,8 +410,8 @@ "placeholder_transactions": "거래가 여기에 표시됩니다", "please_fill_totp": "다른 기기에 있는 8자리 코드를 입력하세요.", "please_make_selection": "아래에서 선택하십시오 지갑 만들기 또는 복구.", - "Please_reference_document": "자세한 내용은 아래 문서를 참조하십시오.", "please_reference_document": "자세한 내용은 아래 문서를 참조하십시오.", + "Please_reference_document": "자세한 내용은 아래 문서를 참조하십시오.", "please_select": "선택 해주세요:", "please_select_backup_file": "백업 파일을 선택하고 백업 암호를 입력하십시오.", "please_try_to_connect_to_another_node": "다른 노드에 연결을 시도하십시오", @@ -733,6 +734,7 @@ "view_key_private": "키보기(은밀한)", "view_key_public": "키보기 (공공의)", "view_transaction_on": "View Transaction on ", + "waitFewSecondForTxUpdate": "거래 내역에 거래가 반영될 때까지 몇 초 정도 기다려 주세요.", "wallet_keys": "지갑 시드 / 키", "wallet_list_create_new_wallet": "새 월렛 만들기", "wallet_list_edit_wallet": "지갑 수정", @@ -784,6 +786,5 @@ "you_will_get": "로 변환하다", "you_will_send": "다음에서 변환", "YY": "YY", - "yy": "YY", - "waitFewSecondForTxUpdate": "거래 내역에 거래가 반영될 때까지 몇 초 정도 기다려 주세요." -} + "yy": "YY" +} \ No newline at end of file diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index 1bc338dcb..fe719a82b 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -84,6 +84,7 @@ "buy_with": "အတူဝယ်ပါ။", "by_cake_pay": "Cake Pay ဖြင့်", "cake_2fa_preset": "ကိတ်မုန့် 2FA ကြိုတင်သတ်မှတ်", + "cake_dark_theme": "ကိတ်မုန့် Dark Theme", "cake_pay_account_note": "ကတ်များကြည့်ရှုဝယ်ယူရန် အီးမေးလ်လိပ်စာတစ်ခုဖြင့် စာရင်းသွင်းပါ။ အချို့ကို လျှော့ဈေးဖြင့်ပင် ရနိုင်သည်။", "cake_pay_learn_more": "အက်ပ်ရှိ လက်ဆောင်ကတ်များကို ချက်ချင်းဝယ်ယူပြီး ကူပွန်ဖြင့် လဲလှယ်ပါ။\nပိုမိုလေ့လာရန် ဘယ်မှညာသို့ ပွတ်ဆွဲပါ။", "cake_pay_subtitle": "လျှော့စျေးလက်ဆောင်ကတ်များဝယ်ပါ (USA သာ)", @@ -732,6 +733,7 @@ "view_key_private": "သော့ကိုကြည့်ရန် (သီးသန့်)", "view_key_public": "သော့ကိုကြည့်ရန် (အများပြည်သူ)", "view_transaction_on": "ငွေလွှဲခြင်းကို ဖွင့်ကြည့်ပါ။", + "waitFewSecondForTxUpdate": "ငွေပေးငွေယူ မှတ်တမ်းတွင် ရောင်ပြန်ဟပ်ရန် စက္ကန့်အနည်းငယ်စောင့်ပါ။", "wallet_keys": "ပိုက်ဆံအိတ် အစေ့/သော့များ", "wallet_list_create_new_wallet": "Wallet အသစ်ဖန်တီးပါ။", "wallet_list_edit_wallet": "ပိုက်ဆံအိတ်ကို တည်းဖြတ်ပါ။", @@ -782,6 +784,5 @@ "you_pay": "သင်ပေးချေပါ။", "you_will_get": "သို့ပြောင်းပါ။", "you_will_send": "မှပြောင်းပါ။", - "yy": "YY", - "waitFewSecondForTxUpdate": "ငွေပေးငွေယူ မှတ်တမ်းတွင် ရောင်ပြန်ဟပ်ရန် စက္ကန့်အနည်းငယ်စောင့်ပါ။" -} + "yy": "YY" +} \ No newline at end of file diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 56175b636..ed5054abe 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -84,6 +84,7 @@ "buy_with": "Koop met", "by_cake_pay": "door Cake Pay", "cake_2fa_preset": "Taart 2FA Voorinstelling", + "cake_dark_theme": "Cake Dark Theme", "cake_pay_account_note": "Meld u aan met alleen een e-mailadres om kaarten te bekijken en te kopen. Sommige zijn zelfs met korting verkrijgbaar!", "cake_pay_learn_more": "Koop en wissel cadeaubonnen direct in de app in!\nSwipe van links naar rechts voor meer informatie.", "cake_pay_subtitle": "Koop cadeaubonnen met korting (alleen VS)", @@ -732,6 +733,7 @@ "view_key_private": "Bekijk sleutel (privaat)", "view_key_public": "Bekijk sleutel (openbaar)", "view_transaction_on": "View Transaction on ", + "waitFewSecondForTxUpdate": "Wacht een paar seconden totdat de transactie wordt weergegeven in de transactiegeschiedenis", "waiting_payment_confirmation": "In afwachting van betalingsbevestiging", "wallet_keys": "Portemonnee zaad/sleutels", "wallet_list_create_new_wallet": "Maak een nieuwe portemonnee", @@ -783,6 +785,5 @@ "you_pay": "U betaalt", "you_will_get": "Converteren naar", "you_will_send": "Converteren van", - "yy": "JJ", - "waitFewSecondForTxUpdate": "Wacht een paar seconden totdat de transactie wordt weergegeven in de transactiegeschiedenis" -} + "yy": "JJ" +} \ No newline at end of file diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index cbd1a7171..aa567799e 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -84,6 +84,7 @@ "buy_with": "Kup za pomocą", "by_cake_pay": "przez Cake Pay", "cake_2fa_preset": "Ciasto 2FA Preset", + "cake_dark_theme": "Cake Dark Temat", "cake_pay_account_note": "Zarejestruj się, używając tylko adresu e-mail, aby przeglądać i kupować karty. Niektóre są nawet dostępne ze zniżką!", "cake_pay_learn_more": "Kupuj i wykorzystuj karty podarunkowe od razu w aplikacji!\nPrzesuń od lewej do prawej, aby dowiedzieć się więcej.", "cake_pay_subtitle": "Kup karty upominkowe ze zniżką (tylko USA)", @@ -732,6 +733,7 @@ "view_key_private": "Prywatny Klucz Wglądu", "view_key_public": "Publiczny Klucz Wglądu", "view_transaction_on": "Zobacz transakcje na ", + "waitFewSecondForTxUpdate": "Poczekaj kilka sekund, aż transakcja zostanie odzwierciedlona w historii transakcji", "wallet_keys": "Klucze portfela", "wallet_list_create_new_wallet": "Utwórz nowy portfel", "wallet_list_edit_wallet": "Edytuj portfel", @@ -782,6 +784,5 @@ "you_pay": "Płacisz", "you_will_get": "Konwertuj na", "you_will_send": "Konwertuj z", - "yy": "RR", - "waitFewSecondForTxUpdate": "Poczekaj kilka sekund, aż transakcja zostanie odzwierciedlona w historii transakcji" -} + "yy": "RR" +} \ No newline at end of file diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 7520f9327..b0aa7cab5 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -84,6 +84,7 @@ "buy_with": "Compre com", "by_cake_pay": "por Cake Pay", "cake_2fa_preset": "Predefinição de bolo 2FA", + "cake_dark_theme": "Bolo tema escuro", "cake_pay_account_note": "Inscreva-se com apenas um endereço de e-mail para ver e comprar cartões. Alguns estão até com desconto!", "cake_pay_learn_more": "Compre e resgate vales-presente instantaneamente no app!\nDeslize da esquerda para a direita para saber mais.", "cake_pay_subtitle": "Compre vales-presente com desconto (somente nos EUA)", @@ -734,6 +735,7 @@ "view_key_private": "Chave de visualização (privada)", "view_key_public": "Chave de visualização (pública)", "view_transaction_on": "View Transaction on ", + "waitFewSecondForTxUpdate": "Aguarde alguns segundos para que a transação seja refletida no histórico de transações", "waiting_payment_confirmation": "Aguardando confirmação de pagamento", "wallet_keys": "Semente/chaves da carteira", "wallet_list_create_new_wallet": "Criar nova carteira", @@ -785,6 +787,5 @@ "you_pay": "Você paga", "you_will_get": "Converter para", "you_will_send": "Converter de", - "yy": "aa", - "waitFewSecondForTxUpdate": "Aguarde alguns segundos para que a transação seja refletida no histórico de transações" -} + "yy": "aa" +} \ No newline at end of file diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index ee31e003a..bfb7b62d7 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -84,6 +84,7 @@ "buy_with": "Купить с помощью", "by_cake_pay": "от Cake Pay", "cake_2fa_preset": "Торт 2FA Preset", + "cake_dark_theme": "Тейт темная тема", "cake_pay_account_note": "Зарегистрируйтесь, указав только адрес электронной почты, чтобы просматривать и покупать карты. Некоторые даже доступны со скидкой!", "cake_pay_learn_more": "Мгновенно покупайте и используйте подарочные карты в приложении!\nПроведите по экрану слева направо, чтобы узнать больше.", "cake_pay_subtitle": "Покупайте подарочные карты со скидкой (только для США)", @@ -733,6 +734,7 @@ "view_key_private": "Приватный ключ просмотра", "view_key_public": "Публичный ключ просмотра", "view_transaction_on": "View Transaction on ", + "waitFewSecondForTxUpdate": "Пожалуйста, подождите несколько секунд, чтобы транзакция отразилась в истории транзакций.", "wallet_keys": "Мнемоническая фраза/ключи кошелька", "wallet_list_create_new_wallet": "Создать новый кошелёк", "wallet_list_edit_wallet": "Изменить кошелек", @@ -783,6 +785,5 @@ "you_pay": "Вы платите", "you_will_get": "Конвертировать в", "you_will_send": "Конвертировать из", - "yy": "ГГ", - "waitFewSecondForTxUpdate": "Пожалуйста, подождите несколько секунд, чтобы транзакция отразилась в истории транзакций." -} + "yy": "ГГ" +} \ No newline at end of file diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index 3fddae170..5da17828f 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -84,6 +84,7 @@ "buy_with": "ซื้อด้วย", "by_cake_pay": "โดย Cake Pay", "cake_2fa_preset": "เค้ก 2FA ที่ตั้งไว้ล่วงหน้า", + "cake_dark_theme": "ธีมเค้กมืด", "cake_pay_account_note": "ลงทะเบียนด้วยอีเมลเพียงอย่างเดียวเพื่อดูและซื้อบัตร บางบัตรอาจมีส่วนลด!", "cake_pay_learn_more": "ซื้อและเบิกบัตรของขวัญในแอพพลิเคชันทันที!\nกระแทกขวาไปซ้ายเพื่อเรียนรู้เพิ่มเติม", "cake_pay_subtitle": "ซื้อบัตรของขวัญราคาถูก (สำหรับสหรัฐอเมริกาเท่านั้น)", @@ -732,6 +733,7 @@ "view_key_private": "คีย์มุมมอง (ส่วนตัว)", "view_key_public": "คีย์มุมมอง (สาธารณะ)", "view_transaction_on": "ดูการทำธุรกรรมบน ", + "waitFewSecondForTxUpdate": "กรุณารอสักครู่เพื่อให้ธุรกรรมปรากฏในประวัติการทำธุรกรรม", "wallet_keys": "ซีดของกระเป๋า/คีย์", "wallet_list_create_new_wallet": "สร้างกระเป๋าใหม่", "wallet_list_edit_wallet": "แก้ไขกระเป๋าสตางค์", @@ -782,6 +784,5 @@ "you_pay": "คุณจ่าย", "you_will_get": "แปลงเป็น", "you_will_send": "แปลงจาก", - "yy": "ปี", - "waitFewSecondForTxUpdate": "กรุณารอสักครู่เพื่อให้ธุรกรรมปรากฏในประวัติการทำธุรกรรม" -} + "yy": "ปี" +} \ No newline at end of file diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index 6dc6d793a..e0a0b1eae 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -84,6 +84,7 @@ "buy_with": "Bumili ka", "by_cake_pay": "sa pamamagitan ng cake pay", "cake_2fa_preset": "Cake 2fa preset", + "cake_dark_theme": "Cake madilim na tema", "cake_pay_account_note": "Mag -sign up na may isang email address lamang upang makita at bumili ng mga kard. Ang ilan ay magagamit kahit sa isang diskwento!", "cake_pay_learn_more": "Agad na bumili at tubusin ang mga kard ng regalo sa app!\nMag -swipe pakaliwa sa kanan upang matuto nang higit pa.", "cake_pay_subtitle": "Bumili ng mga diskwento na gift card (USA lamang)", @@ -732,6 +733,7 @@ "view_key_private": "Tingnan ang Key (Pribado)", "view_key_public": "Tingnan ang Key (Publiko)", "view_transaction_on": "Tingnan ang transaksyon sa", + "waitFewSecondForTxUpdate": "Mangyaring maghintay ng ilang segundo para makita ang transaksyon sa history ng mga transaksyon", "wallet_keys": "Mga buto/susi ng pitaka", "wallet_list_create_new_wallet": "Lumikha ng bagong pitaka", "wallet_list_edit_wallet": "I -edit ang Wallet", @@ -782,6 +784,5 @@ "you_pay": "Magbabayad ka", "you_will_get": "Mag -convert sa", "you_will_send": "I -convert mula sa", - "yy": "YY", - "waitFewSecondForTxUpdate": "Mangyaring maghintay ng ilang segundo para makita ang transaksyon sa history ng mga transaksyon" -} + "yy": "YY" +} \ No newline at end of file diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index 585ef495a..c4d64305e 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -84,6 +84,7 @@ "buy_with": "Şunun ile al: ", "by_cake_pay": "Cake Pay tarafından", "cake_2fa_preset": "Kek 2FA Ön Ayarı", + "cake_dark_theme": "Kek Koyu Tema", "cake_pay_account_note": "Kartları görmek ve satın almak için sadece bir e-posta adresiyle kaydolun. Hatta bazıları indirimli olarak bile mevcut!", "cake_pay_learn_more": "Uygulamada anında hediye kartları satın alın ve harcayın!\nDaha fazla öğrenmek için soldan sağa kaydır.", "cake_pay_subtitle": "İndirimli hediye kartları satın alın (yalnızca ABD)", @@ -732,6 +733,7 @@ "view_key_private": "İzleme anahtarı (özel)", "view_key_public": "İzleme anahtarı (genel)", "view_transaction_on": "İşlemi şurada görüntüle ", + "waitFewSecondForTxUpdate": "İşlemin işlem geçmişine yansıması için lütfen birkaç saniye bekleyin", "wallet_keys": "Cüzdan tohumu/anahtarları", "wallet_list_create_new_wallet": "Yeni Cüzdan Oluştur", "wallet_list_edit_wallet": "Cüzdanı düzenle", @@ -782,6 +784,5 @@ "you_pay": "Şu kadar ödeyeceksin: ", "you_will_get": "Biçimine dönüştür:", "you_will_send": "Biçiminden dönüştür:", - "yy": "YY", - "waitFewSecondForTxUpdate": "İşlemin işlem geçmişine yansıması için lütfen birkaç saniye bekleyin" -} + "yy": "YY" +} \ No newline at end of file diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index a22fa8fb1..59371cdbe 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -84,6 +84,7 @@ "buy_with": "Купити за допомогою", "by_cake_pay": "від Cake Pay", "cake_2fa_preset": "Торт 2FA Preset", + "cake_dark_theme": "Темна тема торта", "cake_pay_account_note": "Зареєструйтеся, використовуючи лише адресу електронної пошти, щоб переглядати та купувати картки. Деякі навіть доступні зі знижкою!", "cake_pay_learn_more": "Миттєво купуйте та активуйте подарункові картки в додатку!\nПроведіть пальцем зліва направо, щоб дізнатися більше.", "cake_pay_subtitle": "Купуйте подарункові картки зі знижкою (тільки для США)", @@ -733,6 +734,7 @@ "view_key_private": "Приватний ключ перегляду", "view_key_public": "Публічний ключ перегляду", "view_transaction_on": "View Transaction on ", + "waitFewSecondForTxUpdate": "Будь ласка, зачекайте кілька секунд, поки транзакція відобразиться в історії транзакцій", "wallet_keys": "Мнемонічна фраза/ключі гаманця", "wallet_list_create_new_wallet": "Створити новий гаманець", "wallet_list_edit_wallet": "Редагувати гаманець", @@ -783,6 +785,5 @@ "you_pay": "Ви платите", "you_will_get": "Конвертувати в", "you_will_send": "Конвертувати з", - "yy": "YY", - "waitFewSecondForTxUpdate": "Будь ласка, зачекайте кілька секунд, поки транзакція відобразиться в історії транзакцій" -} + "yy": "YY" +} \ No newline at end of file diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index 35e17feac..73b758561 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -84,6 +84,7 @@ "buy_with": "کے ساتھ خریدیں۔", "by_cake_pay": "Cake پے کے ذریعے", "cake_2fa_preset": "کیک 2FA پیش سیٹ", + "cake_dark_theme": "کیک ڈارک تھیم", "cake_pay_account_note": "کارڈز دیکھنے اور خریدنے کے لیے صرف ایک ای میل ایڈریس کے ساتھ سائن اپ کریں۔ کچھ رعایت پر بھی دستیاب ہیں!", "cake_pay_learn_more": "ایپ میں فوری طور پر گفٹ کارڈز خریدیں اور بھنائیں!\\nمزید جاننے کے لیے بائیں سے دائیں سوائپ کریں۔", "cake_pay_subtitle": "رعایتی گفٹ کارڈز خریدیں (صرف امریکہ)", @@ -734,6 +735,7 @@ "view_key_private": "کلید دیکھیں (نجی)", "view_key_public": "کلید دیکھیں (عوامی)", "view_transaction_on": "لین دین دیکھیں آن", + "waitFewSecondForTxUpdate": "۔ﮟﯾﺮﮐ ﺭﺎﻈﺘﻧﺍ ﺎﮐ ﮉﻨﮑﯿﺳ ﺪﻨﭼ ﻡﺮﮐ ﮦﺍﺮﺑ ﮯﯿﻟ ﮯﮐ ﮯﻧﺮﮐ ﯽﺳﺎﮑﻋ ﯽﮐ ﻦﯾﺩ ﻦﯿﻟ ﮟﯿﻣ ﺦﯾﺭﺎﺗ ﯽﮐ ﻦ", "wallet_keys": "بٹوے کے بیج / چابیاں", "wallet_list_create_new_wallet": "نیا والیٹ بنائیں", "wallet_list_edit_wallet": "بٹوے میں ترمیم کریں۔", @@ -784,6 +786,5 @@ "you_pay": "تم ادا کرو", "you_will_get": "میں تبدیل کریں۔", "you_will_send": "سے تبدیل کریں۔", - "yy": "YY", - "waitFewSecondForTxUpdate": "۔ﮟﯾﺮﮐ ﺭﺎﻈﺘﻧﺍ ﺎﮐ ﮉﻨﮑﯿﺳ ﺪﻨﭼ ﻡﺮﮐ ﮦﺍﺮﺑ ﮯﯿﻟ ﮯﮐ ﮯﻧﺮﮐ ﯽﺳﺎﮑﻋ ﯽﮐ ﻦﯾﺩ ﻦﯿﻟ ﮟﯿﻣ ﺦﯾﺭﺎﺗ ﯽﮐ ﻦ" -} + "yy": "YY" +} \ No newline at end of file diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index 0f141ebdf..4ccf10ff6 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -84,6 +84,7 @@ "buy_with": "Rà pẹ̀lú", "by_cake_pay": "láti ọwọ́ Cake Pay", "cake_2fa_preset": "Cake 2FA Tito", + "cake_dark_theme": "Akara oyinbo dudu koko", "cake_pay_account_note": "Ẹ fi àdírẹ́sì ímeèlì nìkan forúkọ sílẹ̀ k'ẹ́ rí àti ra àwọn káàdì. Ẹ lè fi owó tó kéré jù ra àwọn káàdì kan!", "cake_pay_learn_more": "Láìpẹ́ ra àti lo àwọn káàdí ìrajà t'á lò nínú irú kan ìtajà nínú áàpù!\nẸ tẹ̀ òsì de ọ̀tún láti kọ́ jù.", "cake_pay_subtitle": "Ra àwọn káàdì ìrajà t'á lò nínú ìtajà kan fún owó tí kò pọ̀ (USA nìkan)", @@ -733,6 +734,7 @@ "view_key_private": "Kọ́kọ́rọ́ ìwò (àdáni)", "view_key_public": "Kọ́kọ́rọ́ ìwò (kò àdáni)", "view_transaction_on": "Wo pàṣípààrọ̀ lórí ", + "waitFewSecondForTxUpdate": "Fi inurere duro fun awọn iṣeju diẹ fun idunadura lati ṣe afihan ninu itan-akọọlẹ iṣowo", "wallet_keys": "Hóró/kọ́kọ́rọ́ àpamọ́wọ́", "wallet_list_create_new_wallet": "Ṣe àpamọ́wọ́ títun", "wallet_list_edit_wallet": "Ṣatunkọ apamọwọ", @@ -783,6 +785,5 @@ "you_pay": "Ẹ sàn", "you_will_get": "Ṣe pàṣípààrọ̀ sí", "you_will_send": "Ṣe pàṣípààrọ̀ láti", - "yy": "Ọd", - "waitFewSecondForTxUpdate": "Fi inurere duro fun awọn iṣeju diẹ fun idunadura lati ṣe afihan ninu itan-akọọlẹ iṣowo" -} + "yy": "Ọd" +} \ No newline at end of file diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index ffea168a9..3cff27996 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -84,6 +84,7 @@ "buy_with": "一起购买", "by_cake_pay": "通过 Cake Pay", "cake_2fa_preset": "蛋糕 2FA 预设", + "cake_dark_theme": "蛋糕黑暗主题", "cake_pay_account_note": "只需使用電子郵件地址註冊即可查看和購買卡片。有些甚至可以打折!", "cake_pay_learn_more": "立即在应用中购买和兑换礼品卡!\n从左向右滑动以了解详情。", "cake_pay_subtitle": "购买打折礼品卡(仅限美国)", @@ -732,6 +733,7 @@ "view_key_private": "View 密钥(私钥)", "view_key_public": "View 密钥(公钥)", "view_transaction_on": "View Transaction on ", + "waitFewSecondForTxUpdate": "请等待几秒钟,交易才会反映在交易历史记录中", "wallet_keys": "钱包种子/密钥", "wallet_list_create_new_wallet": "创建新钱包", "wallet_list_edit_wallet": "编辑钱包", @@ -782,6 +784,5 @@ "you_pay": "你付钱", "you_will_get": "转换到", "you_will_send": "转换自", - "yy": "YY", - "waitFewSecondForTxUpdate": "请等待几秒钟,交易才会反映在交易历史记录中" -} + "yy": "YY" +} \ No newline at end of file From 10fd32fb2e167c57f34bb74c84c908188f631561 Mon Sep 17 00:00:00 2001 From: Serhii Date: Fri, 1 Mar 2024 21:38:48 +0200 Subject: [PATCH 17/30] Cw 586 display user twitter image in birdpay (#1315) * Update address_validator.dart * add twitter profile image * mastodon profile image * fix data types --- lib/core/address_validator.dart | 10 +- lib/entities/parse_address_from_domain.dart | 27 +++- lib/entities/parsed_address.dart | 67 +++++--- lib/mastodon/mastodon_user.dart | 5 +- .../widgets/extract_address_from_parsed.dart | 8 + lib/src/widgets/alert_with_one_action.dart | 12 +- lib/src/widgets/base_alert_dialog.dart | 148 ++++++++++++------ lib/twitter/twitter_api.dart | 2 +- lib/twitter/twitter_user.dart | 7 +- 9 files changed, 200 insertions(+), 86 deletions(-) diff --git a/lib/core/address_validator.dart b/lib/core/address_validator.dart index 853762a1c..84fcb9e2e 100644 --- a/lib/core/address_validator.dart +++ b/lib/core/address_validator.dart @@ -270,11 +270,11 @@ class AddressValidator extends TextValidator { '|([^0-9a-zA-Z]|^)8[0-9a-zA-Z]{94}([^0-9a-zA-Z]|\$)' '|([^0-9a-zA-Z]|^)[0-9a-zA-Z]{106}([^0-9a-zA-Z]|\$)'; case CryptoCurrency.btc: - return '([^0-9a-zA-Z]|^)${P2pkhAddress.regex.pattern}|\$)' - '([^0-9a-zA-Z]|^)${P2shAddress.regex.pattern}|\$)' - '([^0-9a-zA-Z]|^)${P2wpkhAddress.regex.pattern}|\$)' - '([^0-9a-zA-Z]|^)${P2wshAddress.regex.pattern}|\$)' - '([^0-9a-zA-Z]|^)${P2trAddress.regex.pattern}|\$)'; + return '([^0-9a-zA-Z]|^)([1mn][a-km-zA-HJ-NP-Z1-9]{25,34})([^0-9a-zA-Z]|\$)' //P2pkhAddress type + '|([^0-9a-zA-Z]|^)([23][a-km-zA-HJ-NP-Z1-9]{25,34})([^0-9a-zA-Z]|\$)' //P2shAddress type + '|([^0-9a-zA-Z]|^)((bc|tb)1q[ac-hj-np-z02-9]{25,39})([^0-9a-zA-Z]|\$)' //P2wpkhAddress type + '|([^0-9a-zA-Z]|^)((bc|tb)1q[ac-hj-np-z02-9]{40,80})([^0-9a-zA-Z]|\$)' //P2wshAddress type + '|([^0-9a-zA-Z]|^)((bc|tb)1p([ac-hj-np-z02-9]{39}|[ac-hj-np-z02-9]{59}|[ac-hj-np-z02-9]{8,89}))([^0-9a-zA-Z]|\$)'; //P2trAddress type case CryptoCurrency.ltc: return '([^0-9a-zA-Z]|^)^L[a-zA-Z0-9]{26,33}([^0-9a-zA-Z]|\$)' '|([^0-9a-zA-Z]|^)[LM][a-km-zA-HJ-NP-Z1-9]{26,33}([^0-9a-zA-Z]|\$)' diff --git a/lib/entities/parse_address_from_domain.dart b/lib/entities/parse_address_from_domain.dart index 52bcc495b..3ebc08c55 100644 --- a/lib/entities/parse_address_from_domain.dart +++ b/lib/entities/parse_address_from_domain.dart @@ -69,16 +69,20 @@ class AddressResolver { } - Future resolve(BuildContext context, String text, String ticker) async { + Future resolve(BuildContext context, String text, String ticker) async { try { if (text.startsWith('@') && !text.substring(1).contains('@')) { - if(settingsStore.lookupsTwitter) { + if (settingsStore.lookupsTwitter) { final formattedName = text.substring(1); final twitterUser = await TwitterApi.lookupUserByName(userName: formattedName); final addressFromBio = extractAddressByType( raw: twitterUser.description, type: CryptoCurrency.fromString(ticker)); if (addressFromBio != null) { - return ParsedAddress.fetchTwitterAddress(address: addressFromBio, name: text); + return ParsedAddress.fetchTwitterAddress( + address: addressFromBio, + name: text, + profileImageUrl: twitterUser.profileImageUrl, + profileName: twitterUser.name); } final pinnedTweet = twitterUser.pinnedTweet?.text; @@ -86,7 +90,11 @@ class AddressResolver { final addressFromPinnedTweet = extractAddressByType(raw: pinnedTweet, type: CryptoCurrency.fromString(ticker)); if (addressFromPinnedTweet != null) { - return ParsedAddress.fetchTwitterAddress(address: addressFromPinnedTweet, name: text); + return ParsedAddress.fetchTwitterAddress( + address: addressFromPinnedTweet, + name: text, + profileImageUrl: twitterUser.profileImageUrl, + profileName: twitterUser.name); } } } @@ -107,7 +115,11 @@ class AddressResolver { extractAddressByType(raw: mastodonUser.note, type: CryptoCurrency.fromString(ticker)); if (addressFromBio != null) { - return ParsedAddress.fetchMastodonAddress(address: addressFromBio, name: text); + return ParsedAddress.fetchMastodonAddress( + address: addressFromBio, + name: text, + profileImageUrl: mastodonUser.profileImageUrl, + profileName: mastodonUser.username); } else { final pinnedPosts = await MastodonAPI.getPinnedPosts(userId: mastodonUser.id, apiHost: hostName); @@ -119,7 +131,10 @@ class AddressResolver { if (addressFromPinnedPost != null) { return ParsedAddress.fetchMastodonAddress( - address: addressFromPinnedPost, name: text); + address: addressFromPinnedPost, + name: text, + profileImageUrl: mastodonUser.profileImageUrl, + profileName: mastodonUser.username); } } } diff --git a/lib/entities/parsed_address.dart b/lib/entities/parsed_address.dart index d414a827d..d87deb9e8 100644 --- a/lib/entities/parsed_address.dart +++ b/lib/entities/parsed_address.dart @@ -1,7 +1,6 @@ import 'package:cake_wallet/entities/openalias_record.dart'; import 'package:cake_wallet/entities/yat_record.dart'; - enum ParseFrom { unstoppableDomains, openAlias, @@ -20,36 +19,37 @@ class ParsedAddress { required this.addresses, this.name = '', this.description = '', + this.profileImageUrl = '', + this.profileName = '', this.parseFrom = ParseFrom.notParsed, }); factory ParsedAddress.fetchEmojiAddress({ List? addresses, required String name, - }){ - if (addresses?.isEmpty ?? true) { - return ParsedAddress( - addresses: [name], parseFrom: ParseFrom.yatRecord); - } - return ParsedAddress( - addresses: addresses!.map((e) => e.address).toList(), - name: name, - parseFrom: ParseFrom.yatRecord, - ); + }) { + if (addresses?.isEmpty ?? true) { + return ParsedAddress(addresses: [name], parseFrom: ParseFrom.yatRecord); + } + return ParsedAddress( + addresses: addresses!.map((e) => e.address).toList(), + name: name, + parseFrom: ParseFrom.yatRecord, + ); } factory ParsedAddress.fetchUnstoppableDomainAddress({ String? address, required String name, - }){ - if (address?.isEmpty ?? true) { - return ParsedAddress(addresses: [name]); - } - return ParsedAddress( - addresses: [address!], - name: name, - parseFrom: ParseFrom.unstoppableDomains, - ); + }) { + if (address?.isEmpty ?? true) { + return ParsedAddress(addresses: [name]); + } + return ParsedAddress( + addresses: [address!], + name: name, + parseFrom: ParseFrom.unstoppableDomains, + ); } factory ParsedAddress.fetchOpenAliasAddress( @@ -65,7 +65,7 @@ class ParsedAddress { ); } - factory ParsedAddress.fetchFioAddress({required String address, required String name}){ + factory ParsedAddress.fetchFioAddress({required String address, required String name}) { return ParsedAddress( addresses: [address], name: name, @@ -73,23 +73,37 @@ class ParsedAddress { ); } - factory ParsedAddress.fetchTwitterAddress({required String address, required String name}){ + factory ParsedAddress.fetchTwitterAddress( + {required String address, + required String name, + required String profileImageUrl, + required String profileName, + String? description}) { return ParsedAddress( addresses: [address], name: name, + description: description ?? '', + profileImageUrl: profileImageUrl, + profileName: profileName, parseFrom: ParseFrom.twitter, ); } - factory ParsedAddress.fetchMastodonAddress({required String address, required String name}){ + factory ParsedAddress.fetchMastodonAddress( + {required String address, + required String name, + required String profileImageUrl, + required String profileName}) { return ParsedAddress( addresses: [address], name: name, - parseFrom: ParseFrom.mastodon + parseFrom: ParseFrom.mastodon, + profileImageUrl: profileImageUrl, + profileName: profileName, ); } - factory ParsedAddress.fetchContactAddress({required String address, required String name}){ + factory ParsedAddress.fetchContactAddress({required String address, required String name}) { return ParsedAddress( addresses: [address], name: name, @@ -116,6 +130,7 @@ class ParsedAddress { final List addresses; final String name; final String description; + final String profileImageUrl; + final String profileName; final ParseFrom parseFrom; - } diff --git a/lib/mastodon/mastodon_user.dart b/lib/mastodon/mastodon_user.dart index f5a29f298..1832c083e 100644 --- a/lib/mastodon/mastodon_user.dart +++ b/lib/mastodon/mastodon_user.dart @@ -1,12 +1,14 @@ class MastodonUser { String id; String username; + String profileImageUrl; String acct; String note; MastodonUser({ required this.id, required this.username, + required this.profileImageUrl, required this.acct, required this.note, }); @@ -14,9 +16,10 @@ class MastodonUser { factory MastodonUser.fromJson(Map json) { return MastodonUser( id: json['id'] as String, - username: json['username'] as String, + username: json['username'] as String? ?? '', acct: json['acct'] as String, note: json['note'] as String, + profileImageUrl: json['avatar'] as String? ?? '' ); } } diff --git a/lib/src/screens/send/widgets/extract_address_from_parsed.dart b/lib/src/screens/send/widgets/extract_address_from_parsed.dart index bb09d4ca3..42e646d58 100644 --- a/lib/src/screens/send/widgets/extract_address_from_parsed.dart +++ b/lib/src/screens/send/widgets/extract_address_from_parsed.dart @@ -11,6 +11,8 @@ Future extractAddressFromParsed( var title = ''; var content = ''; var address = ''; + var profileImageUrl = ''; + var profileName = ''; switch (parsedAddress.parseFrom) { case ParseFrom.unstoppableDomains: @@ -37,11 +39,15 @@ Future extractAddressFromParsed( title = S.of(context).address_detected; content = S.of(context).extracted_address_content('${parsedAddress.name} (Twitter)'); address = parsedAddress.addresses.first; + profileImageUrl = parsedAddress.profileImageUrl; + profileName = parsedAddress.profileName; break; case ParseFrom.mastodon: title = S.of(context).address_detected; content = S.of(context).extracted_address_content('${parsedAddress.name} (Mastodon)'); address = parsedAddress.addresses.first; + profileImageUrl = parsedAddress.profileImageUrl; + profileName = parsedAddress.profileName; break; case ParseFrom.nostr: title = S.of(context).address_detected; @@ -95,6 +101,8 @@ Future extractAddressFromParsed( return AlertWithOneAction( alertTitle: title, + headerTitleText: profileName.isEmpty ? null : profileName, + headerImageProfileUrl: profileImageUrl.isEmpty ? null : profileImageUrl, alertContent: content, buttonText: S.of(context).ok, buttonAction: () => Navigator.of(context).pop()); diff --git a/lib/src/widgets/alert_with_one_action.dart b/lib/src/widgets/alert_with_one_action.dart index c06114f5b..7ad0ac1af 100644 --- a/lib/src/widgets/alert_with_one_action.dart +++ b/lib/src/widgets/alert_with_one_action.dart @@ -7,7 +7,9 @@ class AlertWithOneAction extends BaseAlertDialog { required this.alertContent, required this.buttonText, required this.buttonAction, - this.alertBarrierDismissible = true + this.alertBarrierDismissible = true, + this.headerTitleText, + this.headerImageProfileUrl }); final String alertTitle; @@ -15,6 +17,8 @@ class AlertWithOneAction extends BaseAlertDialog { final String buttonText; final VoidCallback buttonAction; final bool alertBarrierDismissible; + final String? headerTitleText; + final String? headerImageProfileUrl; @override String get titleText => alertTitle; @@ -25,6 +29,12 @@ class AlertWithOneAction extends BaseAlertDialog { @override bool get barrierDismissible => alertBarrierDismissible; + @override + String? get headerImageUrl => headerImageProfileUrl; + + @override + String? get headerText => headerTitleText; + @override Widget actionButtons(BuildContext context) { return Container( diff --git a/lib/src/widgets/base_alert_dialog.dart b/lib/src/widgets/base_alert_dialog.dart index 02a1f6ad0..e9ef522df 100644 --- a/lib/src/widgets/base_alert_dialog.dart +++ b/lib/src/widgets/base_alert_dialog.dart @@ -1,3 +1,4 @@ +import 'package:cake_wallet/src/screens/receive/widgets/header_tile.dart'; import 'package:cake_wallet/themes/extensions/cake_text_theme.dart'; import 'dart:ui'; import 'package:cake_wallet/src/widgets/section_divider.dart'; @@ -5,19 +6,34 @@ import 'package:cake_wallet/themes/extensions/alert_theme.dart'; import 'package:flutter/material.dart'; class BaseAlertDialog extends StatelessWidget { + String? get headerText => ''; + String get titleText => ''; + String get contentText => ''; + String get leftActionButtonText => ''; + String get rightActionButtonText => ''; + bool get isDividerExists => false; + VoidCallback get actionLeft => () {}; + VoidCallback get actionRight => () {}; + bool get barrierDismissible => true; + Color? get leftActionButtonTextColor => null; + Color? get rightActionButtonTextColor => null; + Color? get leftActionButtonColor => null; + Color? get rightActionButtonColor => null; + String? get headerImageUrl => null; + Widget title(BuildContext context) { return Text( titleText, @@ -32,6 +48,23 @@ class BaseAlertDialog extends StatelessWidget { ); } + Widget headerTitle(BuildContext context) { + return Padding( + padding: const EdgeInsets.only(top: 10.0), + child: Text( + headerText!, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 25, + fontFamily: 'Lato', + fontWeight: FontWeight.w600, + color: Theme.of(context).extension()!.titleColor, + decoration: TextDecoration.none, + ), + ), + ); + } + Widget content(BuildContext context) { return Text( contentText, @@ -48,17 +81,17 @@ class BaseAlertDialog extends StatelessWidget { Widget actionButtons(BuildContext context) { return Container( - height: 60, - child: Row( - mainAxisSize: MainAxisSize.max, - crossAxisAlignment: CrossAxisAlignment.stretch, - children: [ + height: 60, + child: Row( + mainAxisSize: MainAxisSize.max, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ Expanded( child: TextButton( onPressed: actionLeft, style: TextButton.styleFrom( - backgroundColor: leftActionButtonColor ?? - Theme.of(context).dialogBackgroundColor, + backgroundColor: + leftActionButtonColor ?? Theme.of(context).dialogBackgroundColor, shape: const RoundedRectangleBorder( borderRadius: BorderRadius.all(Radius.zero))), child: Text( @@ -79,8 +112,8 @@ class BaseAlertDialog extends StatelessWidget { child: TextButton( onPressed: actionRight, style: TextButton.styleFrom( - backgroundColor: rightActionButtonColor ?? - Theme.of(context).dialogBackgroundColor, + backgroundColor: + rightActionButtonColor ?? Theme.of(context).dialogBackgroundColor, shape: const RoundedRectangleBorder( borderRadius: BorderRadius.all(Radius.zero))), child: Text( @@ -90,8 +123,7 @@ class BaseAlertDialog extends StatelessWidget { fontSize: 15, fontFamily: 'Lato', fontWeight: FontWeight.w600, - color: rightActionButtonTextColor ?? - Theme.of(context).primaryColor, + color: rightActionButtonTextColor ?? Theme.of(context).primaryColor, decoration: TextDecoration.none, ), )), @@ -100,6 +132,24 @@ class BaseAlertDialog extends StatelessWidget { )); } + Widget headerImage(BuildContext context, String imageUrl) { + return Positioned( + top: -50, + left: 0, + right: 0, + child: CircleAvatar( + radius: 50, + backgroundColor: Colors.white, + child: ClipOval( + child: Image.network( + imageUrl, + fit: BoxFit.cover, + ), + ), + ), + ); + } + @override Widget build(BuildContext context) { return GestureDetector( @@ -109,43 +159,51 @@ class BaseAlertDialog extends StatelessWidget { child: BackdropFilter( filter: ImageFilter.blur(sigmaX: 3.0, sigmaY: 3.0), child: Container( - decoration: BoxDecoration( - color: - Theme.of(context).extension()!.backdropColor), + decoration: + BoxDecoration(color: Theme.of(context).extension()!.backdropColor), child: Center( child: GestureDetector( onTap: () => null, - child: ClipRRect( - borderRadius: BorderRadius.all(Radius.circular(30)), - child: Container( - width: 300, - color: Theme.of(context).dialogBackgroundColor, - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Column( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Padding( - padding: EdgeInsets.fromLTRB(24, 20, 24, 0), - child: title(context), - ), - isDividerExists - ? Padding( - padding: EdgeInsets.only(top: 16, bottom: 8), - child: const HorizontalSectionDivider(), - ) - : Offstage(), - Padding( - padding: EdgeInsets.fromLTRB(24, 8, 24, 32), - child: content(context), - ) - ], - ), - const HorizontalSectionDivider(), - actionButtons(context) - ], - ), + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(30), + color: Theme.of(context).dialogBackgroundColor), + width: 300, + child: Stack( + clipBehavior: Clip.none, + children: [ + if (headerImageUrl != null) headerImage(context, headerImageUrl!), + Column( + mainAxisSize: MainAxisSize.min, + children: [ + if (headerImageUrl != null) const SizedBox(height: 50), + Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + if (headerText != null) headerTitle(context), + Padding( + padding: EdgeInsets.fromLTRB(24, 20, 24, 0), + child: title(context), + ), + isDividerExists + ? Padding( + padding: EdgeInsets.only(top: 16, bottom: 8), + child: const HorizontalSectionDivider(), + ) + : Offstage(), + Padding( + padding: EdgeInsets.fromLTRB(24, 8, 24, 32), + child: content(context), + ) + ], + ), + const HorizontalSectionDivider(), + ClipRRect( + borderRadius: BorderRadius.all(Radius.circular(30)), + child: actionButtons(context)) + ], + ), + ], ), ), ), diff --git a/lib/twitter/twitter_api.dart b/lib/twitter/twitter_api.dart index 24121c9c0..bf6298dae 100644 --- a/lib/twitter/twitter_api.dart +++ b/lib/twitter/twitter_api.dart @@ -12,7 +12,7 @@ class TwitterApi { static Future lookupUserByName({required String userName}) async { final queryParams = { - 'user.fields': 'description', + 'user.fields': 'description,profile_image_url', 'expansions': 'pinned_tweet_id', 'tweet.fields': 'note_tweet' }; diff --git a/lib/twitter/twitter_user.dart b/lib/twitter/twitter_user.dart index c0eb5431c..01db25684 100644 --- a/lib/twitter/twitter_user.dart +++ b/lib/twitter/twitter_user.dart @@ -4,20 +4,25 @@ class TwitterUser { required this.username, required this.name, required this.description, + required this.profileImageUrl, this.pinnedTweet}); final String id; final String username; final String name; final String description; + final String profileImageUrl; final Tweet? pinnedTweet; factory TwitterUser.fromJson(Map json, [Tweet? pinnedTweet]) { + final profileImageUrl = json['data']['profile_image_url'] as String? ?? ''; + final scaledProfileImageUrl = profileImageUrl.replaceFirst('normal', '200x200'); return TwitterUser( id: json['data']['id'] as String, - username: json['data']['username'] as String, + username: json['data']['username'] as String? ?? '', name: json['data']['name'] as String, description: json['data']['description'] as String? ?? '', + profileImageUrl: scaledProfileImageUrl, pinnedTweet: pinnedTweet, ); } From c7deeaea9b65330c5fe9894da3ee4f4ab9cd9d11 Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Mon, 4 Mar 2024 19:32:10 +0200 Subject: [PATCH 18/30] New versions (#1312) * New versions Fix issues with Monero.com * Add sending for Solana tokens exchanges * Add default keyword for P2WPKH [skip ci] * chore: Switch solana commitment to confirmed to reduced blockhash expiration (#1313) * Modify test workflow to send arm64-v8a build only * Fix workflow build path * Remove unnecessary reverse of txId * Show case sensitive evm wallet address * Revert default Cake Theme add custom package id for test builds * Fix workflow script * Fix workflow * hash branch name * hash branch name * Update versions * Add user image to Nostr Add fetching address from text for tokens * Fix test app package id * fix: Solana message improvement (#1316) --------- Co-authored-by: Adegoke David <64401859+Blazebrain@users.noreply.github.com> --- .github/workflows/pr_test_build.yml | 28 +++++++--------- assets/text/Monerocom_Release_Notes.txt | 5 ++- assets/text/Release_Notes.txt | 5 ++- .../lib/bitcoin_receive_page_option.dart | 4 +-- cw_bitcoin/lib/electrum_wallet.dart | 14 ++------ cw_core/lib/crypto_currency.dart | 12 ++++++- cw_evm/lib/evm_chain_wallet.dart | 2 +- cw_solana/lib/solana_client.dart | 11 ++++--- ios/Podfile | 4 +-- ios/Podfile.lock | 24 +++++++------- ios/Runner.xcodeproj/project.pbxproj | 11 ++----- lib/bitcoin/cw_bitcoin.dart | 21 ++++++++++-- lib/core/address_validator.dart | 10 ++++++ lib/entities/parse_address_from_domain.dart | 33 +++++++++++-------- lib/entities/parsed_address.dart | 8 ++++- .../screens/dashboard/pages/address_page.dart | 21 +++--------- .../widgets/extract_address_from_parsed.dart | 2 ++ lib/src/widgets/base_alert_dialog.dart | 1 - lib/store/settings_store.dart | 12 +++++-- lib/twitter/twitter_api.dart | 31 ++++++++++------- .../exchange/exchange_trade_view_model.dart | 7 +++- macos/Flutter/GeneratedPluginRegistrant.swift | 2 +- macos/Podfile.lock | 14 ++++---- pubspec_base.yaml | 6 +++- scripts/android/app_env.sh | 6 ++-- scripts/ios/app_env.sh | 6 ++-- scripts/macos/app_env.sh | 8 ++--- tool/configure.dart | 16 +++++---- 28 files changed, 186 insertions(+), 138 deletions(-) diff --git a/.github/workflows/pr_test_build.yml b/.github/workflows/pr_test_build.yml index b5fe24f18..4df215e13 100644 --- a/.github/workflows/pr_test_build.yml +++ b/.github/workflows/pr_test_build.yml @@ -104,17 +104,7 @@ jobs: - name: Build generated code run: | cd /opt/android/cake_wallet - cd cw_core && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. - cd cw_evm && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. - cd cw_monero && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. - cd cw_bitcoin && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. - cd cw_haven && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. - cd cw_bitcoin_cash && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. - cd cw_nano && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. - cd cw_solana && flutter pub get && flutter packages pub run build_runner build --delete-conflicting-outputs && cd .. - cd cw_ethereum && flutter pub get && cd .. - cd cw_polygon && flutter pub get && cd .. - flutter packages pub run build_runner build --delete-conflicting-outputs + ./model_generator.sh - name: Add secrets run: | @@ -159,12 +149,16 @@ jobs: echo "const ankrApiKey = '${{ secrets.ANKR_API_KEY }}';" >> cw_solana/lib/.secrets.g.dart - name: Rename app - run: echo -e "id=com.cakewallet.test\nname=${{ env.BRANCH_NAME }}" > /opt/android/cake_wallet/android/app.properties + run: | + hash=`sha512sum <<<"${{ env.BRANCH_NAME }}"` + substring=${hash:0:15} + echo substring + echo -e "id=com.cakewallet.test_$(substring)\nname=${{ env.BRANCH_NAME }}" > /opt/android/cake_wallet/android/app.properties - name: Build run: | cd /opt/android/cake_wallet - flutter build apk --release + flutter build apk --release --split-per-abi # - name: Push to App Center # run: | @@ -181,21 +175,21 @@ jobs: - name: Rename apk file run: | - cd /opt/android/cake_wallet/build/app/outputs/apk/release + cd /opt/android/cake_wallet/build/app/outputs/flutter-apk mkdir test-apk - cp app-release.apk test-apk/${{env.BRANCH_NAME}}.apk + cp app-arm64-v8a-release.apk test-apk/${{env.BRANCH_NAME}}.apk - name: Upload Artifact uses: kittaakos/upload-artifact-as-is@v0 with: - path: /opt/android/cake_wallet/build/app/outputs/apk/release/test-apk/ + path: /opt/android/cake_wallet/build/app/outputs/flutter-apk/test-apk/ - name: Send Test APK continue-on-error: true uses: adrey/slack-file-upload-action@1.0.5 with: token: ${{ secrets.SLACK_APP_TOKEN }} - path: /opt/android/cake_wallet/build/app/outputs/apk/release/app-release.apk + path: /opt/android/cake_wallet/build/app/outputs/flutter-apk/test-apk/${{env.BRANCH_NAME}}.apk channel: ${{ secrets.SLACK_APK_CHANNEL }} title: "${{ env.BRANCH_NAME }}.apk" filename: ${{ env.BRANCH_NAME }}.apk diff --git a/assets/text/Monerocom_Release_Notes.txt b/assets/text/Monerocom_Release_Notes.txt index 7cf786332..732e58a18 100644 --- a/assets/text/Monerocom_Release_Notes.txt +++ b/assets/text/Monerocom_Release_Notes.txt @@ -1,3 +1,2 @@ -Improve wallet recovery and error tolerance -Enhance Background sync for Monero wallets -Bug fixes \ No newline at end of file +New themes +Bug fixes and enhancements \ No newline at end of file diff --git a/assets/text/Release_Notes.txt b/assets/text/Release_Notes.txt index ac032e354..1c2ec154c 100644 --- a/assets/text/Release_Notes.txt +++ b/assets/text/Release_Notes.txt @@ -1,3 +1,6 @@ +Add Solana wallet Support ALL Bitcoin address types (Legacy, Segwit (both variants), Taproot) Enhance Sending/Receiving flow for Bitcoin -Improve fee calculations in Bitcoin \ No newline at end of file +Improve fee calculations in Bitcoin +New themes +Bug fixes and enhancements \ No newline at end of file diff --git a/cw_bitcoin/lib/bitcoin_receive_page_option.dart b/cw_bitcoin/lib/bitcoin_receive_page_option.dart index 2e246f532..2d2339a41 100644 --- a/cw_bitcoin/lib/bitcoin_receive_page_option.dart +++ b/cw_bitcoin/lib/bitcoin_receive_page_option.dart @@ -2,7 +2,7 @@ import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:cw_core/receive_page_option.dart'; class BitcoinReceivePageOption implements ReceivePageOption { - static const p2wpkh = BitcoinReceivePageOption._('Segwit (P2WPKH)'); + static const p2wpkh = BitcoinReceivePageOption._('Segwit (P2WPKH) (Default)'); static const p2sh = BitcoinReceivePageOption._('Segwit-Compatible (P2SH)'); static const p2tr = BitcoinReceivePageOption._('Taproot (P2TR)'); static const p2wsh = BitcoinReceivePageOption._('Segwit (P2WSH)'); @@ -18,9 +18,9 @@ class BitcoinReceivePageOption implements ReceivePageOption { static const all = [ BitcoinReceivePageOption.p2wpkh, - BitcoinReceivePageOption.p2sh, BitcoinReceivePageOption.p2tr, BitcoinReceivePageOption.p2wsh, + BitcoinReceivePageOption.p2sh, BitcoinReceivePageOption.p2pkh ]; diff --git a/cw_bitcoin/lib/electrum_wallet.dart b/cw_bitcoin/lib/electrum_wallet.dart index 873fe2977..c3f40a235 100644 --- a/cw_bitcoin/lib/electrum_wallet.dart +++ b/cw_bitcoin/lib/electrum_wallet.dart @@ -35,7 +35,6 @@ import 'package:cw_core/utils/file.dart'; import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/wallet_info.dart'; import 'package:flutter/foundation.dart'; -import 'package:hex/hex.dart'; import 'package:hive/hive.dart'; import 'package:mobx/mobx.dart'; import 'package:rxdart/subjects.dart'; @@ -623,16 +622,9 @@ abstract class ElectrumWalletBase final ins = []; for (final vin in original.inputs) { - try { - final id = HEX.encode(HEX.decode(vin.txId).reversed.toList()); - final txHex = await electrumClient.getTransactionHex(hash: id); - final tx = bitcoin_base.BtcTransaction.fromRaw(txHex); - ins.add(tx); - } catch (_) { - ins.add(bitcoin_base.BtcTransaction.fromRaw( - await electrumClient.getTransactionHex(hash: vin.txId), - )); - } + final txHex = await electrumClient.getTransactionHex(hash: vin.txId); + final tx = bitcoin_base.BtcTransaction.fromRaw(txHex); + ins.add(tx); } return ElectrumTransactionBundle(original, diff --git a/cw_core/lib/crypto_currency.dart b/cw_core/lib/crypto_currency.dart index 67581ecb8..ce509015c 100644 --- a/cw_core/lib/crypto_currency.dart +++ b/cw_core/lib/crypto_currency.dart @@ -102,6 +102,7 @@ class CryptoCurrency extends EnumerableItem with Serializable implemen CryptoCurrency.usdcEPoly, CryptoCurrency.kaspa, CryptoCurrency.digibyte, + CryptoCurrency.usdtSol, ]; static const havenCurrencies = [ @@ -246,7 +247,16 @@ class CryptoCurrency extends EnumerableItem with Serializable implemen return CryptoCurrency._rawCurrencyMap[raw]!; } - static CryptoCurrency fromString(String name) { + // TODO: refactor this + static CryptoCurrency fromString(String name, {CryptoCurrency? walletCurrency}) { + try { + return CryptoCurrency.all.firstWhere((element) => + element.title.toLowerCase() == name && + (element.tag == null || + element.tag == walletCurrency?.title || + element.tag == walletCurrency?.tag)); + } catch (_) {} + if (CryptoCurrency._nameCurrencyMap[name.toLowerCase()] == null) { final s = 'Unexpected token: $name for CryptoCurrency fromString'; throw ArgumentError.value(name, 'name', s); diff --git a/cw_evm/lib/evm_chain_wallet.dart b/cw_evm/lib/evm_chain_wallet.dart index ea19a8557..0fb282960 100644 --- a/cw_evm/lib/evm_chain_wallet.dart +++ b/cw_evm/lib/evm_chain_wallet.dart @@ -146,7 +146,7 @@ abstract class EVMChainWalletBase privateKey: _hexPrivateKey, password: _password, ); - walletAddresses.address = _evmChainPrivateKey.address.toString(); + walletAddresses.address = _evmChainPrivateKey.address.hexEip55; await save(); } diff --git a/cw_solana/lib/solana_client.dart b/cw_solana/lib/solana_client.dart index ececc56ba..ea4a9161a 100644 --- a/cw_solana/lib/solana_client.dart +++ b/cw_solana/lib/solana_client.dart @@ -263,7 +263,7 @@ class SolanaWalletClient { required Ed25519HDKeyPair ownerKeypair, List references = const [], }) async { - const commitment = Commitment.finalized; + const commitment = Commitment.confirmed; final latestBlockhash = await _client!.rpcClient.getLatestBlockhash(commitment: commitment).value; @@ -394,9 +394,7 @@ class SolanaWalletClient { funder: ownerKeypair, ); } catch (e) { - throw Exception( - 'Error while creating an associated token account for the recipient: ${e.toString()}', - ); + throw Exception('Insufficient lamports balance to complete this transaction'); } // Input by the user @@ -468,7 +466,10 @@ class SolanaWalletClient { required SignedTx signedTransaction, required Commitment commitment, }) async { - final signature = await _client!.rpcClient.sendTransaction(signedTransaction.encode()); + final signature = await _client!.rpcClient.sendTransaction( + signedTransaction.encode(), + preflightCommitment: commitment, + ); _client!.waitForSignatureStatus(signature, status: commitment); diff --git a/ios/Podfile b/ios/Podfile index 027d48ceb..00b5fd2df 100644 --- a/ios/Podfile +++ b/ios/Podfile @@ -1,5 +1,5 @@ # Uncomment this line to define a global platform for your project -platform :ios, '11.0' +platform :ios, '12.0' source 'https://github.com/CocoaPods/Specs.git' # CocoaPods analytics sends network stats synchronously affecting flutter build latency. @@ -44,7 +44,7 @@ post_install do |installer| flutter_additional_ios_build_settings(target) target.build_configurations.each do |config| - config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0' + config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0' config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [ '$(inherited)', diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 2545e90ce..4f3aea7ec 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -7,7 +7,7 @@ PODS: - connectivity_plus (0.0.1): - Flutter - ReachabilitySwift - - CryptoSwift (1.7.1) + - CryptoSwift (1.8.1) - cw_haven (0.0.1): - cw_haven/Boost (= 0.0.1) - cw_haven/Haven (= 0.0.1) @@ -132,9 +132,9 @@ PODS: - permission_handler_apple (9.1.1): - Flutter - ReachabilitySwift (5.0.0) - - SDWebImage (5.16.0): - - SDWebImage/Core (= 5.16.0) - - SDWebImage/Core (5.16.0) + - SDWebImage (5.18.11): + - SDWebImage/Core (= 5.18.11) + - SDWebImage/Core (5.18.11) - sensitive_clipboard (0.0.1): - Flutter - share_plus (0.0.1): @@ -142,9 +142,9 @@ PODS: - shared_preferences_foundation (0.0.1): - Flutter - FlutterMacOS - - SwiftProtobuf (1.22.0) + - SwiftProtobuf (1.25.2) - SwiftyGif (5.4.4) - - Toast (4.0.0) + - Toast (4.1.0) - uni_links (0.0.1): - Flutter - UnstoppableDomainsResolution (4.0.0): @@ -262,8 +262,8 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: barcode_scan2: 0af2bb63c81b4565aab6cd78278e4c0fa136dbb0 BigInt: f668a80089607f521586bbe29513d708491ef2f7 - connectivity_plus: 413a8857dd5d9f1c399a39130850d02fe0feaf7e - CryptoSwift: d3d18dc357932f7e6d580689e065cf1f176007c1 + connectivity_plus: bf0076dd84a130856aa636df1c71ccaff908fa1d + CryptoSwift: b9c701d6f5011df23794dbf7f2e480a77835d83d cw_haven: b3e54e1fbe7b8e6fda57a93206bc38f8e89b898a cw_monero: 4cf3b96f2da8e95e2ef7d6703dd4d2c509127b7d cw_shared_external: 2972d872b8917603478117c9957dfca611845a92 @@ -287,19 +287,19 @@ SPEC CHECKSUMS: path_provider_foundation: 3784922295ac71e43754bd15e0653ccfd36a147c permission_handler_apple: e76247795d700c14ea09e3a2d8855d41ee80a2e6 ReachabilitySwift: 985039c6f7b23a1da463388634119492ff86c825 - SDWebImage: 2aea163b50bfcb569a2726b6a754c54a4506fcf6 + SDWebImage: a3ba0b8faac7228c3c8eadd1a55c9c9fe5e16457 sensitive_clipboard: d4866e5d176581536c27bb1618642ee83adca986 share_plus: 056a1e8ac890df3e33cb503afffaf1e9b4fbae68 shared_preferences_foundation: b4c3b4cddf1c21f02770737f147a3f5da9d39695 - SwiftProtobuf: 40bd808372cb8706108f22d28f8ab4a6b9bc6989 + SwiftProtobuf: 407a385e97fd206c4fbe880cc84123989167e0d1 SwiftyGif: 93a1cc87bf3a51916001cf8f3d63835fb64c819f - Toast: 91b396c56ee72a5790816f40d3a94dd357abc196 + Toast: ec33c32b8688982cecc6348adeae667c1b9938da uni_links: d97da20c7701486ba192624d99bffaaffcfc298a UnstoppableDomainsResolution: c3c67f4d0a5e2437cb00d4bd50c2e00d6e743841 url_launcher_ios: bbd758c6e7f9fd7b5b1d4cde34d2b95fcce5e812 wakelock_plus: 8b09852c8876491e4b6d179e17dfe2a0b5f60d47 workmanager: 0afdcf5628bbde6924c21af7836fed07b42e30e6 -PODFILE CHECKSUM: 09df1114e7c360f55770d35a79356bf5446e0100 +PODFILE CHECKSUM: fcb1b8418441a35b438585c9dd8374e722e6c6ca COCOAPODS: 1.12.1 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 1da5bc4bc..7a8b99b49 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -377,7 +377,7 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -523,7 +523,7 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -561,7 +561,7 @@ "$(PROJECT_DIR)/Flutter", ); INFOPLIST_FILE = Runner/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -607,9 +607,4 @@ /* End XCConfigurationList section */ }; rootObject = 97C146E61CF9000F007C117D /* Project object */; - SystemCapabilities = { - com.apple.BackgroundModes = { - enabled = 1; - }; - }; } diff --git a/lib/bitcoin/cw_bitcoin.dart b/lib/bitcoin/cw_bitcoin.dart index f9c20d45e..b36421608 100644 --- a/lib/bitcoin/cw_bitcoin.dart +++ b/lib/bitcoin/cw_bitcoin.dart @@ -181,11 +181,28 @@ class CWBitcoin extends Bitcoin { } @override - BitcoinReceivePageOption getSelectedAddressType(Object wallet) { + ReceivePageOption getSelectedAddressType(Object wallet) { final bitcoinWallet = wallet as ElectrumWallet; return BitcoinReceivePageOption.fromType(bitcoinWallet.walletAddresses.addressPageType); } @override - List getBitcoinReceivePageOptions() => BitcoinReceivePageOption.all; + List getBitcoinReceivePageOptions() => BitcoinReceivePageOption.all; + + @override + BitcoinAddressType getBitcoinAddressType(ReceivePageOption option) { + switch (option) { + case BitcoinReceivePageOption.p2pkh: + return P2pkhAddressType.p2pkh; + case BitcoinReceivePageOption.p2sh: + return P2shAddressType.p2wpkhInP2sh; + case BitcoinReceivePageOption.p2tr: + return SegwitAddresType.p2tr; + case BitcoinReceivePageOption.p2wsh: + return SegwitAddresType.p2wsh; + case BitcoinReceivePageOption.p2wpkh: + default: + return SegwitAddresType.p2wpkh; + } + } } diff --git a/lib/core/address_validator.dart b/lib/core/address_validator.dart index 84fcb9e2e..ad2c761a3 100644 --- a/lib/core/address_validator.dart +++ b/lib/core/address_validator.dart @@ -295,6 +295,16 @@ class AddressValidator extends TextValidator { case CryptoCurrency.sol: return '([^0-9a-zA-Z]|^)[1-9A-HJ-NP-Za-km-z]{43,44}([^0-9a-zA-Z]|\$)'; default: + if (type.tag == CryptoCurrency.eth.title) { + return '0x[0-9a-zA-Z]{42}'; + } + if (type.tag == CryptoCurrency.maticpoly.tag) { + return '0x[0-9a-zA-Z]{42}'; + } + if (type.tag == CryptoCurrency.sol.title) { + return '([^0-9a-zA-Z]|^)[1-9A-HJ-NP-Za-km-z]{43,44}([^0-9a-zA-Z]|\$)'; + } + return null; } } diff --git a/lib/entities/parse_address_from_domain.dart b/lib/entities/parse_address_from_domain.dart index 3ebc08c55..bab0ef51d 100644 --- a/lib/entities/parse_address_from_domain.dart +++ b/lib/entities/parse_address_from_domain.dart @@ -51,7 +51,8 @@ class AddressResolver { } final match = RegExp(addressPattern).firstMatch(raw); - return match?.group(0)?.replaceAllMapped(RegExp('[^0-9a-zA-Z]|bitcoincash:|nano_'), (Match match) { + return match?.group(0)?.replaceAllMapped(RegExp('[^0-9a-zA-Z]|bitcoincash:|nano_'), + (Match match) { String group = match.group(0)!; if (group.startsWith('bitcoincash:') || group.startsWith('nano_')) { return group; @@ -68,7 +69,7 @@ class AddressResolver { return emailRegex.hasMatch(address); } - + // TODO: refactor this to take Crypto currency instead of ticker, or at least pass in the tag as well Future resolve(BuildContext context, String text, String ticker) async { try { if (text.startsWith('@') && !text.substring(1).contains('@')) { @@ -76,7 +77,8 @@ class AddressResolver { final formattedName = text.substring(1); final twitterUser = await TwitterApi.lookupUserByName(userName: formattedName); final addressFromBio = extractAddressByType( - raw: twitterUser.description, type: CryptoCurrency.fromString(ticker)); + raw: twitterUser.description, + type: CryptoCurrency.fromString(ticker, walletCurrency: wallet.currency)); if (addressFromBio != null) { return ParsedAddress.fetchTwitterAddress( address: addressFromBio, @@ -87,8 +89,9 @@ class AddressResolver { final pinnedTweet = twitterUser.pinnedTweet?.text; if (pinnedTweet != null) { - final addressFromPinnedTweet = - extractAddressByType(raw: pinnedTweet, type: CryptoCurrency.fromString(ticker)); + final addressFromPinnedTweet = extractAddressByType( + raw: pinnedTweet, + type: CryptoCurrency.fromString(ticker, walletCurrency: wallet.currency)); if (addressFromPinnedTweet != null) { return ParsedAddress.fetchTwitterAddress( address: addressFromPinnedTweet, @@ -108,11 +111,11 @@ class AddressResolver { final userName = subText.substring(0, hostNameIndex); final mastodonUser = - await MastodonAPI.lookupUserByUserName(userName: userName, apiHost: hostName); + await MastodonAPI.lookupUserByUserName(userName: userName, apiHost: hostName); if (mastodonUser != null) { - String? addressFromBio = - extractAddressByType(raw: mastodonUser.note, type: CryptoCurrency.fromString(ticker)); + String? addressFromBio = extractAddressByType( + raw: mastodonUser.note, type: CryptoCurrency.fromString(ticker)); if (addressFromBio != null) { return ParsedAddress.fetchMastodonAddress( @@ -122,7 +125,7 @@ class AddressResolver { profileName: mastodonUser.username); } else { final pinnedPosts = - await MastodonAPI.getPinnedPosts(userId: mastodonUser.id, apiHost: hostName); + await MastodonAPI.getPinnedPosts(userId: mastodonUser.id, apiHost: hostName); if (pinnedPosts.isNotEmpty) { final userPinnedPostsText = pinnedPosts.map((item) => item.content).join('\n'); @@ -150,7 +153,7 @@ class AddressResolver { } } if (text.hasOnlyEmojis) { - if(settingsStore.lookupsYatService) { + if (settingsStore.lookupsYatService) { if (walletType != WalletType.haven) { final addresses = await yatService.fetchYatAddress(text, ticker); return ParsedAddress.fetchEmojiAddress(addresses: addresses, name: text); @@ -166,7 +169,7 @@ class AddressResolver { } if (unstoppableDomains.any((domain) => name.trim() == domain)) { - if(settingsStore.lookupsUnstoppableDomains) { + if (settingsStore.lookupsUnstoppableDomains) { final address = await fetchUnstoppableDomainAddress(text, ticker); return ParsedAddress.fetchUnstoppableDomainAddress(address: address, name: text); } @@ -182,7 +185,7 @@ class AddressResolver { } if (formattedName.contains(".")) { - if(settingsStore.lookupsOpenAlias) { + if (settingsStore.lookupsOpenAlias) { final txtRecord = await OpenaliasRecord.lookupOpenAliasRecord(formattedName); if (txtRecord != null) { final record = await OpenaliasRecord.fetchAddressAndName( @@ -201,7 +204,11 @@ class AddressResolver { String? addressFromBio = extractAddressByType( raw: nostrUserData.about, type: CryptoCurrency.fromString(ticker)); if (addressFromBio != null) { - return ParsedAddress.nostrAddress(address: addressFromBio, name: text); + return ParsedAddress.nostrAddress( + address: addressFromBio, + name: text, + profileImageUrl: nostrUserData.picture, + profileName: nostrUserData.name); } } } diff --git a/lib/entities/parsed_address.dart b/lib/entities/parsed_address.dart index d87deb9e8..fc8ab2440 100644 --- a/lib/entities/parsed_address.dart +++ b/lib/entities/parsed_address.dart @@ -119,11 +119,17 @@ class ParsedAddress { ); } - factory ParsedAddress.nostrAddress({required String address, required String name}) { + factory ParsedAddress.nostrAddress( + {required String address, + required String name, + required String profileImageUrl, + required String profileName}) { return ParsedAddress( addresses: [address], name: name, parseFrom: ParseFrom.nostr, + profileImageUrl: profileImageUrl, + profileName: profileName, ); } diff --git a/lib/src/screens/dashboard/pages/address_page.dart b/lib/src/screens/dashboard/pages/address_page.dart index 7b7c84c28..0d7c4f11c 100644 --- a/lib/src/screens/dashboard/pages/address_page.dart +++ b/lib/src/screens/dashboard/pages/address_page.dart @@ -1,3 +1,4 @@ +import 'package:cake_wallet/bitcoin/bitcoin.dart'; import 'package:cake_wallet/src/screens/new_wallet/widgets/select_button.dart'; import 'package:cake_wallet/themes/extensions/keyboard_theme.dart'; import 'package:cake_wallet/di.dart'; @@ -6,7 +7,6 @@ import 'package:cake_wallet/src/screens/monero_accounts/monero_account_list_page import 'package:cake_wallet/anonpay/anonpay_donation_link_info.dart'; import 'package:cake_wallet/entities/preferences_key.dart'; import 'package:cw_core/receive_page_option.dart'; -import 'package:cw_bitcoin/bitcoin_receive_page_option.dart'; import 'package:cake_wallet/src/screens/dashboard/widgets/present_receive_option_picker.dart'; import 'package:cake_wallet/src/widgets/gradient_background.dart'; import 'package:cake_wallet/src/widgets/keyboard_done_button.dart'; @@ -28,7 +28,6 @@ import 'package:keyboard_actions/keyboard_actions.dart'; import 'package:mobx/mobx.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:cake_wallet/themes/extensions/balance_page_theme.dart'; -import 'package:bitcoin_base/bitcoin_base.dart'; class AddressPage extends BasePage { AddressPage({ @@ -230,22 +229,10 @@ class AddressPage extends BasePage { ); } break; - case BitcoinReceivePageOption.p2pkh: - addressListViewModel.setAddressType(P2pkhAddressType.p2pkh); - break; - case BitcoinReceivePageOption.p2sh: - addressListViewModel.setAddressType(P2shAddressType.p2wpkhInP2sh); - break; - case BitcoinReceivePageOption.p2wpkh: - addressListViewModel.setAddressType(SegwitAddresType.p2wpkh); - break; - case BitcoinReceivePageOption.p2tr: - addressListViewModel.setAddressType(SegwitAddresType.p2tr); - break; - case BitcoinReceivePageOption.p2wsh: - addressListViewModel.setAddressType(SegwitAddresType.p2wsh); - break; default: + if (addressListViewModel.type == WalletType.bitcoin) { + addressListViewModel.setAddressType(bitcoin!.getBitcoinAddressType(option)); + } } }); diff --git a/lib/src/screens/send/widgets/extract_address_from_parsed.dart b/lib/src/screens/send/widgets/extract_address_from_parsed.dart index 42e646d58..eb997c11b 100644 --- a/lib/src/screens/send/widgets/extract_address_from_parsed.dart +++ b/lib/src/screens/send/widgets/extract_address_from_parsed.dart @@ -53,6 +53,8 @@ Future extractAddressFromParsed( title = S.of(context).address_detected; content = S.of(context).extracted_address_content('${parsedAddress.name} (Nostr NIP-05)'); address = parsedAddress.addresses.first; + profileImageUrl = parsedAddress.profileImageUrl; + profileName = parsedAddress.profileName; break; case ParseFrom.yatRecord: if (parsedAddress.name.isEmpty) { diff --git a/lib/src/widgets/base_alert_dialog.dart b/lib/src/widgets/base_alert_dialog.dart index e9ef522df..b251e4b45 100644 --- a/lib/src/widgets/base_alert_dialog.dart +++ b/lib/src/widgets/base_alert_dialog.dart @@ -1,4 +1,3 @@ -import 'package:cake_wallet/src/screens/receive/widgets/header_tile.dart'; import 'package:cake_wallet/themes/extensions/cake_text_theme.dart'; import 'dart:ui'; import 'package:cake_wallet/src/widgets/section_divider.dart'; diff --git a/lib/store/settings_store.dart b/lib/store/settings_store.dart index fe6c98826..6c91d73f3 100644 --- a/lib/store/settings_store.dart +++ b/lib/store/settings_store.dart @@ -790,9 +790,16 @@ abstract class SettingsStoreBase with Store { final exchangeStatus = ExchangeApiMode.deserialize( raw: sharedPreferences.getInt(PreferencesKey.exchangeStatusKey) ?? ExchangeApiMode.enabled.raw); + final bool isNewInstall = sharedPreferences.getBool(PreferencesKey.isNewInstall) ?? true; + final int defaultTheme; + if (isNewInstall) { + defaultTheme = isMoneroOnly ? ThemeList.moneroDarkTheme.raw : ThemeList.brightTheme.raw; + } else { + defaultTheme = ThemeType.bright.index; + } final savedTheme = initialTheme ?? ThemeList.deserialize( - raw: sharedPreferences.getInt(PreferencesKey.currentTheme) ?? (isMoneroOnly ? ThemeList.moneroDarkTheme.raw : ThemeList.cakeDarkTheme.raw)); + raw: sharedPreferences.getInt(PreferencesKey.currentTheme) ?? defaultTheme); final actionListDisplayMode = ObservableList(); actionListDisplayMode.addAll(deserializeActionlistDisplayModes( sharedPreferences.getInt(PreferencesKey.displayActionListModeKey) ?? defaultActionsMode)); @@ -1151,7 +1158,8 @@ abstract class SettingsStoreBase with Store { raw: sharedPreferences.getInt(PreferencesKey.exchangeStatusKey) ?? ExchangeApiMode.enabled.raw); currentTheme = ThemeList.deserialize( - raw: sharedPreferences.getInt(PreferencesKey.currentTheme) ?? (isMoneroOnly ? ThemeList.moneroDarkTheme.raw : ThemeList.cakeDarkTheme.raw)); + raw: sharedPreferences.getInt(PreferencesKey.currentTheme) ?? + (isMoneroOnly ? ThemeList.moneroDarkTheme.raw : ThemeList.brightTheme.raw)); actionlistDisplayMode = ObservableList(); actionlistDisplayMode.addAll(deserializeActionlistDisplayModes( sharedPreferences.getInt(PreferencesKey.displayActionListModeKey) ?? defaultActionsMode)); diff --git a/lib/twitter/twitter_api.dart b/lib/twitter/twitter_api.dart index bf6298dae..5acb00e2a 100644 --- a/lib/twitter/twitter_api.dart +++ b/lib/twitter/twitter_api.dart @@ -32,7 +32,10 @@ class TwitterApi { } final Map responseJSON = jsonDecode(response.body) as Map; - if (responseJSON['errors'] != null) { + if (responseJSON['errors'] != null && + !responseJSON['errors'][0]['detail'] + .toString() + .contains("Could not find tweet with pinned_tweet_id")) { throw Exception(responseJSON['errors'][0]['detail']); } @@ -40,20 +43,24 @@ class TwitterApi { } static Tweet? _getPinnedTweet(Map responseJSON) { - final tweetId = responseJSON['data']['pinned_tweet_id'] as String?; - if (tweetId == null || responseJSON['includes'] == null) return null; + try { + final tweetId = responseJSON['data']['pinned_tweet_id'] as String?; + if (tweetId == null || responseJSON['includes'] == null) return null; - final tweetIncludes = List.from(responseJSON['includes']['tweets'] as List); - final pinnedTweetData = tweetIncludes.firstWhere( - (tweet) => tweet['id'] == tweetId, - orElse: () => null, - ) as Map?; + final tweetIncludes = List.from(responseJSON['includes']['tweets'] as List); + final pinnedTweetData = tweetIncludes.firstWhere( + (tweet) => tweet['id'] == tweetId, + orElse: () => null, + ) as Map?; - if (pinnedTweetData == null) return null; + if (pinnedTweetData == null) return null; - final pinnedTweetText = - (pinnedTweetData['note_tweet']?['text'] ?? pinnedTweetData['text']) as String; + final pinnedTweetText = + (pinnedTweetData['note_tweet']?['text'] ?? pinnedTweetData['text']) as String; - return Tweet(id: tweetId, text: pinnedTweetText); + return Tweet(id: tweetId, text: pinnedTweetText); + } catch (e) { + return null; + } } } diff --git a/lib/view_model/exchange/exchange_trade_view_model.dart b/lib/view_model/exchange/exchange_trade_view_model.dart index 93877a525..0d40ae240 100644 --- a/lib/view_model/exchange/exchange_trade_view_model.dart +++ b/lib/view_model/exchange/exchange_trade_view_model.dart @@ -162,9 +162,14 @@ abstract class ExchangeTradeViewModelBase with Store { wallet.currency == CryptoCurrency.maticpoly && tradesStore.trade!.from.tag == CryptoCurrency.maticpoly.tag; + bool _isSplToken() => + wallet.currency == CryptoCurrency.sol && + tradesStore.trade!.from.tag == CryptoCurrency.sol.title; + return tradesStore.trade!.from == wallet.currency || tradesStore.trade!.provider == ExchangeProviderDescription.xmrto || _isEthToken() || - _isPolygonToken(); + _isPolygonToken() || + _isSplToken(); } } diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift index 05996a674..75a78404f 100644 --- a/macos/Flutter/GeneratedPluginRegistrant.swift +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -5,7 +5,7 @@ import FlutterMacOS import Foundation -import connectivity_plus_macos +import connectivity_plus import cw_monero import device_info_plus import devicelocale diff --git a/macos/Podfile.lock b/macos/Podfile.lock index fcbe1d733..106a8a652 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -1,5 +1,5 @@ PODS: - - connectivity_plus_macos (0.0.1): + - connectivity_plus (0.0.1): - FlutterMacOS - ReachabilitySwift - cw_monero (0.0.1): @@ -51,7 +51,7 @@ PODS: - FlutterMacOS DEPENDENCIES: - - connectivity_plus_macos (from `Flutter/ephemeral/.symlinks/plugins/connectivity_plus_macos/macos`) + - connectivity_plus (from `Flutter/ephemeral/.symlinks/plugins/connectivity_plus/macos`) - cw_monero (from `Flutter/ephemeral/.symlinks/plugins/cw_monero/macos`) - device_info_plus (from `Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos`) - devicelocale (from `Flutter/ephemeral/.symlinks/plugins/devicelocale/macos`) @@ -73,8 +73,8 @@ SPEC REPOS: - ReachabilitySwift EXTERNAL SOURCES: - connectivity_plus_macos: - :path: Flutter/ephemeral/.symlinks/plugins/connectivity_plus_macos/macos + connectivity_plus: + :path: Flutter/ephemeral/.symlinks/plugins/connectivity_plus/macos cw_monero: :path: Flutter/ephemeral/.symlinks/plugins/cw_monero/macos device_info_plus: @@ -105,8 +105,8 @@ EXTERNAL SOURCES: :path: Flutter/ephemeral/.symlinks/plugins/wakelock_plus/macos SPEC CHECKSUMS: - connectivity_plus_macos: f6e86fd000e971d361e54b5afcadc8c8fa773308 - cw_monero: f8b7f104508efba2591548e76b5c058d05cba3f0 + connectivity_plus: 18d3c32514c886e046de60e9c13895109866c747 + cw_monero: ec03de55a19c4a2b174ea687e0f4202edc716fa4 device_info_plus: 5401765fde0b8d062a2f8eb65510fb17e77cf07f devicelocale: 9f0f36ac651cabae2c33f32dcff4f32b61c38225 flutter_inappwebview_macos: 9600c9df9fdb346aaa8933812009f8d94304203d @@ -123,6 +123,6 @@ SPEC CHECKSUMS: url_launcher_macos: d2691c7dd33ed713bf3544850a623080ec693d95 wakelock_plus: 4783562c9a43d209c458cb9b30692134af456269 -PODFILE CHECKSUM: 5107934592df7813b33d744aebc8ddc6b5a5445f +PODFILE CHECKSUM: 65ec1541137fb5b35d00490dec1bb48d4d9586bb COCOAPODS: 1.12.1 diff --git a/pubspec_base.yaml b/pubspec_base.yaml index 758287601..d4bf981cd 100644 --- a/pubspec_base.yaml +++ b/pubspec_base.yaml @@ -55,7 +55,7 @@ dependencies: basic_utils: ^5.6.1 get_it: ^7.2.0 # connectivity: ^3.0.3 - connectivity_plus: ^2.3.5 + connectivity_plus: ^5.0.2 keyboard_actions: ^4.0.1 another_flushbar: ^1.12.29 archive: ^3.3.0 @@ -107,6 +107,10 @@ dependencies: polyseed: ^0.0.2 nostr_tools: ^1.0.9 solana: ^0.30.1 + bitcoin_base: + git: + url: https://github.com/cake-tech/bitcoin_base.git + ref: cake-update-v1 dev_dependencies: flutter_test: diff --git a/scripts/android/app_env.sh b/scripts/android/app_env.sh index 9251ec31a..fa3701fa7 100644 --- a/scripts/android/app_env.sh +++ b/scripts/android/app_env.sh @@ -15,15 +15,15 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN) APP_ANDROID_TYPE=$1 MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="1.10.3" -MONERO_COM_BUILD_NUMBER=75 +MONERO_COM_VERSION="1.11.0" +MONERO_COM_BUILD_NUMBER=77 MONERO_COM_BUNDLE_ID="com.monero.app" MONERO_COM_PACKAGE="com.monero.app" MONERO_COM_SCHEME="monero.com" CAKEWALLET_NAME="Cake Wallet" CAKEWALLET_VERSION="4.14.0" -CAKEWALLET_BUILD_NUMBER=193 +CAKEWALLET_BUILD_NUMBER=196 CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet" CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet" CAKEWALLET_SCHEME="cakewallet" diff --git a/scripts/ios/app_env.sh b/scripts/ios/app_env.sh index 47d80013c..31f0b9548 100644 --- a/scripts/ios/app_env.sh +++ b/scripts/ios/app_env.sh @@ -13,13 +13,13 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN) APP_IOS_TYPE=$1 MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="1.10.3" -MONERO_COM_BUILD_NUMBER=73 +MONERO_COM_VERSION="1.11.0" +MONERO_COM_BUILD_NUMBER=75 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" CAKEWALLET_VERSION="4.14.0" -CAKEWALLET_BUILD_NUMBER=213 +CAKEWALLET_BUILD_NUMBER=215 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" HAVEN_NAME="Haven" diff --git a/scripts/macos/app_env.sh b/scripts/macos/app_env.sh index 49edd9acb..4dec47f40 100755 --- a/scripts/macos/app_env.sh +++ b/scripts/macos/app_env.sh @@ -16,13 +16,13 @@ if [ -n "$1" ]; then fi MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="1.0.3" -MONERO_COM_BUILD_NUMBER=5 +MONERO_COM_VERSION="1.1.0" +MONERO_COM_BUILD_NUMBER=7 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="1.6.3" -CAKEWALLET_BUILD_NUMBER=53 +CAKEWALLET_VERSION="1.7.0" +CAKEWALLET_BUILD_NUMBER=55 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then diff --git a/tool/configure.dart b/tool/configure.dart index fb1647e13..3c1587a98 100644 --- a/tool/configure.dart +++ b/tool/configure.dart @@ -61,6 +61,7 @@ Future main(List args) async { Future generateBitcoin(bool hasImplementation) async { final outputFile = File(bitcoinOutputPath); const bitcoinCommonHeaders = """ +import 'package:cw_core/receive_page_option.dart'; import 'package:cw_core/unspent_transaction_output.dart'; import 'package:cw_core/wallet_credentials.dart'; import 'package:cw_core/wallet_info.dart'; @@ -70,7 +71,8 @@ import 'package:cw_core/unspent_coins_info.dart'; import 'package:cw_core/wallet_service.dart'; import 'package:cake_wallet/view_model/send/output.dart'; import 'package:cw_core/wallet_type.dart'; -import 'package:hive/hive.dart';"""; +import 'package:hive/hive.dart'; +import 'package:bitcoin_base/bitcoin_base.dart';"""; const bitcoinCWHeaders = """ import 'package:cw_bitcoin/bitcoin_receive_page_option.dart'; import 'package:cw_bitcoin/electrum_wallet.dart'; @@ -83,7 +85,6 @@ import 'package:cw_bitcoin/bitcoin_amount_format.dart'; import 'package:cw_bitcoin/bitcoin_address_record.dart'; import 'package:cw_bitcoin/bitcoin_transaction_credentials.dart'; import 'package:cw_bitcoin/litecoin_wallet_service.dart'; -import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:mobx/mobx.dart'; """; const bitcoinCwPart = "part 'cw_bitcoin.dart';"; @@ -143,8 +144,9 @@ abstract class Bitcoin { TransactionPriority getLitecoinTransactionPrioritySlow(); Future setAddressType(Object wallet, dynamic option); - BitcoinReceivePageOption getSelectedAddressType(Object wallet); - List getBitcoinReceivePageOptions(); + ReceivePageOption getSelectedAddressType(Object wallet); + List getBitcoinReceivePageOptions(); + BitcoinAddressType getBitcoinAddressType(ReceivePageOption option); } """; @@ -906,6 +908,7 @@ import 'package:cw_core/wallet_credentials.dart'; import 'package:cw_core/wallet_info.dart'; import 'package:cw_core/wallet_service.dart'; import 'package:hive/hive.dart'; +import 'package:solana/solana.dart'; """; const solanaCWHeaders = """ @@ -916,7 +919,6 @@ import 'package:cw_solana/solana_wallet_service.dart'; import 'package:cw_solana/solana_transaction_info.dart'; import 'package:cw_solana/solana_transaction_credentials.dart'; import 'package:cw_solana/solana_wallet_creation_credentials.dart'; -import 'package:solana/solana.dart'; """; const solanaCwPart = "part 'cw_solana.dart';"; const solanaContent = """ @@ -944,10 +946,10 @@ abstract class Solana { List outputs, { required CryptoCurrency currency, }); - List getSPLTokenCurrencies(WalletBase wallet); + List getSPLTokenCurrencies(WalletBase wallet); Future addSPLToken(WalletBase wallet, CryptoCurrency token); Future deleteSPLToken(WalletBase wallet, CryptoCurrency token); - Future getSPLToken(WalletBase wallet, String contractAddress); + Future getSPLToken(WalletBase wallet, String contractAddress); CryptoCurrency assetOfTransaction(WalletBase wallet, TransactionInfo transaction); double getTransactionAmountRaw(TransactionInfo transactionInfo); From 64143646026576b05f57795cb92cb99b95438644 Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Sun, 10 Mar 2024 04:02:30 +0200 Subject: [PATCH 19/30] Generic fixes (#1320) * New price API * Fix test app package id * Fix workflow * change environment variable to use pr number [skip ci] * Fix un-needed padding * Fix raw value for usdtSol * Remove duplicate fetching for balance and transactions at start [skip ci] * Fix address validation of spl tokens * Add Service Status * Update lib/src/widgets/service_status_tile.dart Co-authored-by: Konstantin Ullrich * Update lib/src/widgets/services_updates_widget.dart Co-authored-by: Konstantin Ullrich * Update monero version * update sodium script * Change automatic priority fee rate --------- Co-authored-by: Konstantin Ullrich --- .github/workflows/pr_test_build.yml | 6 +- assets/images/notification_icon.png | Bin 0 -> 471 bytes assets/images/status_website_image.png | Bin 0 -> 546 bytes cw_core/lib/crypto_currency.dart | 2 +- cw_monero/lib/monero_wallet.dart | 11 +- cw_solana/lib/solana_wallet.dart | 10 -- lib/di.dart | 1 + lib/entities/preferences_key.dart | 1 + lib/entities/service_status.dart | 41 ++++++ lib/solana/cw_solana.dart | 2 +- lib/src/screens/dashboard/dashboard_page.dart | 4 + lib/src/widgets/base_alert_dialog.dart | 2 +- lib/src/widgets/service_status_tile.dart | 71 +++++++++++ lib/src/widgets/services_updates_widget.dart | 120 ++++++++++++++++++ .../dashboard/dashboard_view_model.dart | 29 ++++- lib/view_model/send/send_view_model.dart | 3 +- scripts/android/build_monero.sh | 2 +- scripts/ios/build_monero.sh | 2 +- scripts/ios/build_sodium.sh | 9 +- scripts/macos/build_monero.sh | 2 +- 20 files changed, 285 insertions(+), 33 deletions(-) create mode 100644 assets/images/notification_icon.png create mode 100644 assets/images/status_website_image.png create mode 100644 lib/entities/service_status.dart create mode 100644 lib/src/widgets/service_status_tile.dart create mode 100644 lib/src/widgets/services_updates_widget.dart diff --git a/.github/workflows/pr_test_build.yml b/.github/workflows/pr_test_build.yml index 4df215e13..282941365 100644 --- a/.github/workflows/pr_test_build.yml +++ b/.github/workflows/pr_test_build.yml @@ -16,6 +16,7 @@ jobs: env: STORE_PASS: test@cake_wallet KEY_PASS: test@cake_wallet + PR_NUMBER: ${{ github.event.number }} steps: - name: is pr @@ -150,10 +151,7 @@ jobs: - name: Rename app run: | - hash=`sha512sum <<<"${{ env.BRANCH_NAME }}"` - substring=${hash:0:15} - echo substring - echo -e "id=com.cakewallet.test_$(substring)\nname=${{ env.BRANCH_NAME }}" > /opt/android/cake_wallet/android/app.properties + echo -e "id=com.cakewallet.test_${{ env.PR_NUMBER }}\nname=${{ env.BRANCH_NAME }}" > /opt/android/cake_wallet/android/app.properties - name: Build run: | diff --git a/assets/images/notification_icon.png b/assets/images/notification_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d60211a0bef9014482e22ba784b9846f173611 GIT binary patch literal 471 zcmV;|0Vw{7P)X1^@s6+90*i00009a7bBm000XU z000XU0RWnu7ytkO0drDELIAGL9O(c600d`2O+f$vv5yP zgD?zKav8uIlul4a@CMBW$p*~^p%XNj06Ib^XgdMjpxppE0ez+KJ0HQuKy>#fu;rJK zB_T2(UDss_xwU}w1!#b8eU=5X=@I8pTi~8cHP(KiKY(_%T7Ag`*$k{HNlRyEs0ZK( z7`z+k3OGBPWWnJbQ<4St^)4!=ESp07lzIp@hhztgXi_wE@Sb8=0)s1k~NS4KQcpDj&Hy|M7~ri;BjzAyHYDf76?<5_t)2KX|r%p zX(w+(o{Kr9=$*IhlkzG^ZZ@(|Seh3n{f&4-q&u*#Z~SWclu+Kr33YrN`Sm(MpMlml zh&IFkp>gwt=T2jzppF@k(0YVrQYzhK4D4C&_gC}MR3BoT{+~#5_3Ar=+5t*%=>_>8 z6B+I9xHcNKn~eET9=-cG@!2r?v;r8*qt__Tu8>q=)F$BzZI?JI{s8Bgz0#>m@Ff5M N002ovPDHLkV1nYWz)t`G literal 0 HcmV?d00001 diff --git a/assets/images/status_website_image.png b/assets/images/status_website_image.png new file mode 100644 index 0000000000000000000000000000000000000000..017bb64e19d8aa32b5e608d206f03197cb8e1fc1 GIT binary patch literal 546 zcmV+-0^R+IP)OXT=e`fhj;+j$j2m8{h;!Dx@M*2#xUsNeeb`0^J|+>>^}Xr9OT^pfdc;f>M@O0SK`RC^v=2iEJcsTguxnF~Hh>Y_^t} zsfhQ&SIcA&$3lU<9a$bpxX9cytpyX@C}9!g_;cG~CEWrgb^@t1M>T`6r2`~O+!GGo zO)F4x6ThTK!+=1o86IeV1R*KP5~$5B4F%F%Ao%Ib%&GxmdoQ(v?!bV#TA~iBHb-rc z=pmr9p7n-l$XR{lBO_S`gt08e@R3-vDqEO$x;Lk=2? zQV_9lBAIj1@PrVe-pROG%cLi9rg4jp`v)TpsIE)~90DeCM9-BjPlBfVKM@{i0f}p|Q_*s-V$mJO=*V97)Lmf`n;W07` zJOU9KIptvWa$>`d)R$i kTs93N*?qe2`|uC@0_}R?UQ~Njs{jB107*qoM6N<$f`XUbW&i*H literal 0 HcmV?d00001 diff --git a/cw_core/lib/crypto_currency.dart b/cw_core/lib/crypto_currency.dart index ce509015c..9cebce10a 100644 --- a/cw_core/lib/crypto_currency.dart +++ b/cw_core/lib/crypto_currency.dart @@ -216,7 +216,7 @@ class CryptoCurrency extends EnumerableItem with Serializable implemen static const usdcEPoly = CryptoCurrency(title: 'USDC.E', tag: 'POLY', fullName: 'USD Coin (PoS)', raw: 88, name: 'usdcepoly', iconPath: 'assets/images/usdc_icon.png', decimals: 6); static const kaspa = CryptoCurrency(title: 'KAS', fullName: 'Kaspa', raw: 89, name: 'kas', iconPath: 'assets/images/kaspa_icon.png', decimals: 8); static const digibyte = CryptoCurrency(title: 'DGB', fullName: 'DigiByte', raw: 90, name: 'dgb', iconPath: 'assets/images/digibyte.png', decimals: 8); - static const usdtSol = CryptoCurrency(title: 'USDT', tag: 'SOL', fullName: 'USDT Tether', raw: 90, name: 'usdtsol', iconPath: 'assets/images/usdt_icon.png', decimals: 6); + static const usdtSol = CryptoCurrency(title: 'USDT', tag: 'SOL', fullName: 'USDT Tether', raw: 91, name: 'usdtsol', iconPath: 'assets/images/usdt_icon.png', decimals: 6); static final Map _rawCurrencyMap = diff --git a/cw_monero/lib/monero_wallet.dart b/cw_monero/lib/monero_wallet.dart index ab4bfb0b0..58f63d7ce 100644 --- a/cw_monero/lib/monero_wallet.dart +++ b/cw_monero/lib/monero_wallet.dart @@ -183,13 +183,8 @@ abstract class MoneroWalletBase // try to use the date instead: try { _setHeightFromDate(); - } catch (e, s) { + } catch (_) { // we still couldn't get a valid sync height :/ - onError?.call(FlutterErrorDetails( - exception: e, - stack: s, - library: this.runtimeType.toString(), - )); } } } @@ -287,7 +282,9 @@ abstract class MoneroWalletBase pendingTransactionDescription = await transaction_history.createTransaction( address: address!, amount: amount, - priorityRaw: _credentials.priority.serialize(), + priorityRaw: _credentials.priority == MoneroTransactionPriority.automatic + ? MoneroTransactionPriority.medium.serialize() + : _credentials.priority.serialize(), accountIndex: walletAddresses.account!.id, preferredInputs: inputs); } diff --git a/cw_solana/lib/solana_wallet.dart b/cw_solana/lib/solana_wallet.dart index f901a64be..3476d76cd 100644 --- a/cw_solana/lib/solana_wallet.dart +++ b/cw_solana/lib/solana_wallet.dart @@ -165,16 +165,6 @@ abstract class SolanaWalletBase throw Exception("Solana Node connection failed"); } - try { - await Future.wait([ - _updateBalance(), - _updateNativeSOLTransactions(), - _updateSPLTokenTransactions(), - ]); - } catch (e) { - log(e.toString()); - } - _setTransactionUpdateTimer(); syncStatus = ConnectedSyncStatus(); diff --git a/lib/di.dart b/lib/di.dart index 473eaed00..782c0f1f4 100644 --- a/lib/di.dart +++ b/lib/di.dart @@ -384,6 +384,7 @@ Future setup({ yatStore: getIt.get(), ordersStore: getIt.get(), anonpayTransactionsStore: getIt.get(), + sharedPreferences: getIt.get(), keyService: getIt.get())); getIt.registerFactory( diff --git a/lib/entities/preferences_key.dart b/lib/entities/preferences_key.dart index 0dd251aaa..1808be97c 100644 --- a/lib/entities/preferences_key.dart +++ b/lib/entities/preferences_key.dart @@ -72,4 +72,5 @@ class PreferencesKey { static const lastSeenAppVersion = 'last_seen_app_version'; static const shouldShowMarketPlaceInDashboard = 'should_show_marketplace_in_dashboard'; static const isNewInstall = 'is_new_install'; + static const serviceStatusShaKey = 'service_status_sha_key'; } diff --git a/lib/entities/service_status.dart b/lib/entities/service_status.dart new file mode 100644 index 000000000..392c8072d --- /dev/null +++ b/lib/entities/service_status.dart @@ -0,0 +1,41 @@ +class ServiceStatus { + final String title; + final String description; + final String? image; + final String? status; + final DateTime date; + + ServiceStatus( + {required this.title, + required this.description, + required this.date, + this.image, + this.status}); + + factory ServiceStatus.fromJson(Map json) => ServiceStatus( + title: json['title'] as String? ?? '', + description: json['description'] as String? ?? '', + date: DateTime.tryParse(json['date'] as String? ?? '') ?? DateTime.now(), + image: json['image'] as String?, + status: json['status'] as String?, + ); +} + +class ServicesResponse { + final List servicesStatus; + final bool hasUpdates; + final String currentSha; + + ServicesResponse(this.servicesStatus, this.hasUpdates, this.currentSha); + + factory ServicesResponse.fromJson( + Map json, bool hasUpdates, String currentSha) { + return ServicesResponse( + (json['notices'] as List? ?? []) + .map((e) => ServiceStatus.fromJson(e as Map)) + .toList(), + hasUpdates, + currentSha, + ); + } +} diff --git a/lib/solana/cw_solana.dart b/lib/solana/cw_solana.dart index a86d6b0c6..9f9d81e5f 100644 --- a/lib/solana/cw_solana.dart +++ b/lib/solana/cw_solana.dart @@ -110,7 +110,7 @@ class CWSolana extends Solana { @override List? getValidationLength(CryptoCurrency type) { if (type is SPLToken) { - return [44]; + return [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44]; } return null; diff --git a/lib/src/screens/dashboard/dashboard_page.dart b/lib/src/screens/dashboard/dashboard_page.dart index 61e7d6176..3806dff91 100644 --- a/lib/src/screens/dashboard/dashboard_page.dart +++ b/lib/src/screens/dashboard/dashboard_page.dart @@ -7,6 +7,7 @@ import 'package:cake_wallet/src/screens/dashboard/desktop_widgets/desktop_sideba import 'package:cake_wallet/src/screens/dashboard/pages/market_place_page.dart'; import 'package:cake_wallet/src/screens/wallet_connect/widgets/modals/bottom_sheet_listener.dart'; import 'package:cake_wallet/src/widgets/gradient_background.dart'; +import 'package:cake_wallet/src/widgets/services_updates_widget.dart'; import 'package:cake_wallet/src/widgets/vulnerable_seeds_popup.dart'; import 'package:cake_wallet/themes/extensions/sync_indicator_theme.dart'; import 'package:cake_wallet/utils/device_info.dart'; @@ -101,6 +102,9 @@ class _DashboardPageView extends BasePage { @override Widget get endDrawer => MenuWidget(dashboardViewModel); + @override + Widget leading(BuildContext context) => ServicesUpdatesWidget(dashboardViewModel.getServicesStatus()); + @override Widget middle(BuildContext context) { return SyncIndicator( diff --git a/lib/src/widgets/base_alert_dialog.dart b/lib/src/widgets/base_alert_dialog.dart index b251e4b45..5c1111740 100644 --- a/lib/src/widgets/base_alert_dialog.dart +++ b/lib/src/widgets/base_alert_dialog.dart @@ -179,7 +179,7 @@ class BaseAlertDialog extends StatelessWidget { Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ - if (headerText != null) headerTitle(context), + if (headerText?.isNotEmpty ?? false) headerTitle(context), Padding( padding: EdgeInsets.fromLTRB(24, 20, 24, 0), child: title(context), diff --git a/lib/src/widgets/service_status_tile.dart b/lib/src/widgets/service_status_tile.dart new file mode 100644 index 000000000..f2a079841 --- /dev/null +++ b/lib/src/widgets/service_status_tile.dart @@ -0,0 +1,71 @@ +import 'package:auto_size_text/auto_size_text.dart'; +import 'package:cake_wallet/entities/service_status.dart'; +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; + +class ServiceStatusTile extends StatelessWidget { + final ServiceStatus status; + + const ServiceStatusTile(this.status, {super.key}); + + @override + Widget build(BuildContext context) { + return ListTile( + contentPadding: const EdgeInsets.all(8), + title: Padding( + padding: const EdgeInsets.symmetric(vertical: 8), + child: Row( + crossAxisAlignment: CrossAxisAlignment.end, + children: [ + Expanded( + child: AutoSizeText( + "${status.title}${status.status != null ? " - ${status.status}" : ""}", + style: TextStyle( + fontSize: 16, + fontFamily: 'Lato', + fontWeight: FontWeight.w800, + height: 1, + ), + maxLines: 1, + textAlign: TextAlign.start, + ), + ), + Text( + _getTimeString(status.date), + style: TextStyle(fontSize: 12), + ), + ], + ), + ), + leading: RotatedBox( + child: Icon( + Icons.info, + color: status.status == "resolved" ? Colors.green : Colors.red, + ), + quarterTurns: 2, + ), + subtitle: Row( + children: [ + Expanded(child: Text(status.description)), + if (status.image != null) + SizedBox( + height: 50, + width: 50, + child: Image.network(status.image!), + ), + ], + ), + ); + } + + String _getTimeString(DateTime date) { + int difference = DateTime.now().difference(date).inHours; + if (difference == 0) { + return "few minutes ago"; + } + if (difference < 24) { + return DateFormat('h:mm a').format(date); + } + return DateFormat('d-MM-yyyy').format(date); + } +} diff --git a/lib/src/widgets/services_updates_widget.dart b/lib/src/widgets/services_updates_widget.dart new file mode 100644 index 000000000..7a8614b75 --- /dev/null +++ b/lib/src/widgets/services_updates_widget.dart @@ -0,0 +1,120 @@ +import 'package:cake_wallet/di.dart'; +import 'package:cake_wallet/entities/preferences_key.dart'; +import 'package:cake_wallet/entities/service_status.dart'; +import 'package:cake_wallet/src/widgets/primary_button.dart'; +import 'package:cake_wallet/src/widgets/service_status_tile.dart'; +import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart'; +import 'package:cake_wallet/themes/extensions/wallet_list_theme.dart'; +import 'package:flutter/material.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:url_launcher/url_launcher.dart'; + +class ServicesUpdatesWidget extends StatelessWidget { + final Future servicesResponse; + + const ServicesUpdatesWidget(this.servicesResponse, {super.key}); + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.all(8.0), + child: FutureBuilder( + future: servicesResponse, + builder: (context, state) { + return InkWell( + onTap: state.hasData + ? () { + // save currentSha when the user see the status + getIt + .get() + .setString(PreferencesKey.serviceStatusShaKey, state.data!.currentSha); + + showModalBottomSheet( + context: context, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.only( + topLeft: Radius.circular(50), + topRight: Radius.circular(50), + ), + ), + constraints: BoxConstraints( + maxHeight: MediaQuery.of(context).size.height / 2, + minHeight: MediaQuery.of(context).size.height / 4, + ), + builder: (context) { + Widget body; + if (state.data!.servicesStatus.isEmpty) { + body = Center( + child: Text("Everything is up and running as expected"), + ); + } else { + body = SingleChildScrollView( + child: Column( + children: state.data!.servicesStatus + .map((status) => ServiceStatusTile(status)) + .toList()), + ); + } + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 20), + child: Stack( + children: [ + body, + Align( + alignment: Alignment.bottomCenter, + child: Padding( + padding: EdgeInsets.symmetric( + horizontal: MediaQuery.of(context).size.width / 8), + child: PrimaryImageButton( + onPressed: () { + try { + launchUrl(Uri.parse("https://status.cakewallet.com/")); + } catch (_) {} + }, + image: Image.asset( + "assets/images/status_website_image.png", + color: Theme.of(context).brightness == Brightness.light + ? Colors.white + : null, + ), + text: "Status Website", + color: Theme.of(context) + .extension()! + .createNewWalletButtonBackgroundColor, + textColor: Theme.of(context) + .extension()! + .restoreWalletButtonTextColor, + ), + ), + ) + ], + ), + ); + }, + ); + } + : null, + child: Stack( + children: [ + Image.asset( + "assets/images/notification_icon.png", + color: Theme.of(context).extension()!.pageTitleTextColor, + ), + if (state.hasData && state.data!.hasUpdates) + Container( + height: 7, + width: 7, + margin: EdgeInsetsDirectional.only(start: 8), + decoration: BoxDecoration( + color: Colors.red, + shape: BoxShape.circle, + ), + ), + ], + ), + ); + }, + ), + ); + } +} diff --git a/lib/view_model/dashboard/dashboard_view_model.dart b/lib/view_model/dashboard/dashboard_view_model.dart index da5eb0373..a21a92cb4 100644 --- a/lib/view_model/dashboard/dashboard_view_model.dart +++ b/lib/view_model/dashboard/dashboard_view_model.dart @@ -4,8 +4,10 @@ import 'package:cake_wallet/buy/buy_provider.dart'; import 'package:cake_wallet/core/key_service.dart'; import 'package:cake_wallet/entities/auto_generate_subaddress_status.dart'; import 'package:cake_wallet/entities/balance_display_mode.dart'; +import 'package:cake_wallet/entities/preferences_key.dart'; import 'package:cake_wallet/entities/provider_types.dart'; import 'package:cake_wallet/entities/exchange_api_mode.dart'; +import 'package:cake_wallet/entities/service_status.dart'; import 'package:cake_wallet/exchange/exchange_provider_description.dart'; import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/monero/monero.dart'; @@ -42,7 +44,8 @@ import 'package:cw_core/wallet_type.dart'; import 'package:eth_sig_util/util/utils.dart'; import 'package:flutter/services.dart'; import 'package:mobx/mobx.dart'; -import 'package:cake_wallet/entities/provider_types.dart'; +import 'package:http/http.dart' as http; +import 'package:shared_preferences/shared_preferences.dart'; part 'dashboard_view_model.g.dart'; @@ -59,6 +62,7 @@ abstract class DashboardViewModelBase with Store { required this.yatStore, required this.ordersStore, required this.anonpayTransactionsStore, + required this.sharedPreferences, required this.keyService}) : hasSellAction = false, hasBuyAction = false, @@ -280,6 +284,7 @@ abstract class DashboardViewModelBase with Store { bool get hasRescan => wallet.type == WalletType.monero || wallet.type == WalletType.haven; final KeyService keyService; + final SharedPreferences sharedPreferences; BalanceViewModel balanceViewModel; @@ -497,4 +502,26 @@ abstract class DashboardViewModelBase with Store { return affectedWallets; } + + Future getServicesStatus() async { + try { + final res = await http.get(Uri.parse("https://service-api.cakewallet.com/v1/active-notices")); + + if (res.statusCode < 200 || res.statusCode >= 300) { + throw res.body; + } + + final oldSha = sharedPreferences.getString(PreferencesKey.serviceStatusShaKey); + + + final hash = await Cryptography.instance.sha256().hash(utf8.encode(res.body)); + final currentSha = bytesToHex(hash.bytes); + + final hasUpdates = oldSha != currentSha; + + return ServicesResponse.fromJson(json.decode(res.body) as Map, hasUpdates, currentSha); + } catch (_) { + return ServicesResponse([], false, ''); + } + } } diff --git a/lib/view_model/send/send_view_model.dart b/lib/view_model/send/send_view_model.dart index 772150368..507ed14cc 100644 --- a/lib/view_model/send/send_view_model.dart +++ b/lib/view_model/send/send_view_model.dart @@ -427,9 +427,10 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor ) { if (walletType == WalletType.ethereum || walletType == WalletType.polygon || + walletType == WalletType.solana || walletType == WalletType.haven) { if (error.contains('gas required exceeds allowance') || - error.contains('insufficient funds for')) { + error.contains('insufficient funds')) { return S.current.do_not_have_enough_gas_asset(currency.toString()); } diff --git a/scripts/android/build_monero.sh b/scripts/android/build_monero.sh index e0010b351..7e9b58b6d 100755 --- a/scripts/android/build_monero.sh +++ b/scripts/android/build_monero.sh @@ -1,7 +1,7 @@ #!/bin/sh . ./config.sh -MONERO_BRANCH=release-v0.18.2.2-android +MONERO_BRANCH=release-v0.18.2.2-android_tx_priority_fix MONERO_SRC_DIR=${WORKDIR}/monero git clone https://github.com/cake-tech/monero.git ${MONERO_SRC_DIR} --branch ${MONERO_BRANCH} diff --git a/scripts/ios/build_monero.sh b/scripts/ios/build_monero.sh index 54dda546f..2c81576f1 100755 --- a/scripts/ios/build_monero.sh +++ b/scripts/ios/build_monero.sh @@ -4,7 +4,7 @@ MONERO_URL="https://github.com/cake-tech/monero.git" MONERO_DIR_PATH="${EXTERNAL_IOS_SOURCE_DIR}/monero" -MONERO_VERSION=release-v0.18.2.2 +MONERO_VERSION=release-v0.18.2.2_tx_priority_fix BUILD_TYPE=release PREFIX=${EXTERNAL_IOS_DIR} DEST_LIB_DIR=${EXTERNAL_IOS_LIB_DIR}/monero diff --git a/scripts/ios/build_sodium.sh b/scripts/ios/build_sodium.sh index 66f383fb4..5632719ad 100755 --- a/scripts/ios/build_sodium.sh +++ b/scripts/ios/build_sodium.sh @@ -8,9 +8,10 @@ SODIUM_URL="https://github.com/jedisct1/libsodium.git" echo "============================ SODIUM ============================" echo "Cloning SODIUM from - $SODIUM_URL" -git clone $SODIUM_URL $SODIUM_PATH --branch stable +git clone $SODIUM_URL $SODIUM_PATH cd $SODIUM_PATH -./dist-build/ios.sh +git checkout 443617d7507498f7477703f0b51cb596d4539262 +./dist-build/apple-xcframework.sh -mv ${SODIUM_PATH}/libsodium-ios/include/* $EXTERNAL_IOS_INCLUDE_DIR -mv ${SODIUM_PATH}/libsodium-ios/lib/* $EXTERNAL_IOS_LIB_DIR \ No newline at end of file +mv ${SODIUM_PATH}/libsodium-apple/ios/include/* $EXTERNAL_IOS_INCLUDE_DIR +mv ${SODIUM_PATH}/libsodium-apple/ios/lib/* $EXTERNAL_IOS_LIB_DIR \ No newline at end of file diff --git a/scripts/macos/build_monero.sh b/scripts/macos/build_monero.sh index c1ee0e5d3..2a1ae89a5 100755 --- a/scripts/macos/build_monero.sh +++ b/scripts/macos/build_monero.sh @@ -4,7 +4,7 @@ MONERO_URL="https://github.com/cake-tech/monero.git" MONERO_DIR_PATH="${EXTERNAL_MACOS_SOURCE_DIR}/monero" -MONERO_VERSION=release-v0.18.2.2 +MONERO_VERSION=release-v0.18.2.2_tx_priority_fix BUILD_TYPE=release PREFIX=${EXTERNAL_MACOS_DIR} DEST_LIB_DIR=${EXTERNAL_MACOS_LIB_DIR}/monero From 50b5ebc622fd5742f6e089dd6e25631e76fda237 Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Thu, 14 Mar 2024 20:26:00 +0200 Subject: [PATCH 20/30] Monero update (#1325) * New price API * Fix test app package id * Fix workflow * change environment variable to use pr number [skip ci] * Fix un-needed padding * Fix raw value for usdtSol * Remove duplicate fetching for balance and transactions at start [skip ci] * Fix address validation of spl tokens * Add Service Status * Update lib/src/widgets/service_status_tile.dart Co-authored-by: Konstantin Ullrich * Update lib/src/widgets/services_updates_widget.dart Co-authored-by: Konstantin Ullrich * Update monero version * update sodium script * Change automatic priority fee rate * New versions [skip ci] * Update monero version * Temp remove split per abi * Specifically build monero.com * Revert monero dependencies trial fix * Update Monero Fix Monero Automatic Priority * Fix android script * Fix build_monero.sh android Add svg notification icon * trial 1 * trial 2 * trial 3 * trial 4 * Trial 5 * Trial * revert --------- Co-authored-by: Konstantin Ullrich --- assets/images/notification_icon.png | Bin 471 -> 0 bytes assets/images/notification_icon.svg | 69 ++++++++++++++++++ assets/text/Monerocom_Release_Notes.txt | 2 +- assets/text/Release_Notes.txt | 6 +- cw_core/lib/monero_transaction_priority.dart | 14 ++-- cw_monero/lib/monero_wallet.dart | 4 +- lib/entities/default_settings_migration.dart | 15 ++++ lib/main.dart | 2 +- .../desktop_sidebar/side_menu_item.dart | 32 ++++---- .../desktop_sidebar_wrapper.dart | 13 +++- lib/src/widgets/services_updates_widget.dart | 8 +- .../dashboard/dashboard_view_model.dart | 16 ++-- .../dashboard/desktop_sidebar_view_model.dart | 1 + scripts/android/app_env.sh | 8 +- scripts/android/build_monero.sh | 7 +- scripts/ios/app_env.sh | 8 +- scripts/ios/build_monero.sh | 3 +- scripts/macos/app_env.sh | 8 +- scripts/macos/build_monero.sh | 3 +- 19 files changed, 156 insertions(+), 63 deletions(-) delete mode 100644 assets/images/notification_icon.png create mode 100644 assets/images/notification_icon.svg diff --git a/assets/images/notification_icon.png b/assets/images/notification_icon.png deleted file mode 100644 index a6d60211a0bef9014482e22ba784b9846f173611..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 471 zcmV;|0Vw{7P)X1^@s6+90*i00009a7bBm000XU z000XU0RWnu7ytkO0drDELIAGL9O(c600d`2O+f$vv5yP zgD?zKav8uIlul4a@CMBW$p*~^p%XNj06Ib^XgdMjpxppE0ez+KJ0HQuKy>#fu;rJK zB_T2(UDss_xwU}w1!#b8eU=5X=@I8pTi~8cHP(KiKY(_%T7Ag`*$k{HNlRyEs0ZK( z7`z+k3OGBPWWnJbQ<4St^)4!=ESp07lzIp@hhztgXi_wE@Sb8=0)s1k~NS4KQcpDj&Hy|M7~ri;BjzAyHYDf76?<5_t)2KX|r%p zX(w+(o{Kr9=$*IhlkzG^ZZ@(|Seh3n{f&4-q&u*#Z~SWclu+Kr33YrN`Sm(MpMlml zh&IFkp>gwt=T2jzppF@k(0YVrQYzhK4D4C&_gC}MR3BoT{+~#5_3Ar=+5t*%=>_>8 z6B+I9xHcNKn~eET9=-cG@!2r?v;r8*qt__Tu8>q=)F$BzZI?JI{s8Bgz0#>m@Ff5M N002ovPDHLkV1nYWz)t`G diff --git a/assets/images/notification_icon.svg b/assets/images/notification_icon.svg new file mode 100644 index 000000000..099039e67 --- /dev/null +++ b/assets/images/notification_icon.svg @@ -0,0 +1,69 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/assets/text/Monerocom_Release_Notes.txt b/assets/text/Monerocom_Release_Notes.txt index 732e58a18..05f78b809 100644 --- a/assets/text/Monerocom_Release_Notes.txt +++ b/assets/text/Monerocom_Release_Notes.txt @@ -1,2 +1,2 @@ -New themes +In-App live status page for the app services Bug fixes and enhancements \ No newline at end of file diff --git a/assets/text/Release_Notes.txt b/assets/text/Release_Notes.txt index 1c2ec154c..05f78b809 100644 --- a/assets/text/Release_Notes.txt +++ b/assets/text/Release_Notes.txt @@ -1,6 +1,2 @@ -Add Solana wallet -Support ALL Bitcoin address types (Legacy, Segwit (both variants), Taproot) -Enhance Sending/Receiving flow for Bitcoin -Improve fee calculations in Bitcoin -New themes +In-App live status page for the app services Bug fixes and enhancements \ No newline at end of file diff --git a/cw_core/lib/monero_transaction_priority.dart b/cw_core/lib/monero_transaction_priority.dart index f5c00ecc7..81058f336 100644 --- a/cw_core/lib/monero_transaction_priority.dart +++ b/cw_core/lib/monero_transaction_priority.dart @@ -1,7 +1,4 @@ import 'package:cw_core/transaction_priority.dart'; -import 'package:cw_core/wallet_type.dart'; -//import 'package:cake_wallet/generated/i18n.dart'; -import 'package:cw_core/enumerable_item.dart'; class MoneroTransactionPriority extends TransactionPriority { const MoneroTransactionPriority({required String title, required int raw}) @@ -12,21 +9,20 @@ class MoneroTransactionPriority extends TransactionPriority { MoneroTransactionPriority.automatic, MoneroTransactionPriority.medium, MoneroTransactionPriority.fast, - MoneroTransactionPriority.fastest + MoneroTransactionPriority.fastest, ]; - static const slow = MoneroTransactionPriority(title: 'Slow', raw: 0); - static const automatic = MoneroTransactionPriority(title: 'Automatic', raw: 1); + static const automatic = MoneroTransactionPriority(title: 'Automatic', raw: 0); + static const slow = MoneroTransactionPriority(title: 'Slow', raw: 1); static const medium = MoneroTransactionPriority(title: 'Medium', raw: 2); static const fast = MoneroTransactionPriority(title: 'Fast', raw: 3); static const fastest = MoneroTransactionPriority(title: 'Fastest', raw: 4); - static const standard = slow; static MoneroTransactionPriority deserialize({required int raw}) { switch (raw) { case 0: - return slow; - case 1: return automatic; + case 1: + return slow; case 2: return medium; case 3: diff --git a/cw_monero/lib/monero_wallet.dart b/cw_monero/lib/monero_wallet.dart index 58f63d7ce..5644f6f2e 100644 --- a/cw_monero/lib/monero_wallet.dart +++ b/cw_monero/lib/monero_wallet.dart @@ -282,9 +282,7 @@ abstract class MoneroWalletBase pendingTransactionDescription = await transaction_history.createTransaction( address: address!, amount: amount, - priorityRaw: _credentials.priority == MoneroTransactionPriority.automatic - ? MoneroTransactionPriority.medium.serialize() - : _credentials.priority.serialize(), + priorityRaw: _credentials.priority.serialize(), accountIndex: walletAddresses.account!.id, preferredInputs: inputs); } diff --git a/lib/entities/default_settings_migration.dart b/lib/entities/default_settings_migration.dart index fb3e9e80c..0851d00f5 100644 --- a/lib/entities/default_settings_migration.dart +++ b/lib/entities/default_settings_migration.dart @@ -201,6 +201,9 @@ Future defaultSettingsMigration( await changeSolanaCurrentNodeToDefault( sharedPreferences: sharedPreferences, nodes: nodes); break; + case 28: + await _updateMoneroPriority(sharedPreferences); + break; default: break; } @@ -215,6 +218,18 @@ Future defaultSettingsMigration( await sharedPreferences.setInt(PreferencesKey.currentDefaultSettingsMigrationVersion, version); } +Future _updateMoneroPriority(SharedPreferences sharedPreferences) async { + final currentPriority = + await sharedPreferences.getInt(PreferencesKey.moneroTransactionPriority) ?? + monero!.getDefaultTransactionPriority().serialize(); + + // was set to automatic but automatic should be 0 + if (currentPriority == 1) { + sharedPreferences.setInt(PreferencesKey.moneroTransactionPriority, + monero!.getDefaultTransactionPriority().serialize()); // 0 + } +} + Future _validateWalletInfoBoxData(Box walletInfoSource) async { try { final root = await getApplicationDocumentsDirectory(); diff --git a/lib/main.dart b/lib/main.dart index 0c8a4c094..a87bcfdad 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -163,7 +163,7 @@ Future initializeAppConfigs() async { transactionDescriptions: transactionDescriptions, secureStorage: secureStorage, anonpayInvoiceInfo: anonpayInvoiceInfo, - initialMigrationVersion: 27); + initialMigrationVersion: 28); } Future initialSetup( diff --git a/lib/src/screens/dashboard/desktop_widgets/desktop_sidebar/side_menu_item.dart b/lib/src/screens/dashboard/desktop_widgets/desktop_sidebar/side_menu_item.dart index 8119e9fd4..940ab54ca 100644 --- a/lib/src/screens/dashboard/desktop_widgets/desktop_sidebar/side_menu_item.dart +++ b/lib/src/screens/dashboard/desktop_widgets/desktop_sidebar/side_menu_item.dart @@ -7,13 +7,15 @@ class SideMenuItem extends StatelessWidget { required this.onTap, this.imagePath, this.icon, + this.widget, this.isSelected = false, - }) : assert((icon != null && imagePath == null) || (icon == null && imagePath != null)); + }) : assert(widget != null || icon != null || imagePath != null); final void Function() onTap; final String? imagePath; final IconData? icon; final bool isSelected; + final Widget? widget; Color _setColor(BuildContext context) { if (isSelected) { @@ -28,18 +30,7 @@ class SideMenuItem extends StatelessWidget { return InkWell( child: Padding( padding: EdgeInsets.all(20), - child: icon != null - ? Icon( - icon, - color: _setColor(context), - ) - : Image.asset( - imagePath ?? '', - fit: BoxFit.cover, - height: 30, - width: 30, - color: _setColor(context), - ), + child: widget ?? _getIcon(context), ), onTap: () => onTap.call(), highlightColor: Colors.transparent, @@ -48,4 +39,19 @@ class SideMenuItem extends StatelessWidget { splashColor: Colors.transparent, ); } + + Widget _getIcon(BuildContext context) { + return icon != null + ? Icon( + icon, + color: _setColor(context), + ) + : Image.asset( + imagePath ?? '', + fit: BoxFit.cover, + height: 30, + width: 30, + color: _setColor(context), + ); + } } diff --git a/lib/src/screens/dashboard/desktop_widgets/desktop_sidebar_wrapper.dart b/lib/src/screens/dashboard/desktop_widgets/desktop_sidebar_wrapper.dart index f73570048..d0ddb19e6 100644 --- a/lib/src/screens/dashboard/desktop_widgets/desktop_sidebar_wrapper.dart +++ b/lib/src/screens/dashboard/desktop_widgets/desktop_sidebar_wrapper.dart @@ -9,6 +9,7 @@ import 'package:cake_wallet/src/screens/dashboard/desktop_widgets/desktop_sideba import 'package:cake_wallet/src/screens/dashboard/desktop_widgets/desktop_wallet_selection_dropdown.dart'; import 'package:cake_wallet/src/screens/dashboard/widgets/sync_indicator.dart'; import 'package:cake_wallet/src/screens/wallet_connect/widgets/modals/bottom_sheet_listener.dart'; +import 'package:cake_wallet/src/widgets/services_updates_widget.dart'; import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart'; import 'package:cake_wallet/view_model/dashboard/desktop_sidebar_view_model.dart'; import 'package:flutter/cupertino.dart'; @@ -105,12 +106,18 @@ class DesktopSidebarWrapper extends BasePage { ? selectedIconPath : unselectedIconPath, ), + SideMenuItem( + widget: ServicesUpdatesWidget(dashboardViewModel.getServicesStatus()), + isSelected: desktopSidebarViewModel.currentPage == SidebarItem.status, + onTap: () {}, + ), ], bottomItems: [ SideMenuItem( - imagePath: 'assets/images/support_icon.png', - isSelected: desktopSidebarViewModel.currentPage == SidebarItem.support, - onTap: () => desktopSidebarViewModel.onPageChange(SidebarItem.support)), + imagePath: 'assets/images/support_icon.png', + isSelected: desktopSidebarViewModel.currentPage == SidebarItem.support, + onTap: () => desktopSidebarViewModel.onPageChange(SidebarItem.support), + ), SideMenuItem( imagePath: 'assets/images/settings_outline.png', isSelected: desktopSidebarViewModel.currentPage == SidebarItem.settings, diff --git a/lib/src/widgets/services_updates_widget.dart b/lib/src/widgets/services_updates_widget.dart index 7a8614b75..9557ff6b9 100644 --- a/lib/src/widgets/services_updates_widget.dart +++ b/lib/src/widgets/services_updates_widget.dart @@ -6,6 +6,7 @@ import 'package:cake_wallet/src/widgets/service_status_tile.dart'; import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart'; import 'package:cake_wallet/themes/extensions/wallet_list_theme.dart'; import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:url_launcher/url_launcher.dart'; @@ -96,15 +97,16 @@ class ServicesUpdatesWidget extends StatelessWidget { : null, child: Stack( children: [ - Image.asset( - "assets/images/notification_icon.png", + SvgPicture.asset( + "assets/images/notification_icon.svg", color: Theme.of(context).extension()!.pageTitleTextColor, + width: 30, ), if (state.hasData && state.data!.hasUpdates) Container( height: 7, width: 7, - margin: EdgeInsetsDirectional.only(start: 8), + margin: EdgeInsetsDirectional.only(start: 15), decoration: BoxDecoration( color: Colors.red, shape: BoxShape.circle, diff --git a/lib/view_model/dashboard/dashboard_view_model.dart b/lib/view_model/dashboard/dashboard_view_model.dart index a21a92cb4..b02c09f82 100644 --- a/lib/view_model/dashboard/dashboard_view_model.dart +++ b/lib/view_model/dashboard/dashboard_view_model.dart @@ -344,15 +344,13 @@ abstract class DashboardViewModelBase with Store { bool hasExchangeAction; @computed - bool get isEnabledBuyAction => - !settingsStore.disableBuy && availableBuyProviders.isNotEmpty; + bool get isEnabledBuyAction => !settingsStore.disableBuy && availableBuyProviders.isNotEmpty; @observable bool hasBuyAction; @computed - bool get isEnabledSellAction => - !settingsStore.disableSell && availableSellProviders.isNotEmpty; + bool get isEnabledSellAction => !settingsStore.disableSell && availableSellProviders.isNotEmpty; @observable bool hasSellAction; @@ -477,7 +475,8 @@ abstract class DashboardViewModelBase with Store { Future> checkAffectedWallets() async { // await load file - final vulnerableSeedsString = await rootBundle.loadString('assets/text/cakewallet_weak_bitcoin_seeds_hashed_sorted_version1.txt'); + final vulnerableSeedsString = await rootBundle + .loadString('assets/text/cakewallet_weak_bitcoin_seeds_hashed_sorted_version1.txt'); final vulnerableSeeds = vulnerableSeedsString.split("\n"); final walletInfoSource = await CakeHive.openBox(WalletInfo.boxName); @@ -513,13 +512,16 @@ abstract class DashboardViewModelBase with Store { final oldSha = sharedPreferences.getString(PreferencesKey.serviceStatusShaKey); - final hash = await Cryptography.instance.sha256().hash(utf8.encode(res.body)); final currentSha = bytesToHex(hash.bytes); final hasUpdates = oldSha != currentSha; - return ServicesResponse.fromJson(json.decode(res.body) as Map, hasUpdates, currentSha); + return ServicesResponse.fromJson( + json.decode(res.body) as Map, + hasUpdates, + currentSha, + ); } catch (_) { return ServicesResponse([], false, ''); } diff --git a/lib/view_model/dashboard/desktop_sidebar_view_model.dart b/lib/view_model/dashboard/desktop_sidebar_view_model.dart index 543b44b35..52a6dc49b 100644 --- a/lib/view_model/dashboard/desktop_sidebar_view_model.dart +++ b/lib/view_model/dashboard/desktop_sidebar_view_model.dart @@ -5,6 +5,7 @@ part 'desktop_sidebar_view_model.g.dart'; enum SidebarItem { dashboard, transactions, + status, support, settings, } diff --git a/scripts/android/app_env.sh b/scripts/android/app_env.sh index fa3701fa7..eb1aaaacc 100644 --- a/scripts/android/app_env.sh +++ b/scripts/android/app_env.sh @@ -15,15 +15,15 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN) APP_ANDROID_TYPE=$1 MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="1.11.0" -MONERO_COM_BUILD_NUMBER=77 +MONERO_COM_VERSION="1.11.1" +MONERO_COM_BUILD_NUMBER=78 MONERO_COM_BUNDLE_ID="com.monero.app" MONERO_COM_PACKAGE="com.monero.app" MONERO_COM_SCHEME="monero.com" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="4.14.0" -CAKEWALLET_BUILD_NUMBER=196 +CAKEWALLET_VERSION="4.14.1" +CAKEWALLET_BUILD_NUMBER=197 CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet" CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet" CAKEWALLET_SCHEME="cakewallet" diff --git a/scripts/android/build_monero.sh b/scripts/android/build_monero.sh index 7e9b58b6d..fb596e452 100755 --- a/scripts/android/build_monero.sh +++ b/scripts/android/build_monero.sh @@ -1,13 +1,12 @@ #!/bin/sh . ./config.sh -MONERO_BRANCH=release-v0.18.2.2-android_tx_priority_fix +MONERO_BRANCH=release-v0.18.3.2-android MONERO_SRC_DIR=${WORKDIR}/monero git clone https://github.com/cake-tech/monero.git ${MONERO_SRC_DIR} --branch ${MONERO_BRANCH} cd $MONERO_SRC_DIR -git submodule init -git submodule update +git submodule update --init --force for arch in "aarch" "aarch64" "i686" "x86_64" do @@ -59,7 +58,7 @@ cd $MONERO_SRC_DIR rm -rf ./build/release mkdir -p ./build/release cd ./build/release -CC=${CLANG} CXX=${CXXLANG} cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH=${ARCH} -D STATIC=ON -D BUILD_64=${BUILD_64} -D CMAKE_BUILD_TYPE=release -D ANDROID=true -D INSTALL_VENDORED_LIBUNBOUND=ON -D BUILD_TAG=${TAG} -D CMAKE_SYSTEM_NAME="Android" -D CMAKE_ANDROID_STANDALONE_TOOLCHAIN="${ANDROID_STANDALONE_TOOLCHAIN_PATH}" -D CMAKE_ANDROID_ARCH_ABI=${ARCH_ABI} $FLAGS ../.. +CC=${CLANG} CXX=${CXXLANG} cmake -D USE_DEVICE_TREZOR=OFF -D BUILD_GUI_DEPS=1 -D BUILD_TESTS=OFF -D ARCH=${ARCH} -D STATIC=ON -D BUILD_64=${BUILD_64} -D CMAKE_BUILD_TYPE=release -D ANDROID=true -D INSTALL_VENDORED_LIBUNBOUND=ON -D BUILD_TAG=${TAG} -D CMAKE_SYSTEM_NAME="Android" -D CMAKE_ANDROID_STANDALONE_TOOLCHAIN="${ANDROID_STANDALONE_TOOLCHAIN_PATH}" -D CMAKE_ANDROID_ARCH_ABI=${ARCH_ABI} -D MANUAL_SUBMODULES=1 $FLAGS ../.. make wallet_api -j$THREADS find . -path ./lib -prune -o -name '*.a' -exec cp '{}' lib \; diff --git a/scripts/ios/app_env.sh b/scripts/ios/app_env.sh index 31f0b9548..1c778063d 100644 --- a/scripts/ios/app_env.sh +++ b/scripts/ios/app_env.sh @@ -13,13 +13,13 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN) APP_IOS_TYPE=$1 MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="1.11.0" -MONERO_COM_BUILD_NUMBER=75 +MONERO_COM_VERSION="1.11.1" +MONERO_COM_BUILD_NUMBER=76 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="4.14.0" -CAKEWALLET_BUILD_NUMBER=215 +CAKEWALLET_VERSION="4.14.1" +CAKEWALLET_BUILD_NUMBER=216 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" HAVEN_NAME="Haven" diff --git a/scripts/ios/build_monero.sh b/scripts/ios/build_monero.sh index 2c81576f1..6f06f22c1 100755 --- a/scripts/ios/build_monero.sh +++ b/scripts/ios/build_monero.sh @@ -4,7 +4,7 @@ MONERO_URL="https://github.com/cake-tech/monero.git" MONERO_DIR_PATH="${EXTERNAL_IOS_SOURCE_DIR}/monero" -MONERO_VERSION=release-v0.18.2.2_tx_priority_fix +MONERO_VERSION=release-v0.18.3.2 BUILD_TYPE=release PREFIX=${EXTERNAL_IOS_DIR} DEST_LIB_DIR=${EXTERNAL_IOS_LIB_DIR}/monero @@ -52,6 +52,7 @@ cmake -D IOS=ON \ -DUNBOUND_INCLUDE_DIR=${EXTERNAL_IOS_INCLUDE_DIR} \ -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \ -DUSE_DEVICE_TREZOR=OFF \ + -DMANUAL_SUBMODULES=1 \ ../.. make wallet_api -j4 find . -path ./lib -prune -o -name '*.a' -exec cp '{}' lib \; diff --git a/scripts/macos/app_env.sh b/scripts/macos/app_env.sh index 4dec47f40..4c84832e6 100755 --- a/scripts/macos/app_env.sh +++ b/scripts/macos/app_env.sh @@ -16,13 +16,13 @@ if [ -n "$1" ]; then fi MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="1.1.0" -MONERO_COM_BUILD_NUMBER=7 +MONERO_COM_VERSION="1.1.1" +MONERO_COM_BUILD_NUMBER=9 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="1.7.0" -CAKEWALLET_BUILD_NUMBER=55 +CAKEWALLET_VERSION="1.7.1" +CAKEWALLET_BUILD_NUMBER=56 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then diff --git a/scripts/macos/build_monero.sh b/scripts/macos/build_monero.sh index 2a1ae89a5..1af7ae0e3 100755 --- a/scripts/macos/build_monero.sh +++ b/scripts/macos/build_monero.sh @@ -4,7 +4,7 @@ MONERO_URL="https://github.com/cake-tech/monero.git" MONERO_DIR_PATH="${EXTERNAL_MACOS_SOURCE_DIR}/monero" -MONERO_VERSION=release-v0.18.2.2_tx_priority_fix +MONERO_VERSION=release-v0.18.3.2 BUILD_TYPE=release PREFIX=${EXTERNAL_MACOS_DIR} DEST_LIB_DIR=${EXTERNAL_MACOS_LIB_DIR}/monero @@ -46,6 +46,7 @@ cmake -DARCH=${ARCH} \ -DUNBOUND_INCLUDE_DIR=${EXTERNAL_MACOS_INCLUDE_DIR} \ -DCMAKE_INSTALL_PREFIX=${INSTALL_PREFIX} \ -DUSE_DEVICE_TREZOR=OFF \ + -DMANUAL_SUBMODULES=1 \ ../.. make wallet_api -j4 find . -path ./lib -prune -o -name '*.a' -exec cp '{}' lib \; From 27347779fa55232f9ceea6ee4e8c7466101b85a3 Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Mon, 18 Mar 2024 17:45:11 +0200 Subject: [PATCH 21/30] New versions (#1334) * Enable Exolix Improve service updates indicator New versions * Add exolix Api token to limits api * Ignore reporting network issues * Change default bitcoin node --- assets/text/Monerocom_Release_Notes.txt | 2 ++ assets/text/Release_Notes.txt | 3 +++ cw_monero/lib/monero_wallet.dart | 8 +----- lib/entities/default_settings_migration.dart | 27 +++++++++++++++++++ .../provider/exolix_exchange_provider.dart | 1 + lib/main.dart | 2 +- lib/src/widgets/services_updates_widget.dart | 13 +++++++-- lib/utils/feature_flag.dart | 2 +- scripts/android/app_env.sh | 8 +++--- scripts/ios/app_env.sh | 8 +++--- scripts/macos/app_env.sh | 8 +++--- 11 files changed, 59 insertions(+), 23 deletions(-) diff --git a/assets/text/Monerocom_Release_Notes.txt b/assets/text/Monerocom_Release_Notes.txt index 05f78b809..90fcd2a75 100644 --- a/assets/text/Monerocom_Release_Notes.txt +++ b/assets/text/Monerocom_Release_Notes.txt @@ -1,2 +1,4 @@ +Monero enhancements In-App live status page for the app services +Add Exolix exchange provider Bug fixes and enhancements \ No newline at end of file diff --git a/assets/text/Release_Notes.txt b/assets/text/Release_Notes.txt index 05f78b809..d8d4ed830 100644 --- a/assets/text/Release_Notes.txt +++ b/assets/text/Release_Notes.txt @@ -1,2 +1,5 @@ +Monero enhancements +Bitcoin support different address types (Taproot, Segwit P2WPKH/P2WSH, Legacy) In-App live status page for the app services +Add Exolix exchange provider Bug fixes and enhancements \ No newline at end of file diff --git a/cw_monero/lib/monero_wallet.dart b/cw_monero/lib/monero_wallet.dart index 5644f6f2e..d00a54c8f 100644 --- a/cw_monero/lib/monero_wallet.dart +++ b/cw_monero/lib/monero_wallet.dart @@ -574,13 +574,7 @@ abstract class MoneroWalletBase int height = 0; try { height = _getHeightByDate(walletInfo.date); - } catch (e, s) { - onError?.call(FlutterErrorDetails( - exception: e, - stack: s, - library: this.runtimeType.toString(), - )); - } + } catch (_) {} monero_wallet.setRecoveringFromSeed(isRecovery: true); monero_wallet.setRefreshFromBlockHeight(height: height); diff --git a/lib/entities/default_settings_migration.dart b/lib/entities/default_settings_migration.dart index 0851d00f5..8ce38e4c4 100644 --- a/lib/entities/default_settings_migration.dart +++ b/lib/entities/default_settings_migration.dart @@ -35,6 +35,7 @@ const cakeWalletBitcoinCashDefaultNodeUri = 'bitcoincash.stackwallet.com:50002'; const nanoDefaultNodeUri = 'rpc.nano.to'; const nanoDefaultPowNodeUri = 'rpc.nano.to'; const solanaDefaultNodeUri = 'rpc.ankr.com'; +const newCakeWalletBitcoinUri = 'btc-electrum.cakewallet.com:50002'; Future defaultSettingsMigration( {required int version, @@ -201,9 +202,15 @@ Future defaultSettingsMigration( await changeSolanaCurrentNodeToDefault( sharedPreferences: sharedPreferences, nodes: nodes); break; + case 28: await _updateMoneroPriority(sharedPreferences); break; + + case 29: + await changeDefaultBitcoinNode(nodes, sharedPreferences); + break; + default: break; } @@ -702,6 +709,26 @@ Future changeDefaultMoneroNode( } } +Future changeDefaultBitcoinNode( + Box nodeSource, SharedPreferences sharedPreferences) async { + const cakeWalletBitcoinNodeUriPattern = '.cakewallet.com'; + final currentBitcoinNodeId = + sharedPreferences.getInt(PreferencesKey.currentBitcoinElectrumSererIdKey); + final currentBitcoinNode = + nodeSource.values.firstWhere((node) => node.key == currentBitcoinNodeId); + final needToReplaceCurrentBitcoinNode = + currentBitcoinNode.uri.toString().contains(cakeWalletBitcoinNodeUriPattern); + + final newCakeWalletBitcoinNode = Node(uri: newCakeWalletBitcoinUri, type: WalletType.bitcoin); + + await nodeSource.add(newCakeWalletBitcoinNode); + + if (needToReplaceCurrentBitcoinNode) { + await sharedPreferences.setInt( + PreferencesKey.currentBitcoinElectrumSererIdKey, newCakeWalletBitcoinNode.key as int); + } +} + Future checkCurrentNodes( Box nodeSource, Box powNodeSource, SharedPreferences sharedPreferences) async { final currentMoneroNodeId = sharedPreferences.getInt(PreferencesKey.currentNodeIdKey); diff --git a/lib/exchange/provider/exolix_exchange_provider.dart b/lib/exchange/provider/exolix_exchange_provider.dart index eb40aff73..9374439f3 100644 --- a/lib/exchange/provider/exolix_exchange_provider.dart +++ b/lib/exchange/provider/exolix_exchange_provider.dart @@ -66,6 +66,7 @@ class ExolixExchangeProvider extends ExchangeProvider { final params = { 'rateType': _getRateType(isFixedRateMode), 'amount': '1', + 'apiToken': apiKey, }; if (isFixedRateMode) { params['coinFrom'] = _normalizeCurrency(to); diff --git a/lib/main.dart b/lib/main.dart index a87bcfdad..db505f15a 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -163,7 +163,7 @@ Future initializeAppConfigs() async { transactionDescriptions: transactionDescriptions, secureStorage: secureStorage, anonpayInvoiceInfo: anonpayInvoiceInfo, - initialMigrationVersion: 28); + initialMigrationVersion: 29); } Future initialSetup( diff --git a/lib/src/widgets/services_updates_widget.dart b/lib/src/widgets/services_updates_widget.dart index 9557ff6b9..65dbe5e40 100644 --- a/lib/src/widgets/services_updates_widget.dart +++ b/lib/src/widgets/services_updates_widget.dart @@ -10,17 +10,24 @@ import 'package:flutter_svg/flutter_svg.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:url_launcher/url_launcher.dart'; -class ServicesUpdatesWidget extends StatelessWidget { +class ServicesUpdatesWidget extends StatefulWidget { final Future servicesResponse; const ServicesUpdatesWidget(this.servicesResponse, {super.key}); + @override + State createState() => _ServicesUpdatesWidgetState(); +} + +class _ServicesUpdatesWidgetState extends State { + bool wasOpened = false; + @override Widget build(BuildContext context) { return Padding( padding: const EdgeInsets.all(8.0), child: FutureBuilder( - future: servicesResponse, + future: widget.servicesResponse, builder: (context, state) { return InkWell( onTap: state.hasData @@ -30,6 +37,8 @@ class ServicesUpdatesWidget extends StatelessWidget { .get() .setString(PreferencesKey.serviceStatusShaKey, state.data!.currentSha); + setState(() => wasOpened = true); + showModalBottomSheet( context: context, shape: RoundedRectangleBorder( diff --git a/lib/utils/feature_flag.dart b/lib/utils/feature_flag.dart index 91a4c67ca..2a29bd949 100644 --- a/lib/utils/feature_flag.dart +++ b/lib/utils/feature_flag.dart @@ -1,5 +1,5 @@ class FeatureFlag { static const bool isCakePayEnabled = false; - static const bool isExolixEnabled = false; + static const bool isExolixEnabled = true; static const bool isInAppTorEnabled = false; } \ No newline at end of file diff --git a/scripts/android/app_env.sh b/scripts/android/app_env.sh index eb1aaaacc..02f874d77 100644 --- a/scripts/android/app_env.sh +++ b/scripts/android/app_env.sh @@ -15,15 +15,15 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN) APP_ANDROID_TYPE=$1 MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="1.11.1" -MONERO_COM_BUILD_NUMBER=78 +MONERO_COM_VERSION="1.12.0" +MONERO_COM_BUILD_NUMBER=79 MONERO_COM_BUNDLE_ID="com.monero.app" MONERO_COM_PACKAGE="com.monero.app" MONERO_COM_SCHEME="monero.com" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="4.14.1" -CAKEWALLET_BUILD_NUMBER=197 +CAKEWALLET_VERSION="4.15.0" +CAKEWALLET_BUILD_NUMBER=198 CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet" CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet" CAKEWALLET_SCHEME="cakewallet" diff --git a/scripts/ios/app_env.sh b/scripts/ios/app_env.sh index 1c778063d..b65d3e7a6 100644 --- a/scripts/ios/app_env.sh +++ b/scripts/ios/app_env.sh @@ -13,13 +13,13 @@ TYPES=($MONERO_COM $CAKEWALLET $HAVEN) APP_IOS_TYPE=$1 MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="1.11.1" -MONERO_COM_BUILD_NUMBER=76 +MONERO_COM_VERSION="1.12.0" +MONERO_COM_BUILD_NUMBER=77 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="4.14.1" -CAKEWALLET_BUILD_NUMBER=216 +CAKEWALLET_VERSION="4.15.0" +CAKEWALLET_BUILD_NUMBER=217 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" HAVEN_NAME="Haven" diff --git a/scripts/macos/app_env.sh b/scripts/macos/app_env.sh index 4c84832e6..19a1e6846 100755 --- a/scripts/macos/app_env.sh +++ b/scripts/macos/app_env.sh @@ -16,13 +16,13 @@ if [ -n "$1" ]; then fi MONERO_COM_NAME="Monero.com" -MONERO_COM_VERSION="1.1.1" -MONERO_COM_BUILD_NUMBER=9 +MONERO_COM_VERSION="1.2.0" +MONERO_COM_BUILD_NUMBER=10 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="1.7.1" -CAKEWALLET_BUILD_NUMBER=56 +CAKEWALLET_VERSION="1.8.0" +CAKEWALLET_BUILD_NUMBER=57 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then From 58b2dfb26cc32a1f445ad916b941fea2c910349f Mon Sep 17 00:00:00 2001 From: Serhii Date: Tue, 19 Mar 2024 21:55:34 +0200 Subject: [PATCH 22/30] Fix deep link handling issue (#1297) * Update root.dart * Revert "Update root.dart" This reverts commit 5808903aafa81c316eb8a32a462ee18392e08f2f. * Update root.dart * increase delay * fix with mobx reaction * lunchUri fix --- lib/src/screens/root/root.dart | 42 ++++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/lib/src/screens/root/root.dart b/lib/src/screens/root/root.dart index 5704c99ad..8a75b78bb 100644 --- a/lib/src/screens/root/root.dart +++ b/lib/src/screens/root/root.dart @@ -5,6 +5,7 @@ import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/reactions/wallet_connect.dart'; import 'package:cake_wallet/utils/device_info.dart'; import 'package:cake_wallet/utils/payment_request.dart'; +import 'package:cw_core/wallet_base.dart'; import 'package:flutter/material.dart'; import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/src/screens/auth/auth_page.dart'; @@ -12,6 +13,7 @@ import 'package:cake_wallet/store/app_store.dart'; import 'package:cake_wallet/store/authentication_store.dart'; import 'package:cake_wallet/entities/qr_scanner.dart'; import 'package:fluttertoast/fluttertoast.dart'; +import 'package:mobx/mobx.dart'; import 'package:uni_links/uni_links.dart'; import 'package:cake_wallet/src/screens/setup_2fa/setup_2fa_enter_code_page.dart'; @@ -49,6 +51,7 @@ class RootState extends State with WidgetsBindingObserver { bool _requestAuth; StreamSubscription? stream; + ReactionDisposer? _walletReactionDisposer; Uri? launchUri; @override @@ -72,6 +75,7 @@ class RootState extends State with WidgetsBindingObserver { @override void dispose() { stream?.cancel(); + _walletReactionDisposer?.call(); super.dispose(); } @@ -169,10 +173,20 @@ class RootState extends State with WidgetsBindingObserver { ); }); } else if (_isValidPaymentUri()) { - widget.navigatorKey.currentState?.pushNamed( - Routes.send, - arguments: PaymentRequest.fromUri(launchUri), - ); + if (widget.authenticationStore.state == AuthenticationState.uninitialized) { + launchUri = null; + } else { + if (widget.appStore.wallet == null) { + waitForWalletInstance(context, launchUri!); + launchUri = null; + } else { + widget.navigatorKey.currentState?.pushNamed( + Routes.send, + arguments: PaymentRequest.fromUri(launchUri), + ); + launchUri = null; + } + } launchUri = null; } else if (isWalletConnectLink) { if (isEVMCompatibleChain(widget.appStore.wallet!.type)) { @@ -233,4 +247,24 @@ class RootState extends State with WidgetsBindingObserver { fontSize: 16.0, ); } + + void waitForWalletInstance(BuildContext context, Uri tempLaunchUri) { + WidgetsBinding.instance.addPostFrameCallback((_) { + if (context.mounted) { + _walletReactionDisposer = reaction( + (_) => widget.appStore.wallet, + (WalletBase? wallet) { + if (wallet != null) { + widget.navigatorKey.currentState?.pushNamed( + Routes.send, + arguments: PaymentRequest.fromUri(tempLaunchUri), + ); + _walletReactionDisposer?.call(); + _walletReactionDisposer = null; + } + }, + ); + } + }); + } } From a0c0ede0998124bf68b89ab95366f63613ea37d0 Mon Sep 17 00:00:00 2001 From: Serhii Date: Wed, 20 Mar 2024 00:44:00 +0200 Subject: [PATCH 23/30] Cw 588 show popup for adding to address book (#1326) * popup for adding to address book * update localization files --- lib/src/screens/send/send_page.dart | 58 ++++++++++++++----- .../contact_list/contact_view_model.dart | 4 +- lib/view_model/send/send_view_model.dart | 29 ++++++++++ res/values/strings_ar.arb | 1 + res/values/strings_bg.arb | 1 + res/values/strings_cs.arb | 1 + res/values/strings_de.arb | 3 +- res/values/strings_en.arb | 1 + res/values/strings_es.arb | 1 + res/values/strings_fr.arb | 1 + res/values/strings_ha.arb | 1 + res/values/strings_hi.arb | 1 + res/values/strings_hr.arb | 1 + res/values/strings_id.arb | 1 + res/values/strings_it.arb | 1 + res/values/strings_ja.arb | 1 + res/values/strings_ko.arb | 3 +- res/values/strings_my.arb | 1 + res/values/strings_nl.arb | 1 + res/values/strings_pl.arb | 1 + res/values/strings_pt.arb | 1 + res/values/strings_ru.arb | 1 + res/values/strings_th.arb | 1 + res/values/strings_tl.arb | 1 + res/values/strings_tr.arb | 1 + res/values/strings_uk.arb | 1 + res/values/strings_ur.arb | 1 + res/values/strings_yo.arb | 1 + res/values/strings_zh.arb | 1 + 29 files changed, 103 insertions(+), 18 deletions(-) diff --git a/lib/src/screens/send/send_page.dart b/lib/src/screens/send/send_page.dart index a3b7eaf85..a4c095739 100644 --- a/lib/src/screens/send/send_page.dart +++ b/lib/src/screens/send/send_page.dart @@ -1,4 +1,5 @@ import 'package:cake_wallet/core/auth_service.dart'; +import 'package:cake_wallet/entities/contact_record.dart'; import 'package:cake_wallet/entities/fiat_currency.dart'; import 'package:cake_wallet/entities/template.dart'; import 'package:cake_wallet/reactions/wallet_connect.dart'; @@ -48,6 +49,7 @@ class SendPage extends BasePage { final PaymentRequest? initialPaymentRequest; bool _effectsInstalled = false; + ContactRecord? newContactAddress; @override String get title => S.current.send; @@ -443,22 +445,50 @@ class SendPage extends BasePage { } if (state is TransactionCommitted) { - String alertContent; - if (sendViewModel.walletType == WalletType.solana) { - alertContent = - '${S.of(_dialogContext).send_success(sendViewModel.selectedCryptoCurrency.toString())}. ${S.of(_dialogContext).waitFewSecondForTxUpdate}'; + newContactAddress = + newContactAddress ?? sendViewModel.newContactAddress(); + + final successMessage = S.of(_dialogContext).send_success( + sendViewModel.selectedCryptoCurrency.toString()); + + final waitMessage = sendViewModel.walletType == WalletType.solana + ? '. ${S.of(_dialogContext).waitFewSecondForTxUpdate}' : ''; + + final newContactMessage = newContactAddress != null + ? '\n${S.of(context).add_contact_to_address_book}' : ''; + + final alertContent = + "$successMessage$waitMessage$newContactMessage"; + + if (newContactAddress != null) { + return AlertWithTwoActions( + alertTitle: '', + alertContent: alertContent, + rightButtonText: S.of(_dialogContext).add_contact, + leftButtonText: S.of(_dialogContext).ignor, + actionRightButton: () { + Navigator.of(_dialogContext).pop(); + RequestReviewHandler.requestReview(); + Navigator.of(context).pushNamed( + Routes.addressBookAddContact, + arguments: newContactAddress); + newContactAddress = null; + }, + actionLeftButton: () { + Navigator.of(_dialogContext).pop(); + RequestReviewHandler.requestReview(); + newContactAddress = null; + }); } else { - alertContent = S.of(_dialogContext).send_success( - sendViewModel.selectedCryptoCurrency.toString()); + return AlertWithOneAction( + alertTitle: '', + alertContent: alertContent, + buttonText: S.of(_dialogContext).ok, + buttonAction: () { + Navigator.of(_dialogContext).pop(); + RequestReviewHandler.requestReview(); + }); } - return AlertWithOneAction( - alertTitle: '', - alertContent: alertContent, - buttonText: S.of(_dialogContext).ok, - buttonAction: () { - Navigator.of(_dialogContext).pop(); - RequestReviewHandler.requestReview(); - }); } return Offstage(); diff --git a/lib/view_model/contact_list/contact_view_model.dart b/lib/view_model/contact_list/contact_view_model.dart index 258348d3d..053cfe4c5 100644 --- a/lib/view_model/contact_list/contact_view_model.dart +++ b/lib/view_model/contact_list/contact_view_model.dart @@ -48,11 +48,11 @@ abstract class ContactViewModelBase with Store { currency = null; } - Future save() async { + Future save() async { try { state = IsExecutingState(); - if (_contact != null) { + if (_contact != null && _contact!.original.isInBox) { _contact?.name = name; _contact?.address = address; _contact?.type = currency!; diff --git a/lib/view_model/send/send_view_model.dart b/lib/view_model/send/send_view_model.dart index 507ed14cc..7636c485a 100644 --- a/lib/view_model/send/send_view_model.dart +++ b/lib/view_model/send/send_view_model.dart @@ -1,3 +1,4 @@ +import 'package:cake_wallet/entities/contact.dart'; import 'package:cake_wallet/entities/priority_for_wallet_type.dart'; import 'package:cake_wallet/entities/transaction_description.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; @@ -420,6 +421,34 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor } } + ContactRecord? newContactAddress () { + + final Set contactAddresses = + Set.from(contactListViewModel.contacts.map((contact) => contact.address)) + ..addAll(contactListViewModel.walletContacts.map((contact) => contact.address)); + + for (var output in outputs) { + String address; + if (output.isParsedAddress) { + address = output.parsedAddress.addresses.first; + } else { + address = output.address; + } + + if (address.isNotEmpty && !contactAddresses.contains(address)) { + + return ContactRecord( + contactListViewModel.contactSource, + Contact( + name: '', + address: address, + type: selectedCryptoCurrency, + )); + } + } + return null; + } + String translateErrorMessage( String error, WalletType walletType, diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index a5ea72ce7..900f59135 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "ﺎﻨﻫ ﺔﻄﺸﻨﻟﺍ ﺕﻻﺎﺼﺗﻻﺍ ﺮﻬﻈﺘﺳ", "add": "إضافة", "add_contact": "ﻝﺎﺼﺗﺍ ﺔﻬﺟ ﺔﻓﺎﺿﺇ", + "add_contact_to_address_book": "هل ترغب في إضافة جهة الاتصال هذه إلى دفتر العناوين الخاص بك؟", "add_custom_node": "إضافة عقدة مخصصة جديدة", "add_custom_redemption": "إضافة استرداد مخصص", "add_fund_to_card": "أضف أموالاً مدفوعة مسبقًا إلى البطاقات (حتى ${value})", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index a42460619..3e8cd148e 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Тук ще се появят активни връзки", "add": "Добави", "add_contact": "Добави контакт", + "add_contact_to_address_book": "Искате ли да добавите този контакт към вашата адресна книга?", "add_custom_node": "Добавяне на нов персонализиран Node", "add_custom_redemption": "Добавете персонализиран Redemption", "add_fund_to_card": "Добавете предплатени средства в картите (до ${value})", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 8970d394a..8a5213821 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Zde se zobrazí aktivní připojení", "add": "Přidat", "add_contact": "Přidat kontakt", + "add_contact_to_address_book": "Chcete přidat tento kontakt do svého adresáře?", "add_custom_node": "Přidat vlastní uzel", "add_custom_redemption": "Přidat vlastní uplatnění", "add_fund_to_card": "Všechny předplacené prostředky na kartě (až ${value})", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 93d421061..549f6f775 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Hier werden aktive Verbindungen angezeigt", "add": "Hinzufügen", "add_contact": "Kontakt hinzufügen", + "add_contact_to_address_book": "Möchten Sie diesen Kontakt zu Ihrem Adressbuch hinzufügen?", "add_custom_node": "Neuen benutzerdefinierten Knoten hinzufügen", "add_custom_redemption": "Benutzerdefinierte Einlösung hinzufügen", "add_fund_to_card": "Prepaid-Guthaben zu den Karten hinzufügen (bis zu ${value})", @@ -410,8 +411,8 @@ "placeholder_transactions": "Ihre Transaktionen werden hier angezeigt", "please_fill_totp": "Bitte geben Sie den 8-stelligen Code ein, der auf Ihrem anderen Gerät vorhanden ist", "please_make_selection": "Bitte treffen Sie unten eine Auswahl zum Erstellen oder Wiederherstellen Ihrer Wallet.", - "please_reference_document": "Bitte verweisen Sie auf die folgenden Dokumente, um weitere Informationen zu erhalten.", "Please_reference_document": "Weitere Informationen finden Sie in den Dokumenten unten.", + "please_reference_document": "Bitte verweisen Sie auf die folgenden Dokumente, um weitere Informationen zu erhalten.", "please_select": "Bitte auswählen:", "please_select_backup_file": "Bitte wählen Sie die Sicherungsdatei und geben Sie das Sicherungskennwort ein.", "please_try_to_connect_to_another_node": "Bitte versuchen Sie, sich mit einem anderen Knoten zu verbinden", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 4ccade317..9b1610da5 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Active connections will appear here", "add": "Add", "add_contact": "Add contact", + "add_contact_to_address_book": "Would you like to add this contact to your address book?", "add_custom_node": "Add New Custom Node", "add_custom_redemption": "Add Custom Redemption", "add_fund_to_card": "Add prepaid funds to the cards (up to ${value})", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 611f3bd35..4847f5521 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Las conexiones activas aparecerán aquí", "add": "Añadir", "add_contact": "Agregar contacto", + "add_contact_to_address_book": "¿Le gustaría agregar este contacto a su libreta de direcciones?", "add_custom_node": "Agregar nuevo nodo personalizado", "add_custom_redemption": "Agregar redención personalizada", "add_fund_to_card": "Agregar fondos prepagos a las tarjetas (hasta ${value})", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index f00a85310..d1390a5ca 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Les connexions actives apparaîtront ici", "add": "Ajouter", "add_contact": "Ajouter le contact", + "add_contact_to_address_book": "Souhaitez-vous ajouter ce contact à votre carnet d'adresses?", "add_custom_node": "Ajouter un nouveau nœud personnalisé", "add_custom_redemption": "Ajouter un remboursement personnalisé", "add_fund_to_card": "Ajouter des fonds prépayés aux cartes (jusqu'à ${value})", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index ab314af7f..e9bd604d2 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Haɗin kai mai aiki zai bayyana a nan", "add": "Ƙara", "add_contact": "Ƙara lamba", + "add_contact_to_address_book": "Kuna so ku ƙara wannan lamba zuwa littafin adireshinku?", "add_custom_node": "Ƙara Sabon Kulli na Custom", "add_custom_redemption": "Ƙara Ceto na Musamman", "add_fund_to_card": "Ƙara kuɗin da aka riga aka biya a katunan (har zuwa ${value})", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index da7d97c46..535fd0264 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "सक्रिय कनेक्शन यहां दिखाई देंगे", "add": "जोड़ना", "add_contact": "संपर्क जोड़ें", + "add_contact_to_address_book": "क्या आप इस संपर्क को अपनी एड्रेस बुक में जोड़ना चाहेंगे?", "add_custom_node": "नया कस्टम नोड जोड़ें", "add_custom_redemption": "कस्टम रिडेम्पशन जोड़ें", "add_fund_to_card": "कार्ड में प्रीपेड धनराशि जोड़ें (${value} तक)", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 22b486a1c..9a7cab450 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Ovdje će se pojaviti aktivne veze", "add": "Dodaj", "add_contact": "Dodaj kontakt", + "add_contact_to_address_book": "Želite li dodati ovaj kontakt u svoj adresar?", "add_custom_node": "Dodaj novi prilagođeni čvor", "add_custom_redemption": "Dodaj prilagođeni otkup", "add_fund_to_card": "Dodajte unaprijed uplaćena sredstva na kartice (do ${value})", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index a2f3ed017..f29298c4f 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Koneksi aktif akan muncul di sini", "add": "Menambahkan", "add_contact": "Tambah kontak", + "add_contact_to_address_book": "Apakah Anda ingin menambahkan kontak ini ke buku alamat Anda?", "add_custom_node": "Tambahkan Node Kustom Baru", "add_custom_redemption": "Tambahkan Tukar Kustom", "add_fund_to_card": "Tambahkan dana pra-bayar ke kartu (hingga ${value})", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 015b63d47..82dd6b976 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Le connessioni attive verranno visualizzate qui", "add": "Aggiungi", "add_contact": "Aggiungi contatto", + "add_contact_to_address_book": "Vorresti aggiungere questo contatto alla tua rubrica?", "add_custom_node": "Aggiungi nuovo nodo personalizzato", "add_custom_redemption": "Aggiungi riscatto personalizzato", "add_fund_to_card": "Aggiungi fondi prepagati alle carte (fino a ${value})", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 36ec1932b..95a7643b0 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "アクティブな接続がここに表示されます", "add": "加える", "add_contact": "連絡先を追加", + "add_contact_to_address_book": "この連絡先をアドレス帳に追加しますか?", "add_custom_node": "新しいカスタム ノードを追加", "add_custom_redemption": "カスタム引き換えを追加", "add_fund_to_card": "プリペイド資金をカードに追加します(最大 ${value})", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index b51f42e8f..e8b208c28 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "활성 연결이 여기에 표시됩니다", "add": "더하다", "add_contact": "주소록에 추가", + "add_contact_to_address_book": "이 연락처를 주소록에 추가 하시겠습니까?", "add_custom_node": "새 사용자 정의 노드 추가", "add_custom_redemption": "사용자 지정 상환 추가", "add_fund_to_card": "카드에 선불 금액 추가(최대 ${value})", @@ -410,8 +411,8 @@ "placeholder_transactions": "거래가 여기에 표시됩니다", "please_fill_totp": "다른 기기에 있는 8자리 코드를 입력하세요.", "please_make_selection": "아래에서 선택하십시오 지갑 만들기 또는 복구.", - "please_reference_document": "자세한 내용은 아래 문서를 참조하십시오.", "Please_reference_document": "자세한 내용은 아래 문서를 참조하십시오.", + "please_reference_document": "자세한 내용은 아래 문서를 참조하십시오.", "please_select": "선택 해주세요:", "please_select_backup_file": "백업 파일을 선택하고 백업 암호를 입력하십시오.", "please_try_to_connect_to_another_node": "다른 노드에 연결을 시도하십시오", diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index fe719a82b..42ea07cb6 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "လက်ရှိချိတ်ဆက်မှုများ ဤနေရာတွင် ပေါ်လာပါမည်။", "add": "ထည့်ပါ။", "add_contact": "အဆက်အသွယ်ထည့်ပါ။", + "add_contact_to_address_book": "ဒီအဆက်အသွယ်ကိုမင်းရဲ့လိပ်စာစာအုပ်နဲ့ထပ်ထည့်ချင်ပါသလား။", "add_custom_node": "စိတ်ကြိုက် Node အသစ်ကို ထည့်ပါ။", "add_custom_redemption": "စိတ်ကြိုက်ရွေးယူမှုကို ထည့်ပါ။", "add_fund_to_card": "ကတ်များသို့ ကြိုတင်ငွေပေးငွေများ ထည့်ပါ (${value} အထိ)", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index ed5054abe..a00a12338 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Actieve verbindingen worden hier weergegeven", "add": "Toevoegen", "add_contact": "Contactpersoon toevoegen", + "add_contact_to_address_book": "Wilt u dit contact toevoegen aan uw adresboek?", "add_custom_node": "Voeg een nieuw aangepast knooppunt toe", "add_custom_redemption": "Voeg aangepaste inwisseling toe", "add_fund_to_card": "Voeg prepaid tegoed toe aan de kaarten (tot ${value})", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index aa567799e..1ad616bc9 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Tutaj pojawią się aktywne połączenia", "add": "Dodaj", "add_contact": "Dodaj kontakt", + "add_contact_to_address_book": "Czy chciałbyś dodać ten kontakt do swojej książki adresowej?", "add_custom_node": "Dodaj nowy węzeł niestandardowy", "add_custom_redemption": "Dodaj niestandardowe wykorzystanie", "add_fund_to_card": "Dodaj przedpłacone środki do kart (do ${value})", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index b0aa7cab5..c1b579186 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Conexões ativas aparecerão aqui", "add": "Adicionar", "add_contact": "Adicionar contato", + "add_contact_to_address_book": "Você gostaria de adicionar esse contato ao seu catálogo de endereços?", "add_custom_node": "Adicionar novo nó personalizado", "add_custom_redemption": "Adicionar resgate personalizado", "add_fund_to_card": "Adicionar fundos pré-pagos aos cartões (até ${value})", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index bfb7b62d7..f327f126a 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Здесь появятся активные подключения", "add": "Добавить", "add_contact": "Добавить контакт", + "add_contact_to_address_book": "Хотели бы вы добавить этот контакт в свою адресную книгу?", "add_custom_node": "Добавить новый пользовательский узел", "add_custom_redemption": "Добавить пользовательское погашение", "add_fund_to_card": "Добавить предоплаченные средства на карты (до ${value})", diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index 5da17828f..255b80df7 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "การเชื่อมต่อที่ใช้งานอยู่จะปรากฏที่นี่", "add": "เพิ่ม", "add_contact": "เพิ่มผู้ติดต่อ", + "add_contact_to_address_book": "คุณต้องการเพิ่มผู้ติดต่อนี้ในสมุดที่อยู่ของคุณหรือไม่?", "add_custom_node": "เพิ่มจุดโหนดแบบกำหนดเอง", "add_custom_redemption": "เพิ่มการรับคืนที่กำหนดเอง", "add_fund_to_card": "เพิ่มเงินสำรองไว้บนบัตร (ถึง ${value})", diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index e0a0b1eae..1d7063881 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Lalabas dito ang mga aktibong koneksyon", "add": "Idagdag", "add_contact": "Magdagdag ng contact", + "add_contact_to_address_book": "Nais mo bang idagdag ang contact na ito sa iyong address book?", "add_custom_node": "Magdagdag ng bagong pasadyang node", "add_custom_redemption": "Magdagdag ng pasadyang pagtubos", "add_fund_to_card": "Magdagdag ng prepaid na pondo sa mga kard (hanggang sa ${value})", diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index c4d64305e..99879d5ef 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Aktif bağlantılar burada görünecek", "add": "Ekle", "add_contact": "Kişi ekle", + "add_contact_to_address_book": "Bu kişiyi adres defterinize eklemek ister misiniz?", "add_custom_node": "Yeni Özel Düğüm Ekleme", "add_custom_redemption": "Özel Bozdurma Ekle", "add_fund_to_card": "Ön ödemeli kartlara para ekle (En fazla yüklenebilir tutar: ${value})", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 59371cdbe..63c59d475 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Тут з’являться активні підключення", "add": "Добавити", "add_contact": "Додати контакт", + "add_contact_to_address_book": "Хотіли б ви додати цей контакт до своєї адресної книги?", "add_custom_node": "Додати новий спеціальний вузол", "add_custom_redemption": "Додати спеціальне погашення", "add_fund_to_card": "Додайте передплачені кошти на картки (до ${value})", diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index 73b758561..08212c0b1 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "۔ﮯﮔ ﮞﻮﮨ ﺮﮨﺎﻇ ﮞﺎﮩﯾ ﺰﻨﺸﮑﻨﮐ ﻝﺎﻌﻓ", "add": "شامل کریں۔", "add_contact": "۔ﮟﯾﺮﮐ ﻞﻣﺎﺷ ﮧﻄﺑﺍﺭ", + "add_contact_to_address_book": "کیا آپ اس رابطہ کو اپنی ایڈریس بک میں شامل کرنا چاہیں گے؟", "add_custom_node": "نیا کسٹم نوڈ شامل کریں۔", "add_custom_redemption": "حسب ضرورت چھٹکارا شامل کریں۔", "add_fund_to_card": "کارڈز میں پری پیڈ فنڈز شامل کریں (${value} تک)", diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index 4ccf10ff6..f9b198843 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "Awọn asopọ ti nṣiṣe lọwọ yoo han nibi", "add": "Fikún", "add_contact": "Fi olubasọrọ kun", + "add_contact_to_address_book": "Ṣe o fẹ lati ṣafikun olubasọrọ yii si iwe adirẹsi rẹ?", "add_custom_node": "Fikún apẹka títun t'ẹ́ pààrọ̀", "add_custom_redemption": "Tẹ̀ iye owó t'ẹ́ fẹ́ ná", "add_fund_to_card": "Ẹ fikún owó sí àwọn káàdì (kò tóbi ju ${value})", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 3cff27996..8a61a6a4a 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -9,6 +9,7 @@ "activeConnectionsPrompt": "活动连接将出现在这里", "add": "添加", "add_contact": "增加联系人", + "add_contact_to_address_book": "您想将此联系人添加到您的通讯录中吗?", "add_custom_node": "添加新的自定义节点", "add_custom_redemption": "添加自定义兑换", "add_fund_to_card": "向卡中添加预付资金(最多 ${value})", From 5a7a0e01a735849435b56930a3efa998805db657 Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Thu, 21 Mar 2024 04:51:57 +0200 Subject: [PATCH 24/30] Litcoin bitcoin cash fix (#1339) * Make address to output script a single entry point Fix network type for bitcoin cash * Add MoonPay to sell polygon * Normalize currency for moonpay widget * Minor fix * fix: litecoin & bch address types * fix: remove print * fix: network decode location * fix: missing place additional network type * fix: wrong initial address page type * fix: initial address generation * fix: btc exchange sending all, bch without change addresses * Minor fixes * Update app versions [skip ci] --------- Co-authored-by: Rafael Saes --- assets/text/Release_Notes.txt | 4 - cw_bitcoin/lib/address_to_output_script.dart | 3 + cw_bitcoin/lib/bitcoin_address_record.dart | 15 +- cw_bitcoin/lib/bitcoin_wallet.dart | 8 +- cw_bitcoin/lib/electrum_wallet.dart | 56 ++- cw_bitcoin/lib/electrum_wallet_addresses.dart | 41 +- cw_bitcoin/lib/electrum_wallet_snapshot.dart | 10 +- cw_bitcoin/lib/script_hash.dart | 7 +- cw_bitcoin/pubspec.lock | 10 +- cw_bitcoin/pubspec.yaml | 4 +- .../lib/src/bitcoin_cash_wallet.dart | 28 +- .../src/bitcoin_cash_wallet_addresses.dart | 1 + cw_bitcoin_cash/pubspec.yaml | 2 +- ios/Podfile.lock | 4 +- lib/bitcoin/cw_bitcoin.dart | 24 +- lib/buy/moonpay/moonpay_provider.dart | 10 +- lib/core/address_validator.dart | 2 +- lib/entities/provider_types.dart | 7 +- lib/src/screens/exchange/exchange_page.dart | 21 +- .../exchange/exchange_template_page.dart | 365 ++++++++---------- .../exchange/widgets/exchange_card.dart | 242 ++++++------ lib/src/screens/send/send_template_page.dart | 12 +- lib/src/screens/send/widgets/send_card.dart | 23 +- .../exchange/exchange_view_model.dart | 27 +- macos/Podfile.lock | 2 +- pubspec_base.yaml | 2 +- scripts/android/app_env.sh | 4 +- scripts/ios/app_env.sh | 4 +- scripts/macos/app_env.sh | 4 +- tool/configure.dart | 2 +- 30 files changed, 497 insertions(+), 447 deletions(-) diff --git a/assets/text/Release_Notes.txt b/assets/text/Release_Notes.txt index d8d4ed830..83e18c18e 100644 --- a/assets/text/Release_Notes.txt +++ b/assets/text/Release_Notes.txt @@ -1,5 +1 @@ -Monero enhancements -Bitcoin support different address types (Taproot, Segwit P2WPKH/P2WSH, Legacy) -In-App live status page for the app services -Add Exolix exchange provider Bug fixes and enhancements \ No newline at end of file diff --git a/cw_bitcoin/lib/address_to_output_script.dart b/cw_bitcoin/lib/address_to_output_script.dart index 6ae50132b..892f7a0d6 100644 --- a/cw_bitcoin/lib/address_to_output_script.dart +++ b/cw_bitcoin/lib/address_to_output_script.dart @@ -3,6 +3,9 @@ import 'package:bitcoin_base/bitcoin_base.dart' as bitcoin; List addressToOutputScript(String address, bitcoin.BasedUtxoNetwork network) { try { + if (network == bitcoin.BitcoinCashNetwork.mainnet) { + return bitcoin.BitcoinCashAddress(address).baseAddress.toScriptPubKey().toBytes(); + } return bitcoin.addressToOutputScript(address: address, network: network); } catch (err) { print(err); diff --git a/cw_bitcoin/lib/bitcoin_address_record.dart b/cw_bitcoin/lib/bitcoin_address_record.dart index d8d908230..d1c3b6a61 100644 --- a/cw_bitcoin/lib/bitcoin_address_record.dart +++ b/cw_bitcoin/lib/bitcoin_address_record.dart @@ -1,5 +1,4 @@ import 'dart:convert'; -import 'package:bitbox/bitbox.dart' as bitbox; import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:cw_bitcoin/script_hash.dart' as sh; @@ -20,10 +19,9 @@ class BitcoinAddressRecord { _balance = balance, _name = name, _isUsed = isUsed, - scriptHash = - scriptHash ?? (network != null ? sh.scriptHash(address, network: network) : null); + scriptHash = scriptHash ?? sh.scriptHash(address, network: network); - factory BitcoinAddressRecord.fromJSON(String jsonSource, BasedUtxoNetwork? network) { + factory BitcoinAddressRecord.fromJSON(String jsonSource, BasedUtxoNetwork network) { final decoded = json.decode(jsonSource) as Map; return BitcoinAddressRecord( @@ -39,9 +37,7 @@ class BitcoinAddressRecord { .firstWhere((type) => type.toString() == decoded['type'] as String) : SegwitAddresType.p2wpkh, scriptHash: decoded['scriptHash'] as String?, - network: (decoded['network'] as String?) == null - ? network - : BasedUtxoNetwork.fromName(decoded['network'] as String), + network: network, ); } @@ -56,7 +52,7 @@ class BitcoinAddressRecord { String _name; bool _isUsed; String? scriptHash; - BasedUtxoNetwork? network; + BasedUtxoNetwork network; int get txCount => _txCount; @@ -76,8 +72,6 @@ class BitcoinAddressRecord { @override int get hashCode => address.hashCode; - String get cashAddr => bitbox.Address.toCashAddress(address); - BitcoinAddressType type; String updateScriptHash(BasedUtxoNetwork network) { @@ -95,6 +89,5 @@ class BitcoinAddressRecord { 'balance': balance, 'type': type.toString(), 'scriptHash': scriptHash, - 'network': network?.value, }); } diff --git a/cw_bitcoin/lib/bitcoin_wallet.dart b/cw_bitcoin/lib/bitcoin_wallet.dart index 3b3e9c636..bf59e8637 100644 --- a/cw_bitcoin/lib/bitcoin_wallet.dart +++ b/cw_bitcoin/lib/bitcoin_wallet.dart @@ -92,8 +92,10 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store { required Box unspentCoinsInfo, required String password, }) async { - final snp = await ElectrumWalletSnapshot.load(name, walletInfo.type, password, - walletInfo.network != null ? BasedUtxoNetwork.fromName(walletInfo.network!) : null); + final network = walletInfo.network != null + ? BasedUtxoNetwork.fromName(walletInfo.network!) + : BitcoinNetwork.mainnet; + final snp = await ElectrumWalletSnapshot.load(name, walletInfo.type, password, network); return BitcoinWallet( mnemonic: snp.mnemonic, @@ -106,7 +108,7 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store { initialRegularAddressIndex: snp.regularAddressIndex, initialChangeAddressIndex: snp.changeAddressIndex, addressPageType: snp.addressPageType, - networkParam: snp.network, + networkParam: network, ); } } diff --git a/cw_bitcoin/lib/electrum_wallet.dart b/cw_bitcoin/lib/electrum_wallet.dart index c3f40a235..86fbd6dbe 100644 --- a/cw_bitcoin/lib/electrum_wallet.dart +++ b/cw_bitcoin/lib/electrum_wallet.dart @@ -75,11 +75,7 @@ abstract class ElectrumWalletBase } : {}), this.unspentCoinsInfo = unspentCoinsInfo, - this.network = networkType == bitcoin.bitcoin - ? BitcoinNetwork.mainnet - : networkType == litecoinNetwork - ? LitecoinNetwork.mainnet - : BitcoinNetwork.testnet, + this.network = _getNetwork(networkType, currency), this.isTestnet = networkType == bitcoin.testnet, super(walletInfo) { this.electrumClient = electrumClient ?? ElectrumClient(); @@ -192,12 +188,13 @@ abstract class ElectrumWalletBase } } - Future _estimateTxFeeAndInputsToUse( + Future estimateTxFeeAndInputsToUse( int credentialsAmount, bool sendAll, List outputAddresses, List outputs, - BitcoinTransactionCredentials transactionCredentials, + int? feeRate, + BitcoinTransactionPriority? priority, {int? inputsCount}) async { final utxos = []; List privateKeys = []; @@ -212,7 +209,7 @@ abstract class ElectrumWalletBase allInputsAmount += utx.value; leftAmount = leftAmount - utx.value; - final address = _addressTypeFromStr(utx.address, network); + final address = addressTypeFromStr(utx.address, network); final privkey = generateECPrivate( hd: utx.bitcoinAddressRecord.isHidden ? walletAddresses.sideHd : walletAddresses.mainHd, index: utx.bitcoinAddressRecord.index, @@ -249,7 +246,7 @@ abstract class ElectrumWalletBase if (!sendAll) { if (changeValue > 0) { final changeAddress = await walletAddresses.getChangeAddress(); - final address = _addressTypeFromStr(changeAddress, network); + final address = addressTypeFromStr(changeAddress, network); outputAddresses.add(address); outputs.add(BitcoinOutput(address: address, value: BigInt.from(changeValue))); } @@ -258,9 +255,9 @@ abstract class ElectrumWalletBase final estimatedSize = BitcoinTransactionBuilder.estimateTransactionSize( utxos: utxos, outputs: outputs, network: network); - final fee = transactionCredentials.feeRate != null - ? feeAmountWithFeeRate(transactionCredentials.feeRate!, 0, 0, size: estimatedSize) - : feeAmountForPriority(transactionCredentials.priority!, 0, 0, size: estimatedSize); + int fee = feeRate != null + ? feeAmountWithFeeRate(feeRate, 0, 0, size: estimatedSize) + : feeAmountForPriority(priority!, 0, 0, size: estimatedSize); if (fee == 0) { throw BitcoinTransactionWrongBalanceException(currency); @@ -297,8 +294,8 @@ abstract class ElectrumWalletBase outputs.removeLast(); } - return _estimateTxFeeAndInputsToUse( - credentialsAmount, sendAll, outputAddresses, outputs, transactionCredentials, + return estimateTxFeeAndInputsToUse( + credentialsAmount, sendAll, outputAddresses, outputs, feeRate, priority, inputsCount: utxos.length + 1); } } @@ -319,7 +316,7 @@ abstract class ElectrumWalletBase for (final out in transactionCredentials.outputs) { final outputAddress = out.isParsedAddress ? out.extractedAddress! : out.address; - final address = _addressTypeFromStr(outputAddress, network); + final address = addressTypeFromStr(outputAddress, network); outputAddresses.add(address); @@ -344,8 +341,14 @@ abstract class ElectrumWalletBase } } - final estimatedTx = await _estimateTxFeeAndInputsToUse( - credentialsAmount, sendAll, outputAddresses, outputs, transactionCredentials); + final estimatedTx = await estimateTxFeeAndInputsToUse( + credentialsAmount, + sendAll, + outputAddresses, + outputs, + transactionCredentials.feeRate, + transactionCredentials.priority, + ); final txb = BitcoinTransactionBuilder( utxos: estimatedTx.utxos, @@ -391,7 +394,6 @@ abstract class ElectrumWalletBase ? SegwitAddresType.p2wpkh.toString() : walletInfo.addressPageType.toString(), 'balance': balance[currency]?.toJSON(), - 'network_type': network == BitcoinNetwork.testnet ? 'testnet' : 'mainnet', }); int feeRate(TransactionPriority priority) { @@ -852,6 +854,22 @@ abstract class ElectrumWalletBase final HD = index == null ? hd : hd.derive(index); return base64Encode(HD.signMessage(message)); } + + static BasedUtxoNetwork _getNetwork(bitcoin.NetworkType networkType, CryptoCurrency? currency) { + if (networkType == bitcoin.bitcoin && currency == CryptoCurrency.bch) { + return BitcoinCashNetwork.mainnet; + } + + if (networkType == litecoinNetwork) { + return LitecoinNetwork.mainnet; + } + + if (networkType == bitcoin.testnet) { + return BitcoinNetwork.testnet; + } + + return BitcoinNetwork.mainnet; + } } class EstimateTxParams { @@ -879,7 +897,7 @@ class EstimatedTxResult { final int amount; } -BitcoinBaseAddress _addressTypeFromStr(String address, BasedUtxoNetwork network) { +BitcoinBaseAddress addressTypeFromStr(String address, BasedUtxoNetwork network) { if (P2pkhAddress.regex.hasMatch(address)) { return P2pkhAddress.fromAddress(address: address, network: network); } else if (P2shAddress.regex.hasMatch(address)) { diff --git a/cw_bitcoin/lib/electrum_wallet_addresses.dart b/cw_bitcoin/lib/electrum_wallet_addresses.dart index 5880f5a19..828bda8af 100644 --- a/cw_bitcoin/lib/electrum_wallet_addresses.dart +++ b/cw_bitcoin/lib/electrum_wallet_addresses.dart @@ -1,6 +1,5 @@ import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:bitcoin_flutter/bitcoin_flutter.dart' as bitcoin; -import 'package:bitbox/bitbox.dart' as bitbox; import 'package:cw_bitcoin/bitcoin_address_record.dart'; import 'package:cw_bitcoin/electrum.dart'; import 'package:cw_core/wallet_addresses.dart'; @@ -30,6 +29,7 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { List? initialAddresses, Map? initialRegularAddressIndex, Map? initialChangeAddressIndex, + BitcoinAddressType? initialAddressPageType, }) : _addresses = ObservableList.of((initialAddresses ?? []).toSet()), addressesByReceiveType = ObservableList.of(([]).toSet()), @@ -41,9 +41,10 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { .toSet()), currentReceiveAddressIndexByType = initialRegularAddressIndex ?? {}, currentChangeAddressIndexByType = initialChangeAddressIndex ?? {}, - _addressPageType = walletInfo.addressPageType != null - ? BitcoinAddressType.fromValue(walletInfo.addressPageType!) - : SegwitAddresType.p2wpkh, + _addressPageType = initialAddressPageType ?? + (walletInfo.addressPageType != null + ? BitcoinAddressType.fromValue(walletInfo.addressPageType!) + : SegwitAddresType.p2wpkh), super(walletInfo) { updateAddressesByMatch(); } @@ -52,10 +53,6 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { static const defaultChangeAddressesCount = 17; static const gap = 20; - static String toCashAddr(String address) => bitbox.Address.toCashAddress(address); - - static String toLegacy(String address) => bitbox.Address.toLegacyAddress(address); - final ObservableList _addresses; // Matched by addressPageType late ObservableList addressesByReceiveType; @@ -67,7 +64,7 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { final bitcoin.HDWallet sideHd; @observable - BitcoinAddressType _addressPageType = SegwitAddresType.p2wpkh; + late BitcoinAddressType _addressPageType; @computed BitcoinAddressType get addressPageType => _addressPageType; @@ -97,7 +94,7 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { } } - return walletInfo.type == WalletType.bitcoinCash ? toCashAddr(receiveAddress) : receiveAddress; + return receiveAddress; } @observable @@ -105,9 +102,6 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { @override set address(String addr) { - if (addr.startsWith('bitcoincash:')) { - addr = toLegacy(addr); - } final addressRecord = _addresses.firstWhere((addressRecord) => addressRecord.address == addr); previousAddressRecord = addressRecord; @@ -155,11 +149,17 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { @override Future init() async { - await _generateInitialAddresses(); - await _generateInitialAddresses(type: P2pkhAddressType.p2pkh); - await _generateInitialAddresses(type: P2shAddressType.p2wpkhInP2sh); - await _generateInitialAddresses(type: SegwitAddresType.p2tr); - await _generateInitialAddresses(type: SegwitAddresType.p2wsh); + if (walletInfo.type == WalletType.bitcoinCash) { + await _generateInitialAddresses(type: P2pkhAddressType.p2pkh); + } else if (walletInfo.type == WalletType.litecoin) { + await _generateInitialAddresses(); + } else if (walletInfo.type == WalletType.bitcoin) { + await _generateInitialAddresses(); + await _generateInitialAddresses(type: P2pkhAddressType.p2pkh); + await _generateInitialAddresses(type: P2shAddressType.p2wpkhInP2sh); + await _generateInitialAddresses(type: SegwitAddresType.p2tr); + await _generateInitialAddresses(type: SegwitAddresType.p2wsh); + } updateAddressesByMatch(); updateReceiveAddresses(); updateChangeAddresses(); @@ -229,9 +229,6 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { @action void updateAddress(String address, String label) { - if (address.startsWith('bitcoincash:')) { - address = toLegacy(address); - } final addressRecord = _addresses.firstWhere((addressRecord) => addressRecord.address == address); addressRecord.setNewName(label); @@ -261,7 +258,7 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { addressRecord.isHidden && !addressRecord.isUsed && // TODO: feature to change change address type. For now fixed to p2wpkh, the cheapest type - addressRecord.type == SegwitAddresType.p2wpkh); + (walletInfo.type != WalletType.bitcoin || addressRecord.type == SegwitAddresType.p2wpkh)); changeAddresses.addAll(newAddresses); } diff --git a/cw_bitcoin/lib/electrum_wallet_snapshot.dart b/cw_bitcoin/lib/electrum_wallet_snapshot.dart index 98c3753db..6f76ab312 100644 --- a/cw_bitcoin/lib/electrum_wallet_snapshot.dart +++ b/cw_bitcoin/lib/electrum_wallet_snapshot.dart @@ -17,14 +17,12 @@ class ElectrumWalletSnapshot { required this.regularAddressIndex, required this.changeAddressIndex, required this.addressPageType, - required this.network, }); final String name; final String password; final WalletType type; - final String addressPageType; - final BasedUtxoNetwork network; + final String? addressPageType; String mnemonic; List addresses; @@ -32,7 +30,8 @@ class ElectrumWalletSnapshot { Map regularAddressIndex; Map changeAddressIndex; - static Future load(String name, WalletType type, String password, BasedUtxoNetwork? network) async { + static Future load( + String name, WalletType type, String password, BasedUtxoNetwork network) async { final path = await pathForWallet(name: name, type: type); final jsonSource = await read(path: path, password: password); final data = json.decode(jsonSource) as Map; @@ -71,8 +70,7 @@ class ElectrumWalletSnapshot { balance: balance, regularAddressIndex: regularAddressIndexByType, changeAddressIndex: changeAddressIndexByType, - addressPageType: data['address_page_type'] as String? ?? SegwitAddresType.p2wpkh.toString(), - network: data['network_type'] == 'testnet' ? BitcoinNetwork.testnet : BitcoinNetwork.mainnet, + addressPageType: data['address_page_type'] as String?, ); } } diff --git a/cw_bitcoin/lib/script_hash.dart b/cw_bitcoin/lib/script_hash.dart index 620d3d28a..2130fcbbe 100644 --- a/cw_bitcoin/lib/script_hash.dart +++ b/cw_bitcoin/lib/script_hash.dart @@ -1,8 +1,9 @@ -import 'package:bitcoin_base/bitcoin_base.dart'; import 'package:crypto/crypto.dart'; +import 'package:cw_bitcoin/address_to_output_script.dart'; +import 'package:bitcoin_base/bitcoin_base.dart' as bitcoin; -String scriptHash(String address, {required BasedUtxoNetwork network}) { - final outputScript = addressToOutputScript(address: address, network: network); +String scriptHash(String address, {required bitcoin.BasedUtxoNetwork network}) { + final outputScript = addressToOutputScript(address, network); final parts = sha256.convert(outputScript).toString().split(''); var res = ''; diff --git a/cw_bitcoin/pubspec.lock b/cw_bitcoin/pubspec.lock index 25e6f269d..b39dcae07 100644 --- a/cw_bitcoin/pubspec.lock +++ b/cw_bitcoin/pubspec.lock @@ -79,11 +79,11 @@ packages: dependency: "direct main" description: path: "." - ref: cake-update-v1 - resolved-ref: "9611e9db77e92a8434e918cdfb620068f6fcb1aa" + ref: cake-update-v2 + resolved-ref: "3fd81d238b990bb767fc7a4fdd5053a22a142e2e" url: "https://github.com/cake-tech/bitcoin_base.git" source: git - version: "4.0.0" + version: "4.2.0" bitcoin_flutter: dependency: "direct main" description: @@ -97,10 +97,10 @@ packages: dependency: "direct main" description: name: blockchain_utils - sha256: "9701dfaa74caad4daae1785f1ec4445cf7fb94e45620bc3a4aca1b9b281dc6c9" + sha256: "38ef5f4a22441ac4370aed9071dc71c460acffc37c79b344533f67d15f24c13c" url: "https://pub.dev" source: hosted - version: "1.6.0" + version: "2.1.1" boolean_selector: dependency: transitive description: diff --git a/cw_bitcoin/pubspec.yaml b/cw_bitcoin/pubspec.yaml index 847b77773..bcbb55e11 100644 --- a/cw_bitcoin/pubspec.yaml +++ b/cw_bitcoin/pubspec.yaml @@ -33,8 +33,8 @@ dependencies: bitcoin_base: git: url: https://github.com/cake-tech/bitcoin_base.git - ref: cake-update-v1 - blockchain_utils: ^1.6.0 + ref: cake-update-v2 + blockchain_utils: ^2.1.1 dev_dependencies: flutter_test: diff --git a/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet.dart b/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet.dart index 3c40cf9e9..f5835e728 100644 --- a/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet.dart +++ b/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet.dart @@ -34,7 +34,7 @@ abstract class BitcoinCashWalletBase extends ElectrumWallet with Store { required WalletInfo walletInfo, required Box unspentCoinsInfo, required Uint8List seedBytes, - String? addressPageType, + BitcoinAddressType? addressPageType, List? initialAddresses, ElectrumBalance? initialBalance, Map? initialRegularAddressIndex, @@ -58,6 +58,7 @@ abstract class BitcoinCashWalletBase extends ElectrumWallet with Store { mainHd: hd, sideHd: bitcoin.HDWallet.fromSeed(seedBytes).derivePath("m/44'/145'/0'/1"), network: network, + initialAddressPageType: addressPageType, ); autorun((_) { this.walletAddresses.isEnabledAutoGenerateSubaddress = this.isEnabledAutoGenerateSubaddress; @@ -84,7 +85,7 @@ abstract class BitcoinCashWalletBase extends ElectrumWallet with Store { seedBytes: await Mnemonic.toSeed(mnemonic), initialRegularAddressIndex: initialRegularAddressIndex, initialChangeAddressIndex: initialChangeAddressIndex, - addressPageType: addressPageType, + addressPageType: P2pkhAddressType.p2pkh, ); } @@ -101,12 +102,31 @@ abstract class BitcoinCashWalletBase extends ElectrumWallet with Store { password: password, walletInfo: walletInfo, unspentCoinsInfo: unspentCoinsInfo, - initialAddresses: snp.addresses, + initialAddresses: snp.addresses.map((addr) { + try { + BitcoinCashAddress(addr.address); + return BitcoinAddressRecord( + addr.address, + index: addr.index, + isHidden: addr.isHidden, + type: P2pkhAddressType.p2pkh, + network: BitcoinCashNetwork.mainnet, + ); + } catch (_) { + return BitcoinAddressRecord( + AddressUtils.getCashAddrFormat(addr.address), + index: addr.index, + isHidden: addr.isHidden, + type: P2pkhAddressType.p2pkh, + network: BitcoinCashNetwork.mainnet, + ); + } + }).toList(), initialBalance: snp.balance, seedBytes: await Mnemonic.toSeed(snp.mnemonic), initialRegularAddressIndex: snp.regularAddressIndex, initialChangeAddressIndex: snp.changeAddressIndex, - addressPageType: snp.addressPageType, + addressPageType: P2pkhAddressType.p2pkh, ); } diff --git a/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet_addresses.dart b/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet_addresses.dart index 8291ce2a5..3164651f3 100644 --- a/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet_addresses.dart +++ b/cw_bitcoin_cash/lib/src/bitcoin_cash_wallet_addresses.dart @@ -19,6 +19,7 @@ abstract class BitcoinCashWalletAddressesBase extends ElectrumWalletAddresses wi super.initialAddresses, super.initialRegularAddressIndex, super.initialChangeAddressIndex, + super.initialAddressPageType, }) : super(walletInfo); @override diff --git a/cw_bitcoin_cash/pubspec.yaml b/cw_bitcoin_cash/pubspec.yaml index 9c098c0ff..7130b3c58 100644 --- a/cw_bitcoin_cash/pubspec.yaml +++ b/cw_bitcoin_cash/pubspec.yaml @@ -32,7 +32,7 @@ dependencies: bitcoin_base: git: url: https://github.com/cake-tech/bitcoin_base.git - ref: cake-update-v1 + ref: cake-update-v2 diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 4f3aea7ec..be72b992d 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -277,7 +277,7 @@ SPEC CHECKSUMS: flutter_inappwebview_ios: 97215cf7d4677db55df76782dbd2930c5e1c1ea0 flutter_mailer: 2ef5a67087bc8c6c4cefd04a178bf1ae2c94cd83 flutter_secure_storage: 23fc622d89d073675f2eaa109381aefbcf5a49be - fluttertoast: eb263d302cc92e04176c053d2385237e9f43fad0 + fluttertoast: 48c57db1b71b0ce9e6bba9f31c940ff4b001293c in_app_review: 318597b3a06c22bb46dc454d56828c85f444f99d local_auth_ios: 1ba1475238daa33a6ffa2a29242558437be435ac MTBBarcodeScanner: f453b33c4b7dfe545d8c6484ed744d55671788cb @@ -302,4 +302,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: fcb1b8418441a35b438585c9dd8374e722e6c6ca -COCOAPODS: 1.12.1 +COCOAPODS: 1.15.2 diff --git a/lib/bitcoin/cw_bitcoin.dart b/lib/bitcoin/cw_bitcoin.dart index b36421608..709dc9a04 100644 --- a/lib/bitcoin/cw_bitcoin.dart +++ b/lib/bitcoin/cw_bitcoin.dart @@ -113,13 +113,35 @@ class CWBitcoin extends Bitcoin { .map((BitcoinAddressRecord addr) => ElectrumSubAddress( id: addr.index, name: addr.name, - address: electrumWallet.type == WalletType.bitcoinCash ? addr.cashAddr : addr.address, + address: addr.address, txCount: addr.txCount, balance: addr.balance, isChange: addr.isHidden)) .toList(); } + @override + Future estimateFakeSendAllTxAmount(Object wallet, TransactionPriority priority) async { + final electrumWallet = wallet as ElectrumWallet; + final sk = ECPrivate.random(); + + final p2shAddr = sk.getPublic().toP2pkhInP2sh(); + final p2wpkhAddr = sk.getPublic().toP2wpkhAddress(); + final estimatedTx = await electrumWallet.estimateTxFeeAndInputsToUse( + 0, + true, + // Deposit address + change address + [p2shAddr, p2wpkhAddr], + [ + BitcoinOutput(address: p2shAddr, value: BigInt.zero), + BitcoinOutput(address: p2wpkhAddr, value: BigInt.zero) + ], + null, + priority as BitcoinTransactionPriority); + + return estimatedTx.amount; + } + @override String getAddress(Object wallet) { final bitcoinWallet = wallet as ElectrumWallet; diff --git a/lib/buy/moonpay/moonpay_provider.dart b/lib/buy/moonpay/moonpay_provider.dart index 0ccb73e1c..75ba45ce1 100644 --- a/lib/buy/moonpay/moonpay_provider.dart +++ b/lib/buy/moonpay/moonpay_provider.dart @@ -81,7 +81,7 @@ class MoonPaySellProvider extends BuyProvider { '', { 'apiKey': _apiKey, - 'defaultBaseCurrencyCode': currency.toString().toLowerCase(), + 'defaultBaseCurrencyCode': _normalizeCurrency(currency), 'refundWalletAddress': refundWalletAddress, }..addAll(customParams), ); @@ -134,6 +134,14 @@ class MoonPaySellProvider extends BuyProvider { ); } } + + String _normalizeCurrency(CryptoCurrency currency) { + if (currency == CryptoCurrency.maticpoly) { + return "MATIC_POLYGON"; + } + + return currency.toString().toLowerCase(); + } } class MoonPayBuyProvider extends BuyProvider { diff --git a/lib/core/address_validator.dart b/lib/core/address_validator.dart index ad2c761a3..967cf9bf0 100644 --- a/lib/core/address_validator.dart +++ b/lib/core/address_validator.dart @@ -274,7 +274,7 @@ class AddressValidator extends TextValidator { '|([^0-9a-zA-Z]|^)([23][a-km-zA-HJ-NP-Z1-9]{25,34})([^0-9a-zA-Z]|\$)' //P2shAddress type '|([^0-9a-zA-Z]|^)((bc|tb)1q[ac-hj-np-z02-9]{25,39})([^0-9a-zA-Z]|\$)' //P2wpkhAddress type '|([^0-9a-zA-Z]|^)((bc|tb)1q[ac-hj-np-z02-9]{40,80})([^0-9a-zA-Z]|\$)' //P2wshAddress type - '|([^0-9a-zA-Z]|^)((bc|tb)1p([ac-hj-np-z02-9]{39}|[ac-hj-np-z02-9]{59}|[ac-hj-np-z02-9]{8,89}))([^0-9a-zA-Z]|\$)'; //P2trAddress type + '|([^0-9a-zA-Z]|^)((bc|tb)1p([ac-hj-np-z02-9]{39}|[ac-hj-np-z02-9]{59}|[ac-hj-np-z02-9]{8,89}))([^0-9a-zA-Z]|\$)'; //P2trAddress type case CryptoCurrency.ltc: return '([^0-9a-zA-Z]|^)^L[a-zA-Z0-9]{26,33}([^0-9a-zA-Z]|\$)' '|([^0-9a-zA-Z]|^)[LM][a-km-zA-HJ-NP-Z1-9]{26,33}([^0-9a-zA-Z]|\$)' diff --git a/lib/entities/provider_types.dart b/lib/entities/provider_types.dart index f9c2f1a82..b7336c2a7 100644 --- a/lib/entities/provider_types.dart +++ b/lib/entities/provider_types.dart @@ -89,7 +89,12 @@ class ProvidersHelper { case WalletType.bitcoinCash: return [ProviderType.askEachTime, ProviderType.moonpaySell]; case WalletType.polygon: - return [ProviderType.askEachTime, ProviderType.onramper, ProviderType.dfx]; + return [ + ProviderType.askEachTime, + ProviderType.onramper, + ProviderType.moonpaySell, + ProviderType.dfx, + ]; case WalletType.solana: return [ ProviderType.askEachTime, diff --git a/lib/src/screens/exchange/exchange_page.dart b/lib/src/screens/exchange/exchange_page.dart index 94b51301c..61355df05 100644 --- a/lib/src/screens/exchange/exchange_page.dart +++ b/lib/src/screens/exchange/exchange_page.dart @@ -384,7 +384,7 @@ class ExchangePage extends BasePage { (CryptoCurrency currency) => _onCurrencyChange(currency, exchangeViewModel, depositKey)); reaction((_) => exchangeViewModel.depositAmount, (String amount) { - if (depositKey.currentState!.amountController.text != amount) { + if (depositKey.currentState!.amountController.text != amount && amount != S.of(context).all) { depositKey.currentState!.amountController.text = amount; } }); @@ -467,7 +467,9 @@ class ExchangePage extends BasePage { .addListener(() => exchangeViewModel.depositAddress = depositAddressController.text); depositAmountController.addListener(() { - if (depositAmountController.text != exchangeViewModel.depositAmount) { + if (depositAmountController.text != exchangeViewModel.depositAmount && + depositAmountController.text != S.of(context).all) { + exchangeViewModel.isSendAllEnabled = false; _depositAmountDebounce.run(() { exchangeViewModel.changeDepositAmount(amount: depositAmountController.text); exchangeViewModel.isReceiveAmountEntered = false; @@ -589,8 +591,9 @@ class ExchangePage extends BasePage { onDispose: disposeBestRateSync, hasAllAmount: exchangeViewModel.hasAllAmount, allAmount: exchangeViewModel.hasAllAmount - ? () => exchangeViewModel.calculateDepositAllAmount() + ? () => exchangeViewModel.enableSendAllAmount() : null, + isAllAmountEnabled: exchangeViewModel.isSendAllEnabled, amountFocusNode: _depositAmountFocus, addressFocusNode: _depositAddressFocus, key: depositKey, @@ -626,8 +629,10 @@ class ExchangePage extends BasePage { }, imageArrow: arrowBottomPurple, currencyButtonColor: Colors.transparent, - addressButtonsColor: Theme.of(context).extension()!.textFieldButtonColor, - borderColor: Theme.of(context).extension()!.textFieldBorderTopPanelColor, + addressButtonsColor: + Theme.of(context).extension()!.textFieldButtonColor, + borderColor: + Theme.of(context).extension()!.textFieldBorderTopPanelColor, currencyValueValidator: (value) { return !exchangeViewModel.isFixedRateMode ? AmountValidator( @@ -673,8 +678,10 @@ class ExchangePage extends BasePage { exchangeViewModel.changeReceiveCurrency(currency: currency), imageArrow: arrowBottomCakeGreen, currencyButtonColor: Colors.transparent, - addressButtonsColor: Theme.of(context).extension()!.textFieldButtonColor, - borderColor: Theme.of(context).extension()!.textFieldBorderBottomPanelColor, + addressButtonsColor: + Theme.of(context).extension()!.textFieldButtonColor, + borderColor: + Theme.of(context).extension()!.textFieldBorderBottomPanelColor, currencyValueValidator: (value) { return exchangeViewModel.isFixedRateMode ? AmountValidator( diff --git a/lib/src/screens/exchange/exchange_template_page.dart b/lib/src/screens/exchange/exchange_template_page.dart index 3a7456dd8..d24c91dad 100644 --- a/lib/src/screens/exchange/exchange_template_page.dart +++ b/lib/src/screens/exchange/exchange_template_page.dart @@ -56,17 +56,14 @@ class ExchangeTemplatePage extends BasePage { height: 8, ); - final depositWalletName = - exchangeViewModel.depositCurrency == CryptoCurrency.xmr + final depositWalletName = exchangeViewModel.depositCurrency == CryptoCurrency.xmr ? exchangeViewModel.wallet.name : null; - final receiveWalletName = - exchangeViewModel.receiveCurrency == CryptoCurrency.xmr + final receiveWalletName = exchangeViewModel.receiveCurrency == CryptoCurrency.xmr ? exchangeViewModel.wallet.name : null; - WidgetsBinding.instance - .addPostFrameCallback((_) => _setReactions(context, exchangeViewModel)); + WidgetsBinding.instance.addPostFrameCallback((_) => _setReactions(context, exchangeViewModel)); return KeyboardActions( disableScroll: true, @@ -76,128 +73,125 @@ class ExchangeTemplatePage extends BasePage { nextFocus: false, actions: [ KeyboardActionsItem( - focusNode: _depositAmountFocus, - toolbarButtons: [(_) => KeyboardDoneButton()]), + focusNode: _depositAmountFocus, toolbarButtons: [(_) => KeyboardDoneButton()]), KeyboardActionsItem( - focusNode: _receiveAmountFocus, - toolbarButtons: [(_) => KeyboardDoneButton()]) + focusNode: _receiveAmountFocus, toolbarButtons: [(_) => KeyboardDoneButton()]) ]), child: Container( - color: Theme.of(context).colorScheme.background, - child: Form( - key: _formKey, - child: ScrollableWithBottomSection( - contentPadding: EdgeInsets.only(bottom: 24), - content: Container( - padding: EdgeInsets.only(bottom: 32), - decoration: BoxDecoration( - borderRadius: BorderRadius.only( - bottomLeft: Radius.circular(24), - bottomRight: Radius.circular(24) - ), - gradient: LinearGradient( - colors: [ - Theme.of(context).extension()!.firstGradientBottomPanelColor, - Theme.of(context).extension()!.secondGradientBottomPanelColor, - ], - stops: [0.35, 1.0], - begin: Alignment.topLeft, - end: Alignment.bottomRight), - ), - child: FocusTraversalGroup( - policy: OrderedTraversalPolicy(), - child: Column( - children: [ - Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.only( - bottomLeft: Radius.circular(24), - bottomRight: Radius.circular(24) + color: Theme.of(context).colorScheme.background, + child: Form( + key: _formKey, + child: ScrollableWithBottomSection( + contentPadding: EdgeInsets.only(bottom: 24), + content: Container( + padding: EdgeInsets.only(bottom: 32), + decoration: BoxDecoration( + borderRadius: BorderRadius.only( + bottomLeft: Radius.circular(24), bottomRight: Radius.circular(24)), + gradient: LinearGradient(colors: [ + Theme.of(context) + .extension()! + .firstGradientBottomPanelColor, + Theme.of(context) + .extension()! + .secondGradientBottomPanelColor, + ], stops: [ + 0.35, + 1.0 + ], begin: Alignment.topLeft, end: Alignment.bottomRight), + ), + child: FocusTraversalGroup( + policy: OrderedTraversalPolicy(), + child: Column( + children: [ + Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.only( + bottomLeft: Radius.circular(24), + bottomRight: Radius.circular(24)), + gradient: LinearGradient(colors: [ + Theme.of(context) + .extension()! + .firstGradientTopPanelColor, + Theme.of(context) + .extension()! + .secondGradientTopPanelColor, + ], begin: Alignment.topLeft, end: Alignment.bottomRight), + ), + padding: EdgeInsets.fromLTRB(24, 100, 24, 32), + child: Observer( + builder: (_) => ExchangeCard( + amountFocusNode: _depositAmountFocus, + key: depositKey, + title: S.of(context).you_will_send, + initialCurrency: exchangeViewModel.depositCurrency, + initialWalletName: depositWalletName ?? '', + initialAddress: exchangeViewModel.depositCurrency == + exchangeViewModel.wallet.currency + ? exchangeViewModel.wallet.walletAddresses.address + : exchangeViewModel.depositAddress, + initialIsAmountEditable: true, + initialIsAddressEditable: exchangeViewModel.isDepositAddressEnabled, + isAmountEstimated: false, + hasRefundAddress: true, + isMoneroWallet: exchangeViewModel.isMoneroWallet, + currencies: CryptoCurrency.all, + onCurrencySelected: (currency) => + exchangeViewModel.changeDepositCurrency(currency: currency), + imageArrow: arrowBottomPurple, + currencyButtonColor: Colors.transparent, + addressButtonsColor: Theme.of(context) + .extension()! + .textFieldButtonColor, + borderColor: Theme.of(context) + .extension()! + .textFieldBorderBottomPanelColor, + currencyValueValidator: + AmountValidator(currency: exchangeViewModel.depositCurrency), + //addressTextFieldValidator: AddressValidator( + // type: exchangeViewModel.depositCurrency), + ), + ), ), - gradient: LinearGradient( - colors: [ - Theme.of(context).extension()!.firstGradientTopPanelColor, - Theme.of(context).extension()!.secondGradientTopPanelColor, - ], - begin: Alignment.topLeft, - end: Alignment.bottomRight), - ), - padding: EdgeInsets.fromLTRB(24, 100, 24, 32), - child: Observer( - builder: (_) => ExchangeCard( - amountFocusNode: _depositAmountFocus, - key: depositKey, - title: S.of(context).you_will_send, - initialCurrency: - exchangeViewModel.depositCurrency, - initialWalletName: depositWalletName ?? '', - initialAddress: exchangeViewModel - .depositCurrency == - exchangeViewModel.wallet.currency - ? exchangeViewModel.wallet.walletAddresses.address - : exchangeViewModel.depositAddress, - initialIsAmountEditable: true, - initialIsAddressEditable: exchangeViewModel - .isDepositAddressEnabled, - isAmountEstimated: false, - hasRefundAddress: true, - isMoneroWallet: exchangeViewModel.isMoneroWallet, - currencies: CryptoCurrency.all, - onCurrencySelected: (currency) => - exchangeViewModel.changeDepositCurrency( - currency: currency), - imageArrow: arrowBottomPurple, - currencyButtonColor: Colors.transparent, - addressButtonsColor: - Theme.of(context).extension()!.textFieldButtonColor, - borderColor: Theme.of(context).extension()!.textFieldBorderBottomPanelColor, - currencyValueValidator: AmountValidator( - currency: exchangeViewModel.depositCurrency), - //addressTextFieldValidator: AddressValidator( - // type: exchangeViewModel.depositCurrency), - ), - ), + Padding( + padding: EdgeInsets.only(top: 29, left: 24, right: 24), + child: Observer( + builder: (_) => ExchangeCard( + amountFocusNode: _receiveAmountFocus, + key: receiveKey, + title: S.of(context).you_will_get, + initialCurrency: exchangeViewModel.receiveCurrency, + initialWalletName: receiveWalletName ?? '', + initialAddress: exchangeViewModel.receiveCurrency == + exchangeViewModel.wallet.currency + ? exchangeViewModel.wallet.walletAddresses.address + : exchangeViewModel.receiveAddress, + initialIsAmountEditable: false, + isAmountEstimated: true, + isMoneroWallet: exchangeViewModel.isMoneroWallet, + currencies: exchangeViewModel.receiveCurrencies, + onCurrencySelected: (currency) => exchangeViewModel + .changeReceiveCurrency(currency: currency), + imageArrow: arrowBottomCakeGreen, + currencyButtonColor: Colors.transparent, + addressButtonsColor: Theme.of(context) + .extension()! + .textFieldButtonColor, + borderColor: Theme.of(context) + .extension()! + .textFieldBorderBottomPanelColor, + currencyValueValidator: AmountValidator( + currency: exchangeViewModel.receiveCurrency), + //addressTextFieldValidator: AddressValidator( + // type: exchangeViewModel.receiveCurrency), + )), + ) + ], ), - Padding( - padding: EdgeInsets.only(top: 29, left: 24, right: 24), - child: Observer( - builder: (_) => ExchangeCard( - amountFocusNode: _receiveAmountFocus, - key: receiveKey, - title: S.of(context).you_will_get, - initialCurrency: - exchangeViewModel.receiveCurrency, - initialWalletName: receiveWalletName ?? '', - initialAddress: - exchangeViewModel.receiveCurrency == - exchangeViewModel.wallet.currency - ? exchangeViewModel.wallet.walletAddresses.address - : exchangeViewModel.receiveAddress, - initialIsAmountEditable: false, - isAmountEstimated: true, - isMoneroWallet: exchangeViewModel.isMoneroWallet, - currencies: exchangeViewModel.receiveCurrencies, - onCurrencySelected: (currency) => - exchangeViewModel.changeReceiveCurrency( - currency: currency), - imageArrow: arrowBottomCakeGreen, - currencyButtonColor: Colors.transparent, - addressButtonsColor: - Theme.of(context).extension()!.textFieldButtonColor, - borderColor: Theme.of(context).extension()!.textFieldBorderBottomPanelColor, - currencyValueValidator: AmountValidator( - currency: exchangeViewModel.receiveCurrency), - //addressTextFieldValidator: AddressValidator( - // type: exchangeViewModel.receiveCurrency), - )), - ) - ], + ), ), - ), - ), - bottomSectionPadding: - EdgeInsets.only(left: 24, right: 24, bottom: 24), - bottomSection: Column(children: [ + bottomSectionPadding: EdgeInsets.only(left: 24, right: 24, bottom: 24), + bottomSection: Column(children: [ Padding( padding: EdgeInsets.only(bottom: 15), child: Observer( @@ -217,36 +211,31 @@ class ExchangeTemplatePage extends BasePage { ), ), PrimaryButton( - onPressed: () { - if (_formKey.currentState != null && _formKey.currentState!.validate()) { - exchangeViewModel.addTemplate( - amount: exchangeViewModel.depositAmount, - depositCurrency: - exchangeViewModel.depositCurrency.name, - depositCurrencyTitle: exchangeViewModel - .depositCurrency.title + ' ${exchangeViewModel.depositCurrency.tag ?? ''}', - receiveCurrency: - exchangeViewModel.receiveCurrency.name, - receiveCurrencyTitle: exchangeViewModel - .receiveCurrency.title + ' ${exchangeViewModel.receiveCurrency.tag ?? ''}', - provider: exchangeViewModel.provider.toString(), - depositAddress: exchangeViewModel.depositAddress, - receiveAddress: exchangeViewModel.receiveAddress); - exchangeViewModel.updateTemplate(); - Navigator.of(context).pop(); - } - }, - text: S.of(context).save, - color: Theme.of(context).primaryColor, - textColor: Colors.white), - ]), - )) - ) - ); + onPressed: () { + if (_formKey.currentState != null && _formKey.currentState!.validate()) { + exchangeViewModel.addTemplate( + amount: exchangeViewModel.depositAmount, + depositCurrency: exchangeViewModel.depositCurrency.name, + depositCurrencyTitle: exchangeViewModel.depositCurrency.title + + ' ${exchangeViewModel.depositCurrency.tag ?? ''}', + receiveCurrency: exchangeViewModel.receiveCurrency.name, + receiveCurrencyTitle: exchangeViewModel.receiveCurrency.title + + ' ${exchangeViewModel.receiveCurrency.tag ?? ''}', + provider: exchangeViewModel.provider.toString(), + depositAddress: exchangeViewModel.depositAddress, + receiveAddress: exchangeViewModel.receiveAddress); + exchangeViewModel.updateTemplate(); + Navigator.of(context).pop(); + } + }, + text: S.of(context).save, + color: Theme.of(context).primaryColor, + textColor: Colors.white), + ]), + )))); } - void _setReactions( - BuildContext context, ExchangeViewModel exchangeViewModel) { + void _setReactions(BuildContext context, ExchangeViewModel exchangeViewModel) { if (_isReactionsSet) { return; } @@ -272,33 +261,27 @@ class ExchangeTemplatePage extends BasePage { // key.currentState.changeLimits(min: min, max: max); // } - _onCurrencyChange( - exchangeViewModel.receiveCurrency, exchangeViewModel, receiveKey); - _onCurrencyChange( - exchangeViewModel.depositCurrency, exchangeViewModel, depositKey); + _onCurrencyChange(exchangeViewModel.receiveCurrency, exchangeViewModel, receiveKey); + _onCurrencyChange(exchangeViewModel.depositCurrency, exchangeViewModel, depositKey); reaction( - (_) => exchangeViewModel.wallet.name, - (String _) => _onWalletNameChange( - exchangeViewModel, exchangeViewModel.receiveCurrency, receiveKey)); + (_) => exchangeViewModel.wallet.name, + (String _) => + _onWalletNameChange(exchangeViewModel, exchangeViewModel.receiveCurrency, receiveKey)); reaction( - (_) => exchangeViewModel.wallet.name, - (String _) => _onWalletNameChange( - exchangeViewModel, exchangeViewModel.depositCurrency, depositKey)); + (_) => exchangeViewModel.wallet.name, + (String _) => + _onWalletNameChange(exchangeViewModel, exchangeViewModel.depositCurrency, depositKey)); - reaction( - (_) => exchangeViewModel.receiveCurrency, - (CryptoCurrency currency) => - _onCurrencyChange(currency, exchangeViewModel, receiveKey)); + reaction((_) => exchangeViewModel.receiveCurrency, + (CryptoCurrency currency) => _onCurrencyChange(currency, exchangeViewModel, receiveKey)); - reaction( - (_) => exchangeViewModel.depositCurrency, - (CryptoCurrency currency) => - _onCurrencyChange(currency, exchangeViewModel, depositKey)); + reaction((_) => exchangeViewModel.depositCurrency, + (CryptoCurrency currency) => _onCurrencyChange(currency, exchangeViewModel, depositKey)); reaction((_) => exchangeViewModel.depositAmount, (String amount) { - if (depositKey.currentState!.amountController.text != amount) { + if (depositKey.currentState!.amountController.text != amount && amount != S.of(context).all) { depositKey.currentState!.amountController.text = amount; } }); @@ -309,10 +292,9 @@ class ExchangeTemplatePage extends BasePage { } }); - reaction((_) => exchangeViewModel.isDepositAddressEnabled, - (bool isEnabled) { - depositKey.currentState!.isAddressEditable(isEditable: isEnabled); - }); + reaction((_) => exchangeViewModel.isDepositAddressEnabled, (bool isEnabled) { + depositKey.currentState!.isAddressEditable(isEditable: isEnabled); + }); reaction((_) => exchangeViewModel.receiveAmount, (String amount) { if (receiveKey.currentState!.amountController.text != amount) { @@ -353,30 +335,28 @@ class ExchangeTemplatePage extends BasePage { receiveKey.currentState.changeLimits(min: null, max: null); });*/ - depositAddressController.addListener( - () => exchangeViewModel.depositAddress = depositAddressController.text); + depositAddressController + .addListener(() => exchangeViewModel.depositAddress = depositAddressController.text); depositAmountController.addListener(() { - if (depositAmountController.text != exchangeViewModel.depositAmount) { - exchangeViewModel.changeDepositAmount( - amount: depositAmountController.text); + if (depositAmountController.text != exchangeViewModel.depositAmount && + exchangeViewModel.depositAmount != S.of(context).all) { + exchangeViewModel.changeDepositAmount(amount: depositAmountController.text); exchangeViewModel.isReceiveAmountEntered = false; } }); - receiveAddressController.addListener( - () => exchangeViewModel.receiveAddress = receiveAddressController.text); + receiveAddressController + .addListener(() => exchangeViewModel.receiveAddress = receiveAddressController.text); receiveAmountController.addListener(() { if (receiveAmountController.text != exchangeViewModel.receiveAmount) { - exchangeViewModel.changeReceiveAmount( - amount: receiveAmountController.text); + exchangeViewModel.changeReceiveAmount(amount: receiveAmountController.text); exchangeViewModel.isReceiveAmountEntered = true; } }); - reaction((_) => exchangeViewModel.wallet.walletAddresses.address, - (String address) { + reaction((_) => exchangeViewModel.wallet.walletAddresses.address, (String address) { if (exchangeViewModel.depositCurrency == CryptoCurrency.xmr) { depositKey.currentState!.changeAddress(address: address); } @@ -389,29 +369,26 @@ class ExchangeTemplatePage extends BasePage { _isReactionsSet = true; } - void _onCurrencyChange(CryptoCurrency currency, - ExchangeViewModel exchangeViewModel, GlobalKey key) { + void _onCurrencyChange(CryptoCurrency currency, ExchangeViewModel exchangeViewModel, + GlobalKey key) { final isCurrentTypeWallet = currency == exchangeViewModel.wallet.currency; key.currentState!.changeSelectedCurrency(currency); - key.currentState!.changeWalletName( - isCurrentTypeWallet ? exchangeViewModel.wallet.name : ''); + key.currentState!.changeWalletName(isCurrentTypeWallet ? exchangeViewModel.wallet.name : ''); key.currentState!.changeAddress( - address: isCurrentTypeWallet - ? exchangeViewModel.wallet.walletAddresses.address : ''); + address: isCurrentTypeWallet ? exchangeViewModel.wallet.walletAddresses.address : ''); key.currentState!.changeAmount(amount: ''); } - void _onWalletNameChange(ExchangeViewModel exchangeViewModel, - CryptoCurrency currency, GlobalKey key) { + void _onWalletNameChange(ExchangeViewModel exchangeViewModel, CryptoCurrency currency, + GlobalKey key) { final isCurrentTypeWallet = currency == exchangeViewModel.wallet.currency; if (isCurrentTypeWallet) { key.currentState!.changeWalletName(exchangeViewModel.wallet.name); - key.currentState!.addressController.text = - exchangeViewModel.wallet.walletAddresses.address; + key.currentState!.addressController.text = exchangeViewModel.wallet.walletAddresses.address; } else if (key.currentState!.addressController.text == exchangeViewModel.wallet.walletAddresses.address) { key.currentState!.changeWalletName(''); diff --git a/lib/src/screens/exchange/widgets/exchange_card.dart b/lib/src/screens/exchange/widgets/exchange_card.dart index 706ace7de..d2e3c27d4 100644 --- a/lib/src/screens/exchange/widgets/exchange_card.dart +++ b/lib/src/screens/exchange/widgets/exchange_card.dart @@ -1,3 +1,4 @@ +import 'package:cake_wallet/core/amount_validator.dart'; import 'package:cake_wallet/entities/contact_base.dart'; import 'package:cake_wallet/themes/extensions/qr_code_theme.dart'; import 'package:cake_wallet/routes.dart'; @@ -37,6 +38,7 @@ class ExchangeCard extends StatefulWidget { this.addressButtonsColor = Colors.transparent, this.borderColor = Colors.transparent, this.hasAllAmount = false, + this.isAllAmountEnabled = false, this.amountFocusNode, this.addressFocusNode, this.allAmount, @@ -62,9 +64,11 @@ class ExchangeCard extends StatefulWidget { final Color borderColor; final FormFieldValidator? currencyValueValidator; final FormFieldValidator? addressTextFieldValidator; + final FormFieldValidator allAmountValidator = AllAmountValidator(); final FocusNode? amountFocusNode; final FocusNode? addressFocusNode; final bool hasAllAmount; + final bool isAllAmountEnabled; final VoidCallback? allAmount; final void Function(BuildContext context)? onPushPasteButton; final void Function(BuildContext context)? onPushAddressBookButton; @@ -76,15 +80,15 @@ class ExchangeCard extends StatefulWidget { class ExchangeCardState extends State { ExchangeCardState() - : _title = '', - _min = '', - _max = '', - _isAmountEditable = false, - _isAddressEditable = false, - _walletName = '', - _selectedCurrency = CryptoCurrency.btc, - _isAmountEstimated = false, - _isMoneroWallet = false; + : _title = '', + _min = '', + _max = '', + _isAmountEditable = false, + _isAddressEditable = false, + _walletName = '', + _selectedCurrency = CryptoCurrency.btc, + _isAmountEstimated = false, + _isMoneroWallet = false; final addressController = TextEditingController(); final amountController = TextEditingController(); @@ -160,6 +164,12 @@ class ExchangeCardState extends State { @override Widget build(BuildContext context) { + if (widget.isAllAmountEnabled) { + WidgetsBinding.instance.addPostFrameCallback((_) { + amountController.text = S.of(context).all; + }); + } + final copyImage = Image.asset('assets/images/copy_content.png', height: 16, width: 16, @@ -168,8 +178,7 @@ class ExchangeCardState extends State { return Container( width: double.infinity, color: Colors.transparent, - child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: < - Widget>[ + child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( mainAxisAlignment: MainAxisAlignment.start, children: [ @@ -202,40 +211,38 @@ class ExchangeCardState extends State { ), Text(_selectedCurrency.toString(), style: TextStyle( - fontWeight: FontWeight.w600, - fontSize: 16, - color: Colors.white)) + fontWeight: FontWeight.w600, fontSize: 16, color: Colors.white)) ]), ), ), - _selectedCurrency.tag != null ? Padding( - padding: const EdgeInsets.only(right:3.0), - child: Container( - height: 32, - decoration: BoxDecoration( - color: widget.addressButtonsColor ?? - Theme.of(context).extension()!.textFieldButtonColor, - borderRadius: - BorderRadius.all(Radius.circular(6))), - child: Center( - child: Padding( - padding: const EdgeInsets.all(6.0), - child: Text(_selectedCurrency.tag!, - style: TextStyle( - fontSize: 12, - fontWeight: FontWeight.bold, - color: Theme.of(context).extension()!.textFieldButtonIconColor)), + if (_selectedCurrency.tag != null) + Padding( + padding: const EdgeInsets.only(right: 3.0), + child: Container( + height: 32, + decoration: BoxDecoration( + color: widget.addressButtonsColor ?? + Theme.of(context).extension()!.textFieldButtonColor, + borderRadius: BorderRadius.all(Radius.circular(6))), + child: Center( + child: Padding( + padding: const EdgeInsets.all(6.0), + child: Text(_selectedCurrency.tag!, + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + color: Theme.of(context) + .extension()! + .textFieldButtonIconColor)), + ), ), ), ), - ) : Container(), Padding( padding: const EdgeInsets.only(right: 4.0), child: Text(':', style: TextStyle( - fontWeight: FontWeight.w600, - fontSize: 16, - color: Colors.white)), + fontWeight: FontWeight.w600, fontSize: 16, color: Colors.white)), ), Expanded( child: Row( @@ -249,26 +256,27 @@ class ExchangeCardState extends State { controller: amountController, enabled: _isAmountEditable, textAlign: TextAlign.left, - keyboardType: TextInputType.numberWithOptions( - signed: false, decimal: true), + keyboardType: + TextInputType.numberWithOptions(signed: false, decimal: true), inputFormatters: [ - FilteringTextInputFormatter.deny( - RegExp('[\\-|\\ ]')) + FilteringTextInputFormatter.deny(RegExp('[\\-|\\ ]')) ], hintText: '0.0000', borderColor: Colors.transparent, //widget.borderColor, textStyle: TextStyle( - fontSize: 16, - fontWeight: FontWeight.w600, - color: Colors.white), + fontSize: 16, fontWeight: FontWeight.w600, color: Colors.white), placeholderTextStyle: TextStyle( fontSize: 16, fontWeight: FontWeight.w600, - color: Theme.of(context).extension()!.hintTextColor), - validator: _isAmountEditable - ? widget.currencyValueValidator - : null), + color: Theme.of(context) + .extension()! + .hintTextColor), + validator: widget.hasAllAmount + ? widget.allAmountValidator + : _isAmountEditable + ? widget.currencyValueValidator + : null), ), ), if (widget.hasAllAmount) @@ -276,9 +284,10 @@ class ExchangeCardState extends State { height: 32, width: 32, decoration: BoxDecoration( - color: Theme.of(context).extension()!.textFieldButtonColor, - borderRadius: - BorderRadius.all(Radius.circular(6))), + color: Theme.of(context) + .extension()! + .textFieldButtonColor, + borderRadius: BorderRadius.all(Radius.circular(6))), child: InkWell( onTap: () => widget.allAmount?.call(), child: Center( @@ -287,7 +296,9 @@ class ExchangeCardState extends State { style: TextStyle( fontSize: 12, fontWeight: FontWeight.bold, - color: Theme.of(context).extension()!.textFieldButtonIconColor)), + color: Theme.of(context) + .extension()! + .textFieldButtonIconColor)), ), ), ) @@ -296,39 +307,30 @@ class ExchangeCardState extends State { ), ], )), - Divider( - height: 1, - color: Theme.of(context).extension()!.textFieldHintColor), + Divider(height: 1, color: Theme.of(context).extension()!.textFieldHintColor), Padding( padding: EdgeInsets.only(top: 5), child: Container( height: 15, - child: Row( - mainAxisAlignment: MainAxisAlignment.start, - children: [ - _min != null - ? Text( - S - .of(context) - .min_value(_min ?? '', _selectedCurrency.toString()), - style: TextStyle( - fontSize: 10, - height: 1.2, - color: Theme.of(context).extension()!.hintTextColor), - ) - : Offstage(), - _min != null ? SizedBox(width: 10) : Offstage(), - _max != null - ? Text( - S - .of(context) - .max_value(_max ?? '', _selectedCurrency.toString()), - style: TextStyle( - fontSize: 10, - height: 1.2, - color: Theme.of(context).extension()!.hintTextColor)) - : Offstage(), - ])), + child: Row(mainAxisAlignment: MainAxisAlignment.start, children: [ + _min != null + ? Text( + S.of(context).min_value(_min ?? '', _selectedCurrency.toString()), + style: TextStyle( + fontSize: 10, + height: 1.2, + color: Theme.of(context).extension()!.hintTextColor), + ) + : Offstage(), + _min != null ? SizedBox(width: 10) : Offstage(), + _max != null + ? Text(S.of(context).max_value(_max ?? '', _selectedCurrency.toString()), + style: TextStyle( + fontSize: 10, + height: 1.2, + color: Theme.of(context).extension()!.hintTextColor)) + : Offstage(), + ])), ), !_isAddressEditable && widget.hasRefundAddress ? Padding( @@ -343,7 +345,7 @@ class ExchangeCardState extends State { : Offstage(), _isAddressEditable ? FocusTraversalOrder( - order: NumericFocusOrder(2), + order: NumericFocusOrder(2), child: Padding( padding: EdgeInsets.only(top: 20), child: AddressTextField( @@ -352,27 +354,23 @@ class ExchangeCardState extends State { onURIScanned: (uri) { final paymentRequest = PaymentRequest.fromUri(uri); addressController.text = paymentRequest.address; - + if (amountController.text.isNotEmpty) { _showAmountPopup(context, paymentRequest); return; } widget.amountFocusNode?.requestFocus(); - amountController.text = paymentRequest.amount; + amountController.text = paymentRequest.amount; }, - placeholder: widget.hasRefundAddress - ? S.of(context).refund_address - : null, + placeholder: widget.hasRefundAddress ? S.of(context).refund_address : null, options: [ AddressTextFieldOption.paste, AddressTextFieldOption.qrCode, AddressTextFieldOption.addressBook, ], isBorderExist: false, - textStyle: TextStyle( - fontSize: 16, - fontWeight: FontWeight.w600, - color: Colors.white), + textStyle: + TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Colors.white), hintStyle: TextStyle( fontSize: 16, fontWeight: FontWeight.w600, @@ -381,27 +379,22 @@ class ExchangeCardState extends State { validator: widget.addressTextFieldValidator, onPushPasteButton: widget.onPushPasteButton, onPushAddressBookButton: widget.onPushAddressBookButton, - selectedCurrency: _selectedCurrency - ), - + selectedCurrency: _selectedCurrency), ), - ) + ) : Padding( padding: EdgeInsets.only(top: 10), child: Builder( builder: (context) => Stack(children: [ - FocusTraversalOrder( - order: NumericFocusOrder(3), - child: BaseTextFormField( - controller: addressController, - borderColor: Colors.transparent, - suffixIcon: - SizedBox(width: _isMoneroWallet ? 80 : 36), - textStyle: TextStyle( - fontSize: 16, - fontWeight: FontWeight.w600, - color: Colors.white), - validator: widget.addressTextFieldValidator), + FocusTraversalOrder( + order: NumericFocusOrder(3), + child: BaseTextFormField( + controller: addressController, + borderColor: Colors.transparent, + suffixIcon: SizedBox(width: _isMoneroWallet ? 80 : 36), + textStyle: TextStyle( + fontSize: 16, fontWeight: FontWeight.w600, color: Colors.white), + validator: widget.addressTextFieldValidator), ), Positioned( top: 2, @@ -421,33 +414,28 @@ class ExchangeCardState extends State { child: InkWell( onTap: () async { final contact = - await Navigator.of(context) - .pushNamed( + await Navigator.of(context).pushNamed( Routes.pickerAddressBook, arguments: widget.initialCurrency, ); - if (contact is ContactBase && - contact.address != null) { + if (contact is ContactBase) { setState(() => - addressController.text = - contact.address); - widget.onPushAddressBookButton - ?.call(context); + addressController.text = contact.address); + widget.onPushAddressBookButton?.call(context); } }, child: Container( padding: EdgeInsets.all(8), decoration: BoxDecoration( - color: widget - .addressButtonsColor, + color: widget.addressButtonsColor, borderRadius: - BorderRadius.all( - Radius.circular( - 6))), + BorderRadius.all(Radius.circular(6))), child: Image.asset( 'assets/images/open_book.png', - color: Theme.of(context).extension()!.textFieldButtonIconColor, + color: Theme.of(context) + .extension()! + .textFieldButtonIconColor, )), ), )), @@ -462,18 +450,13 @@ class ExchangeCardState extends State { label: S.of(context).copy_address, child: InkWell( onTap: () { - Clipboard.setData(ClipboardData( - text: addressController - .text)); + Clipboard.setData( + ClipboardData(text: addressController.text)); showBar( - context, - S - .of(context) - .copied_to_clipboard); + context, S.of(context).copied_to_clipboard); }, child: Container( - padding: EdgeInsets.fromLTRB( - 8, 8, 0, 8), + padding: EdgeInsets.fromLTRB(8, 8, 0, 8), color: Colors.transparent, child: copyImage), ), @@ -514,7 +497,6 @@ class ExchangeCardState extends State { Navigator.of(context).pop(); }, actionLeftButton: () => Navigator.of(dialogContext).pop()); - } - ); + }); } } diff --git a/lib/src/screens/send/send_template_page.dart b/lib/src/screens/send/send_template_page.dart index 205fd62e1..52458942c 100644 --- a/lib/src/screens/send/send_template_page.dart +++ b/lib/src/screens/send/send_template_page.dart @@ -1,7 +1,5 @@ import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart'; -import 'package:cake_wallet/themes/extensions/keyboard_theme.dart'; import 'package:cake_wallet/themes/extensions/seed_widget_theme.dart'; -import 'package:cake_wallet/utils/payment_request.dart'; import 'package:cake_wallet/src/widgets/trail_button.dart'; import 'package:cake_wallet/view_model/send/template_view_model.dart'; import 'package:flutter_mobx/flutter_mobx.dart'; @@ -11,7 +9,6 @@ import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/view_model/send/send_template_view_model.dart'; import 'package:cake_wallet/src/widgets/primary_button.dart'; import 'package:cake_wallet/src/widgets/scollable_with_bottom_section.dart'; -import 'package:cake_wallet/src/screens/send/widgets/prefix_currency_icon_widget.dart'; import 'package:cake_wallet/themes/extensions/send_page_theme.dart'; import 'package:cake_wallet/src/screens/send/widgets/send_template_card.dart'; import 'package:smooth_page_indicator/smooth_page_indicator.dart'; @@ -97,8 +94,13 @@ class SendTemplatePage extends BasePage { radius: 6.0, dotWidth: 6.0, dotHeight: 6.0, - dotColor: Theme.of(context).extension()!.indicatorDotColor, - activeDotColor: Theme.of(context).extension()!.indicatorDotTheme.activeIndicatorColor)) + dotColor: Theme.of(context) + .extension()! + .indicatorDotColor, + activeDotColor: Theme.of(context) + .extension()! + .indicatorDotTheme + .activeIndicatorColor)) : Offstage(); }, ), diff --git a/lib/src/screens/send/widgets/send_card.dart b/lib/src/screens/send/widgets/send_card.dart index 6bd2d81e9..3f5714be9 100644 --- a/lib/src/screens/send/widgets/send_card.dart +++ b/lib/src/screens/send/widgets/send_card.dart @@ -80,15 +80,17 @@ class SendCardState extends State with AutomaticKeepAliveClientMixin( - context: context, - builder: (BuildContext context) { - return AlertWithOneAction( - alertTitle: S.of(context).error, - alertContent: S.of(context).unmatched_currencies, - buttonText: S.of(context).ok, - buttonAction: () => Navigator.of(context).pop()); - }); + if (context.mounted) { + showPopUp( + context: context, + builder: (BuildContext context) { + return AlertWithOneAction( + alertTitle: S.of(context).error, + alertContent: S.of(context).unmatched_currencies, + buttonText: S.of(context).ok, + buttonAction: () => Navigator.of(context).pop()); + }); + } }); } } @@ -321,7 +323,8 @@ class SendCardState extends State with AutomaticKeepAliveClientMixin calculateDepositAllAmount() async { + if (wallet.type == WalletType.litecoin || wallet.type == WalletType.bitcoinCash) { final availableBalance = wallet.balance[wallet.currency]!.available; final priority = _settingsStore.priority[wallet.type]!; final fee = wallet.calculateEstimatedFee(priority, null); @@ -545,6 +553,13 @@ abstract class ExchangeViewModelBase extends WalletChangeListenerViewModel with final amount = availableBalance - fee; changeDepositAmount(amount: bitcoin!.formatterBitcoinAmountToString(amount: amount)); + } else if (wallet.type == WalletType.bitcoin) { + final priority = _settingsStore.priority[wallet.type]!; + + final amount = await bitcoin!.estimateFakeSendAllTxAmount( + wallet, bitcoin!.deserializeBitcoinTransactionPriority(priority.raw)); + + changeDepositAmount(amount: bitcoin!.formatterBitcoinAmountToString(amount: amount)); } } diff --git a/macos/Podfile.lock b/macos/Podfile.lock index 106a8a652..b82513de2 100644 --- a/macos/Podfile.lock +++ b/macos/Podfile.lock @@ -125,4 +125,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 65ec1541137fb5b35d00490dec1bb48d4d9586bb -COCOAPODS: 1.12.1 +COCOAPODS: 1.15.2 diff --git a/pubspec_base.yaml b/pubspec_base.yaml index d4bf981cd..0293df1d1 100644 --- a/pubspec_base.yaml +++ b/pubspec_base.yaml @@ -110,7 +110,7 @@ dependencies: bitcoin_base: git: url: https://github.com/cake-tech/bitcoin_base.git - ref: cake-update-v1 + ref: cake-update-v2 dev_dependencies: flutter_test: diff --git a/scripts/android/app_env.sh b/scripts/android/app_env.sh index 02f874d77..ec851a89b 100644 --- a/scripts/android/app_env.sh +++ b/scripts/android/app_env.sh @@ -22,8 +22,8 @@ MONERO_COM_PACKAGE="com.monero.app" MONERO_COM_SCHEME="monero.com" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="4.15.0" -CAKEWALLET_BUILD_NUMBER=198 +CAKEWALLET_VERSION="4.15.1" +CAKEWALLET_BUILD_NUMBER=199 CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet" CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet" CAKEWALLET_SCHEME="cakewallet" diff --git a/scripts/ios/app_env.sh b/scripts/ios/app_env.sh index b65d3e7a6..53bbf4022 100644 --- a/scripts/ios/app_env.sh +++ b/scripts/ios/app_env.sh @@ -18,8 +18,8 @@ MONERO_COM_BUILD_NUMBER=77 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="4.15.0" -CAKEWALLET_BUILD_NUMBER=217 +CAKEWALLET_VERSION="4.15.1" +CAKEWALLET_BUILD_NUMBER=218 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" HAVEN_NAME="Haven" diff --git a/scripts/macos/app_env.sh b/scripts/macos/app_env.sh index 19a1e6846..1e8022b7b 100755 --- a/scripts/macos/app_env.sh +++ b/scripts/macos/app_env.sh @@ -21,8 +21,8 @@ MONERO_COM_BUILD_NUMBER=10 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="1.8.0" -CAKEWALLET_BUILD_NUMBER=57 +CAKEWALLET_VERSION="1.8.1" +CAKEWALLET_BUILD_NUMBER=58 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then diff --git a/tool/configure.dart b/tool/configure.dart index 3c1587a98..962731d06 100644 --- a/tool/configure.dart +++ b/tool/configure.dart @@ -70,7 +70,6 @@ import 'package:cw_core/output_info.dart'; import 'package:cw_core/unspent_coins_info.dart'; import 'package:cw_core/wallet_service.dart'; import 'package:cake_wallet/view_model/send/output.dart'; -import 'package:cw_core/wallet_type.dart'; import 'package:hive/hive.dart'; import 'package:bitcoin_base/bitcoin_base.dart';"""; const bitcoinCWHeaders = """ @@ -127,6 +126,7 @@ abstract class Bitcoin { List getAddresses(Object wallet); String getAddress(Object wallet); + Future estimateFakeSendAllTxAmount(Object wallet, TransactionPriority priority); List getSubAddresses(Object wallet); String formatterBitcoinAmountToString({required int amount}); From ecb4f32cdaafdd0c362027f641f6b6ff0e480324 Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Thu, 21 Mar 2024 15:42:16 +0200 Subject: [PATCH 25/30] Fix Exchange field not taking numbers (#1341) --- lib/src/screens/exchange/exchange_page.dart | 2 +- lib/src/screens/exchange/widgets/exchange_card.dart | 4 +--- scripts/android/app_env.sh | 4 ++-- scripts/ios/app_env.sh | 4 ++-- scripts/macos/app_env.sh | 4 ++-- 5 files changed, 8 insertions(+), 10 deletions(-) diff --git a/lib/src/screens/exchange/exchange_page.dart b/lib/src/screens/exchange/exchange_page.dart index 61355df05..1a5ab24e6 100644 --- a/lib/src/screens/exchange/exchange_page.dart +++ b/lib/src/screens/exchange/exchange_page.dart @@ -634,7 +634,7 @@ class ExchangePage extends BasePage { borderColor: Theme.of(context).extension()!.textFieldBorderTopPanelColor, currencyValueValidator: (value) { - return !exchangeViewModel.isFixedRateMode + return !exchangeViewModel.isFixedRateMode && value != S.of(context).all ? AmountValidator( isAutovalidate: true, currency: exchangeViewModel.depositCurrency, diff --git a/lib/src/screens/exchange/widgets/exchange_card.dart b/lib/src/screens/exchange/widgets/exchange_card.dart index d2e3c27d4..8fa809de9 100644 --- a/lib/src/screens/exchange/widgets/exchange_card.dart +++ b/lib/src/screens/exchange/widgets/exchange_card.dart @@ -272,9 +272,7 @@ class ExchangeCardState extends State { color: Theme.of(context) .extension()! .hintTextColor), - validator: widget.hasAllAmount - ? widget.allAmountValidator - : _isAmountEditable + validator: _isAmountEditable ? widget.currencyValueValidator : null), ), diff --git a/scripts/android/app_env.sh b/scripts/android/app_env.sh index ec851a89b..ed2b67de5 100644 --- a/scripts/android/app_env.sh +++ b/scripts/android/app_env.sh @@ -22,8 +22,8 @@ MONERO_COM_PACKAGE="com.monero.app" MONERO_COM_SCHEME="monero.com" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="4.15.1" -CAKEWALLET_BUILD_NUMBER=199 +CAKEWALLET_VERSION="4.15.2" +CAKEWALLET_BUILD_NUMBER=200 CAKEWALLET_BUNDLE_ID="com.cakewallet.cake_wallet" CAKEWALLET_PACKAGE="com.cakewallet.cake_wallet" CAKEWALLET_SCHEME="cakewallet" diff --git a/scripts/ios/app_env.sh b/scripts/ios/app_env.sh index 53bbf4022..53514b39b 100644 --- a/scripts/ios/app_env.sh +++ b/scripts/ios/app_env.sh @@ -18,8 +18,8 @@ MONERO_COM_BUILD_NUMBER=77 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="4.15.1" -CAKEWALLET_BUILD_NUMBER=218 +CAKEWALLET_VERSION="4.15.2" +CAKEWALLET_BUILD_NUMBER=219 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" HAVEN_NAME="Haven" diff --git a/scripts/macos/app_env.sh b/scripts/macos/app_env.sh index 1e8022b7b..1654a022a 100755 --- a/scripts/macos/app_env.sh +++ b/scripts/macos/app_env.sh @@ -21,8 +21,8 @@ MONERO_COM_BUILD_NUMBER=10 MONERO_COM_BUNDLE_ID="com.cakewallet.monero" CAKEWALLET_NAME="Cake Wallet" -CAKEWALLET_VERSION="1.8.1" -CAKEWALLET_BUILD_NUMBER=58 +CAKEWALLET_VERSION="1.8.2" +CAKEWALLET_BUILD_NUMBER=59 CAKEWALLET_BUNDLE_ID="com.fotolockr.cakewallet" if ! [[ " ${TYPES[*]} " =~ " ${APP_MACOS_TYPE} " ]]; then From af7fe0509969da18ae6f778210814bc020ca907e Mon Sep 17 00:00:00 2001 From: Omar Hatem Date: Thu, 21 Mar 2024 16:31:05 +0200 Subject: [PATCH 26/30] Generic fixes (#1342) * handle balance exceptions in estimating All exchange * Fix trades not showing --- cw_bitcoin/lib/electrum_wallet_addresses.dart | 4 ++- lib/bitcoin/cw_bitcoin.dart | 28 +++++++++++-------- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/cw_bitcoin/lib/electrum_wallet_addresses.dart b/cw_bitcoin/lib/electrum_wallet_addresses.dart index 828bda8af..69d0a6385 100644 --- a/cw_bitcoin/lib/electrum_wallet_addresses.dart +++ b/cw_bitcoin/lib/electrum_wallet_addresses.dart @@ -220,7 +220,9 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store { Future updateAddressesInBox() async { try { addressesMap.clear(); - addressesMap[address] = ''; + _addresses.forEach((addressRecord) { + addressesMap[addressRecord.address] = addressRecord.name; + }); await saveAddressesInBox(); } catch (e) { print(e.toString()); diff --git a/lib/bitcoin/cw_bitcoin.dart b/lib/bitcoin/cw_bitcoin.dart index 709dc9a04..78423a8c3 100644 --- a/lib/bitcoin/cw_bitcoin.dart +++ b/lib/bitcoin/cw_bitcoin.dart @@ -127,19 +127,23 @@ class CWBitcoin extends Bitcoin { final p2shAddr = sk.getPublic().toP2pkhInP2sh(); final p2wpkhAddr = sk.getPublic().toP2wpkhAddress(); - final estimatedTx = await electrumWallet.estimateTxFeeAndInputsToUse( - 0, - true, - // Deposit address + change address - [p2shAddr, p2wpkhAddr], - [ - BitcoinOutput(address: p2shAddr, value: BigInt.zero), - BitcoinOutput(address: p2wpkhAddr, value: BigInt.zero) - ], - null, - priority as BitcoinTransactionPriority); + try { + final estimatedTx = await electrumWallet.estimateTxFeeAndInputsToUse( + 0, + true, + // Deposit address + change address + [p2shAddr, p2wpkhAddr], + [ + BitcoinOutput(address: p2shAddr, value: BigInt.zero), + BitcoinOutput(address: p2wpkhAddr, value: BigInt.zero) + ], + null, + priority as BitcoinTransactionPriority); - return estimatedTx.amount; + return estimatedTx.amount; + } catch (_) { + return 0; + } } @override From bca59ad5e486b6f0d9f6f572bc73f304b28199ae Mon Sep 17 00:00:00 2001 From: Konstantin Ullrich Date: Mon, 25 Mar 2024 13:16:57 -0500 Subject: [PATCH 27/30] Remove moonpay secret use exchange-helper instead (#1343) * Remove moonpay secret use exchange-helper instead * Update lib/buy/moonpay/moonpay_provider.dart * remove web3dart dep from cw_solana * Apply new api for moonpay exchange helper * Add Robinhood as Polygon buy-provider --- .github/workflows/pr_test_build.yml | 2 +- cw_solana/lib/solana_wallet.dart | 6 +-- cw_solana/pubspec.yaml | 3 +- lib/buy/moonpay/moonpay_provider.dart | 52 +++++++++++++------ lib/buy/robinhood/robinhood_buy_provider.dart | 3 +- lib/entities/provider_types.dart | 11 +--- tool/utils/secret_key.dart | 2 +- 7 files changed, 44 insertions(+), 35 deletions(-) diff --git a/.github/workflows/pr_test_build.yml b/.github/workflows/pr_test_build.yml index 282941365..ddc8869f0 100644 --- a/.github/workflows/pr_test_build.yml +++ b/.github/workflows/pr_test_build.yml @@ -143,7 +143,7 @@ jobs: echo "const chatwootWebsiteToken = '${{ secrets.CHATWOOT_WEBSITE_TOKEN }}';" >> lib/.secrets.g.dart echo "const exolixApiKey = '${{ secrets.EXOLIX_API_KEY }}';" >> lib/.secrets.g.dart echo "const robinhoodApplicationId = '${{ secrets.ROBINHOOD_APPLICATION_ID }}';" >> lib/.secrets.g.dart - echo "const robinhoodCIdApiSecret = '${{ secrets.ROBINHOOD_CID_CLIENT_SECRET }}';" >> lib/.secrets.g.dart + echo "const exchangeHelperApiKey = '${{ secrets.ROBINHOOD_CID_CLIENT_SECRET }}';" >> lib/.secrets.g.dart echo "const walletConnectProjectId = '${{ secrets.WALLET_CONNECT_PROJECT_ID }}';" >> lib/.secrets.g.dart echo "const moralisApiKey = '${{ secrets.MORALIS_API_KEY }}';" >> lib/.secrets.g.dart echo "const polygonScanApiKey = '${{ secrets.POLYGON_SCAN_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart diff --git a/cw_solana/lib/solana_wallet.dart b/cw_solana/lib/solana_wallet.dart index 3476d76cd..de4d70674 100644 --- a/cw_solana/lib/solana_wallet.dart +++ b/cw_solana/lib/solana_wallet.dart @@ -1,6 +1,5 @@ import 'dart:async'; import 'dart:convert'; -import 'dart:developer'; import 'dart:io'; import 'package:cw_core/cake_hive.dart'; import 'package:cw_core/crypto_currency.dart'; @@ -30,7 +29,6 @@ import 'package:mobx/mobx.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:solana/metaplex.dart' as metaplex; import 'package:solana/solana.dart'; -import 'package:web3dart/crypto.dart'; part 'solana_wallet.g.dart'; @@ -134,7 +132,7 @@ abstract class SolanaWalletBase assert(mnemonic != null || privateKey != null); if (privateKey != null) { - final privateKeyBytes = hexToBytes(privateKey); + final privateKeyBytes = HEX.decode(privateKey); return await Wallet.fromPrivateKeyBytes(privateKey: privateKeyBytes); } @@ -491,7 +489,7 @@ abstract class SolanaWalletBase final signature = await _walletKeyPair!.sign(messageBytes); // Convert the signature to a hexadecimal string - final hex = bytesToHex(signature.bytes); + final hex = HEX.encode(signature.bytes); return hex; } diff --git a/cw_solana/pubspec.yaml b/cw_solana/pubspec.yaml index c98b7492e..7e24983bf 100644 --- a/cw_solana/pubspec.yaml +++ b/cw_solana/pubspec.yaml @@ -19,7 +19,6 @@ dependencies: bip39: ^1.0.6 mobx: ^2.3.0+1 shared_preferences: ^2.0.15 - web3dart: ^2.7.1 bip32: ^2.0.0 hex: ^0.2.0 @@ -34,4 +33,4 @@ dev_dependencies: flutter: # assets: # - images/a_dot_burr.jpeg - # - images/a_dot_ham.jpeg \ No newline at end of file + # - images/a_dot_ham.jpeg diff --git a/lib/buy/moonpay/moonpay_provider.dart b/lib/buy/moonpay/moonpay_provider.dart index 75ba45ce1..02bdedaec 100644 --- a/lib/buy/moonpay/moonpay_provider.dart +++ b/lib/buy/moonpay/moonpay_provider.dart @@ -1,4 +1,13 @@ import 'dart:convert'; + +import 'package:cake_wallet/.secrets.g.dart' as secrets; +import 'package:cake_wallet/buy/buy_amount.dart'; +import 'package:cake_wallet/buy/buy_exception.dart'; +import 'package:cake_wallet/buy/buy_provider.dart'; +import 'package:cake_wallet/buy/buy_provider_description.dart'; +import 'package:cake_wallet/buy/order.dart'; +import 'package:cake_wallet/exchange/trade_state.dart'; +import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/palette.dart'; import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/src/widgets/alert_with_one_action.dart'; @@ -6,19 +15,11 @@ import 'package:cake_wallet/store/settings_store.dart'; import 'package:cake_wallet/themes/theme_base.dart'; import 'package:cake_wallet/utils/device_info.dart'; import 'package:crypto/crypto.dart'; -import 'package:cake_wallet/buy/buy_exception.dart'; -import 'package:cake_wallet/generated/i18n.dart'; -import 'package:flutter/material.dart'; -import 'package:http/http.dart'; -import 'package:cake_wallet/buy/buy_amount.dart'; -import 'package:cake_wallet/buy/buy_provider.dart'; -import 'package:cake_wallet/buy/buy_provider_description.dart'; -import 'package:cake_wallet/buy/order.dart'; +import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/wallet_base.dart'; import 'package:cw_core/wallet_type.dart'; -import 'package:cake_wallet/exchange/trade_state.dart'; -import 'package:cake_wallet/.secrets.g.dart' as secrets; -import 'package:cw_core/crypto_currency.dart'; +import 'package:flutter/material.dart'; +import 'package:http/http.dart'; import 'package:url_launcher/url_launcher.dart'; class MoonPaySellProvider extends BuyProvider { @@ -34,6 +35,7 @@ class MoonPaySellProvider extends BuyProvider { static const _baseTestUrl = 'sell-sandbox.moonpay.com'; static const _baseProductUrl = 'sell.moonpay.com'; + static const _cIdBaseUrl = 'exchange-helper.cakewallet.com'; @override String get providerDescription => @@ -60,9 +62,29 @@ class MoonPaySellProvider extends BuyProvider { static String get _apiKey => secrets.moonPayApiKey; - static String get _secretKey => secrets.moonPaySecretKey; + static String get _exchangeHelperApiKey => secrets.exchangeHelperApiKey; final String baseUrl; + Future getMoonpaySignature(String query) async { + final uri = Uri.https(_cIdBaseUrl, "/api/moonpay"); + + final response = await post( + uri, + headers: { + 'Content-Type': 'application/json', + 'x-api-key': _exchangeHelperApiKey, + }, + body: json.encode({'query': query}), + ); + + if (response.statusCode == 200) { + return (jsonDecode(response.body) as Map)['signature'] as String; + } else { + throw Exception( + 'Provider currently unavailable. Status: ${response.statusCode} ${response.body}'); + } + } + Future requestMoonPayUrl({ required CryptoCurrency currency, required String refundWalletAddress, @@ -86,11 +108,7 @@ class MoonPaySellProvider extends BuyProvider { }..addAll(customParams), ); - final messageBytes = utf8.encode('?${originalUri.query}'); - final key = utf8.encode(_secretKey); - final hmac = Hmac(sha256, key); - final digest = hmac.convert(messageBytes); - final signature = base64.encode(digest.bytes); + final signature = await getMoonpaySignature('?${originalUri.query}'); if (isTestEnvironment) { return originalUri; diff --git a/lib/buy/robinhood/robinhood_buy_provider.dart b/lib/buy/robinhood/robinhood_buy_provider.dart index 47c3ab1ea..7610e51f3 100644 --- a/lib/buy/robinhood/robinhood_buy_provider.dart +++ b/lib/buy/robinhood/robinhood_buy_provider.dart @@ -32,11 +32,12 @@ class RobinhoodBuyProvider extends BuyProvider { String get _applicationId => secrets.robinhoodApplicationId; - String get _apiSecret => secrets.robinhoodCIdApiSecret; + String get _apiSecret => secrets.exchangeHelperApiKey; String getSignature(String message) { switch (wallet.type) { case WalletType.ethereum: + case WalletType.polygon: return wallet.signMessage(message); case WalletType.litecoin: case WalletType.bitcoin: diff --git a/lib/entities/provider_types.dart b/lib/entities/provider_types.dart index b7336c2a7..f3993e129 100644 --- a/lib/entities/provider_types.dart +++ b/lib/entities/provider_types.dart @@ -55,6 +55,7 @@ class ProvidersHelper { case WalletType.monero: return [ProviderType.askEachTime, ProviderType.onramper, ProviderType.dfx]; case WalletType.bitcoin: + case WalletType.polygon: case WalletType.ethereum: return [ ProviderType.askEachTime, @@ -65,8 +66,6 @@ class ProvidersHelper { case WalletType.litecoin: case WalletType.bitcoinCash: return [ProviderType.askEachTime, ProviderType.onramper, ProviderType.robinhood]; - case WalletType.polygon: - return [ProviderType.askEachTime, ProviderType.onramper, ProviderType.dfx]; case WalletType.solana: return [ProviderType.askEachTime, ProviderType.onramper, ProviderType.robinhood]; case WalletType.none: @@ -79,6 +78,7 @@ class ProvidersHelper { switch (walletType) { case WalletType.bitcoin: case WalletType.ethereum: + case WalletType.polygon: return [ ProviderType.askEachTime, ProviderType.onramper, @@ -88,13 +88,6 @@ class ProvidersHelper { case WalletType.litecoin: case WalletType.bitcoinCash: return [ProviderType.askEachTime, ProviderType.moonpaySell]; - case WalletType.polygon: - return [ - ProviderType.askEachTime, - ProviderType.onramper, - ProviderType.moonpaySell, - ProviderType.dfx, - ]; case WalletType.solana: return [ ProviderType.askEachTime, diff --git a/tool/utils/secret_key.dart b/tool/utils/secret_key.dart index 38b5129af..430de03b6 100644 --- a/tool/utils/secret_key.dart +++ b/tool/utils/secret_key.dart @@ -34,7 +34,7 @@ class SecretKey { SecretKey('chatwootWebsiteToken', () => ''), SecretKey('exolixApiKey', () => ''), SecretKey('robinhoodApplicationId', () => ''), - SecretKey('robinhoodCIdApiSecret', () => ''), + SecretKey('exchangeHelperApiKey', () => ''), SecretKey('walletConnectProjectId', () => ''), SecretKey('moralisApiKey', () => ''), ]; From 4520f583a6d66a8678b8f0c476dde8b9509a1fe0 Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Mon, 25 Mar 2024 14:28:45 -0400 Subject: [PATCH 28/30] Add toggle for disabling service bulletin (#1347) * Add toggle for disabling service bulletin * Make the toggle functional * Fix + add toggle to Advanced Settings * Remove unused variable --------- Co-authored-by: Omar Hatem --- lib/entities/preferences_key.dart | 1 + lib/src/screens/dashboard/dashboard_page.dart | 11 ++++++++++- .../new_wallet/advanced_privacy_settings_page.dart | 6 ++++++ lib/src/screens/settings/privacy_page.dart | 6 ++++++ lib/store/settings_store.dart | 13 +++++++++++++ .../advanced_privacy_settings_view_model.dart | 6 ++++++ lib/view_model/dashboard/dashboard_view_model.dart | 3 +++ .../settings/privacy_settings_view_model.dart | 6 ++++++ res/values/strings_ar.arb | 1 + res/values/strings_bg.arb | 1 + res/values/strings_cs.arb | 1 + res/values/strings_de.arb | 3 ++- res/values/strings_en.arb | 1 + res/values/strings_es.arb | 1 + res/values/strings_fr.arb | 1 + res/values/strings_ha.arb | 1 + res/values/strings_hi.arb | 1 + res/values/strings_hr.arb | 1 + res/values/strings_id.arb | 1 + res/values/strings_it.arb | 1 + res/values/strings_ja.arb | 1 + res/values/strings_ko.arb | 1 + res/values/strings_my.arb | 1 + res/values/strings_nl.arb | 1 + res/values/strings_pl.arb | 1 + res/values/strings_pt.arb | 1 + res/values/strings_ru.arb | 1 + res/values/strings_th.arb | 1 + res/values/strings_tl.arb | 1 + res/values/strings_tr.arb | 1 + res/values/strings_uk.arb | 1 + res/values/strings_ur.arb | 1 + res/values/strings_yo.arb | 1 + res/values/strings_zh.arb | 1 + 34 files changed, 78 insertions(+), 2 deletions(-) diff --git a/lib/entities/preferences_key.dart b/lib/entities/preferences_key.dart index 1808be97c..5c22455d2 100644 --- a/lib/entities/preferences_key.dart +++ b/lib/entities/preferences_key.dart @@ -20,6 +20,7 @@ class PreferencesKey { static const isAppSecureKey = 'is_app_secure'; static const disableBuyKey = 'disable_buy'; static const disableSellKey = 'disable_sell'; + static const disableBulletinKey = 'disable_bulletin'; static const defaultBuyProvider = 'default_buy_provider'; static const walletListOrder = 'wallet_list_order'; static const walletListAscending = 'wallet_list_ascending'; diff --git a/lib/src/screens/dashboard/dashboard_page.dart b/lib/src/screens/dashboard/dashboard_page.dart index 3806dff91..ed06f4704 100644 --- a/lib/src/screens/dashboard/dashboard_page.dart +++ b/lib/src/screens/dashboard/dashboard_page.dart @@ -103,7 +103,16 @@ class _DashboardPageView extends BasePage { Widget get endDrawer => MenuWidget(dashboardViewModel); @override - Widget leading(BuildContext context) => ServicesUpdatesWidget(dashboardViewModel.getServicesStatus()); + Widget leading(BuildContext context) { + return Observer( + builder: (context) { + if (dashboardViewModel.isEnabledBulletinAction) { + return ServicesUpdatesWidget(dashboardViewModel.getServicesStatus()); + } + return const SizedBox(); + }, + ); + } @override Widget middle(BuildContext context) { diff --git a/lib/src/screens/new_wallet/advanced_privacy_settings_page.dart b/lib/src/screens/new_wallet/advanced_privacy_settings_page.dart index 26478345e..881d9f95a 100644 --- a/lib/src/screens/new_wallet/advanced_privacy_settings_page.dart +++ b/lib/src/screens/new_wallet/advanced_privacy_settings_page.dart @@ -100,6 +100,12 @@ class _AdvancedPrivacySettingsBodyState extends State sharedPreferences.setBool(PreferencesKey.disableSellKey, disableSell)); + reaction( + (_) => disableBulletin, + (bool disableBulletin) => + sharedPreferences.setBool(PreferencesKey.disableBulletinKey, disableBulletin)); + reaction( (_) => walletListOrder, (WalletListOrderType walletListOrder) => @@ -553,6 +560,9 @@ abstract class SettingsStoreBase with Store { @observable bool disableSell; + @observable + bool disableBulletin; + @observable WalletListOrderType walletListOrder; @@ -777,6 +787,7 @@ abstract class SettingsStoreBase with Store { final isAppSecure = sharedPreferences.getBool(PreferencesKey.isAppSecureKey) ?? false; final disableBuy = sharedPreferences.getBool(PreferencesKey.disableBuyKey) ?? false; final disableSell = sharedPreferences.getBool(PreferencesKey.disableSellKey) ?? false; + final disableBulletin = sharedPreferences.getBool(PreferencesKey.disableBulletinKey) ?? false; final walletListOrder = WalletListOrderType.values[sharedPreferences.getInt(PreferencesKey.walletListOrder) ?? 0]; final walletListAscending = @@ -1029,6 +1040,7 @@ abstract class SettingsStoreBase with Store { initialAppSecure: isAppSecure, initialDisableBuy: disableBuy, initialDisableSell: disableSell, + initialDisableBulletin: disableBulletin, initialWalletListOrder: walletListOrder, initialWalletListAscending: walletListAscending, initialFiatMode: currentFiatApiMode, @@ -1147,6 +1159,7 @@ abstract class SettingsStoreBase with Store { isAppSecure = sharedPreferences.getBool(PreferencesKey.isAppSecureKey) ?? isAppSecure; disableBuy = sharedPreferences.getBool(PreferencesKey.disableBuyKey) ?? disableBuy; disableSell = sharedPreferences.getBool(PreferencesKey.disableSellKey) ?? disableSell; + disableBulletin = sharedPreferences.getBool(PreferencesKey.disableBulletinKey) ?? disableBulletin; walletListOrder = WalletListOrderType.values[sharedPreferences.getInt(PreferencesKey.walletListOrder) ?? 0]; walletListAscending = sharedPreferences.getBool(PreferencesKey.walletListAscending) ?? true; diff --git a/lib/view_model/advanced_privacy_settings_view_model.dart b/lib/view_model/advanced_privacy_settings_view_model.dart index b78d831a4..a17ddff36 100644 --- a/lib/view_model/advanced_privacy_settings_view_model.dart +++ b/lib/view_model/advanced_privacy_settings_view_model.dart @@ -20,6 +20,9 @@ abstract class AdvancedPrivacySettingsViewModelBase with Store { @computed FiatApiMode get fiatApiMode => _settingsStore.fiatApiMode; + @computed + bool get disableBulletin => _settingsStore.disableBulletin; + @observable bool _addCustomNode = false; @@ -64,6 +67,9 @@ abstract class AdvancedPrivacySettingsViewModelBase with Store { @action void setExchangeApiMode(ExchangeApiMode value) => _settingsStore.exchangeStatus = value; + @action + void setDisableBulletin(bool value) => _settingsStore.disableBulletin = value; + @action void toggleAddCustomNode() => _addCustomNode = !_addCustomNode; diff --git a/lib/view_model/dashboard/dashboard_view_model.dart b/lib/view_model/dashboard/dashboard_view_model.dart index b02c09f82..9ee0647fc 100644 --- a/lib/view_model/dashboard/dashboard_view_model.dart +++ b/lib/view_model/dashboard/dashboard_view_model.dart @@ -355,6 +355,9 @@ abstract class DashboardViewModelBase with Store { @observable bool hasSellAction; + @computed + bool get isEnabledBulletinAction => !settingsStore.disableBulletin; + ReactionDisposer? _onMoneroAccountChangeReaction; ReactionDisposer? _onMoneroBalanceChangeReaction; diff --git a/lib/view_model/settings/privacy_settings_view_model.dart b/lib/view_model/settings/privacy_settings_view_model.dart index 65375b3e7..831a45357 100644 --- a/lib/view_model/settings/privacy_settings_view_model.dart +++ b/lib/view_model/settings/privacy_settings_view_model.dart @@ -59,6 +59,9 @@ abstract class PrivacySettingsViewModelBase with Store { @computed bool get disableSell => _settingsStore.disableSell; + @computed + bool get disableBulletin => _settingsStore.disableBulletin; + @computed bool get useEtherscan => _settingsStore.useEtherscan; @@ -106,6 +109,9 @@ abstract class PrivacySettingsViewModelBase with Store { @action void setDisableSell(bool value) => _settingsStore.disableSell = value; + @action + void setDisableBulletin(bool value) => _settingsStore.disableBulletin = value; + @action void setLookupsTwitter(bool value) => _settingsStore.lookupsTwitter = value; diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 900f59135..66af15dfa 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -186,6 +186,7 @@ "digit_pin": "-رقم PIN", "digital_and_physical_card": " بطاقة ائتمان رقمية ومادية مسبقة الدفع", "disable": "إبطال", + "disable_bulletin": "تعطيل نشرة حالة الخدمة", "disable_buy": "تعطيل إجراء الشراء", "disable_cake_2fa": "تعطيل 2 عامل المصادقة", "disable_exchange": "تعطيل التبادل", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index 3e8cd148e..061506b86 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -186,6 +186,7 @@ "digit_pin": "-цифрен PIN", "digital_and_physical_card": " дигитална или физическа предплатена дебитна карта", "disable": "Деактивиране", + "disable_bulletin": "Деактивирайте бюлетина за състоянието на услугата", "disable_buy": "Деактивирайте действието за покупка", "disable_cake_2fa": "Деактивирайте Cake 2FA", "disable_exchange": "Деактивиране на борса", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 8a5213821..2896c11a9 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -186,6 +186,7 @@ "digit_pin": "-číselný PIN", "digital_and_physical_card": " digitální a fyzické předplacené debetní karty,", "disable": "Zakázat", + "disable_bulletin": "Zakázat status servisního stavu", "disable_buy": "Zakázat akci nákupu", "disable_cake_2fa": "Zakázat Cake 2FA", "disable_exchange": "Zakázat směnárny", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 549f6f775..9dfa4f4db 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -186,6 +186,7 @@ "digit_pin": "-stellige PIN", "digital_and_physical_card": "digitale und physische Prepaid-Debitkarte", "disable": "Deaktivieren", + "disable_bulletin": "Deaktivieren Sie das Bulletin des Service Status", "disable_buy": "Kaufaktion deaktivieren", "disable_cake_2fa": "Cake 2FA deaktivieren", "disable_exchange": "Exchange deaktivieren", @@ -411,8 +412,8 @@ "placeholder_transactions": "Ihre Transaktionen werden hier angezeigt", "please_fill_totp": "Bitte geben Sie den 8-stelligen Code ein, der auf Ihrem anderen Gerät vorhanden ist", "please_make_selection": "Bitte treffen Sie unten eine Auswahl zum Erstellen oder Wiederherstellen Ihrer Wallet.", - "Please_reference_document": "Weitere Informationen finden Sie in den Dokumenten unten.", "please_reference_document": "Bitte verweisen Sie auf die folgenden Dokumente, um weitere Informationen zu erhalten.", + "Please_reference_document": "Weitere Informationen finden Sie in den Dokumenten unten.", "please_select": "Bitte auswählen:", "please_select_backup_file": "Bitte wählen Sie die Sicherungsdatei und geben Sie das Sicherungskennwort ein.", "please_try_to_connect_to_another_node": "Bitte versuchen Sie, sich mit einem anderen Knoten zu verbinden", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 9b1610da5..902cb062f 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -186,6 +186,7 @@ "digit_pin": "-digit PIN", "digital_and_physical_card": " digital and physical prepaid debit card", "disable": "Disable", + "disable_bulletin": "Disable service status bulletin", "disable_buy": "Disable buy action", "disable_cake_2fa": "Disable Cake 2FA", "disable_exchange": "Disable exchange", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 4847f5521..4b9a9d26b 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -186,6 +186,7 @@ "digit_pin": "-dígito PIN", "digital_and_physical_card": " tarjeta de débito prepago digital y física", "disable": "Desactivar", + "disable_bulletin": "Desactivar el boletín de estado del servicio", "disable_buy": "Desactivar acción de compra", "disable_cake_2fa": "Desactivar pastel 2FA", "disable_exchange": "Deshabilitar intercambio", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index d1390a5ca..384bb9585 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -186,6 +186,7 @@ "digit_pin": " chiffres", "digital_and_physical_card": "carte de débit prépayée numérique et physique", "disable": "Désactiver", + "disable_bulletin": "Désactiver le bulletin de statut de service", "disable_buy": "Désactiver l'action d'achat", "disable_cake_2fa": "Désactiver Cake 2FA", "disable_exchange": "Désactiver l'échange", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index e9bd604d2..7c0a7df12 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -186,6 +186,7 @@ "digit_pin": "-lambar PIN", "digital_and_physical_card": "katin zare kudi na dijital da na zahiri", "disable": "Kashe", + "disable_bulletin": "Musaki ma'aunin sabis na sabis", "disable_buy": "Kashe alama", "disable_cake_2fa": "Musaki Cake 2FA", "disable_exchange": "Kashe musanya", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 535fd0264..932fb25e7 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -186,6 +186,7 @@ "digit_pin": "-अंक पिन", "digital_and_physical_card": "डिजिटल और भौतिक प्रीपेड डेबिट कार्ड", "disable": "अक्षम करना", + "disable_bulletin": "सेवा स्थिति बुलेटिन अक्षम करें", "disable_buy": "खरीद कार्रवाई अक्षम करें", "disable_cake_2fa": "केक 2FA अक्षम करें", "disable_exchange": "एक्सचेंज अक्षम करें", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 9a7cab450..c8c9a00bd 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -186,6 +186,7 @@ "digit_pin": "-znamenkasti PIN", "digital_and_physical_card": "digitalna i fizička unaprijed plaćena debitna kartica", "disable": "Onemogući", + "disable_bulletin": "Onemogućite bilten o statusu usluge", "disable_buy": "Onemogući kupnju", "disable_cake_2fa": "Onemogući Cake 2FA", "disable_exchange": "Onemogući exchange", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index f29298c4f..2168de910 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -186,6 +186,7 @@ "digit_pin": "-digit PIN", "digital_and_physical_card": " kartu debit pra-bayar digital dan fisik", "disable": "Cacat", + "disable_bulletin": "Nonaktifkan Buletin Status Layanan", "disable_buy": "Nonaktifkan tindakan beli", "disable_cake_2fa": "Nonaktifkan Kue 2FA", "disable_exchange": "Nonaktifkan pertukaran", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 82dd6b976..2700203a0 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -187,6 +187,7 @@ "digit_pin": "-cifre PIN", "digital_and_physical_card": "carta di debito prepagata digitale e fisica", "disable": "disattivare", + "disable_bulletin": "Disabilita Bollettino dello stato del servizio", "disable_buy": "Disabilita l'azione di acquisto", "disable_cake_2fa": "Disabilita Cake 2FA", "disable_exchange": "Disabilita scambio", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 95a7643b0..443ce6658 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -186,6 +186,7 @@ "digit_pin": "桁ピン", "digital_and_physical_card": "デジタルおよび物理プリペイドデビットカード", "disable": "無効にする", + "disable_bulletin": "サービスステータス速報を無効にします", "disable_buy": "購入アクションを無効にする", "disable_cake_2fa": "Cake 2FA を無効にする", "disable_exchange": "交換を無効にする", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index e8b208c28..3affd803b 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -186,6 +186,7 @@ "digit_pin": "숫자 PIN", "digital_and_physical_card": " 디지털 및 실제 선불 직불 카드", "disable": "장애를 입히다", + "disable_bulletin": "서비스 상태 게시판을 비활성화합니다", "disable_buy": "구매 행동 비활성화", "disable_cake_2fa": "케이크 2FA 비활성화", "disable_exchange": "교환 비활성화", diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index 42ea07cb6..c52d65c06 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -186,6 +186,7 @@ "digit_pin": "-ဂဏန်း PIN", "digital_and_physical_card": " ဒစ်ဂျစ်တယ်နှင့် ရုပ်ပိုင်းဆိုင်ရာ ကြိုတင်ငွေပေးချေသော ဒက်ဘစ်ကတ်", "disable": "ပိတ်ပါ။", + "disable_bulletin": "ဝန်ဆောင်မှုအခြေအနေစာစောင်ကိုပိတ်ပါ", "disable_buy": "ဝယ်ယူမှု လုပ်ဆောင်ချက်ကို ပိတ်ပါ။", "disable_cake_2fa": "ကိတ်မုန့် 2FA ကို ပိတ်ပါ။", "disable_exchange": "လဲလှယ်မှုကို ပိတ်ပါ။", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index a00a12338..fa7825809 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -186,6 +186,7 @@ "digit_pin": "-cijferige PIN", "digital_and_physical_card": "digitale en fysieke prepaid debetkaart", "disable": "Uitzetten", + "disable_bulletin": "Schakel servicestatus Bulletin uit", "disable_buy": "Koopactie uitschakelen", "disable_cake_2fa": "Taart 2FA uitschakelen", "disable_exchange": "Uitwisseling uitschakelen", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 1ad616bc9..16dc8696a 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -186,6 +186,7 @@ "digit_pin": "-znakowy PIN", "digital_and_physical_card": " cyfrowa i fizyczna przedpłacona karta debetowa", "disable": "Wyłączyć", + "disable_bulletin": "Wyłącz biuletyn statusu usługi", "disable_buy": "Wyłącz akcję kupna", "disable_cake_2fa": "Wyłącz Cake 2FA", "disable_exchange": "Wyłącz wymianę", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index c1b579186..8516ecf3f 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -186,6 +186,7 @@ "digit_pin": "dígitos", "digital_and_physical_card": "cartão de débito pré-pago digital e físico", "disable": "Desativar", + "disable_bulletin": "Desativar boletim de status de serviço", "disable_buy": "Desativar ação de compra", "disable_cake_2fa": "Desabilitar o Cake 2FA", "disable_exchange": "Desativar troca", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index f327f126a..2bff24414 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -186,6 +186,7 @@ "digit_pin": "-значный PIN", "digital_and_physical_card": "цифровая и физическая предоплаченная дебетовая карта", "disable": "Запрещать", + "disable_bulletin": "Отключить бюллетень статуса обслуживания", "disable_buy": "Отключить действие покупки", "disable_cake_2fa": "Отключить торт 2FA", "disable_exchange": "Отключить обмен", diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index 255b80df7..9c37ff8bb 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -186,6 +186,7 @@ "digit_pin": "-หลัก PIN", "digital_and_physical_card": "บัตรเดบิตดิจิตอลและบัตรพื้นฐาน", "disable": "ปิดการใช้งาน", + "disable_bulletin": "ปิดการใช้งาน Bulletin สถานะบริการ", "disable_buy": "ปิดการใช้งานการซื้อ", "disable_cake_2fa": "ปิดการใช้งานเค้ก 2FA", "disable_exchange": "ปิดใช้งานการแลกเปลี่ยน", diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index 1d7063881..d4be21741 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -186,6 +186,7 @@ "digit_pin": "-digit pin", "digital_and_physical_card": "Digital at Physical Prepaid Debit Card", "disable": "Huwag paganahin", + "disable_bulletin": "Huwag paganahin ang Bulletin ng Katayuan ng Serbisyo", "disable_buy": "Huwag paganahin ang pagkilos ng pagbili", "disable_cake_2fa": "Huwag paganahin ang cake 2FA", "disable_exchange": "Huwag paganahin ang palitan", diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index 99879d5ef..a6209ed33 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -186,6 +186,7 @@ "digit_pin": " haneli PIN", "digital_and_physical_card": " Dijital para birimleri ile para yükleyebileceğiniz ve ek bilgiye gerek olmayan", "disable": "Devre dışı bırakmak", + "disable_bulletin": "Hizmet Durumu Bültenini Devre Dışı Bırak", "disable_buy": "Satın alma işlemini devre dışı bırak", "disable_cake_2fa": "Cake 2FA'yı Devre Dışı Bırak", "disable_exchange": "Borsayı devre dışı bırak", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 63c59d475..3d60b9e8e 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -186,6 +186,7 @@ "digit_pin": "-значний PIN", "digital_and_physical_card": " цифрова та фізична передплачена дебетова картка", "disable": "Вимкнути", + "disable_bulletin": "Вимкнути статус послуги", "disable_buy": "Вимкнути дію покупки", "disable_cake_2fa": "Вимкнути Cake 2FA", "disable_exchange": "Вимкнути exchange", diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index 08212c0b1..e0e74e6de 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -186,6 +186,7 @@ "digit_pin": "-ہندسوں کا پن", "digital_and_physical_card": " ڈیجیٹل اور فزیکل پری پیڈ ڈیبٹ کارڈ", "disable": "غیر فعال کریں۔", + "disable_bulletin": "خدمت کی حیثیت کا بلیٹن کو غیر فعال کریں", "disable_buy": "خرید ایکشن کو غیر فعال کریں۔", "disable_cake_2fa": "کیک 2FA کو غیر فعال کریں۔", "disable_exchange": "تبادلے کو غیر فعال کریں۔", diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index f9b198843..54df5dbf2 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -186,6 +186,7 @@ "digit_pin": "-díjíìtì òǹkà ìdánimọ̀ àdáni", "digital_and_physical_card": " káàdì ìrajà t'ara àti ti ayélujára", "disable": "Ko si", + "disable_bulletin": "Mu blogti ipo ipo ṣiṣẹ", "disable_buy": "Ko iṣọrọ ọja", "disable_cake_2fa": "Ko 2FA Cake sii", "disable_exchange": "Pa ilé pàṣípààrọ̀", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 8a61a6a4a..cb1f012fb 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -186,6 +186,7 @@ "digit_pin": "位 PIN", "digital_and_physical_card": "数字和物理预付借记卡", "disable": "停用", + "disable_bulletin": "禁用服务状态公告", "disable_buy": "禁用购买操作", "disable_cake_2fa": "禁用蛋糕 2FA", "disable_exchange": "禁用交换", From 6ae0f37b9c6ccb6376981e944eea1a7054eb270d Mon Sep 17 00:00:00 2001 From: Adegoke David <64401859+Blazebrain@users.noreply.github.com> Date: Tue, 26 Mar 2024 11:37:52 +0100 Subject: [PATCH 29/30] CW-597-AuthService-Bug (#1346) * fix: AuthService keychain bug fix * fix: Fetch read implementation * fix: Simplify logic for retries * Minor enhancement --------- Co-authored-by: Omar Hatem --- lib/core/auth_service.dart | 7 +++++-- lib/core/key_service.dart | 3 ++- lib/core/secure_storage.dart | 27 +++++++++++++++++++++++++++ 3 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 lib/core/secure_storage.dart diff --git a/lib/core/auth_service.dart b/lib/core/auth_service.dart index a99aef31d..48610784c 100644 --- a/lib/core/auth_service.dart +++ b/lib/core/auth_service.dart @@ -1,5 +1,7 @@ +import 'dart:async'; import 'dart:io'; +import 'package:cake_wallet/core/secure_storage.dart'; import 'package:cake_wallet/core/totp_request_details.dart'; import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/src/screens/auth/auth_page.dart'; @@ -64,7 +66,7 @@ class AuthService with Store { Future authenticate(String pin) async { final key = generateStoreKeyFor(key: SecretStoreKey.pinCodePassword); - final encodedPin = await secureStorage.read(key: key); + final encodedPin = await readSecureStorage(secureStorage, key); final decodedPin = decodedPinCode(pin: encodedPin!); return decodedPin == pin; @@ -76,7 +78,8 @@ class AuthService with Store { } Future requireAuth() async { - final timestamp = int.tryParse(await secureStorage.read(key: SecureKey.lastAuthTimeMilliseconds) ?? '0'); + final timestamp = + int.tryParse(await secureStorage.read(key: SecureKey.lastAuthTimeMilliseconds) ?? '0'); final duration = _durationToRequireAuth(timestamp ?? 0); final requiredPinInterval = settingsStore.pinTimeOutDuration; diff --git a/lib/core/key_service.dart b/lib/core/key_service.dart index fce254ea2..f829c22b5 100644 --- a/lib/core/key_service.dart +++ b/lib/core/key_service.dart @@ -1,3 +1,4 @@ +import 'package:cake_wallet/core/secure_storage.dart'; import 'package:flutter_secure_storage/flutter_secure_storage.dart'; import 'package:cake_wallet/entities/secret_store_key.dart'; import 'package:cake_wallet/entities/encrypt.dart'; @@ -10,7 +11,7 @@ class KeyService { Future getWalletPassword({required String walletName}) async { final key = generateStoreKeyFor( key: SecretStoreKey.moneroWalletPassword, walletName: walletName); - final encodedPassword = await _secureStorage.read(key: key); + final encodedPassword = await readSecureStorage(_secureStorage, key); return decodeWalletPassword(password: encodedPassword!); } diff --git a/lib/core/secure_storage.dart b/lib/core/secure_storage.dart new file mode 100644 index 000000000..4d9334a10 --- /dev/null +++ b/lib/core/secure_storage.dart @@ -0,0 +1,27 @@ +import 'dart:async'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +// For now, we can create a utility function to handle this. +// +// However, we could look into abstracting the entire FlutterSecureStorage package +// so the app doesn't depend on the package directly but an absraction. +// It'll make these kind of modifications to read/write come from a single point. + +Future readSecureStorage(FlutterSecureStorage secureStorage, String key) async { + String? result; + const maxWait = Duration(seconds: 3); + const checkInterval = Duration(milliseconds: 200); + + DateTime start = DateTime.now(); + + while (result == null && DateTime.now().difference(start) < maxWait) { + result = await secureStorage.read(key: key); + + if (result != null) { + break; + } + + await Future.delayed(checkInterval); + } + + return result; +} From b9e803f3bd603a996e526cfd27db5d3c00f7b48f Mon Sep 17 00:00:00 2001 From: Konstantin Ullrich Date: Tue, 26 Mar 2024 11:08:39 -0500 Subject: [PATCH 30/30] Fix pubspec generation on windows (#1351) --- tool/configure.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tool/configure.dart b/tool/configure.dart index 962731d06..99d1fe8ee 100644 --- a/tool/configure.dart +++ b/tool/configure.dart @@ -1037,7 +1037,7 @@ Future generatePubspec( final inputFile = File(pubspecOutputPath); final inputText = await inputFile.readAsString(); final inputLines = inputText.split('\n'); - final dependenciesIndex = inputLines.indexWhere((line) => line.toLowerCase() == 'dependencies:'); + final dependenciesIndex = inputLines.indexWhere((line) => line.toLowerCase().contains('dependencies:')); var output = cwCore; if (hasMonero) {