From 8024db67dca0127816c1438bb13888fb051e1542 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Thu, 12 Oct 2023 23:28:28 +0900 Subject: [PATCH 01/24] feature(mobile): Localization from Tolgee --- .husky/pre-commit | 4 + package.json | 10 +- packages/shared/.tolgeerc.json | 3 + packages/shared/i18n/locales/en.json | 1023 ---------------- packages/shared/i18n/locales/it.json | 767 ------------ packages/shared/i18n/locales/ru.json | 1071 ----------------- .../shared/i18n/locales/tonkeeper/en.json | 965 +++++++++++++++ .../shared/i18n/locales/tonkeeper/it.json | 701 +++++++++++ .../shared/i18n/locales/tonkeeper/ru-RU.json | 1009 ++++++++++++++++ .../shared/i18n/locales/tonkeeper/tr-TR.json | 901 ++++++++++++++ .../i18n/locales/tonkeeper/zh-Hans-CN.json | 845 +++++++++++++ packages/shared/i18n/translations.ts | 4 +- packages/shared/package.json | 5 +- 13 files changed, 4442 insertions(+), 2866 deletions(-) create mode 100755 .husky/pre-commit create mode 100644 packages/shared/.tolgeerc.json delete mode 100644 packages/shared/i18n/locales/en.json delete mode 100644 packages/shared/i18n/locales/it.json delete mode 100644 packages/shared/i18n/locales/ru.json create mode 100644 packages/shared/i18n/locales/tonkeeper/en.json create mode 100644 packages/shared/i18n/locales/tonkeeper/it.json create mode 100644 packages/shared/i18n/locales/tonkeeper/ru-RU.json create mode 100644 packages/shared/i18n/locales/tonkeeper/tr-TR.json create mode 100644 packages/shared/i18n/locales/tonkeeper/zh-Hans-CN.json diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 000000000..32868dcaf --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +yarn pull_locales && git add packages/shared/i18n/locales diff --git a/package.json b/package.json index add26debb..0220a9b3f 100755 --- a/package.json +++ b/package.json @@ -7,6 +7,8 @@ ] }, "scripts": { + "push_locales": "cd packages && cd shared && yarn push_locales", + "pull_locales": "cd packages && cd shared && yarn pull_locales", "postinstall": "patch-package", "pods": "cd packages && cd mobile && yarn pods", "icons": "cd packages && cd mobile && yarn icons", @@ -20,7 +22,11 @@ "bump": "cd packages/mobile && yarn bump", "rnm": "find . -name \"node_modules\" -type d -prune -exec rm -rf '{}' +", "fnm": "find . -name \"node_modules\" -type d -prune | xargs du -chs", - "adb": "adb reverse tcp:8081 tcp:8081" + "adb": "adb reverse tcp:8081 tcp:8081", + "prepare": "husky install" }, - "dependencies": {} + "dependencies": {}, + "devDependencies": { + "husky": "^8.0.0" + } } diff --git a/packages/shared/.tolgeerc.json b/packages/shared/.tolgeerc.json new file mode 100644 index 000000000..17a8816b1 --- /dev/null +++ b/packages/shared/.tolgeerc.json @@ -0,0 +1,3 @@ +{ + "projectId": 3698 +} diff --git a/packages/shared/i18n/locales/en.json b/packages/shared/i18n/locales/en.json deleted file mode 100644 index 1917d56ed..000000000 --- a/packages/shared/i18n/locales/en.json +++ /dev/null @@ -1,1023 +0,0 @@ -{ - "app_name": "Tonkeeper", - - "cancel": "Cancel", - "skip": "Skip", - "later": "Later", - "continue": "Continue", - "loading": "Loading", - "success": "Success!", - "copied": "Copied", - "paste": "Paste", - "address_copied": "Address copied", - "link_copied": "Link copied", - "form_optional_indicator": "Optional", - "error_occurred": "An error occurred", - "refresh_app": "Restart", - "copy_error_log": "Copy error log", - "error_network": "Network error", - "access_denied": "Access denied", - "auth_failed": "Authentication failed", - "today": "Today", - "yesterday": "Yesterday", - - "tab_wallet": "Wallet", - "tab_swap": "Swap", - "tab_nft": "NFTs", - "tab_browser": "Browser", - "tab_settings": "Settings", - - "intro_title": "Welcome\nto ", - "intro_item1_title": "World-class speed", - "intro_item1_caption": "Thanks to the unique architecture of The Open Network, TON transactions are settled in seconds.", - "intro_item2_title": "End-to-end security", - "intro_item2_caption": "Tonkeeper stores your cryptographic keys on your device. All trades are executed via decentralized protocols so that your crypto never ends up in the hands of centralized exchanges.", - "intro_item3_title": "-", - "intro_item3_caption": "-", - "intro_continue_btn": "Get started", - - "about_ton": "TON is a fully decentralized layer-1 blockchain designed by Telegram to onboard billions of users. It boasts ultra-fast transactions, tiny fees, easy-to-use apps, and is environmentally friendly.", - "wallet_title": "Wallet", - "wallet_receive": "Receive", - "wallet_send": "Send", - "wallet_buy": "Buy", - "wallet_source_code": "Source code", - "wallet_community": "Community", - "wallet_chat": "Chat", - "wallet_sell": "Sell", - "wallet_about": "About", - "wallet_swap": "Swap", - "wallet_old_balance": "Old wallet:", - "wallet_hours_symbol": "h", - "balances_setup_wallet": "Set up wallet", - "add_other_coins": "Add other cryptos", - "manage_other_coins": "Manage my crypto", - "notify_connection_err_title": "Could not connect to server", - "notify_connection_err_caption": "%{host} is not responding. Please try again later.", - "notify_connection_err_caption_few": "%{hosts} and %{lastHost} are not responding. Please try again later.", - "notify_incorrect_time_err_title": "Time and date are incorrect", - "notify_incorrect_time_err_caption": "In device settings, enable automatic time and date. When time isn't set automatically, it may affect fund transfers.", - "notify_no_signal_title": "No signal", - "notify_no_signal_caption": "Please check your internet connection.", - "transaction_type_sent": "Sent", - "transaction_type_receive": "Received", - "transaction_type_contract_deploy": "Contract Deploy", - "transaction_type_buy": "Purchased", - "transaction_type_pending": "Pending", - "transaction_type_subscription": "Subscribed", - "transaction_type_unsubscription": "Unsubscribed", - "transaction_type_new_subscriber": "New subscriber", - "transaction_type_subscriber_lost": "Subscriber lost", - "transaction_type_wallet_initialized": "Wallet initialized", - "transaction_type_bounced": "Bounced", - "transaction_type_from": "From", - "transaction_type_to": "To", - "transaction_recipient": "Recipient", - "transaction_sender": "Sender", - "transaction_recipient_address": "Recipient address", - "transaction_sender_address": "Sender address", - "transaction_hash": "Transaction", - "transaction_fee": "Fee", - "transaction_refund": "Refund", - "transaction_merchant": "Merchant", - "transaction_subscription": "Subscription", - "transaction_unsubscription": "Unsubscription", - "transaction_sent_date": "Sent on %{date}", - "transaction_receive_date": "Received on %{date}", - "transaction_subscription_date": "Charged on %{date}", - "transaction_unsubscription_date": "%{date}", - "transaction_contract_deploy_date": "%{date}", - "transaction_wallet_initialized_date": "%{date}", - "transaction_bid_date": "Bid %{date}", - "transaction_bid_dns": "Name", - "transaction_bid_collection_name": "Issuer", - "transaction_your_bid": "Your bid", - "transaction_confirm_bid": "Confirm bid", - "transaction_transfer_name": "Transfer name", - "transaction_type_bid": "Bid", - "transaction_buy_date": "Purchased on %{date}", - "transaction_message": "Message", - "transaction_purchase_id": "Purchase ID", - "transaction_status": "Status", - "transaction_buy_status_pending": "Pending", - "transaction_buy_status_success": "Success", - "transaction_buy_status_failed": "Failed", - "transaction_exchange_from_currency": "From", - "transaction_confirmations": "Confirmations", - "transaction_send_more_button": "Send more to this recipient", - "transaction_view_in_explorer": "View in explorer", - "transaction_show_subscription_button": "View subscription", - "transaction_copy_caution": "Be careful with external links. Never give your secret phrase to third-party resources — you can lose all your funds.\n\n- - -\n\n", - - "spam_action": "Spam", - - "dns_renew_toast_success": "Domain renewed for 1 year", - "dns_expiration_date": "Expiration date", - "dns_renew_until_btn": "Renew until %{untilDate}", - "dns_renew_in_progress_btn": "Domain renew in progress…", - "dns_renew_valid_caption": { - "one": "Expires in %{count} day", - "other": "Expires in %{count} days" - }, - "dns_alert_expiring_many": { - "one": "You have %{count} expiring domain. Renew all until %{untilDate}.", - "few": "You have %{count} expiring domains. Renew all until %{untilDate}.", - "other": "You have %{count} expiring domains. Renew all until %{untilDate}.", - "many": "You have %{count} expiring domains. Renew all until %{untilDate}." - }, - "dns_alert_expiring_one": "%{domain} expires in %{count} days. Renew it until %{untilDate}.", - "dns_renew_all_until_btn": "Renew all until %{untilDate}", - - "expiring_domains": "Expiring domains", - "domains_renewed": "Domains renewed", - "confirm_renew_all_domains_title": "Confirm action", - "dns_addresses": { - "one": "%{count} address", - "few": "%{count} addresses", - "other": "%{count} addresses", - "many": "%{count} addresses" - }, - "renew_in_progress": "Renew in progress…", - "renew_progress_of": "%{current} of %{count}", - - "nft_title": "NFTs", - "nft_about_dns": "TON DNS is a service that allows users to assign a human-readable name to crypto wallets, smart contracts, and websites. \n\nWith TON DNS, access to decentralized services is analogous to access to websites on the internet.", - "nft_marketplace_banner_title": "Your NFT tokens will be stored here", - "nft_marketplace_banner_description": "Buy, sell, collect and exchange.", - "disable_nft_marketplace_banner_description": "Collect and exchange.", - "nft_transfer_nft": "Transfer", - "nft_transfer_dns": "Transfer", - "nft_browse_markets": "Browse Markets", - "nft_open_in_marketplace": "View on NFT Market", - "nft_about_collection": "About collection", - "nft_more": "More", - "nft_features": "Features", - "nft_diamonds_description": "TON Diamonds possess the power to change the theme in your Tonkeeper wallet and match it to the color of your NFT.", - "nft_change_theme": "Change theme", - "nft_properties": "Properties", - "nft_details": "Details", - "nft_view_in_explorer": "View in explorer", - "nft_contract_address": "Contract address", - "nft_owner_address": "Owner", - "nft_token_id": "Token ID", - "nft_metadata": "Metadata", - "nft_chain": "Chain", - "nft_standard": "Token Standard", - "nft_marketplaces": "Discover", - "nft_marketplaces_title": "NFT Markets", - "nft_single_nft": "Single NFT", - "nft_unnamed_collection": "Unnamed collection", - "nft_on_sale": "On sale", - "nft_on_sale_text": "NFT is on sale at the marketplace now. For transfer, you should remove it from sale first.", - "dns_on_sale_text": "Domain is on sale at the marketplace now. For transfer, you should remove it from sale first.", - - "nft_transfer_description": "The NFT will be sent to this address. Be careful when sending an NFT to another user.", - - "nft_link_domain_button": "Link domain", - "nft_unlink_domain_button": "Linked with {{address}}", - "nft_link_domain_caption": "After you link the domain you will be able to transfer it and use as an alias for your address.", - "nft_link_username_caption": "After you link the name you will be able to transfer it and use as an alias for your address.", - "nft_link_domain_mismatch_warn": "The domain is not linked to your current address. Be careful with transactions to this domain.", - - "nft_link_username_button": "Link name", - "nft_link_username_mismatch_warn": "The name is not linked to your current address. Be careful with transactions to this name.", - - "username_issued_by_telegram": "Issued by Telegram. ", - "username_manage_name_button": "Manage name", - - "dns_link_title": "Confirm transaction", - "dns_unlink_title": "Confirm unlink", - "dns_wallet_address": "Wallet address", - "dns_current_address": "Your current address", - "dns_address_linked": "Address linked", - "dns_address_unlinked": "Address unlinked", - "dns_replace_button": "Replace", - "dns_replace_description": "Add wallet address that domain {{domain}} will link to.", - "dns_replace_save": "Save", - - "jettons_list_title": "Tokens", - "jettons_show_jettons": "Show tokens in wallet", - - "jetton_name": "%{name} Token", - "jetton_id": "Token ID: %{jettonAddress}", - "jetton_price": "Price:", - "jetton_token": "Token", - "jetton_id_copied": "Token ID copied", - "jetton_open_explorer": "View details", - "jettons_manage_tokens": "Manage tokens", - - "nft_transaction_head_placeholder": "NFT", - - "edit_coins_title": "Add crypto", - "edit_coins_add": "Add", - "edit_coins_added": "Added", - "edit_coins_added_toast": "Added", - "edit_coins_hide": "Hide", - - "receive_title": "Receive %{currency}", - "receive_ton_and_jettons": "Receive TON and other tokens", - "receive_qr_title": "Show QR code to receive", - "receive_address_title": "Or use wallet address", - "receive_copy": "Copy", - "receive_share": "Share", - "receive_received_title": "You received\n%{amount} %{currency}", - - "send_title": "Send %{currency}", - "send_address_placeholder": "Address or name", - "send_comment_label": "Add a comment", - "send_fee_estimation_error": "Failed to calculate fee", - "send_get_wallet_info_error": "Failed to get wallet info", - "send_build_tx_error": "Your transaction failed", - "send_publish_tx_error": "Failed to send transaction", - "send_sending_failed": "Sending failed", - "send_sending_wrong_time_title": "Error occurred", - "send_sending_wrong_time_description": "Turn on automatic time and date in your device settings. Then retry your transfer.", - "send_insufficient_funds": "Insufficient funds", - "send_lockup_warning_title": "Amount exceeds liquid balance", - "send_lockup_warning_caption": "Please check that you are sending to the allowed address.\n\nFee will be deducted even if transaction fails.", - "send_lockup_warning_submit_button": "Send", - "send_invalid_recipient_title": "Invalid recipient", - "send_invalid_recipient_caption": "The domain does not exist or the wallet address is not linked to it", - "send_all_warning_title": "Are you sure you want to send all your balance?", - - "send_screen_steps": { - "address": { - "title": "Recipient", - "placeholder": "Wallet address or domain", - "recent_label": "Recent", - "suggests_label": "Favorites and recent", - "delete_alert_text": "Are you sure want to delete «%{name}» from your favorites?", - "suggest_actions": { - "add": "Add to favorites", - "hide": "Hide", - "edit": "Edit favorite", - "delete": "Delete" - } - }, - "amount": { - "title": "Amount", - "recipient_label": "To:", - "insufficient_balance": "Insufficient balance", - "less_than_min": "Minimum %{minAmount} TON", - "max": "Max", - "remaining": "Available: %{amount}" - }, - "comfirm": { - "title": "Confirm action", - "action": "%{coin} transfer", - "comment_label": "Comment", - "comment_label_required": "Required comment", - "comment_required_text": "You must include the note from the exchange for transfer. Without it your funds will be lost. ", - "comment_description": "Will be visible to everyone.", - "comment_description_encrypted": "Will be visible only to recipient and you.", - "comment_encrypt": "Encrypt comment", - "comment_decrypt": "Decrypt", - "details_label": "Details", - "details_max_balance_label": "Sending max. balance of %{currency}" - }, - "done": { - "title": "%{currency} sent!", - "description": "Your transaction has been sent to the network and will be processed in a few seconds.", - "to": "To: %{name}", - "address": "Address: %{address}", - "comment": "Comment: %{comment}", - "fee": "Fee: %{fee}", - "done_label": "Done", - "add_favorite": "Save address to favorites", - "favorite_saved": "Saved to favorites" - } - }, - - "add_edit_favorite": { - "add_title": "New favorite", - "edit_title": "Edit favorite", - "name_placeholder": "Name", - "address_label": "Address", - "delete": "Delete", - "save": "Save" - }, - - "scan_qr_permission_error": "Allow camera access to scan QR codes", - "scan_qr_open_settings": "Open settings", - "scan_qr_title": "Scan QR code", - - "confirm_sending_title": "Confirm sending", - "confirm_sending_recipient": "Recipient", - "confirm_sending_recipient_address": "Recipient address", - "confirm_sending_amount": "Amount", - "confirm_sending_fee": "Fee", - "confirm_sending_message": "Comment", - "confirm_sending_submit": "Confirm and Send", - "confirm_sending_sent_caption_ton": "Your transaction is sent to the network and will be processed in a few seconds.", - "confirm_sending_sent_caption_btc": "Your transaction is sent to the network and will be processed within an hour.", - "confirm_sending_inactive_warn_title": "Inactive contract", - "confirm_sending_inactive_warn_description": "Do not proceed if you expect blockchain magic to happen. It won't.", - "confirm_sending_inactive_warn_about": "What you should do", - "confirm_sending_method_title": "Send your funds to %{name}?", - - "info_about_inactive_title": "Inactive contract", - "info_about_inactive_desc1": "Tonkeeper does not know if this address is a wallet or a smart contract.", - "info_about_inactive_desc2": "If you wish to simply deposit money to a wallet — you may proceed.", - "info_about_inactive_desc3_1": "If you expect an automatic action from a smart contract,", - "info_about_inactive_desc3_bold": " DO NOT proceed ", - "info_about_inactive_desc3_2": "— your transfer may get stuck on that address.", - "info_about_inactive_back": "Back", - - "swap_title": "Swap", - - "wallet": { - "screen_title": "Wallet", - "edit_tokens_btn": "Edit", - "old_wallets_title": "Old wallets", - "old_wallet_title": "Old wallet", - "buy_btn": "Buy TON", - "send_btn": "Send", - "receive_btn": "Receive", - "swap_btn": "Swap", - "tonkens_tab_lable": "Tokens", - "nft_tab_lable": "Collectibles" - }, - - "approval": { - "show_all": "Show all", - "verify_token": "Verify token", - "details_token": "Token details", - "token_count": { - "one": "%{count} token", - "other": "%{count} tokens" - }, - "single_token": "Single token", - "accept": "Accept", - "decline": "Decline", - "blacklisted_token": "Blacklisted token", - "accepted_token": "Accepted token", - "blacklisted_collection": "Blacklisted collection", - "accepted_collection": "Accepted collection", - "pending": "Pending", - "declined": "Hidden", - "move_to_declined_collection": "Hide collection from wallet", - "move_to_accepted_collection": "Show collection in wallet", - "move_to_declined_token": "Hide token from wallet", - "move_to_accepted_token": "Show token in wallet", - "accepted_at_token": "Accepted on %{date}", - "accepted_at_collection": "Accepted on %{date}", - "declined_at_token": "Declined on %{date}", - "declined_at_collection": "Declined on %{date}", - "details_collection": "Collection details", - "verify_collection": "Verify collection", - "verify_description_token": "This token is from unknown issuer. To detect counterfeits, verify the token ID with the issuer's official source. You can change token visibility later in settings.", - "verify_description_collection": "These tokens are from unknown issuer. To detect counterfeits, verify the collection ID with the issuer's official source. You can change token visibility later in settings.", - "accepted": "Visible", - "approve_all": "Accept all", - "approve_token": "Approve incoming token \"%{name}\"", - "approve_two_tokens": "Approve incoming tokens \"%{name1}\" and \"%{name2}\"", - "approve_many": "Approve %{count} incoming tokens", - "approve_collection_one": "Approve incoming token from \"%{collection}\" collection", - "approve_collection_many": "Approve incoming tokens from \"%{collection}\" collection", - "approve_two_collections": "Approve incoming tokens from \"%{collection1}\" \"%{collection2}\" collections", - "manage_tokens": "Manage tokens", - "name": "Name", - "id_token": "Token ID", - "id_collection": "Collection ID", - "token_copied": "Token ID copied" - }, - - "activity": { - "screen_title": "Activity", - "sent": "Sent", - "received": "Received", - "empty_transaction_title": "Your activity will be shown here", - "empty_transaction_caption": "Make your first transaction!", - "buy_toncoin_btn": "Buy Toncoin", - "receive_btn": "Receive", - "failed_transaction": "Failed" - }, - - "transactions": { - "nft_purchase": "NFT Purchase", - "subscription": "Subscribed", - "unsubscription": "Unsubscribed", - "smartcontract_exec": "Call contract", - "unknown": "Unknown", - "unknown_description": "Something happened but we couldn't recognize", - "swap": "Swap", - "wallet_initialized": "Wallet initialized", - "contract_deploy": "Contract Deploy", - "spam": "Spam", - "bid": "Bid", - "failed": "Failed", - "deposit": "Stake", - "withdraw": "Unstake", - "withdrawal_request": "Unstake Request", - "burned": "Burned" - }, - - "activityActionModal": { - "time_on": "on %{time}", - "received": "Received", - "sent": "Sent", - "bid": "Bid", - "purchase": "Purchase", - "swapped": "Swapped", - "call_contract": "Call contract", - "deposit": "Stake", - "withdraw": "Unstake", - "withdrawal_request": "Unstake Request", - "burned": "Burned" - }, - - "transactionDetails": { - "sender": "Sender", - "sender_address": "Sender address", - "recipient": "Recipient", - "recipient_address": "Recipient address", - "comment": "Comment", - "transaction": "Transaction", - "spam": "SPAM", - "address": "Address", - "operation": "Operation", - "description": "Description", - "payload": "Payload", - "bid_collection_name": "Issuer", - "bid_name": "Name", - "subscription_product_label": "Subscription", - "subscription_merchant_label": "Merchant", - "unsubscription_title": "Unsubscribed", - "withdraw_amount": "Unstake amount" - }, - - "receiveModal": { - "receive_title": "Receive %{tokenName}", - "receive_description": "Send only %{tokenName} and tokens in TON network to this address, or you might lose your funds.", - "copy": "Copy" - }, - - "confirmSendModal": { - "title": "Confirm action", - "network_fee": "Network fee", - "to_your_address": "To your address", - "transaction_type": { - "send": "Send", - "receive": "Receive", - "burn": "Burn" - } - }, - - "browser": { - "title": "Browser", - "search_label": "Search or enter address", - "start_typing": "Enter an address or search the web", - "empty_search": "Your search returned no results", - "connected_title": "Connected", - "popular_title": "Popular", - "explore_all": "Explore all", - "open_link": "Open link", - "web_search_title": "%{searchEngine} Search", - "about_dapps_title": "Use Tonkeeper with all TON apps and services", - "about_dapps_caption": "Explore apps and services where you can use Tonkeeper for sign-in and payments.", - "about_dapps_learn_more": "Learn more", - "actions": { - "refresh": "Refresh", - "mute": "Mute", - "share": "Share", - "copy_link": "Copy link", - "disconnect": "Disconnect" - }, - "remove_alert": { - "title": "Remove “%{name}”?", - "approve_button": "Remove" - }, - "more_title": "Explore all services", - "more_description": "Markets, exchanges and more" - }, - - "exchange_modal": { - "title": "Buy or sell", - "other_ways_to_buy": "Other ways to buy", - "show_all": "Show all", - "hide": "Hide" - }, - - "exchange_title": "Buy TON", - "exchange_other_ways": "Other ways to buy or sell TON", - - "settings_title": "Settings", - "settings_primary_currency": "Currency", - "settings_rate": "Rate Tonkeeper", - "settings_contact_support": "Contact us", - "settings_legal_documents": "Legal", - "settings_news": "Tonkeeper news", - "settings_support": "Support", - "settings_backup_seed": "Show recovery phrase", - "settings_reset": "Log out", - "settings_notifications": "Notifications", - "settings_to_mainnet": "Switch to Mainnet", - "settings_to_testnet": "Switch to Testnet", - "settings_network_alert_title": "Select network", - "settings_reset_alert_title": "Log out?", - "settings_reset_alert_caption": "This will erase keys to the wallet. Make sure you have backed up your secret recovery phrase.", - "settings_reset_alert_button": "Log out", - "settings_recovery_phrase": "Recovery phrase", - "settings_subscriptions": "Subscriptions", - "settings_wallet_version": "Active address", - "settings_version": "Version", - "settings_security": "Security", - "settings_appearance": "Theme", - "settings_jettons_list": "Tokens", - "settings_delete_account": "Delete account", - "settings_search_engine": "Search", - - "settings_delete_alert_title": "Are you sure you want to delete your account?", - "settings_delete_alert_caption": "This action will delete your account and all data from this application.", - "settings_delete_alert_button": "Delete account and data", - - "account_deleted": "Account deleted", - - "notifications_title": "Notifications", - "notifications_switch_title": "Push notifications", - "notification_switch_description": "Get notifications when you receive TON, tokens and NFTs. Notifications from connected apps.", - "notifications_disabled_title": "Notifications are disabled", - "notifications_disabled_description": "You turned off notifications in your phone’s settings. To activate notifications, go to Settings on this device.", - "notifications_disabled_action": "Open Settings", - "notifications_not_supported": "Notifications are not supported on your device", - - "legal_header_title": "Legal", - "legal_terms": "Terms of service", - "legal_privacy": "Privacy policy", - "legal_licenses_title": "Licenses", - "legal_font_license": "Montserrat font", - - "subscription_started": "Subscription started", - "subscriptions_title": "Subscriptions", - "subscriptions_item_caption": "%{price} TON, next bill on %{nextBill}", - "subscriptions_item_caption_expired": "Expired %{date}", - "subscriptions_item_caption_expiring": "%{price} TON, expiring %{date}", - "subscriptions_section_active": "Active", - "subscriptions_section_expired": "Expired", - "subscription_title": "Subscription", - "subscription_price": "Price", - "subscription_fee": "Fee", - "subscription_period": "Interval", - "subscription_period_hour": "Hourly", - "subscription_period_day": "Daily", - "subscription_period_week": "Weekly", - "subscription_period_weeks": "Every %{count} weeks", - "subscription_period_month": "Monthly", - "subscription_period_quarter": "Quarterly", - "subscription_period_half_year": "Half-yearly", - "subscription_period_year": "Yearly", - "subscription_period_custom": "Every %{period}", - "subscription_next_bill": "Next bill", - "subscription_expiring": "Expiring", - "subscription_subscribe": "Subscribe", - "subscription_unsubscribe": "Unsubscribe", - "subscription_cancel": "Cancel subscription", - "subscription_sent": "Transaction sent", - "subscription_cancel_alert_title": "Cancel subscription?", - "subscription_cancel_alert_caption": "If you cancel now, you can still access your subscription until %{nextBill}", - "subscription_cancel_alert_cancel_btn": "Not now", - "subscription_cancel_alert_submit_btn": "Yes, cancel", - "subscription_back_to_merchant_name": "Back to %{merchantName}", - "subscription_back_to_merchant_title": "Back to channel?", - "subscription_back_to_merchant_caption": "The transaction is being processed. Your subscription will be active soon.", - "subscription_back_to_merchant_button": "Back", - "subscription_open_merchant": "Open in Telegram", - - "require_create_wallet_modal_title": "Let’s set up your wallet", - "require_create_wallet_modal_caption": "You need a connected wallet to use\nTonkeeper. Either create a new wallet or import an existing one.", - "require_create_wallet_modal_create_new": "Create new wallet", - "require_create_wallet_modal_import": "Import existing wallet", - - "import_wallet_title": "Enter your\nrecovery phrase", - "import_wallet_caption": "To restore access to your wallet, enter the 24 secret recovery words given to you when you created your wallet.", - "import_wallet_wrong_words_err": "Incorrect phrase", - "import_wallet_reset_caption": "Please restore access to your wallet\n8by entering 24 secret words you wrote down then creating the wallet.", - - "create_wallet_generating": "Generating wallet...", - "create_wallet_generated": "Your wallet has\njust been created!", - "create_wallet_title": "Grab a pen and a piece of paper", - "create_wallet_caption": "We strongly recommend you write down the recovery phrase because it’s the only way to have access to and recover your wallet in case of losing your device. Do not send it to yourself via email or take a screenshot. It’s safer when kept offline.", - "create_wallet_continue_button": "Continue", - - "secret_words_title": "Your recovery phrase", - "secret_words_caption": "Write down these 24 words in the order given below and store them in a secret, safe place.", - - "check_words_title": "So, let’s check", - "check_words_caption": "To check whether you’ve written down your recovery phrase correctly, please enter the %{wordNum1}th, %{wordNum2}th, and  %{wordNum3}st words.", - "check_words_success": "Congratulations! You’ve set up your wallet", - - "platform": { - "ios": { - "face_recognition": "Face ID", - "face_recognition_genitive": "Face ID", - "fingerprint": "Touch ID", - "fingerprint_genitive": "Touch ID", - "capitalized_face_recognition": "Face ID", - "capitalized_fingerprint": "Touch ID" - }, - "android": { - "face_recognition": "face recognition", - "face_recognition_genitive": "face recognition", - "fingerprint": "fingerprint", - "fingerprint_genitive": "fingerprint", - "capitalized_face_recognition": "Face recognition", - "capitalized_fingerprint": "Fingerprint" - } - }, - - "create_pin_current_title": "Enter current passcode", - "create_pin_new_title": "Create new passcode", - "create_pin_repeat_title": "Re-enter passcode", - "pin_enter_faceid_err": " Biometrics check failed", - "pin_enter_skip_faceid_err": "Biometrics is required", - - "migration_title": "Upgrade your wallet", - "migration_caption": "Tonkeeper introduces new wallet format that supports subscription payments. Your balance will be transferred to a new address. Your recovery phrase will remain the same.", - "migration_old_wallet": "Old address", - "migration_new_wallet": "New address", - "migration_fee_info": "Network fee ≈%{tonFee} TON (%{fiatFee})", - "migration_migrate_btn": "Upgrade wallet", - "migration_cancel_btn": "Upgrade later", - "migration_in_progress": "Migration to Wallet v4 in progress", - "migration_failed": "Migration failed. Unable to transfer your balance.", - "transfer_from_old_wallet_title": "Transfer to current address", - "transfer_from_old_wallet_caption": "Tonkeeper will transfer all coins from your old address to your current address.", - "transfer_from_old_wallet_btn": "Transfer", - "transfer_from_old_wallet_in_progress": "Transfer in progress", - - "security_migration_title": "Update wallet security", - "security_migration_caption": "Now your balance and any operations are secured by a passcode. You can also speed up with biometric check.", - "security_migration_submit_button": "Update security settings", - "security_migration_skip_button": "Do not update now", - - "access_confirmation_title": "Enter passcode", - "access_confirmation_logout": "Log out", - "access_confirmation_reset": "Reset", - "access_confirmation_update_biometry": "Enter passcode to use biometric auth data", - - "security_title": "Security", - "security_change_passcode": "Change passcode", - "security_reset_passcode": "Reset passcode", - "security_use_biometry_switch": "Use %{biometryType}", - "security_use_biometry_tip": "You can always unlock your wallet with a passcode.", - "passcode_changed": "Passcode changed", - - "setup_biometry_title": "Quick sign-in with %{biometryType}", - "setup_biometry_caption": "%{biometryType} allows you to open your wallet faster without having\nto enter your password.", - "setup_biometry_enable_button": "Enable %{biometryType}", - - "setup_notifications_title": "Get instant notifications", - "setup_notifications_enable_button": "Enable notifications", - "setup_notifications_caption": "Get notifications when you \n receive TON, tokens and NFTs.", - - "reminder_notifications_title": "Get instant notifications", - "reminder_notifications_caption": "Get notifications when you receive TON, tokens and NFTs.", - "reminder_notifications_enable_button": "Enable notifications", - "reminder_notifications_later_button": "Later", - - "ton_login_title": "Connect to %{name}?", - "ton_login_caption": "%{name} is requesting access to your wallet address ", - "ton_login_connect_button": "Connect wallet", - "ton_login_back_to_button": "Back to %{name}", - "ton_login_success": "Done", - "ton_login_notice": "Be sure to check the service address before connecting the wallet.", - - "nft_confirm_operation": "Сonfirm", - "nft_show_details": "Show details", - "nft_hide_details": "Hide details", - "nft_operation_success": "Done", - - "nft_operations_expired": "Request timed out, please try again", - - "nft_deploy_collection_title": "Create NFT Collection", - "nft_collection_name": "Collection name", - "nft_royalty_address": "Royalty address", - "nft_royalty": "Royalty", - "nft_fee": "Fee", - - "nft_change_owner_title": "Change collection owner", - "nft_new_owner_address": "New owner address", - "nft_item_deploy_title": "Mint NFT", - "nft_item_name": "NFT name", - "nft_collection": "Collection", - - "nft_transfer_title": "Transfer NFT", - "nft_transfer_comment": "Comment", - "nft_transfer_recipient": "Recipient", - - "nft_sale_place_title": "Sell NFT", - "nft_marketplace_address": "Marketplace", - "nft_price": "Price", - "nft_proceeds": "Your proceeds", - "nft_fee_and_royalties": "Fees & royalties", - "nft_sale_cancel_title": "Remove from sale", - - "txActions": { - "fee": "Fee", - "refund": "Refund", - "amount": "Amount", - - "signRaw": { - "wrongTime": { - "title": "The clocks are not synchronized", - "description": "Seems like your device clock is not in sync with the network. Open device settings and enable automatic time and date.", - "button": "Open Settings" - }, - "totalFee": "Total fee", - "totalRefund": "Total refund", - "title": "Confirm transaction", - "recipient": "Recipient", - "comment": "Comment", - "warning_title": "Warning", - "warning_caption": "Tonkeeper cannot fully verify the result of this transaction. Please make sure you trust the recipient.", - "types": { - "unknownTransaction": "Unknown transaction", - "nftItemTransfer": "NFT Transfer", - "jettonTransfer": "Token Transfer", - "contractDeploy": "Contract Deploy", - "tonTransfer": "TON Transfer", - "unSubscribe": "Unsubscription", - "subscribe": "Subscription" - }, - "addressMismatch": { - "wrongVersion": { - "title": "Action for another address of your wallet", - "description": "Switch your active address to %{version} to confirm the action.", - "close": "Cancel", - "switch": "Switch and continue" - }, - "wrongWallet": { - "title": "Action for another wallet", - "description": "Log in to another wallet %{address} and try again.", - "close": "OK" - } - }, - "insufficientFunds": { - "toBePaid": "To be paid: %{amount} %{currency}\n", - "withFees": "+ blockchain fees.\n", - "yourBalance": "Your balance: %{balance} %{currency}.", - "rechargeWallet": "Recharge wallet", - "title": "Insufficient funds", - "stakingFee": "%{count} TON needed for transaction. Estimated fee %{fee} TON will be deducted, the rest will be refunded." - } - } - }, - - "chart": { - "price": "Price", - "no_internet": "No internet connection", - "check_connection": "Please check your connection and try again.", - "periods": { - "1Y": "Y", - "6M": "6M", - "1M": "M", - "7D": "W", - "1D": "D", - "1H": "H" - } - }, - - "deploy_contract_title": "Deploy contract", - "deploy_contract_button": "Confirm and deploy", - - "exchange_method_open_warning": "You are opening an external app not operated by Tonkeeper.", - "exchange_method_dont_show_again": "Do not show again", - - "exchange_telegram_bot": "TELEGRAM BOT", - - "appearance_title": "Theme", - "appearance_description": "TON Diamonds NFT will make your wallet more colorful and unique.", - "appearance_confirm": "Set", - "appearance_accent_name": { - "default": "Tonkeeper", - "sky": "Sky", - "arctic": "Arctic", - "azure": "Azure", - "iris": "Iris", - "flamingo": "Flamingo", - "coral": "Coral", - "marine": "Marine", - "ocean": "Ocean", - "fluid": "Fluid", - "galaxy": "Galaxy", - "cosmos": "Cosmos", - "andromeda": "Andromeda" - }, - - "choose_currency": { - "header_title": "Primary currency", - "currencies": { - "USD": "United States Dollar", - "EUR": "Euro", - "RUB": "Russian Ruble", - "AED": "United Arab Emirates Dirham", - "UAH": "Ukrainian hryvnia", - "KZT": "Kazakhstani Tenge", - "UZS": "Uzbekistani sum", - "GBP": "Great Britain Pound", - "CHF": "Swiss Franc", - "CNY": "China Yuan", - "BYN": "Belarusian Ruble", - "CAD": "Canadian Dollar", - "IRR": "Iranian Rial", - "TRY": "Turkish Lira", - "THB": "Thai Baht", - "VND": "Vietnamese Dong", - "BDT": "Bangladeshi Taka", - "NGN": "Nigerian Naira", - "BRL": "Brazilian Real", - "ILS": "Israeli Shekel", - "GEL": "Georgian Lari", - "KRW": "South Korean Won", - "IDR": "Indonesian Rupiah", - "INR": "Indian Rupee", - "JPY": "Japanese Yen" - } - }, - - "transfer_deeplink_address_error": "Incorrect recipient address", - "transfer_deeplink_nft_address_error": "Incorrect NFT address", - "transfer_deeplink_amount_error": "Incorrect amount request", - - "decryption_error": "Decryption error", - - "confirm": "Confirm", - - "staking": { - "no_funds": "No funds available for unstake", - "confirm_deposit": "Confirm and Stake", - "confirm_unstake": "Confirm and Unstake", - "staked": "Staked", - "title": "Staking", - "title_large": "TON Staking", - "desc_large": "Join staking and get rewards. Staking helps to maintain the TON network.", - "learn_more": "Learn more", - "highest_apy": "MAX APY", - "widget_title": "Earn TON", - "widget_desc": "APY up to %{apy}%", - "widget_staking_options": "Staking options", - "staking_pool_desc": "APY ≈ %{apy}%", - "staking_desc": "Minimum deposit %{minStake} TON.\nEarn up to %{maxApy}%.", - "estimated_profit": "%{amount} TON – annual profit\nif you stake TON today", - "top_up": "Stake", - "withdrawal_request": "Unstake Request", - "get_withdrawal": "Get withdrawal", - "withdraw": "Unstake", - "deposit": "Stake", - "transaction": "Confirm action", - "active": "Active", - "other": "Other", - "message": { - "readyWithdraw": "%{amount} TON ready.\nTap to collect", - "pendingWithdraw": "%{amount} TON unstaked\n", - "pendingDeposit": "%{amount} TON staked\n" - }, - "warning": { - "title": "Warning", - "desc": "Staking based on third-party smart contracts. We are not responsible for their work.", - "beta_desc": "We are not responsible for the stability and staking experience. Use at your own risk.", - "about": "About %{name}" - }, - "details": { - "links_title": "Links", - "socials": { - "twitter": "Twitter", - "telegram": "Community" - }, - "note": "Staking is based on smart contracts by third parties. Tonkeeper is not responsible for staking experience.", - "balance": "Staking balance", - "pendingDeposit": "Pending Stake", - "pendingWithdraw": "Pending Unstake", - "pendingWithdrawDesc": "at the end of the cycle", - "readyWithdraw": "Unstake ready", - "tap_to_collect": "Tap to collect", - "next_cycle": { - "title": "Next cycle", - "reward_title": "Next reward", - "desc": "All transactions take effect once the cycle ends.", - "desc_liquid": "Unstake requests are complete after the cycle ends.", - "in": "in" - }, - "cooldown": { - "title": "Cooldown period", - "desc": "Two-hour period applied at the start of each staking cycle to improve the process of withdrawals and deposits between cycles", - "active": "Active" - }, - "about_pool": "Details", - "frequency": { - "label": "Reward frequency", - "value": "Every %{count} hours" - }, - "pool_address": { - "label": "Pool address" - }, - "apy": { - "label": "APY", - "highest_tag": "MAX", - "value": "≈ %{value}%" - }, - "min_deposit": { - "label": "Minimal deposit", - "value": "%{value} TON" - } - }, - "jetton_note": "When you stake TON in a %{poolName} pool, you receive a token called %{token} that represents your share in the pool. As the pool accumulates profits, your %{token} represents larger amount of TON.", - "rewards": { - "title": "Your APY", - "after_top_up": "After stake", - "current": "Current", - "value": "≈ %{value} TON" - }, - "confirm": { - "recipient": { - "label": "Recipient" - }, - "address": { - "label": "Recipient address" - }, - "amount": { - "label": "Amount" - }, - "withdraw_amount": { - "label": "Unstake amount" - }, - "fee": { - "label": "Fee", - "value": "≈ %{value} TON" - } - }, - "withdrawal_fee_warning": { - "title": "You will have not enough funds for withdraw", - "message": "Please leave at least {{amount}} TON on your balance.", - "continue": "Continue anyway" - }, - "not_exists": "Invalid pool address" - }, - "update": { - "title": "Update Tonkeeper", - "version": "Version {{version}}", - "description": "A new version of Tonkeeper is available. You can download it now.", - "mb": "{{size}} MB", - "download": "Download", - "downloading": "Downloading… {{progress}}%", - "remindLater": "Remind me later", - "tap": "Tap to update", - "retry": "Download error. Tap to retry." - }, - - "notifications": { - "notifications": "Notifications", - "from_connected": "From connected apps", - "mute_notifications": "Mute notifications", - "disconnect_app": "Disconnect %{app_name}", - "report": "Report", - "muted": "Notifications have been muted", - "disconnected_app": "Disconnected app", - "earlier": "Earlier", - "apps": "Apps", - "apps_description": "Notifications from connected apps in your activity", - "allow_notifications": "Enable notifications", - "placeholder": { - "title": "Notifications will be shown here", - "description": "Explore apps and services in Tonkeeper browser." - }, - "alert": { - "title": "Are you sure you want to open an external link?", - "description": "Link address from the notification doesn't match with app address.", - "open": "Open anyway", - "cancel": "Cancel" - } - }, - "choose_country": { - "title": "Choose your country", - "search": "Search", - "cancel": "Cancel", - "empty_placeholder": "Your search returned no results" - }, - "programmable_nfts": { - "alert": { - "title": "Are you sure you want to open an external link?", - "description": "Visit this external link only if you trust the author of the collection.\n\n{{uri}}", - "open": "Open anyway", - "cancel": "Cancel" - } - }, - "exchange": { - "not_exists": "Invalid exchange ID" - }, - "address_update": { - "title": "Address Update", - "notification_desc_will_change": "On October 5 your wallet address will update to the UQ format which is just better. The old address will also work. You don’t need to do anything.", - "notification_desc_did_change": "On October 5 your wallet address did update to the UQ format which is just better. The old address will also work. You don’t need to do anything.", - "learn_more": "Learn more", - "why_change": "Why change?", - "your_wallet": "Your wallet", - "old_style": "Old address", - "new_style": "New address", - "post_top": "By the end of this year the entire TON network will display wallet addresses differently. The new address will start with UQ instead of EQ. And the last four letters will change too. The old address will also work and direct to the same wallet. It doesn't effect the safety of funds stored in your wallet anyhow.", - "post_rest": "There are two address styles on the TON blockchain and until now only one was used for apps and wallets.\n\nThe EQ format is best for smart contracts that process incoming funds. If a smart contract isn’t published yet — i.e., the code isn’t on the blockchain — then the TONs sent to that address will bounce back to the sender. And this is a safety feature: if there is any error, TONs bounce back.\n\nThe UQ format is best for wallets. Coins never bounce because wallets are designed to simply store funds. Each wallet starts as a plain address without a code on the blockchain. So, it would make no sense for coins to bounce back.\n\nThis year we are switching wallets to the more suitable UQ format. And if you continue sending funds to an old EQ address someone gave you, there will be two options:\n", - "first_option": "Most likely the destination wallet is already actively used and you won’t notice any difference.", - "second_option": "Less likely that the wallet has never been used for payments. And Tonkeeper won’t send coins to that address next year. You will have to ask the recipient for a new UQ address.", - "post_dates": "\nOctober 5, 2023: all addresses switch to the UQ format in Tonkeeper.\n\nJanuary 1, 2024: Tonkeeper stops checking the contract status and uses the “bounceable” flag in the address. Coins sent to non-published contracts with an EQ address will bounce back to the sender." - } -} diff --git a/packages/shared/i18n/locales/it.json b/packages/shared/i18n/locales/it.json deleted file mode 100644 index 40f3c2270..000000000 --- a/packages/shared/i18n/locales/it.json +++ /dev/null @@ -1,767 +0,0 @@ -{ - "app_name": "Tonkeeper", - - "cancel": "Cancella", - "skip": "Salta", - "later": "Dopo", - "continue": "Prosegui", - "loading": "Caricamento", - "success": "Riuscito!", - "copied": "Copiato", - "address_copied": "Indirizzo copiato", - "link_copied": "Link copiato", - "form_optional_indicator": "Facoltativo", - "error_occurred": "Si è verificato un errore", - "refresh_app": "Riavvia", - "copy_error_log": "Copia log errori", - "error_network": "Errore di Rete", - "access_denied": "Accesso negato", - "auth_failed": "Autenticazione fallita", - "today": "Oggi", - "yesterday": "Ieri", - - "tab_wallet": "Wallet", - "tab_swap": "Swap", - "tab_nft": "NFT", - "tab_browser": "Browser", - "tab_settings": "Impostazioni", - - "intro_title": "Benvenuto\nin ", - "intro_item1_title": "Velocità di prima classe", - "intro_item1_caption": "Grazie all'architettura unica di The Open Network, le transazioni TON vengono eseguite in pochi secondi.", - "intro_item2_title": "Sicurezza End-to-End", - "intro_item2_caption": "Tonkeeper memorizza le tue chiavi crittografiche sul tuo dispositivo. Tutte le operazioni vengono eseguite tramite protocolli decentralizzati in modo che le tue criptovalute non finiscano mai nelle mani di exchange centralizzati.", - "intro_item3_title": "-", - "intro_item3_caption": "-", - "intro_continue_btn": "Iniziamo", - - "about_ton": "TON è una blockchain di livello 1 completamente decentralizzata progettata da Telegram per integrare miliardi di utenti. Vanta transazioni ultra veloci, commissioni minime, app facili da usare ed è rispettoso dell'ambiente.", - "wallet_title": "Wallet", - "wallet_receive": "Ricevi", - "wallet_send": "Invia", - "wallet_buy": "Compra", - "wallet_toncommunity_link": "https://t.me/toncoin_it", - "wallet_toncommunity_chat_link": "https://t.me/toncoin_it_chat", - "wallet_source_code": "Codice sorgente", - "wallet_community": "Community", - "wallet_chat": "Chat", - "wallet_sell": "Vendi", - "wallet_about": "Info", - "wallet_swap": "Swap", - "wallet_old_balance": "Vecchio wallet:", - "wallet_hours_symbol": "h", - "balances_setup_wallet": "Imposta wallet", - "add_other_coins": "Aggiungi altre crypto", - "manage_other_coins": "Gestisci le mie crypto", - "notify_connection_err_title": "Non riesco a collegarmi al server", - "notify_connection_err_caption": "%{host} non sta rispondendo. Riprova più tardi.", - "notify_connection_err_caption_few": "%{hosts} e %{lastHost} non stanno rispondendo. Riprova più tardi.", - "notify_incorrect_time_err_title": "Data ed ora sono errati", - "notify_incorrect_time_err_caption": "Nelle impostazioni del dispositivo, attiva data e ora automatici. Quando l'ora non viene impostata automaticamente, potrebbe influire sui trasferimenti di fondi.", - "notify_no_signal_title": "Nessun segnale", - "notify_no_signal_caption": "Controlla la tua connessione internet.", - "transaction_type_sent": "Inviati", - "transaction_type_receive": "Ricevuti", - "transaction_type_contract_deploy": "Distribuzione del Contratto", - "transaction_type_buy": "Comprati", - "transaction_type_pending": "In Sospeso", - "transaction_type_subscription": "Abbonato", - "transaction_type_unsubscription": "Abbonamento Annullato", - "transaction_type_new_subscriber": "Nuovo Abbonato", - "transaction_type_subscriber_lost": "Abbonato Perso", - "transaction_type_wallet_initialized": "Wallet inizializzato", - "transaction_type_bounced": "Rimbalzata", - "transaction_type_from": "Da", - "transaction_type_to": "A", - "transaction_recipient": "Destinatario", - "transaction_sender": "Mittente", - "transaction_recipient_address": "Indirizzo Destinatario", - "transaction_sender_address": "Indirizzo Mittente", - "transaction_hash": "Transazione", - "transaction_fee": "Commissioni", - "transaction_refund": "Rimborso", - "transaction_merchant": "Negoziante", - "transaction_subscription": "Iscrizione", - "transaction_unsubscription": "Disiscrizione", - "transaction_sent_date": "Inviati il %{date}", - "transaction_receive_date": "Ricevuti il %{date}", - "transaction_subscription_date": "Addebitati il %{date}", - "transaction_unsubscription_date": "%{date}", - "transaction_contract_deploy_date": "%{date}", - "transaction_wallet_initialized_date": "%{date}", - "transaction_bid_date": "Offerta %{date}", - "transaction_bid_dns": "Nome", - "transaction_bid_collection_name": "Emittente", - "transaction_your_bid": "La tua Offerta", - "transaction_confirm_bid": "Conferma Offerta", - "transaction_transfer_name": "Trasferimento nome", - "transaction_type_bid": "Offerta", - "transaction_buy_date": "Acquistato il %{date}", - "transaction_message": "Messaggio", - "transaction_purchase_id": "ID Acquisto", - "transaction_status": "Stato", - "transaction_buy_status_pending": "In Sospeso", - "transaction_buy_status_success": "Riuscita", - "transaction_buy_status_failed": "Fallita", - "transaction_exchange_from_currency": "Da", - "transaction_confirmations": "Conferme", - "transaction_send_more_button": "Invia altro a questo destinatario", - "transaction_view_in_explorer": "Visualizza in explorer", - "transaction_show_subscription_button": "Visualizza Abbonamento", - "transaction_copy_caution": "Fai attenzione ai link esterni. Non dare MAI la tua frase segreta a risorse di terze parti: puoi perdere tutti i tuoi fondi.\n\n- - -\n\n", - - "spam_action": "Spam", - - "nft_title": "NFT", - "nft_about_dns": "TON DNS è un servizio che consente agli utenti di assegnare un nome leggibile all'uomo a Wallet, Smart Contract e siti Web. \n\nCon TON DNS, l'accesso ai servizi decentralizzati è analogo all'accesso ai siti Web su Internet.", - "nft_marketplace_banner_title": "I tuoi token NFT verranno archiviati qui", - "nft_marketplace_banner_description": "Compra, vendi, colleziona e scambia.", - "disable_nft_marketplace_banner_description": "Colleziona e scambia.", - "nft_transfer_nft": "Trasferisci", - "nft_transfer_dns": "Trasferisci", - "nft_browse_markets": "Esplora i Mercati", - "nft_open_in_marketplace": "Visualizza sul Mercato NFT", - "nft_about_collection": "Riguardo {{collection}}", - "nft_more": "Di più", - "nft_features": "Caratteristiche", - "nft_diamonds_description": "TON Diamonds possiede il potere di cambiare il tema nel tuo portafoglio Tonkeeper e abbinarlo al colore del tuo NFT.", - "nft_change_theme": "Cambia Tema", - "nft_properties": "Proprietà", - "nft_details": "Dettagli", - "nft_view_in_explorer": "Visualizza nell'Explorer", - "nft_contract_address": "Indiurizzo Contratto", - "nft_owner_address": "Proprietario", - "nft_token_id": "Token ID", - "nft_metadata": "Metadati", - "nft_chain": "Chain", - "nft_standard": "Token Standard", - "nft_marketplaces": "Scopri", - "nft_marketplaces_title": "Mercati NFT", - "nft_single_nft": "NFT Singolo", - "nft_on_sale": "In vendita", - "nft_on_sale_text": "NFT attualmente in vendita sul mercato. Per il trasferimento, dovresti prima rimuoverlo dalla vendita.", - "dns_on_sale_text": "Dominio attualmente in vendita sul mercato. Per il trasferimento, dovresti prima rimuoverlo dalla vendita.", - - "nft_transfer_description": "L'NFT verrà inviato a questo indirizzo. Fai attenzione quando invii un NFT a un altro utente.", - - "nft_link_domain_button": "Collega Dominio", - "nft_unlink_domain_button": "Collegato a {{address}}", - "nft_link_domain_caption": "Dopo aver collegato il dominio, potrai trasferirlo e utilizzarlo come alias per il tuo indirizzo.", - "nft_link_username_caption": "Dopo aver collegato il nome, potrai trasferirlo e utilizzarlo come alias per il tuo indirizzo.", - "nft_link_domain_mismatch_warn": "Il dominio non è collegato al tuo indirizzo attuale. Fai attenzione con le transazioni a questo dominio.", - - "nft_link_username_button": "Collega Nome", - "nft_link_username_mismatch_warn": "Il nome non è collegato al tuo indirizzo attuale. Fai attenzione alle transazioni con questo nome.", - - "username_issued_by_telegram": "Rilasciato da Telegram. ", - "username_manage_name_button": "Gestisci nome", - - "dns_link_title": "Conferma transazione", - "dns_unlink_title": "Conferma lo scollegamento", - "dns_wallet_address": "Indirizzo Wallet", - "dns_current_address": "Il tuo indirizzo attuale", - "dns_address_linked": "Indirizzo collegato", - "dns_address_unlinked": "Indirizzo scollegato", - "dns_replace_button": "Sostituisci", - "dns_replace_description": "Aggiungi l'indirizzo del portafoglio a cui si collegherà il dominio {{domain}}.", - "dns_replace_save": "Salva", - - "jettons_list_title": "Token", - "jettons_show_jettons": "Mostra token nel wallet", - - "jetton_name": "%{name} Token", - "jetton_id": "Token ID: %{jettonAddress}", - "jetton_price": "Prezzo:", - "jetton_token": "Token", - "jetton_id_copied": "Token ID copiato", - "jetton_open_explorer": "Mostra dettagli", - "jettons_manage_tokens": "Gestisci token", - - "nft_transaction_head_placeholder": "NFT", - - "edit_coins_title": "Aggiungi crypto", - "edit_coins_add": "Aggiungi", - "edit_coins_added": "Aggiunta", - "edit_coins_added_toast": "Aggiunta", - "edit_coins_hide": "Nascondi", - - "receive_title": "Ricevi %{currency}", - "receive_ton_and_jettons": "Ricevi TON e altri token", - "receive_qr_title": "Mostra il codice QR per ricevere", - "receive_address_title": "Oppure usa l'indirizzo del wallet", - "receive_copy": "Copia", - "receive_share": "Condividi", - "receive_received_title": "Hai ricevuto\n%{amount} %{currency}", - - "send_title": "Invia %{currency}", - "send_address_placeholder": "Indirizzo wallet o dominio", - "send_comment_label": "Aggiungi un commento", - "send_fee_estimation_error": "Impossibile calcolare la commissione", - "send_get_wallet_info_error": "Impossibile ottenere informazioni sul wallet", - "send_build_tx_error": "La tua transazione è fallita", - "send_publish_tx_error": "Impossibile inviare la transazione", - "send_sending_failed": "Invio fallito", - "send_sending_wrong_time_title": "Si è verificato un errore", - "send_sending_wrong_time_description": "Attiva la data e ora automatiche nelle impostazioni del tuo dispositivo. Quindi ritenta il trasferimento.", - "send_insufficient_funds": "Fondi insufficienti", - "send_lockup_warning_title": "L'importo supera il saldo", - "send_lockup_warning_caption": "Controlla che tu stia inviando all'indirizzo consentito.\n\nLa commissione verrà detratta anche se la transazione fallisce.", - "send_lockup_warning_submit_button": "Invia", - "send_invalid_recipient_title": "Destinatario non valido", - "send_invalid_recipient_caption": "Il dominio non esiste o l'indirizzo del wallet non è collegato ad esso", - - "send_screen_steps": { - "choose_coin": { - "title": "Seleziona un token da inviare", - "subtitle": "Successivamente inserirai il destinatario e l'importo." - }, - "address": { - "placeholder": "Indirizzo wallet o dominio", - "recent_label": "Recenti", - "suggests_label": "Preferiti e transazioni recenti", - "delete_alert_text": "Sei sicuro di voler eliminare «%{name}» dai tuoi preferiti?", - "suggest_actions": { - "add": "Aggiungi ai preferiti", - "hide": "Nascondi", - "edit": "Modifica Preferiti", - "delete": "Elimina" - } - }, - "amount": { - "recipient_label": "Invia A:", - "insufficient_balance": "Fondi insufficienti", - "less_than_min": "Minimo %{minAmount} TON", - "max": "Massimo", - "remaining": "Rimanente: %{amount}" - }, - "comfirm": { - "comment_label": "Commento", - "comment_label_required": "Commento richiesto", - "comment_required_text": "È necessario includere memo o tag o commento quando si invia ad un exchange. ", - "comment_description": "Il commento è visibile a tutti.", - "comment_placeholder": "Messaggio o riferimento (facoltativo)", - "comment_placeholder_required": "Memo o tag", - "details_label": "Dettagli", - "details_max_balance_label": "Invio max. bilancio di %{currency}", - "comment_characters_left": "%{count} caratteri rimanenti.", - "comment_characters_exceeded": "La dimensione del messaggio è stata superata di %{count} caratteri." - }, - "done": { - "title": "%{currency} inviati!", - "description": "La tua transazione è stata inviata alla rete e verrà elaborata in pochi secondi.", - "to": "A: %{name}", - "address": "Indirizzo: %{address}", - "comment": "Commento: %{comment}", - "fee": "Commissioni: %{fee}", - "done_label": "Fatto", - "add_favorite": "Salva indirizzo nei preferiti", - "favorite_saved": "Salvato nei preferiti" - } - }, - - "add_edit_favorite": { - "add_title": "Nuovo preferito", - "edit_title": "Modifica preferito", - "name_placeholder": "Nome", - "address_label": "Indirizzo", - "delete": "Elimina", - "save": "Salva" - }, - - "scan_qr_permission_error": "Consenti l'accesso alla fotocamera per scansionare i codici QR", - "scan_qr_open_settings": "Apri le impostazioni", - "scan_qr_title": "Scansiona QR code", - - "confirm_sending_title": "Conferma invio", - "confirm_sending_recipient": "Destinatario", - "confirm_sending_recipient_address": "Indirizzo Destinatario", - "confirm_sending_amount": "Ammontare", - "confirm_sending_fee": "Commissioni", - "confirm_sending_message": "Commento", - "confirm_sending_submit": "Conferma e invia", - "confirm_sending_sent_title": "Monete inviate", - "confirm_sending_sent_jetton_title": "Token inviati", - "confirm_sending_sent_caption_ton": "La tua transazione viene inviata alla rete e verrà elaborata in pochi secondi.", - "confirm_sending_sent_caption_btc": "La tua transazione viene inviata alla rete e verrà elaborata entro un'ora.", - "confirm_sending_sent_caption_other": "La tua transazione viene inviata alla rete e verrà elaborata entro un minuto.", - "confirm_sending_inactive_warn_title": "Contratto Inattivo", - "confirm_sending_inactive_warn_description": "Non procedere se ti aspetti che la magia della blockchain accada. Non lo farà.", - "confirm_sending_inactive_warn_about": "Cosa dovresti fare", - "confirm_sending_method_title": "Invia i tuoi fondi a %{name}?", - - "info_about_inactive_title": "Contratto Inattivo", - "info_about_inactive_desc1": "Tonkeeper non sa se questo indirizzo è un portafoglio o uno smart contract.", - "info_about_inactive_desc2": "Se desideri semplicemente depositare denaro su un portafoglio, puoi procedere.", - "info_about_inactive_desc3_1": "Se ti aspetti un'azione automatica da uno smart contract,", - "info_about_inactive_desc3_bold": " NON PROCEDERE ", - "info_about_inactive_desc3_2": "— il tuo trasferimento potrebbe rimanere bloccato su quell'indirizzo.", - "info_about_inactive_back": "Indietro", - - "swap_title": "Swap", - - "wallet": { - "screen_title": "Wallet", - "edit_tokens_btn": "Modifica", - "old_wallets_title": "Vecchi wallet", - "old_wallet_title": "Vecchio wallet", - "buy_btn": "Compra", - "send_btn": "Invia", - "receive_btn": "Ricevi", - "sell_btn": "Vendi", - "tonkens_tab_lable": "Token", - "collectibles_tab_lable": "Collezionabili" - }, - - "activity": { - "screen_title": "Attività", - "sent": "Invia", - "received": "Ricevi", - "empty_transaction_title": "Le tue attività verranno mostrate qui", - "empty_transaction_caption": "Effettua la tua prima transazione!", - "buy_toncoin_btn": "Compra Toncoin", - "receive_btn": "Ricevi", - "failed_transaction": "Fallito" - }, - - "browser": { - "title": "Browser", - "search_label": "Cerca o inserisci l'indirizzo", - "start_typing": "Inserisci un indirizzo o cerca nel Web", - "empty_search": "La ricerca non ha prodotto risultati", - "connected_title": "Connesso", - "popular_title": "Popolari", - "explore_all": "Esplora tutti", - "open_link": "Apri link", - "web_search_title": "%{searchEngine} Cerca", - "about_dapps_title": "Usa Tonkeeper con tutte le app e i servizi TON", - "about_dapps_caption": "Esplora app e servizi in cui puoi utilizzare Tonkeeper per l'accesso e i pagamenti.", - "about_dapps_learn_more": "Scopri di più", - "actions": { - "refresh": "Aggiorna", - "share": "Condividi", - "copy_link": "Copia link", - "disconnect": "Disconnetti" - }, - "remove_alert": { - "title": "Rimuovi “%{name}”?", - "approve_button": "Rimuovi" - }, - "more_title": "Esplora tutti i servizi", - "more_description": "Marcati, exchange ed altro" - }, - - "exchange_modal": { - "sell_title": "Vendi Toncoin", - "buy_title": "Compra Toncoin", - "other_ways_to_sell": "Altre vie per vendere", - "other_ways_to_buy": "Altre vie per comprare" - }, - - "exchange_title": "Compra TON", - "exchange_other_ways": "Altri modi per acquistare o vendere TON", - - "settings_title": "Impostazioni", - "settings_primary_currency": "Valuta", - "settings_rate": "Vota TonKeeper", - "settings_contact_support": "Contatta il team", - "settings_legal_documents": "Legale", - "settings_news": "Tonkeeper news", - "settings_support": "Supporto", - "settings_backup_seed": "Mostra Frase di Recupero", - "settings_reset": "Disconnetti", - "settings_notifications": "Notifiche", - "settings_to_mainnet": "Passa a Mainnet", - "settings_to_testnet": "Passa a Testnet", - "settings_network_alert_title": "Seleziona rete", - "settings_reset_alert_title": "Disconnetto?", - "settings_reset_alert_caption": "Questo cancellerà le chiavi del portafoglio. Assicurati di aver eseguito il backup della tua frase segreta di recupero.", - "settings_reset_alert_button": "Disconnetti", - "settings_recovery_phrase": "Frase di Recupero", - "settings_subscriptions": "Abbonamenti", - "settings_wallet_version": "Indirizzo Attivo", - "settings_version": "Versione", - "settings_security": "Sicurezza", - "settings_appearance": "Tema", - "settings_news_url": "https://t.me/tonkeeper", - "settings_jettons_list": "Token", - "settings_delete_account": "Elimina Account", - "settings_search_engine": "Cerca", - - "settings_delete_alert_title": "Sei sicuro di voler eliminare il tuo Account?", - "settings_delete_alert_caption": "Questa azione eliminerà il tuo Account e tutti i Dati da questa applicazione.", - "settings_delete_alert_button": "Elimina Account e Dati", - - "account_deleted": "Account Eliminato", - - "notifications_title": "Notifiche", - "notifications_switch_title": "Notifiche", - "notification_switch_description": "Ricevi notifiche quando ricevi TON, token e NFT", - "notifications_disabled_title": "Le notifiche sono Disabilitate", - "notifications_disabled_description": "Hai disattivato le notifiche nelle impostazioni del telefono. Per attivare le notifiche, vai su Impostazioni su questo dispositivo.", - "notifications_disabled_action": "Apri Impostazioni", - "notifications_not_supported": "Le notifiche non sono supportate su questo dispositivo", - - "legal_header_title": "Legali", - "legal_terms": "Termini di Servizio", - "legal_privacy": "Politica sulla Privacy", - "legal_licenses_title": "Licenze", - "legal_font_license": "font Montserrat", - - "subscription_started": "Abbonamento iniziato", - "subscriptions_title": "Abbonamenti", - "subscriptions_item_caption": "%{price} TON, prossimo rinnovo %{nextBill}", - "subscriptions_item_caption_expired": "Scaduto %{date}", - "subscriptions_item_caption_expiring": "%{price} TON, scadenza %{date}", - "subscriptions_section_active": "Attivo", - "subscriptions_section_expired": "Scaduto", - "subscription_title": "Abbonamento", - "subscription_price": "Prezzo", - "subscription_fee": "Commissioni", - "subscription_period": "Intervallo", - "subscription_period_hour": "Orario", - "subscription_period_day": "Giornaliero", - "subscription_period_week": "Settimanale", - "subscription_period_weeks": "Ogni %{count} Settimane", - "subscription_period_month": "Mensile", - "subscription_period_quarter": "Quadrimestrale", - "subscription_period_half_year": "Semestrale", - "subscription_period_year": "Annuale", - "subscription_period_custom": "Ogni %{period}", - "subscription_next_bill": "Prossimo rinnovo", - "subscription_expiring": "In scadenza", - "subscription_subscribe": "Abbonati", - "subscription_unsubscribe": "Disiscriviti", - "subscription_cancel": "Cancella abbonamento", - "subscription_sent": "Transazione inviata", - "subscription_cancel_alert_title": "Annullare l'iscrizione?", - "subscription_cancel_alert_caption": "Se annulli ora, puoi comunque accedere al tuo abbonamento fino al %{nextBill}", - "subscription_cancel_alert_cancel_btn": "Non ora", - "subscription_cancel_alert_submit_btn": "Si, cancella", - "subscription_back_to_merchant_name": "Torna a %{merchantName}", - "subscription_back_to_merchant_title": "Tornare al canale?", - "subscription_back_to_merchant_caption": "La transazione è in fase di elaborazione. Il tuo abbonamento sarà presto attivo.", - "subscription_back_to_merchant_button": "Indietro", - "subscription_open_merchant": "Apri in Telegram", - - "require_create_wallet_modal_title": "Prepariamo il tuo wallet", - "require_create_wallet_modal_caption": "Hai bisogno di un wallet connesso per usare\nTonkeeper. Crea un nuovo wallet o importane uno esistente.", - "require_create_wallet_modal_create_new": "Crea un nuovo wallet", - "require_create_wallet_modal_import": "Importa un wallet esistente", - - "import_wallet_title": "Inserisci la tua\frase di recupero", - "import_wallet_caption": "Per ripristinare l'accesso al tuo wallet, inserisci le 24 parole di recupero segrete che ti sono state fornite quando hai creato il tuo wallet.", - "import_wallet_wrong_words_err": "Frase errata", - "import_wallet_reset_caption": "Ripristina l'accesso al tuo wallet\u2028 immettendo 24 parole segrete che hai annotato e creando il wallet.", - - "create_wallet_generating": "Generazione del wallet...", - "create_wallet_generated": "Il tuo portafoglio è\nappena stato creato!", - "create_wallet_title": "Prendi una penna e un pezzo di carta", - "create_wallet_caption": "Ti consigliamo vivamente di annotare la frase di recupero perché è l'unico modo per accedere e recuperare il tuo wallet in caso di smarrimento del dispositivo. Non inviarlo a te stesso via e-mail o fare uno screenshot. È più sicuro se tenuto offline.", - "create_wallet_continue_button": "Continua", - - "secret_words_title": "La tua Frase di Recupero", - "secret_words_caption": "Annota queste 24 parole nell'ordine indicato di seguito e conservale in un luogo segreto e sicuro.", - - "check_words_title": "Ok, controlliamo", - "check_words_caption": "Per controllare se hai scritto correttamente la frase di recupero, inserisci %{wordNum1}°, %{wordNum2}° e %{wordNum3}° parole.", - "check_words_success": "Congratulazioni! Hai impostato il tuo wallet", - - "platform": { - "ios": { - "face_recognition": "Face ID", - "face_recognition_genitive": "Face ID", - "fingerprint": "Touch ID", - "fingerprint_genitive": "Touch ID", - "capitalized_face_recognition": "Face ID", - "capitalized_fingerprint": "Touch ID" - }, - "android": { - "face_recognition": "riconoscimento facciale", - "face_recognition_genitive": "riconoscimento facciale", - "fingerprint": "impronta digitale", - "fingerprint_genitive": "impronta digitale", - "capitalized_face_recognition": "Riconoscimento Facciale", - "capitalized_fingerprint": "Impronta Digitale" - } - }, - - "create_pin_current_title": "Inserisci il passcode corrente", - "create_pin_new_title": "Crea nuovo passcode", - "create_pin_repeat_title": "Reimmetti passcode", - "pin_enter_faceid_err": " Controllo biometrico fallito", - "pin_enter_skip_faceid_err": "È richiesta la biometria", - - "migration_title": "Aggiorna il tuo wallet", - "migration_caption": "Tonkeeper introduce un nuovo formato di wallet che supporta i pagamenti in abbonamento. Il tuo saldo verrà trasferito a un nuovo indirizzo. La tua frase di recupero rimarrà la stessa.", - "migration_old_wallet": "Vecchio indirizzo", - "migration_new_wallet": "Nuovo indirizzo", - "migration_fee_info": "Commissioni di rete ≈%{tonFee} TON (%{fiatFee})", - "migration_migrate_btn": "Aggiorna wallet", - "migration_cancel_btn": "Aggiorna dopo", - "migration_in_progress": "Migrazione a Wallet v4 in corso", - "migration_failed": "Migrazione fallita. Impossibile trasferire il saldo.", - "transfer_from_old_wallet_title": "Trasferisci all'indirizzo corrente", - "transfer_from_old_wallet_caption": "Tonkeeper trasferirà tutte le monete dal tuo vecchio indirizzo al tuo attuale indirizzo.", - "transfer_from_old_wallet_btn": "Trasferisci", - "transfer_from_old_wallet_in_progress": "Trasferimento in corso", - - "security_migration_title": "Aggiorna la sicurezza del wallet", - "security_migration_caption": "Ora il tuo saldo e tutte le operazioni sono protette da un passcode. Puoi anche velocizzare con il controllo biometrico.", - "security_migration_submit_button": "Aggiorna le impostazioni di sicurezza", - "security_migration_skip_button": "Non aggiornare ora", - - "access_confirmation_title": "Immetti passcode", - "access_confirmation_logout": "Disconnetti", - "access_confirmation_reset": "Resetta", - "access_confirmation_update_biometry": "Inserisci il passcode per utilizzare i dati di autenticazione biometrici", - - "security_title": "Sicurezza", - "security_change_passcode": "Cambia passcode", - "security_reset_passcode": "Resetta passcode", - "security_use_biometry_switch": "Usa %{biometryType}", - "security_use_biometry_tip": "Puoi sempre sbloccare il tuo wallet con un passcode.", - "passcode_changed": "Passcode cambiato", - - "setup_biometry_title": "Accesso rapido con %{biometryType}", - "setup_biometry_caption": "%{biometryType} ti permette di aprire il tuo wallet più velocemente senza dover\ninserire la tua password.", - "setup_biometry_enable_button": "Abilita %{biometryType}", - - "setup_notifications_title": "Ricevi notifiche istantanee", - "setup_notifications_enable_button": "Abilita notifiche", - "setup_notifications_caption": "Ricevi notifiche quando ricevi TON, token e NFT.", - - "reminder_notifications_title": "Ricevi notifiche istantanee", - "reminder_notifications_caption": "Ricevi notifiche quando ricevi TON, token e NFT.", - "reminder_notifications_enable_button": "Abilita notifiche", - "reminder_notifications_later_button": "Dopo", - - "ton_login_title": "Connetti a %{name}?", - "ton_login_caption": "%{name} sta richiedendo l'accesso all'indirizzo del tuo wallet", - "ton_login_connect_button": "Collega wallet", - "ton_login_back_to_button": "Torna a %{name}", - "ton_login_success": "Fatto", - "ton_login_notice": "Assicurati di controllare l'indirizzo del servizio prima di collegare il wallet.", - - "nft_confirm_operation": "Conferma", - "nft_show_details": "Mostra dettagli", - "nft_hide_details": "Nascondi dettagli", - "nft_operation_success": "Fatto", - - "nft_operations_expired": "Richiesta scaduta, riprova", - - "nft_deploy_collection_title": "Crea Collezione NFT", - "nft_collection_name": "Nome Collezione", - "nft_royalty_address": "Indirizzo Royalty", - "nft_royalty": "Royalty", - "nft_fee": "Commissioni", - - "nft_change_owner_title": "Modifica il proprietario della Collezione", - "nft_new_owner_address": "Nuovo indirizzo del proprietario", - "nft_item_deploy_title": "Minta NFT", - "nft_item_name": "Nome NFT", - "nft_collection": "Collezione", - - "nft_transfer_title": "Trasferisci NFT", - "nft_transfer_comment": "Commento", - "nft_transfer_recipient": "Destinatario", - - "nft_sale_place_title": "Vendi NFT", - "nft_marketplace_address": "Marketplace", - "nft_price": "Prezzo", - "nft_proceeds": "Il tuo ricavato", - "nft_fee_and_royalties": "Commissioni & Royalties", - "nft_sale_cancel_title": "Togli dalla vendita", - - "txActions": { - "fee": "Commissioni", - "refund": "Rimborso", - "amount": "Ammontare", - - "signRaw": { - "wrongTime": { - "title": "Gli orologi non sono sincronizzati", - "description": "Sembra che l'orologio del tuo dispositivo non sia sincronizzato con la rete. Apri le impostazioni del dispositivo e attiva data e ora automatiche.", - "button": "Apri Impostazioni" - }, - "totalFee": "Commissioni totali", - "totalRefund": "Rimborso totale", - "title": "Conferma transazione", - "recipient": "Destinatario", - "comment": "Commento", - "warning_title": "Attenzione", - "warning_caption": "Tonkeeper non può verificare completamente il risultato di questa transazione. Assicurati di fidarti del destinatario.", - "types": { - "unknownTransaction": "Transazione sconosciuta", - "nftItemTransfer": "Trasferimento NFT", - "jettonTransfer": "Trasferimento Token", - "contractDeploy": "Propagazione Contratto", - "tonTransfer": "Trasferimento TON", - "unSubscribe": "Disiscrizione", - "subscribe": "Iscrizione" - }, - "addressMismatch": { - "wrongVersion": { - "title": "Azione per un altro indirizzo del tuo wallet", - "description": "Cambia il tuo indirizzo attivo in %{version} per confermare l'azione.", - "close": "Cancella", - "switch": "Cambia e continua" - }, - "wrongWallet": { - "title": "Azione per un altro wallet", - "description": "Accedi a un altro wallet %{address} e riprova.", - "close": "OK" - } - }, - "insufficientFunds": { - "toBePaid": "Da pagare: %{amount} %{currency}\n", - "withFees": "+ commissioni blockchain.\n", - "yourBalance": "Il tuo bilancio: %{balance} %{currency}.", - "rechargeWallet": "Ricarica wallet", - "title": "Fondi Insufficienti" - } - } - }, - - "chart": { - "price": "Prezzo", - "no_internet": "Nessuna connessione internet", - "check_connection": "Controlla la tua connessione e riprova.", - "periods": { - "1Y": "A", - "6M": "6M", - "1M": "M", - "7D": "S", - "1D": "G", - "1H": "H" - } - }, - - "deploy_contract_title": "Propaga Contratto", - "deploy_contract_button": "Conferma e propaga", - - "exchange_method_open_warning": "Stai aprendo un'app esterna non gestita da Tonkeeper.", - "exchange_method_dont_show_again": "Non mostrare nuovamente", - - "exchange_telegram_bot": "BOT TELEGRAM", - - "appearance_title": "Tema", - "appearance_description": "TON Diamonds NFT renderà il tuo wallet più colorato e unico.", - "appearance_confirm": "Imposta", - "appearance_accent_name": { - "default": "Tonkeeper", - "sky": "Sky", - "arctic": "Arctic", - "azure": "Azure", - "iris": "Iris", - "flamingo": "Flamingo", - "coral": "Coral", - "marine": "Marine", - "ocean": "Ocean", - "fluid": "Fluid", - "galaxy": "Galaxy", - "cosmos": "Cosmos", - "andromeda": "Andromeda" - }, - - "choose_currency": { - "header_title": "Valuta primaria", - "currencies": { - "USD": "Dollaro Americano", - "EUR": "Euro", - "RUB": "Rublo Russo", - "AED": "Dirham Emirati Arabi Uniti", - "UAH": "Grivnia ucraina", - "UZS": "Sono uzbeko", - "GBP": "Sterline", - "CHF": "Franco Svizzero", - "CNY": "Yuan Chinese", - "KRW": "Won Sud Coreano", - "IDR": "Rupia Infonesiana", - "INR": "Rupia Indiana", - "JPY": "Yen Giapponese" - } - }, - - "transfer_deeplink_address_error": "Indirizzo del destinatario errato", - "transfer_deeplink_amount_error": "Incorrect amount request", - - "confirm": "Conferma", - - "staking": { - "title": "Staking", - "widget_desc": "Guadagna sino a %{apy}% sui tuoi TON", - "staking_pool_desc": "APY ≈ %{apy}%", - "staking_desc": "Minimo deposito da %{minStake} TON.\nGuadagna sino a %{maxApy}%.", - "top_up": "Top up", - "withdrawal_request": "Richiedi prelievo", - "get_withdrawal": "Ottieni prelievo", - "withdraw": "Prelievo", - "deposit": "Deposito", - "transaction": "Transazione", - "warning": { - "title": "Attenzione", - "desc": "Staking basato su Smart Contract di terze parti. Non siamo responsabili del loro lavoro.", - "about": "Riguardo %{name}" - }, - "details": { - "show_details": "Dettagli", - "balance": "Bilancio staking", - "pendingDeposit": "Deposito in sospeso", - "pendingWithdraw": "Prelievo in sospeso", - "readyWithdraw": "Prelievo pronto", - "tap_to_collect": "Tocca per raccogliere", - "next_cycle": { - "title": "Prossimo ciclo", - "desc": "Tutte le transazioni hanno effetto una volta terminato il ciclo", - "time": "in %{time}" - }, - "cooldown": { - "title": "Periodo di raffreddamento", - "desc": "Periodo di due ore applicato all'inizio di ogni ciclo di staking per migliorare il processo di prelievi e depositi tra i cicli", - "active": "Attivo" - }, - "about_pool": "Riguarlo la pool", - "frequency": { - "label": "Frequenza ricompensa", - "value": "Ogni %{count} ore" - }, - "pool_address": { - "label": "Indirizzo pool" - }, - "apy": { - "label": "Stima rapporto APY", - "value": "≈ %{value}%" - }, - "min_deposit": { - "label": "Deposito minimo", - "value": "%{value} TON" - } - }, - "rewards": { - "title": "Le tue ricompense annuali", - "after_top_up": "Dopo il top up", - "current": "Corrente", - "value": "≈ %{value} TON" - }, - "confirm": { - "recipient": { - "label": "Destinatario" - }, - "address": { - "label": "Indirizzo destinatario" - }, - "amount": { - "label": "Importo", - "value": "%{value} TON" - }, - "withdraw_amount": { - "label": "Importo del prelievo", - "value": "%{value} TON" - }, - "fee": { - "label": "Commissioni", - "value": "≈ %{value} TON" - } - } - } -} \ No newline at end of file diff --git a/packages/shared/i18n/locales/ru.json b/packages/shared/i18n/locales/ru.json deleted file mode 100644 index 8f2b6fce5..000000000 --- a/packages/shared/i18n/locales/ru.json +++ /dev/null @@ -1,1071 +0,0 @@ -{ - "app_name": "Tonkeeper", - - "cancel": "Отмена", - "skip": "Пропустить", - "later": "Позже", - "continue": "Продолжить", - "loading": "Загрузка", - "success": "Успешно", - "copied": "Скопировано", - "paste": "Вставить", - "address_copied": "Адрес скопирован", - "link_copied": "Ссылка скопирована", - "form_optional_indicator": "Необязательно", - "error_occurred": "Произошла ошибка", - "refresh_app": "Перезапустить", - "copy_error_log": "Скопировать лог ошибки", - "error_network": "Ошибка сети", - "access_denied": "Доступ запрещён", - "auth_failed": "Авторизация не прошла", - "today": "Сегодня", - "yesterday": "Вчера", - - "tab_wallet": "Кошелёк", - "tab_swap": "Обмен", - "tab_nft": "NFT", - "tab_browser": "Браузер", - "tab_settings": "Настройки", - - "intro_title": "Встречайте\n", - "intro_item1_title": "Рекордная скорость", - "intro_item1_caption": "Благодаря уникальной архитектуре TON, TON-транзакции проходят за секунды.", - "intro_item2_title": "Сквозная защита", - "intro_item2_caption": "Tonkeeper хранит криптографические ключи на устройстве. Транзакции обрабатываются на децентрализованном блокчейне без рисков централизованных бирж.", - "intro_item3_title": "-", - "intro_item3_caption": "-", - "intro_continue_btn": "Начать", - - "about_ton": "TON — это полностью децентрализованный блокчейн первого уровня, разработанный Telegram для поддержки миллиарда пользователей. Он гарантирует мгновенные транзакции, низкие комиссии, удобные приложения и безопасность для окружающей среды.", - "wallet_title": "Кошелёк", - "wallet_receive": "Получить", - "wallet_send": "Отправить", - "wallet_buy": "Купить", - "wallet_source_code": "Исходный код", - "wallet_community": "Сообщество", - "wallet_chat": "Чат", - "wallet_sell": "Продать", - "wallet_about": "Подробнее", - "wallet_swap": "Обменять", - "wallet_old_balance": "Старый кошелёк:", - "wallet_hours_symbol": "ч", - "balances_setup_wallet": "Подключить кошелёк", - "add_other_coins": "Добавить валюты", - "manage_other_coins": "Настроить валюты", - "notify_connection_err_title": "Нет связи с сервером", - "notify_connection_err_caption": "%{host} не отвечает. Попробуйте позже.", - "notify_connection_err_caption_few": "%{hosts} и %{lastHost} не отвечают. Попробуйте позже.", - "notify_incorrect_time_err_title": "Время и дата выставлены неверно", - "notify_incorrect_time_err_caption": "Включите автоматическое время и дату в настройках устройства. Автоматическое время поможет избежать ошибок при переводе средств.", - "notify_no_signal_title": "Нет связи", - "notify_no_signal_caption": "Проверьте соединение с интернетом.", - "transaction_type_sent": "Отправлено", - "transaction_type_receive": "Получено", - "transaction_type_contract_deploy": "Создание контракта", - "transaction_type_buy": "Покупка", - "transaction_type_pending": "В ожидании", - "transaction_type_subscription": "Подписка", - "transaction_type_unsubscription": "Отмена подписки", - "transaction_type_new_subscriber": "Новый подписчик", - "transaction_type_subscriber_lost": "Подписчик потерян", - "transaction_type_wallet_initialized": "Кошелёк инициализирован", - "transaction_type_bounced": "Возвращено", - "transaction_type_from": "Отправитель", - "transaction_type_to": "Получатель", - "transaction_recipient": "Получатель", - "transaction_sender": "Отправитель", - "transaction_recipient_address": "Адрес получателя", - "transaction_sender_address": "Адрес отправителя", - "transaction_hash": "Транзакция", - "transaction_fee": "Комиссия", - "transaction_refund": "Возврат", - "transaction_merchant": "Продавец", - "transaction_subscription": "Подписка", - "transaction_unsubscription": "Отмена подписки", - "transaction_sent_date": "Отправлено %{date}", - "transaction_receive_date": "Получено %{date}", - "transaction_subscription_date": "Оплата %{date}", - "transaction_unsubscription_date": "%{date}", - "transaction_contract_deploy_date": "%{date}", - "transaction_wallet_initialized_date": "%{date}", - "transaction_bid_date": "Ставка %{date}", - "transaction_bid_dns": "Имя", - "transaction_bid_collection_name": "Эмитент", - "transaction_your_bid": "Ваша ставка", - "transaction_confirm_bid": "Подтвердите ставку", - "transaction_transfer_name": "Передача имени", - "transaction_type_bid": "Ставка", - "transaction_buy_date": "Покупка %{date}", - "transaction_message": "Комментарий", - "transaction_purchase_id": "Покупка", - "transaction_status": "Статус", - "transaction_buy_status_pending": "В ожидании", - "transaction_buy_status_success": "Успешно", - "transaction_buy_status_failed": "Не прошла", - "transaction_exchange_from_currency": "Из", - "transaction_confirmations": "Подтверждения", - "transaction_send_more_button": "Отправить ещё на этот адрес", - "transaction_view_in_explorer": "Подробнее", - "transaction_show_subscription_button": "Информация о подписке", - "transaction_copy_caution": "Будьте осторожны при переходе по внешним ссылкам. Никогда не вводите свою секретную фразу на сторонних ресурсах, вы можете потерять свои средства.\n\n- - -\n\n", - - "spam_action": "Спам", - - "dns_renew_toast_success": "Домен продлён на 1 год", - "dns_expiration_date": "Истекает", - "dns_renew_until_btn": "Продлить до %{untilDate}", - "dns_renew_in_progress_btn": "Выполняется продление домена…", - "dns_renew_valid_caption": { - "one": "Истекает через %{count} день", - "few": "Истекает через %{count} дня", - "other": "Истекает через %{count} дней", - "many": "Истекает через %{count} дней" - }, - "dns_alert_expiring_many": { - "one": "У вас есть %{count} домен с истекающим сроком аренды. Продлите все до %{untilDate}.", - "few": "У вас есть %{count} домена с истекающим сроком аренды. Продлите все до %{untilDate}.", - "other": "У вас есть %{count} доменов с истекающим сроком аренды. Продлите все до %{untilDate}.", - "many": "У вас есть %{count} доменов с истекающим сроком аренды. Продлите все до %{untilDate}." - }, - "dns_alert_expiring_one": { - "one": "%{domain} истекает через %{count} день. Продлите до %{untilDate}.", - "few": "%{domain} истекает через %{count} дня. Продлите до %{untilDate}.", - "other": "%{domain} истекает через %{count} дней. Продлите до %{untilDate}.", - "many": "%{domain} истекает через %{count} дней. Продлите до %{untilDate}." - }, - "dns_renew_all_until_btn": "Продлить все до %{untilDate}", - - "expiring_domains": "Истекающие домены", - "domains_renewed": "Домены продлены", - "confirm_renew_all_domains_title": "Подтвердить действие", - "dns_addresses": { - "one": "%{count} адрес", - "few": "%{count} адреса", - "other": "%{count} адресов", - "many": "%{count} адресов" - }, - "renew_in_progress": "Выполняется продление…", - "renew_progress_of": "%{current} из %{count}", - - "nft_title": "NFT", - "nft_about_dns": "TON DNS — сервис, который позволяет задать криптокошелькам, смарт-контрактам или сайтам короткие читаемые имена. \n\nС TON DNS доступ к децентрализованным сервисам аналогичен доступу к веб-сайтам в интернете.", - "nft_marketplace_banner_title": "Здесь будут храниться ваши NFT токены", - "nft_marketplace_banner_description": "Покупайте, продавайте, коллекционируйте и обменивайтесь.", - "disable_nft_marketplace_banner_description": "Покупайте, продавайте, коллекционируйте и обменивайтесь.", - "nft_browse_markets": "Исследовать маркеты", - "nft_open_in_marketplace": "Посмотреть на NFT Маркете", - - "nft_transfer_dns": "Отправить", - "nft_transfer_nft": "Отправить NFT", - "nft_about_collection": "Подробнее о коллекции", - "nft_more": "Раскрыть", - "nft_features": "Возможности", - "nft_diamonds_description": "TON Diamonds обладают способностью менять тему в вашем кошельке Tonkeeper и сопоставлять ее с цветом вашего NFT.", - "nft_change_theme": "Изменить тему", - "nft_properties": "Характеристики", - "nft_details": "Детали", - "nft_view_in_explorer": "Подробнее", - "nft_contract_address": "Адрес контракта", - "nft_owner_address": "Владелец", - "nft_token_id": "ID токена", - "nft_metadata": "Метаданные", - "nft_chain": "Сеть", - "nft_standard": "Стандарт токена", - "nft_marketplaces": "Маркеты", - "nft_marketplaces_title": "NFT маркеты", - "nft_single_nft": "Одиночный NFT", - "nft_unnamed_collection": "Коллекция без названия", - "nft_on_sale": "На продаже", - "nft_on_sale_text": "NFT сейчас выставлен на продажу на маркете. Чтобы передать, необходимо сначала снять его с продажи.", - "dns_on_sale_text": "Домен сейчас выставлен на продажу на маркете. Чтобы передать, необходимо сначала снять его с продажи.", - - "nft_transfer_description": "NFT будет отправлен на этот адрес. Будьте осторожны при отправке NFT, который вы отправляете другому пользователю.", - - "nft_link_domain_button": "Привязать домен", - "nft_link_username_button": "Привязать имя", - "nft_unlink_domain_button": "Связан с {{address}}", - "nft_link_domain_caption": "После того, как вы привяжете домен, вы сможете отправить его и использовать в качестве имени для своего адреса.", - "nft_link_username_caption": "После того, как вы привяжете имя, вы сможете отправить его и использовать в качестве имени для своего адреса.", - "nft_link_domain_mismatch_warn": "Домен не связан с вашим текущим адресом. Будьте осторожны с транзакциями на этот домен.", - "nft_link_username_mismatch_warn": "Имя не связано с вашим текущим адресом. Будьте осторожны с транзакциями на это имя.", - - "username_issued_by_telegram": "Эмитент Telegram. ", - "username_manage_name_button": "Управлять именем", - "dns_link_title": "Подтвердите транзакцию", - "dns_unlink_title": "Подтвердите отвязку", - "dns_wallet_address": "Адрес кошелька", - "dns_current_address": "Ваш текущий адрес", - "dns_address_linked": "Адрес связан", - "dns_address_unlinked": "Адрес отвязан", - "dns_replace_button": "Заменить", - "dns_replace_description": "Добавьте адрес кошелька, на который будет ссылаться домен {{domain}}.", - "dns_replace_save": "Сохранить", - - "jettons_list_title": "Токены", - - "jetton_name": "%{name} Токен", - "jetton_id": "ID токена: %{jettonAddress}", - "jetton_price": "Цена:", - "jetton_token": "Токен", - "jetton_id_copied": "ID токена скопирован", - "jetton_open_explorer": "Подробнее", - "jettons_manage_tokens": "Настроить токены", - - "nft_transaction_head_placeholder": "NFT", - - "edit_coins_title": "Валюты", - "edit_coins_hide": "Скрыть", - "edit_coins_add": "Включить", - "edit_coins_added": "Включено", - "edit_coins_added_toast": "Включено", - - "receive_title": "Получить %{currency}", - "receive_ton_and_jettons": "Получить TON и другие токены", - "receive_qr_title": "Покажите QR-код", - "receive_address_title": "Или используйте адрес", - "receive_copy": "Копировать", - "receive_share": "Поделиться", - "receive_received_title": "Вам зачислено\n%{amount} %{currency}", - - "send_title": "Отправить %{currency}", - "send_address_placeholder": "Адрес или имя", - "send_fee_estimation_error": "Ошибка подсчёта комиссии", - "send_get_wallet_info_error": "Ошибка запроса кошелька", - "send_build_tx_error": "Ошибка создания транзакции", - "send_publish_tx_error": "Ошибка публикации транзакции", - "send_sending_failed": "Отправка неуспешна", - "send_sending_wrong_time_title": "Произошла ошибка", - "send_sending_wrong_time_description": "Включите автоматическое время и дату в настройках своего устройства. После этого повторите перевод.", - "send_insufficient_funds": "Недостаточно средств", - "send_lockup_warning_title": "Сумма превышает ликвидный баланс", - "send_lockup_warning_caption": "Проверьте что вы отправляете сумму на разрешенный адрес.\n\nЕсли транзакция отклонена сетью, комиссия всё равно будет списана.", - "send_lockup_warning_submit_button": "Отправить", - "send_invalid_recipient_title": "Неверный получатель", - "send_invalid_recipient_caption": "Домен не существует или адрес кошелька к нему не привязан. Введите действительный адрес домена или кошелька.", - "send_all_warning_title": "Вы уверены, что хотите отправить весь свой баланс?", - - "send_screen_steps": { - "address": { - "title": "Получатель", - "placeholder": "Адрес кошелька или домен", - "recent_label": "Недавние", - "suggests_label": "Избранные и недавние", - "delete_alert_text": "Вы точно хотите удалить «%{name}» из избранного?", - "suggest_actions": { - "add": "Добавить в избранное", - "hide": "Скрыть", - "edit": "Редактировать", - "delete": "Удалить" - } - }, - "amount": { - "title": "Сумма", - "recipient_label": "Кому:", - "insufficient_balance": "Недостаточно средств", - "less_than_min": "Минимум %{minAmount} TON", - "max": "Максимум", - "remaining": "Доступно: %{amount}" - }, - "comfirm": { - "title": "Подтвердить действие", - "action": "Отправка %{coin}", - "comment_label": "Комментарий", - "comment_label_required": "Обязательный комментарий", - "comment_required_text": "Обязательно укажите memo или тег при отправке на биржу. ", - "comment_description": "Будет виден всем.", - "comment_description_encrypted": "Будет виден только получателю и вам.", - "comment_encrypt": "Зашифровать комментарий", - "comment_decrypt": "Расшифровать", - "details_label": "Детали", - "details_max_balance_label": "Отправка всего баланса %{currency}" - }, - "done": { - "title": "%{currency} отправлен!", - "description": "Ваша транзакция отправлена в сеть и будет обработана через несколько секунд.", - "to": "Кому: %{name}", - "address": "Адрес: %{address}", - "comment": "Комментарий: %{comment}", - "fee": "Комиссия: %{fee}", - "done_label": "Готово", - "add_favorite": "Добавить адрес в избранное", - "favorite_saved": "Добавлено в избранное" - } - }, - - "add_edit_favorite": { - "add_title": "Новый избранный", - "edit_title": "Редактирование", - "name_placeholder": "Название", - "address_label": "Адрес", - "delete": "Удалить", - "save": "Сохранить" - }, - - "scan_qr_permission_error": "Разрешите доступ к камере, чтобы сканировать QR-коды", - "scan_qr_open_settings": "Открыть настройки", - "scan_qr_title": "Отсканируйте QR-код", - - "confirm_sending_title": "Перевод", - "confirm_sending_recipient": "Получатель", - "confirm_sending_recipient_address": "Адрес получателя", - "confirm_sending_amount": "Сумма", - "confirm_sending_fee": "Комиссия", - "confirm_sending_message": "Комментарий", - "confirm_sending_submit": "Подтвердить и отправить", - "confirm_sending_sent_caption_ton": "Транзакция отправлена в сеть и будет подтверждена через пару секунд.", - "confirm_sending_sent_caption_btc": "Транзакция отправлена в сеть и будет подтверждена в течение часа.", - "confirm_sending_inactive_warn_title": "Неактивный контракт", - "confirm_sending_inactive_warn_description": "Не продолжайте, если вы ожидаете волшебства от блокчейна. Этого не произойдет.", - "confirm_sending_inactive_warn_about": "Что важно знать", - "confirm_sending_method_title": "Send your funds\nto %{name}?", - - "info_about_inactive_title": "Неактивный контракт", - "info_about_inactive_desc1": "Tonkeeper не знает, является ли этот адрес кошельком или смарт-контрактом.", - "info_about_inactive_desc2": "Если вы хотите просто перевести деньги на кошелёк — вы можете продолжить.", - "info_about_inactive_desc3_1": "Если вы ожидаете автоматического действия от смарт-контракта,", - "info_about_inactive_desc3_bold": " НЕ ПРОДОЛЖАЙТЕ ", - "info_about_inactive_desc3_2": "— ваш денежный перевод может застрять на адресе этого кошелька.", - "info_about_inactive_back": "Вернуться назад", - - "swap_title": "Обмен", - - "wallet": { - "screen_title": "Кошелёк", - "edit_tokens_btn": "Настроить", - "old_wallets_title": "Cтарые кошельки", - "old_wallet_title": "Cтарый кошелёк", - "buy_btn": "Купить TON", - "send_btn": "Отправить", - "receive_btn": "Получить", - "swap_btn": "Обменять", - "tonkens_tab_lable": "Токены", - "nft_tab_lable": "Коллекции" - }, - - "approval": { - "show_all": "Показать все", - "verify_token": "Проверьте токен", - "verify_collection": "Проверьте коллекцию", - "details_token": "Подробнее о токене", - "token_count": { - "one": "%{count} токен", - "few": "%{count} токена", - "many": "%{count} токенов", - "other": "%{count} токенов" - }, - "single_token": "Одиночный токен", - "accept": "Принять", - "decline": "Отклонить", - "blacklisted_token": "Токен в чёрном списке", - "accepted_token": "Токен принят", - "blacklisted_collection": "Коллекция в чёрном списке", - "accepted_collection": "Коллекция принята", - "pending": "В ожидании", - "declined": "Скрытые", - "move_to_declined_collection": "Скрыть коллекцию из кошелька", - "move_to_accepted_collection": "Показывать коллекцию в кошельке", - "move_to_declined_token": "Скрыть токен из кошелька", - "move_to_accepted_token": "Показывать токен в кошельке", - "accepted_at_token": "Принят %{date}", - "accepted_at_collection": "Принята %{date}", - "declined_at_token": "Отклонён %{date}", - "declined_at_collection": "Отклонена %{date}", - "details_collection": "Подробнее о коллекции", - "verify_description_token": "Этот токен выпущен неизвестным эмитентом. Для обнаружения подделок проверьте ID токена в официальном источнике эмитента. Вы всегда можете изменить видимость токена в настройках.", - "verify_description_collection": "Эти токены выпущены неизвестным эмитентом. Для обнаружения подделок проверьте ID коллекции в официальном источнике эмитента. Вы всегда можете изменить видимость коллекции в настройках.", - "accepted": "Видимые", - "approve_all": "Принять всё", - "approve_token": "Одобрите входящий токен \"%{name}\" ", - "approve_two_tokens": "Одобрите входящие токены \"%{name1}\" и \"%{name2}\"", - "approve_collection_one": "Одобрите входящий токен из коллекции \"%{collection}\"", - "approve_collection_many": "Одобрите входящие токены из коллекции \"%{collection}\"", - "approve_two_collections": "Одобрите входящие токены из коллекций \"%{collection1}\" \"%{collection2}\"", - "approve_many": { - "one": "Одобрите %{count} входящий токен", - "few": "Одобрите %{count} входящих токена", - "many": "Одобрите %{count} входящих токенов", - "other": "Одобрите %{count} входящих токенов" - }, - "manage_tokens": "Настроить токены", - "name": "Имя", - "id_token": "ID токена", - "id_collection": "ID коллекции", - "token_copied": "ID токена скопирован" - }, - - "activity": { - "screen_title": "Активность", - "sent": "Отправить", - "received": "Received", - "empty_transaction_title": "Ваша активность будет показана здесь", - "empty_transaction_caption": "Совершите первую транзакцию!", - "buy_toncoin_btn": "Купить Toncoin", - "receive_btn": "Получить", - "failed_transaction": "Неуспешно" - }, - - "transactions": { - "nft_purchase": "Покупка NFT", - "subscription": "Подписка", - "unsubscription": "Отмена подписки", - "smartcontract_exec": "Вызов контракта", - "unknown": "Неизвестно", - "unknown_description": "Что-то произошло, \nно мы не распознали", - "swap": "Обмен", - "wallet_initialized": "Кошелёк инициализирован", - "contract_deploy": "Создание контракта", - "spam": "Спам", - "bid": "Ставка", - "failed": "Неуспешно", - "deposit": "Депозит", - "withdraw": "Вывод", - "withdrawal_request": "Запрос на вывод", - "burned": "Сожжено" - }, - - "activityActionModal": { - "time_on": "%{time}", - "received": "Получено", - "sent": "Отправлено", - "swapped": "Обмен", - "purchase": "Покупка", - "bid": "Ставка", - "call_contract": "Вызов контракта", - - "deposit": "Депозит", - "withdraw": "Вывод", - "withdrawal_request": "Запрос на вывод", - "burned": "Сожжено" - }, - - "transactionDetails": { - "received_date": "Получено %{time}", - "sent_date": "Отправлено %{time}", - "swapped_date": "Обмен %{time}", - "purchase_date": "Покупка %{time}", - "bid_date": "Ставка %{time}", - "call_contract_date": "Вызов контракта %{time}", - "sender": "Отправитель", - "sender_address": "Адрес отправителя", - "recipient": "Получатель", - "recipient_address": "Адрес получателя", - "comment": "Комментарий", - "transaction": "Транзакция", - "spam": "СПАМ", - "address": "Адрес", - "operation": "Операция", - "description": "Описание", - "payload": "Данные", - "bid_collection_name": "Эмитент", - "bid_name": "Название", - "subscription_product_label": "Подписка", - "subscription_merchant_label": "Продавец", - "unsubscription_title": "Отмена подписки", - "withdraw_amount": "Сумма вывода" - }, - - "receiveModal": { - "receive_title": "Получить %{tokenName}", - "receive_description": "Отправляйте на этот адрес только %{tokenName} и токены в сети TON, иначе вы можете потерять свои средства.", - "copy": "Скопировать" - }, - - "confirmSendModal": { - "title": "Подтвердить действие", - "network_fee": "Комиссия сети", - "to_your_address": "На ваш адрес", - "transaction_type": { - "send": "Отправить", - "receive": "Получить", - "burn": "Сжечь" - } - }, - - "browser": { - "title": "Браузер", - "search_label": "Поиск", - "start_typing": "Введите адрес или начните поиск", - "empty_search": "По вашему запросу ничего не найдено", - "connected_title": "Подключённые", - "popular_title": "Популярные", - "explore_all": "Другие", - "open_link": "Открыть ссылку", - "web_search_title": "Поиск в %{searchEngine}", - "about_dapps_title": "Используйте Tonkeeper с приложениями и сервисами TON.", - "about_dapps_caption": "Исследуйте приложения и сервисы, в которых вы можете использовать Tonkeeper для входа и платежей.", - "about_dapps_learn_more": "Подробнее", - "actions": { - "refresh": "Обновить", - "mute": "Заглушить", - "share": "Поделиться", - "copy_link": "Скопировать ссылку", - "disconnect": "Отключить" - }, - "remove_alert": { - "title": "Отключить «%{name}»?", - "approve_button": "Отключить" - }, - "more_title": "Исследуйте все сервисы", - "more_description": "Маркеты, биржи и другие" - }, - - "exchange_modal": { - "title": "Купить или продать", - "other_ways_to_buy": "Другие способы покупки", - "show_all": "Показать всё", - "hide": "Скрыть" - }, - - "exchange_title": "Купить TON", - "exchange_other_ways": "Другие способы покупки и продажи", - - "settings_title": "Настройки", - "settings_primary_currency": "Валюта", - "settings_rate": "Оценить Tonkeeper", - "settings_contact_support": "Написать команде", - "settings_legal_documents": "Юридические документы", - "settings_news": "Новости Tonkeeper", - "settings_support": "Поддержка", - "settings_backup_seed": "Показать секретный ключ", - "settings_reset": "Выйти", - "settings_notifications": "Уведомления", - "settings_to_mainnet": "Переключить на Mainnet", - "settings_to_testnet": "Переключить на Testnet", - "settings_network_alert_title": "Выберите сеть", - "settings_reset_alert_title": "Выйти из кошелька?", - "settings_reset_alert_caption": "Доступ к кошельку будет отключен. Убедитесь, что вы сохранили секретный ключ.", - "settings_recovery_phrase": "Секретный ключ", - "settings_reset_alert_button": "Выйти", - "settings_subscriptions": "Подписки", - "settings_wallet_version": "Текущий адрес", - "settings_version": "Версия", - "settings_security": "Безопасность", - "settings_appearance": "Тема", - "settings_jettons_list": "Токены", - "settings_delete_account": "Удалить аккаунт", - "settings_search_engine": "Поиск", - - "settings_delete_alert_title": "Вы уверены, что хотите удалить аккаунт?", - "settings_delete_alert_caption": "Это действие приведет к удалению вашего аккаунта и всех данных из этого приложения.", - "settings_delete_alert_button": "Удалить аккаунт и данные", - - "account_deleted": "Аккаунт удалён", - - "notifications_title": "Уведомления", - "notifications_switch_title": "Push-уведомления", - "notification_switch_description": "Получайте уведомления при получении TON, токенов, NFT и уведомления от подключенных приложений.", - "notifications_disabled_title": "Уведомления отключены", - "notifications_disabled_description": "Вы отключили уведомления в настройках устройства. Чтобы ничего не пропустить разрешите уведомления.", - "notifications_disabled_action": "Открыть настройки", - "notifications_not_supported": "Уведомления не поддерживаются на вашем устройстве", - - "legal_header_title": "Документы", - "legal_terms": "Правила использования", - "legal_privacy": "Политика конфиденциальности", - "legal_licenses_title": "Лицензии", - "legal_font_license": "Шрифт Montserrat", - - "subscription_started": "Подписка оформлена", - "subscriptions_title": "Подписки", - "subscriptions_item_caption": "%{price} TON, след. списание %{nextBill}", - "subscriptions_item_caption_expired": "Завершена %{date}", - "subscriptions_item_caption_expiring": "%{price} TON, завершается %{date}", - "subscriptions_section_active": "Активные", - "subscriptions_section_expired": "Завершённые", - "subscription_title": "Подписка", - "subscription_price": "Цена", - "subscription_fee": "Комиссия", - "subscription_period": "Период", - "subscription_period_hour": "Каждый час", - "subscription_period_day": "Ежедневно", - "subscription_period_week": "Еженедельно", - "subscription_period_weeks": "Каждые %{count} недели", - "subscription_period_month": "Ежемесячно", - "subscription_period_quarter": "Поквартально", - "subscription_period_half_year": "Каждые полгода", - "subscription_period_year": "Ежегодно", - "subscription_period_custom": "Каждые %{period}", - "subscription_next_bill": "След. списание", - "subscription_expiring": "Завершается", - "subscription_subscribe": "Подписаться", - "subscription_unsubscribe": "Отписаться", - "subscription_cancel": "Завершить подписку", - "subscription_sent": "Транзакция отправлена", - "subscription_cancel_alert_title": "Завершить подписку?", - "subscription_cancel_alert_caption": "Если отписаться сейчас, подписка продолжит действовать до %{nextBill}", - "subscription_cancel_alert_cancel_btn": "Не сейчас", - "subscription_cancel_alert_submit_btn": "Завершить", - "subscription_back_to_merchant_name": "Вернуться в %{merchantName}", - "subscription_back_to_merchant_title": "Вернуться в канал?", - "subscription_back_to_merchant_caption": "Транзакция обрабатывается. Ваша подписка будет активна через пару минут.", - "subscription_back_to_merchant_button": "Вернуться", - "subscription_open_merchant": "Открыть в Telegram", - - "require_create_wallet_modal_title": "Сперва подключим кошелёк", - "require_create_wallet_modal_caption": "Чтобы использовать Tonkeeper, нужен кошелёк. Создайте новый или подключите существующий.", - "require_create_wallet_modal_create_new": "Создать новый кошелёк", - "require_create_wallet_modal_import": "Подключить существующий", - - "import_wallet_title": "Введите секретный ключ", - "import_wallet_caption": "Чтобы восстановить доступ, введите 24 секретных слова, которые вы получили при создании кошелька.", - "import_wallet_wrong_words_err": "Неправильный ключ", - "import_wallet_reset_caption": "Чтобы восстановить доступ, введите 24 секретных слова, которые вы получили при создании кошелька.", - - "create_wallet_generating": "Создаём кошелёк...", - "create_wallet_generated": "Кошелёк создан!", - "create_wallet_title": "Возьмите ручку\nи лист бумаги", - "create_wallet_caption": "Мы настоятельно рекомендуем вам записать секретный ключ. Это единственный способ вернуть доступ к кошельку, если потеряете устройство. Не отправляйте ключ себе по почте и не делайте скриншот. Безопаснее всего вообще не хранить ключ на устройстве.", - "create_wallet_continue_button": "Понятно", - - "secret_words_title": "Ваш секретный ключ", - "secret_words_caption": "Запишите эти 24 слова ровно в таком же порядке и сохраните их в секретном, надёжном месте.", - - "check_words_title": "Давайте проверим", - "check_words_caption": "Чтобы убедиться, что вы записали секретный ключ правильно, введите слова %{wordNum1}, %{wordNum2} и %{wordNum3}.", - "check_words_success": "Поздравляем! Ваш кошелёк готов", - - "platform": { - "ios": { - "face_recognition": "Face ID", - "face_recognition_genitive": "Face ID", - "fingerprint": "Touch ID", - "fingerprint_genitive": "Touch ID", - "capitalized_face_recognition": "Face ID", - "capitalized_fingerprint": "Touch ID" - }, - "android": { - "face_recognition": "распознавание лица", - "face_recognition_genitive": "распознавания лица", - "fingerprint": "отпечаток пальца", - "fingerprint_genitive": "отпечатка пальца", - "capitalized_face_recognition": "Распознавание лица", - "capitalized_fingerprint": "Отпечаток пальца" - } - }, - - "create_pin_current_title": "Введите текущий пин-код", - "create_pin_new_title": "Задайте новый пин-код", - "create_pin_repeat_title": "Введите пин-код ещё раз", - "pin_enter_faceid_err": "Ошибка сканирования биометрии", - "pin_enter_skip_faceid_err": "Ошибка сканирования биометрии", - - "migration_title": "Обновите кошелёк", - "migration_caption": "Tonkeeper вводит новый формат кошелька с поддержкой подписок. Баланс будет перенесен на новый адрес, секретный ключ останется прежним.", - "migration_old_wallet": "Старый кошелёк", - "migration_new_wallet": "Новый кошелёк", - "migration_fee_info": "Комиссия за транзакцию ≈%{tonFee} TON (%{fiatFee})", - "migration_migrate_btn": "Обновить кошелёк", - "migration_cancel_btn": "Не обновлять сейчас", - "migration_in_progress": "Идёт обновление на 4-ю версию", - "migration_failed": "Обновление не прошло. Средства остались на старом кошельке.", - "transfer_from_old_wallet_title": "Перевод на текущий адрес", - "transfer_from_old_wallet_caption": "Tonkeeper переведет всю сумму со старого адреса на текущий.", - "transfer_from_old_wallet_btn": "Перевести", - "transfer_from_old_wallet_in_progress": "Идет перевод", - - "security_migration_title": "Обновление защиты кошелька", - "security_migration_caption": "Пин-код теперь защищает весь кошелёк, в дополнение к подтверждению платежей. Включите %{faceRecognition} для быстрого доступа.", - "security_migration_submit_button": "Включить защиту", - "security_migration_skip_button": "Не обновлять сейчас", - - "access_confirmation_title": "Введите пин-код", - "access_confirmation_logout": "Выйти", - "access_confirmation_reset": "Сброс", - "access_confirmation_update_biometry": "Введите пин-код, чтобы использовать биометрические данные для входа", - - "security_title": "Безопасность", - "security_change_passcode": "Поменять пин-код", - "security_reset_passcode": "Сбросить пин-код", - "security_use_biometry_switch": "Использовать %{biometryType}", - "security_use_biometry_tip": "Вы всегда можете разблокировать кошелёк с помощью пин-кода", - "passcode_changed": "Пин-код изменён", - - "setup_biometry_title": "Быстрый доступ с помощью\n%{biometryType}", - "setup_biometry_caption": "%{biometryType} позволяет открывать кошелёк быстрее без ввода пин-кода.", - "setup_biometry_enable_button": "Включить %{biometryType}", - - "setup_notifications_title": "Получайте мгновенные уведомления", - "setup_notifications_enable_button": "Включить уведомления", - "setup_notifications_caption": "Получайте уведомления при получении TON, токенов и NFT.", - - "reminder_notifications_title": "Получайте мгновенные уведомления", - "reminder_notifications_caption": "Получайте уведомления при получении TON, токенов и NFT.", - "reminder_notifications_enable_button": "Включить уведомления", - "reminder_notifications_later_button": "Позже", - - "ton_login_title": "Войти в %{name}", - "ton_login_caption": "%{name} запрашивает доступ к адресу вашего кошелька\n", - "ton_login_connect_button": "Подключить кошелёк", - "ton_login_back_to_button": "Вернуться в %{name}", - "ton_login_success": "Готово", - "ton_login_notice": "Обязательно проверьте адрес сервиса перед подключением кошелька.", - - "nft_confirm_operation": "Подтвердить", - "nft_show_details": "Подробнее", - "nft_hide_details": "Скрыть детали", - "nft_operation_success": "Готово", - - "nft_operations_expired": "Время запроса истекло, попробуйте еще раз", - - "nft_deploy_collection_title": "Создать NFT коллекцию", - "nft_collection_name": "Название коллекции", - "nft_royalty_address": "Адрес роялти", - "nft_royalty": "Роялти", - "nft_fee": "Комиссия", - - "nft_change_owner_title": "Сменить владельца коллекции", - "nft_new_owner_address": "Новый адрес владельца", - "nft_item_deploy_title": "Выпустить NFT", - "nft_item_name": "Название NFT", - "nft_collection": "Коллекция", - - "nft_transfer_title": "Отправить NFT", - "nft_transfer_comment": "Комментарий", - "nft_transfer_recipient": "Получатель", - - "nft_sale_place_title": "Продажа NFT", - "nft_marketplace_address": "Маркетплейс", - "nft_price": "Цена", - "nft_proceeds": "Ваш доход", - "nft_fee_and_royalties": "Комиссия и роялти", - "nft_sale_cancel_title": "Убрать с продажи", - - "txActions": { - "fee": "Комиссия", - "refund": "Возврат", - "amount": "Сумма", - - "signRaw": { - "wrongTime": { - "title": "Время выставлено неверно", - "description": "Похоже, часы вашего устройства не синхронизированы с сетью. Откройте настройки устройства и включите автоматическое время и дату.", - "button": "Открыть настройки" - }, - "totalFee": "Суммарная комиссия", - "totalRefund": "Суммарный возврат", - "title": "Подтвердить транзакцию", - "recipient": "Получатель", - "comment": "Комментарий", - "warning_title": "Предупреждение", - "warning_caption": "Tonkeeper не может полностью проверить результат этой транзакции. Убедитесь, что вы доверяете получателю.", - "types": { - "unknownTransaction": "Неизвестная транзакция", - "nftItemTransfer": "Передача NFT", - "jettonTransfer": "Отправка токена", - "contractDeploy": "Деплой контракта", - "tonTransfer": "Отправка TON", - "unSubscribe": "Отписка", - "subscribe": "Подписка" - }, - "addressMismatch": { - "wrongVersion": { - "title": "Действие для другого адреса вашего кошелька", - "description": "Переключите текущий адрес кошелька на %{version}, чтобы подтвердить действие.", - "close": "Отмена", - "switch": "Переключить и продолжить" - }, - "wrongWallet": { - "title": "Действие для другого кошелька", - "description": "Войдите в другой кошелёк %{address} и повторите попытку.", - "close": "Хорошо" - } - }, - "insufficientFunds": { - "toBePaid": "Необходимо: %{amount} %{currency}\n", - "withFees": "+ комиссия сети.\n", - "yourBalance": "Ваш баланс: %{balance} %{currency}.", - "rechargeWallet": "Пополнить кошелёк", - "title": "Недостаточно средств", - "stakingFee": { - "zero": "Для совершения транзакции необходимо %{count} TON. Предполагаемая комиссия в размере %{fee} TON будет удержана, остаток будет возвращён.", - "one": "Для совершения транзакции необходим %{count} TON. Предполагаемая комиссия в размере %{fee} TON будет удержана, остаток будет возвращён.", - "few": "Для совершения транзакции необходимо %{count} TON. Предполагаемая комиссия в размере %{fee} TON будет удержана, остаток будет возвращён.", - "many": "Для совершения транзакции необходимо %{count} TON. Предполагаемая комиссия в размере %{fee} TON будет удержана, остаток будет возвращён.", - "other": "Для совершения транзакции необходим %{count} TON. Предполагаемая комиссия в размере %{fee} TON будет удержана, остаток будет возвращён." - } - } - } - }, - - "chart": { - "price": "Цена", - "no_internet": "Нет подключения к интернету", - "check_connection": "Проверьте подключение и повторите попытку.", - "periods": { - "1Y": "Г", - "6M": "6M", - "1M": "М", - "7D": "Н", - "1D": "Д", - "1H": "Ч" - } - }, - - "deploy_contract_title": "Разместить контракт", - "deploy_contract_button": "Подтвердить и разместить", - - "exchange_method_open_warning": "Вы открываете внешнее приложение, которым не управляет Tonkeeper.", - "exchange_method_dont_show_again": "Больше не показывать", - - "exchange_telegram_bot": "TELEGRAM BOT", - - "appearance_title": "Оформление", - "appearance_description": "TON Diamonds NFT сделает ваш кошелёк более красочным и уникальным.", - "appearance_confirm": "Применить", - "appearance_accent_name": { - "default": "Tonkeeper", - "sky": "Небо", - "arctic": "Арктика", - "azure": "Лазурь", - "iris": "Ирис", - "flamingo": "Фламинго", - "coral": "Коралл", - "marine": "Море", - "ocean": "Океан", - "fluid": "Флюид", - "galaxy": "Галактика", - "cosmos": "Космос", - "andromeda": "Андромеда" - }, - - "choose_currency": { - "header_title": "Основная валюта", - "currencies": { - "USD": "Доллар США", - "EUR": "Евро", - "RUB": "Российский рубль", - "AED": "Дирхам ОАЭ", - "UAH": "Украинская гривна", - "KZT": "Казахский тенге", - "UZS": "Узбекский сум", - "GBP": "Фунт стерлингов", - "CHF": "Швейцарский франк", - "CNY": "Китайский юань", - "BYN": "Белорусский рубль", - "CAD": "Канадский доллар", - "IRR": "Иранский риал", - "TRY": "Турецкая лира", - "THB": "Тайский бат", - "VND": "Вьетнамский донг", - "BDT": "Бангладешская така", - "NGN": "Нигерийская найра", - "BRL": "Бразильский реал", - "ILS": "Израильский шекель", - "GEL": "Грузинский лари", - "KRW": "Южнокорейская вона", - "IDR": "Индонезийская рупия", - "INR": "Индийская рупия", - "JPY": "Японская иена" - } - }, - - "transfer_deeplink_address_error": "Неверный адрес получателя", - "transfer_deeplink_nft_address_error": "Неверный адрес NFT", - "transfer_deeplink_amount_error": "Некорректный запрос суммы", - - "decryption_error": "Ошибка расшифровки", - - "confirm": "Подтвердить", - - "staking": { - "no_funds": "Нет средств доступных для вывода", - "confirm_deposit": "Подтвердить и внести", - "confirm_unstake": "Подтвердить и отправить", - "staked": "Стейкинг", - "title": "Стейкинг", - "title_large": "Стейкинг TON", - "desc_large": "Участвуйте в стейкинге и получайте вознаграждения. Стейкинг поддерживает сеть TON.", - "learn_more": "Подробнее", - "highest_apy": "MAX APY", - "widget_title": "Зарабатывайте TON", - "widget_desc": "Годовая доходность до %{apy}%", - "widget_staking_options": "Варианты стейкинга", - "staking_pool_desc": "APY ≈ %{apy}%", - "staking_desc": "Мин. депозит %{minStake} TON.\nЗарабатывайте до %{maxApy}%.", - "top_up": "Внести", - "withdrawal_request": "Запрос на вывод", - "get_withdrawal": "Получить вывод", - "withdraw": "Вывести", - "deposit": "Депозит", - "transaction": "Подтвердить действие", - "active": "Активные", - "other": "Другие", - "message": { - "readyWithdraw": { - "zero": "%{amount} TON готовы к выводу.\nНажмите, чтобы вывести", - "one": "%{amount} TON готов к выводу.\nНажмите, чтобы вывести", - "few": "%{amount} TON готовы к выводу.\nНажмите, чтобы вывести", - "many": "%{amount} TON готовы к выводу.\nНажмите, чтобы вывести" - }, - "pendingWithdraw": { - "zero": "%{amount} TON будет выведено\n", - "one": "%{amount} TON будет выведен\n", - "few": "%{amount} TON будет выведено\n", - "many": "%{amount} TON будет выведено\n", - "other": "%{amount} TON будет выведено\n" - }, - "pendingDeposit": { - "zero": "%{amount} TON будет\nзачислено ", - "one": "%{amount} TON будет\nзачислен ", - "few": "%{amount} TON будет\nзачислено ", - "many": "%{amount} TON будет\nзачислено ", - "other": "%{amount} TON будет\nзачислено " - } - }, - "warning": { - "title": "Предупреждение", - "desc": "Стейкинг основан на сторонних смарт-контрактах. Мы не несем ответственность за их работу.", - "beta_desc": "Мы не несём ответственность за стабильность и результат стейкинга. Используйте на свой страх и риск.", - "about": "Подробнее о %{name}" - }, - "details": { - "links_title": "Ссылки", - "socials": { - "twitter": "Twitter", - "telegram": "Сообщество" - }, - "note": "Стейкинг основан на сторонних смарт-контрактах. Tonkeeper не несёт ответственность за стабильность и результат.", - "balance": "Баланс стейкинга", - "pendingDeposit": "Будет зачислено", - "pendingWithdraw": "Ожидают вывод", - "pendingWithdrawDesc": "по окончанию цикла", - "readyWithdraw": "Вывод готов", - "tap_to_collect": "Нажмите, чтобы вывести", - "next_cycle": { - "title": "Следующий цикл", - "reward_title": "Следующая награда", - "desc": "Все транзакции исполняются только после завершения цикла.", - "desc_liquid": "Запросы на вывод исполнятся после завершения цикла.", - "in": "через" - }, - "cooldown": { - "title": "Период ожидания", - "desc": "Двухчасовой период, применяемый в начале каждого стейкинг цикла для улучшения процесса снятия и внесения средств между циклами", - "active": "Активен" - }, - "about_pool": "Детали", - "frequency": { - "label": "Частота выплат", - "value": { - "zero": "Каждые %{count} часов", - "one": "Каждые %{count} час", - "few": "Каждые %{count} часа", - "many": "Каждые %{count} часов" - } - }, - "pool_address": { - "label": "Адрес пула" - }, - "apy": { - "label": "Годовая доходность", - "highest_tag": "MAX", - "value": "≈ %{value}%" - }, - "min_deposit": { - "label": "Минимальный депозит", - "value": "%{value} TON" - } - }, - "jetton_note": "Когда вы вносите TON в пул, вы получаете токен %{token}, который отображает вашу долю в пуле. По мере накопления прибыли в пуле, %{token} представляет всё большее число TON.", - "rewards": { - "title": "Ваша годовая доходность", - "after_top_up": "После депозита", - "current": "Текущая", - "value": "≈ %{value} TON" - }, - "confirm": { - "recipient": { - "label": "Получатель" - }, - "address": { - "label": "Адрес получателя" - }, - "amount": { - "label": "Сумма", - "value": "%{value} TON" - }, - "withdraw_amount": { - "label": "Сумма вывода", - "value": "%{value} TON" - }, - "fee": { - "label": "Комиссия", - "value": "≈ %{value} TON" - } - }, - "withdrawal_fee_warning": { - "title": "У вас не останется для вывода", - "message": "Пожалуйста, оставьте минимум {{amount}} TON на вашем балансе.", - "continue": "Продолжить всё равно" - }, - "not_exists": "Неверный адрес пула" - }, - - "update": { - "title": "Обновление Tonkeeper", - "version": "Версия {{version}}", - "description": "Доступна новая версия Tonkeeper. Вы можете скачать её прямо сейчас.", - "mb": "{{size}} МБ", - "download": "Скачать", - "downloading": "Скачивание… {{progress}}%", - "remindLater": "Напомнить позже", - "tap": "Нажмите, чтобы обновить", - "retry": "Ошибка загрузки. Нажмите, чтобы повторить попытку." - }, - - "notifications": { - "notifications": "Уведомления", - "from_connected": "От ваших приложений", - "mute_notifications": "Отключить уведомления", - "disconnect_app": "Отключить %{app_name}", - "report": "Пожаловаться", - "muted": "Уведомления заглушены", - "disconnected_app": "Disconnected app", - "earlier": "Ранее", - "apps": "Приложения", - "apps_description": "Уведомления от подключенных приложений в вашей активности", - "allow_notifications": "Включить уведомления", - "placeholder": { - "title": "Уведомления будут отображаться здесь", - "description": "Исследуйте приложения и сервисы в браузере Tonkeeper." - }, - "alert": { - "title": "Вы уверены, что хотите открыть внешнюю ссылку?", - "description": "Адрес ссылки из уведомления не совпадает с адресом приложения.", - "open": "Открыть всё равно", - "cancel": "Отмена" - } - }, - "choose_country": { - "title": "Выберите вашу страну", - "search": "Поиск", - "cancel": "Отмена", - "empty_placeholder": "По вашему запросу ничего не найдено" - }, - "programmable_nfts": { - "alert": { - "title": "Вы уверены, что хотите открыть внешнюю ссылку?", - "description": "Переходите по этой внешней ссылке только в том случае, если вы доверяете автору коллекции.\n\n{{uri}}", - "open": "Открыть всё равно", - "cancel": "Отмена" - } - }, - "exchange": { - "not_exists": "Неверный ID обменника" - }, - "address_update": { - "title": "Обновление адреса", - "notification_desc_will_change": "Пятого октября адрес вашего кошелька изменит свой формат на UQ, который ему лучше подходит. Старый адрес также продолжит работать. От вас не потребуется никаких действий.", - "notification_desc_did_change": "Пятого октября адрес вашего кошелька изменил свой формат на UQ, который ему лучше подходит. Старый адрес также продолжит работать. От вас не потребуется никаких действий.", - "learn_more": "Подробнее", - "why_change": "Для чего это обновление?", - "your_wallet": "Ваш кошелёк", - "old_style": "Старый адрес", - "new_style": "Новый адрес", - "post_top": "К концу этого года вся сеть TON будет отображать адреса кошельков по-другому. Новый адрес будет начинаться с UQ вместо EQ. И последние четыре буквы тоже изменятся. Старый адрес продолжит работать и вести на тот же кошелёк. Всё это никак не повлияет на безопасность средств, хранящихся у вас в кошельке.", - "post_rest": "В сети TON возможно использование двух стилей адресов, но только один из них используется для всех типов аккаунтов: и приложений, и кошельков.\n\nФормат EQ лучше всего подходит для смарт-контрактов, обрабатывающих входящие средства. Если смарт-контракт ещё не опубликован (т.е. кода нет в блокчейне), то TONы, отправленные на этот адрес, вернутся отправителю. Это такая функция безопасности — в случае какой-либо ошибки TONы возвращаются.\n\nФормат UQ лучше всего подходит для кошельков. Так как кошельки предназначены для хранения средств, то отправка денег должна сработать даже когда у кошелька ещё не опубликован код. Поэтому, было бы бессмысленно делать так, чтобы монеты возвращались.\n\nВ этом году мы переводим кошельки на более правильный формат “UQ”. Если вы продолжите отправлять средства на EQ-адрес, который вам кто-то давно дал, то возможны два варианта:\n", - "first_option": "Наиболее вероятно, что кошелёк получателя уже использовался и вы не заметите никакой разницы.", - "second_option": "Менее вероятно, что кошелёк получателя ещё не использовался для платежей и со следующего года Тонкипер не будет отправлять деньги на этот адрес. Вам нужно будет попросить получателя дать новый UQ-адрес.", - "post_dates": "\n5 октября 2023: все адреса переводятся в формат UQ в Tonkeeper.\n\n1 января 2024: Tonkeeper прекращает проверку статуса контракта и использует в адресе флаг «bounceable». Монеты, отправленные на неопубликованные контракты с EQ-адресом, вернутся обратно отправителю." - } -} diff --git a/packages/shared/i18n/locales/tonkeeper/en.json b/packages/shared/i18n/locales/tonkeeper/en.json new file mode 100644 index 000000000..96c9568a9 --- /dev/null +++ b/packages/shared/i18n/locales/tonkeeper/en.json @@ -0,0 +1,965 @@ +{ + "about_ton" : "TON is a fully decentralized layer-1 blockchain designed by Telegram to onboard billions of users. It boasts ultra-fast transactions, tiny fees, easy-to-use apps, and is environmentally friendly.", + "access_confirmation_logout" : "Log out", + "access_confirmation_reset" : "Reset", + "access_confirmation_title" : "Enter passcode", + "access_confirmation_update_biometry" : "Enter passcode to use biometric auth data", + "access_denied" : "Access denied", + "account_deleted" : "Account deleted", + "activityActionModal" : { + "bid" : "Bid", + "burned" : "Burned", + "call_contract" : "Call contract", + "deposit" : "Stake", + "purchase" : "Purchase", + "received" : "Received", + "sent" : "Sent", + "swapped" : "Swapped", + "time_on" : "on %{time}", + "withdraw" : "Unstake", + "withdrawal_request" : "Unstake Request" + }, + "activity" : { + "buy_toncoin_btn" : "Buy Toncoin", + "empty_transaction_caption" : "Make your first transaction!", + "empty_transaction_title" : "Your activity will be shown here", + "failed_transaction" : "Failed", + "receive_btn" : "Receive", + "received" : "Received", + "screen_title" : "Activity", + "sent" : "Sent" + }, + "add_edit_favorite" : { + "address_label" : "Address", + "add_title" : "New favorite", + "delete" : "Delete", + "edit_title" : "Edit favorite", + "name_placeholder" : "Name", + "save" : "Save" + }, + "add_other_coins" : "Add other cryptos", + "address_copied" : "Address copied", + "address_update" : { + "first_option" : "Most likely the destination wallet is already actively used and you won’t notice any difference.", + "learn_more" : "Learn more", + "new_style" : "New address", + "notification_desc_did_change" : "On October 5 your wallet address did update to the UQ format which is just better. The old address will also work. You don’t need to do anything.", + "notification_desc_will_change" : "On October 5 your wallet address will update to the UQ format which is just better. The old address will also work. You don’t need to do anything.", + "old_style" : "Old address", + "post_dates" : "\nOctober 5, 2023: all addresses switch to the UQ format in Tonkeeper.\n\nJanuary 1, 2024: Tonkeeper stops checking the contract status and uses the “bounceable” flag in the address. Coins sent to non-published contracts with an EQ address will bounce back to the sender.", + "post_rest" : "There are two address styles on the TON blockchain and until now only one was used for apps and wallets.\n\nThe EQ format is best for smart contracts that process incoming funds. If a smart contract isn’t published yet — i.e., the code isn’t on the blockchain — then the TONs sent to that address will bounce back to the sender. And this is a safety feature: if there is any error, TONs bounce back.\n\nThe UQ format is best for wallets. Coins never bounce because wallets are designed to simply store funds. Each wallet starts as a plain address without a code on the blockchain. So, it would make no sense for coins to bounce back.\n\nThis year we are switching wallets to the more suitable UQ format. And if you continue sending funds to an old EQ address someone gave you, there will be two options:\n", + "post_top" : "By the end of this year the entire TON network will display wallet addresses differently. The new address will start with UQ instead of EQ. And the last four letters will change too. The old address will also work and direct to the same wallet. It doesn't effect the safety of funds stored in your wallet anyhow.", + "second_option" : "Less likely that the wallet has never been used for payments. And Tonkeeper won’t send coins to that address next year. You will have to ask the recipient for a new UQ address.", + "title" : "Address Update", + "why_change" : "Why change?", + "your_wallet" : "Your wallet" + }, + "appearance_accent_name" : { + "andromeda" : "Andromeda", + "arctic" : "Arctic", + "azure" : "Azure", + "coral" : "Coral", + "cosmos" : "Cosmos", + "default" : "Tonkeeper", + "flamingo" : "Flamingo", + "fluid" : "Fluid", + "galaxy" : "Galaxy", + "iris" : "Iris", + "marine" : "Marine", + "ocean" : "Ocean", + "sky" : "Sky" + }, + "appearance_confirm" : "Set", + "appearance_description" : "TON Diamonds NFT will make your wallet more colorful and unique.", + "appearance_title" : "Theme", + "app_name" : "Tonkeeper", + "approval" : { + "accept" : "Accept", + "accepted" : "Visible", + "accepted_at_collection" : "Accepted on %{date}", + "accepted_at_token" : "Accepted on %{date}", + "accepted_collection" : "Accepted collection", + "accepted_token" : "Accepted token", + "approve_all" : "Accept all", + "approve_collection_many" : "Approve incoming tokens from \"%{collection}\" collection", + "approve_collection_one" : "Approve incoming token from \"%{collection}\" collection", + "approve_many" : "Approve %{count} incoming tokens", + "approve_token" : "Approve incoming token \"%{name}\"", + "approve_two_collections" : "Approve incoming tokens from \"%{collection1}\" \"%{collection2}\" collections", + "approve_two_tokens" : "Approve incoming tokens \"%{name1}\" and \"%{name2}\"", + "blacklisted_collection" : "Blacklisted collection", + "blacklisted_token" : "Blacklisted token", + "decline" : "Decline", + "declined" : "Hidden", + "declined_at_collection" : "Declined on %{date}", + "declined_at_token" : "Declined on %{date}", + "details_collection" : "Collection details", + "details_token" : "Token details", + "id_collection" : "Collection ID", + "id_token" : "Token ID", + "manage_tokens" : "Manage tokens", + "move_to_accepted" : "Move to Accepted", + "move_to_accepted_collection" : "Show collection in wallet", + "move_to_accepted_token" : "Show token in wallet", + "move_to_declined" : "Move to Declined", + "move_to_declined_collection" : "Hide collection from wallet", + "move_to_declined_token" : "Hide token from wallet", + "name" : "Name", + "pending" : "Pending", + "show_all" : "Show all", + "single_token" : "Single token", + "token_copied" : "Token ID copied", + "token_count" : { + "one" : "%{count} token", + "other" : "%{count} tokens" + }, + "verify_collection" : "Verify collection", + "verify_description_collection" : "These tokens are from unknown issuer. To detect counterfeits, verify the collection ID with the issuer's official source. You can change token visibility later in settings.", + "verify_description_token" : "This token is from unknown issuer. To detect counterfeits, verify the token ID with the issuer's official source. You can change token visibility later in settings.", + "verify_token" : "Verify token", + "whitelisted_collection" : "Whitelisted collection", + "whitelisted_token" : "Whitelisted token" + }, + "auth_failed" : "Authentication failed", + "balances_setup_wallet" : "Set up wallet", + "browser" : { + "about_dapps_caption" : "Explore apps and services where you can use Tonkeeper for sign-in and payments.", + "about_dapps_learn_more" : "Learn more", + "about_dapps_title" : "Use Tonkeeper with all TON apps and services", + "actions" : { + "copy_link" : "Copy link", + "disconnect" : "Disconnect", + "mute" : "Mute", + "refresh" : "Refresh", + "share" : "Share" + }, + "connected_title" : "Connected", + "empty_search" : "Your search returned no results", + "explore_all" : "Explore all", + "more_description" : "Markets, exchanges and more", + "more_title" : "Explore all services", + "open_link" : "Open link", + "popular_title" : "Popular", + "remove_alert" : { + "approve_button" : "Remove", + "title" : "Remove “%{name}”?" + }, + "search_label" : "Search or enter address", + "start_typing" : "Enter an address or search the web", + "title" : "Browser", + "web_search_title" : "%{searchEngine} Search" + }, + "cancel" : "Cancel", + "chart" : { + "check_connection" : "Please check your connection and try again.", + "no_internet" : "No internet connection", + "periods" : { + "1D" : "D", + "1H" : "H", + "1M" : "M", + "1Y" : "Y", + "6M" : "6M", + "7D" : "W" + }, + "price" : "Price" + }, + "check_words_caption" : "To check whether you’ve written down your recovery phrase correctly, please enter the %{wordNum1}th, %{wordNum2}th, and  %{wordNum3}st words.", + "check_words_success" : "Congratulations! You’ve set up your wallet", + "check_words_title" : "So, let’s check", + "choose_country" : { + "cancel" : "Cancel", + "empty_placeholder" : "Your search returned no results", + "search" : "Search", + "title" : "Choose your country" + }, + "choose_currency" : { + "currencies" : { + "AED" : "United Arab Emirates Dirham", + "BDT" : "Bangladeshi Taka", + "BRL" : "Brazilian Real", + "BYN" : "Belarusian Ruble", + "CAD" : "Canadian Dollar", + "CHF" : "Swiss Franc", + "CNY" : "China Yuan", + "EUR" : "Euro", + "GBP" : "Great Britain Pound", + "GEL" : "Georgian Lari", + "IDR" : "Indonesian Rupiah", + "ILS" : "Israeli Shekel", + "INR" : "Indian Rupee", + "IRR" : "Iranian Rial", + "JPY" : "Japanese Yen", + "KRW" : "South Korean Won", + "KZT" : "Kazakhstani Tenge", + "NGN" : "Nigerian Naira", + "RUB" : "Russian Ruble", + "THB" : "Thai Baht", + "TRY" : "Turkish Lira", + "UAH" : "Ukrainian hryvnia", + "USD" : "United States Dollar", + "UZS" : "Uzbekistani sum", + "VND" : "Vietnamese Dong" + }, + "header_title" : "Primary currency" + }, + "confirm" : "Confirm", + "confirm_renew_all_domains_title" : "Confirm action", + "confirm_sending_amount" : "Amount", + "confirm_sending_fee" : "Fee", + "confirm_sending_inactive_warn_about" : "What you should do", + "confirm_sending_inactive_warn_description" : "Do not proceed if you expect blockchain magic to happen. It won't.", + "confirm_sending_inactive_warn_title" : "Inactive contract", + "confirm_sending_liquid_warn_description" : "You will no longer receive rewards from the sended Staked TON. The new owner will begin to receive rewards.", + "confirm_sending_liquid_warn_title" : "Note", + "confirm_sending_message" : "Comment", + "confirm_sending_method_title" : "Send your funds to %{name}?", + "confirm_sending_recipient" : "Recipient", + "confirm_sending_recipient_address" : "Recipient address", + "confirm_sending_sent_caption_btc" : "Your transaction is sent to the network and will be processed within an hour.", + "confirm_sending_sent_caption_ton" : "Your transaction is sent to the network and will be processed in a few seconds.", + "confirm_sending_submit" : "Confirm and Send", + "confirm_sending_title" : "Confirm sending", + "confirmSendModal" : { + "network_fee" : "Network fee", + "title" : "Confirm action", + "to_your_address" : "To your address", + "transaction_type" : { + "burn" : "Burn", + "receive" : "Receive", + "send" : "Send" + } + }, + "continue" : "Continue", + "copied" : "Copied", + "copy_error_log" : "Copy error log", + "create_pin_current_title" : "Enter current passcode", + "create_pin_new_title" : "Create new passcode", + "create_pin_repeat_title" : "Re-enter passcode", + "create_wallet_caption" : "We strongly recommend you write down the recovery phrase because it’s the only way to have access to and recover your wallet in case of losing your device. Do not send it to yourself via email or take a screenshot. It’s safer when kept offline.", + "create_wallet_continue_button" : "Continue", + "create_wallet_generated" : "Your wallet has\njust been created!", + "create_wallet_generating" : "Generating wallet...", + "create_wallet_title" : "Grab a pen and a piece of paper", + "decryption_error" : "Decryption error", + "deploy_contract_button" : "Confirm and deploy", + "deploy_contract_title" : "Deploy contract", + "disable_nft_marketplace_banner_description" : "Collect and exchange.", + "dns_addresses" : { + "few" : "%{count} addresses", + "many" : "%{count} addresses", + "one" : "%{count} address", + "other" : "%{count} addresses" + }, + "dns_address_linked" : "Address linked", + "dns_address_unlinked" : "Address unlinked", + "dns_alert_expiring_many" : { + "few" : "You have %{count} expiring domains. Renew all until %{untilDate}.", + "many" : "You have %{count} expiring domains. Renew all until %{untilDate}.", + "one" : "You have %{count} expiring domain. Renew all until %{untilDate}.", + "other" : "You have %{count} expiring domains. Renew all until %{untilDate}." + }, + "dns_alert_expiring_one" : "%{domain} expires in %{count} days. Renew it until %{untilDate}.", + "dns_current_address" : "Your current address", + "dns_expiration_date" : "Expiration date", + "dns_link_title" : "Confirm transaction", + "dns_on_sale_text" : "Domain is on sale at the marketplace now. For transfer, you should remove it from sale first.", + "dns_renew_all_until_btn" : "Renew all until %{untilDate}", + "dns_renew_in_progress_btn" : "Domain renew in progress…", + "dns_renew_toast_success" : "Domain renewed for 1 year", + "dns_renew_until_btn" : "Renew until %{untilDate}", + "dns_renew_valid_caption" : { + "one" : "Expires in %{count} day", + "other" : "Expires in %{count} days" + }, + "dns_replace_button" : "Replace", + "dns_replace_description" : "Add wallet address that domain {{domain}} will link to.", + "dns_replace_save" : "Save", + "dns_unlink_title" : "Confirm unlink", + "dns_wallet_address" : "Wallet address", + "domains_renewed" : "Domains renewed", + "edit_coins_add" : "Add", + "edit_coins_added" : "Added", + "edit_coins_added_toast" : "Added", + "edit_coins_hide" : "Hide", + "edit_coins_title" : "Add crypto", + "error_network" : "Network error", + "error_occurred" : "An error occurred", + "exchange_method_dont_show_again" : "Do not show again", + "exchange_method_open_warning" : "You are opening an external app not operated by Tonkeeper.", + "exchange_modal" : { + "hide" : "Hide", + "other_ways_to_buy" : "Other ways to buy", + "show_all" : "Show all", + "title" : "Buy or sell" + }, + "exchange" : { + "not_exists" : "Invalid exchange ID" + }, + "exchange_other_ways" : "Other ways to buy or sell TON", + "exchange_telegram_bot" : "TELEGRAM BOT", + "exchange_title" : "Buy TON", + "expiring_domains" : "Expiring domains", + "form_optional_indicator" : "Optional", + "import_wallet_caption" : "To restore access to your wallet, enter the 24 secret recovery words given to you when you created your wallet.", + "import_wallet_reset_caption" : "Please restore access to your wallet\n8by entering 24 secret words you wrote down then creating the wallet.", + "import_wallet_title" : "Enter your\nrecovery phrase", + "import_wallet_wrong_words_err" : "Incorrect phrase", + "info_about_inactive_back" : "Back", + "info_about_inactive_desc1" : "Tonkeeper does not know if this address is a wallet or a smart contract.", + "info_about_inactive_desc2" : "If you wish to simply deposit money to a wallet — you may proceed.", + "info_about_inactive_desc3_1" : "If you expect an automatic action from a smart contract,", + "info_about_inactive_desc3_2" : "— your transfer may get stuck on that address.", + "info_about_inactive_desc3_bold" : " DO NOT proceed ", + "info_about_inactive_title" : "Inactive contract", + "intro_continue_btn" : "Get started", + "intro_item1_caption" : "Thanks to the unique architecture of The Open Network, TON transactions are settled in seconds.", + "intro_item1_title" : "World-class speed", + "intro_item2_caption" : "Tonkeeper stores your cryptographic keys on your device. All trades are executed via decentralized protocols so that your crypto never ends up in the hands of centralized exchanges.", + "intro_item2_title" : "End-to-end security", + "intro_item3_caption" : "-", + "intro_item3_title" : "-", + "intro_title" : "Welcome\nto ", + "jetton_id" : "Token ID: %{jettonAddress}", + "jetton_id_copied" : "Token ID copied", + "jetton_name" : "%{name} Token", + "jetton_open_explorer" : "View details", + "jetton_price" : "Price:", + "jettons_list_title" : "Tokens", + "jettons_manage_tokens" : "Manage tokens", + "jettons_show_jettons" : "Show tokens in wallet", + "jetton_token" : "Token", + "later" : "Later", + "legal_font_license" : "Montserrat font", + "legal_header_title" : "Legal", + "legal_licenses_title" : "Licenses", + "legal_privacy" : "Privacy policy", + "legal_terms" : "Terms of service", + "link_copied" : "Link copied", + "loading" : "Loading", + "manage_other_coins" : "Manage my crypto", + "migration_cancel_btn" : "Upgrade later", + "migration_caption" : "Tonkeeper introduces new wallet format that supports subscription payments. Your balance will be transferred to a new address. Your recovery phrase will remain the same.", + "migration_failed" : "Migration failed. Unable to transfer your balance.", + "migration_fee_info" : "Network fee ≈%{tonFee} TON (%{fiatFee})", + "migration_in_progress" : "Migration to Wallet v4 in progress", + "migration_migrate_btn" : "Upgrade wallet", + "migration_new_wallet" : "New address", + "migration_old_wallet" : "Old address", + "migration_title" : "Upgrade your wallet", + "nft_about_collection" : "About collection", + "nft_about_dns" : "TON DNS is a service that allows users to assign a human-readable name to crypto wallets, smart contracts, and websites. \n\nWith TON DNS, access to decentralized services is analogous to access to websites on the internet.", + "nft_browse_markets" : "Browse Markets", + "nft_chain" : "Chain", + "nft_change_owner_title" : "Change collection owner", + "nft_change_theme" : "Change theme", + "nft_collection" : "Collection", + "nft_collection_name" : "Collection name", + "nft_confirm_operation" : "Сonfirm", + "nft_contract_address" : "Contract address", + "nft_deploy_collection_title" : "Create NFT Collection", + "nft_details" : "Details", + "nft_diamonds_description" : "TON Diamonds possess the power to change the theme in your Tonkeeper wallet and match it to the color of your NFT.", + "nft_features" : "Features", + "nft_fee" : "Fee", + "nft_fee_and_royalties" : "Fees & royalties", + "nft_hide_details" : "Hide details", + "nft_item_deploy_title" : "Mint NFT", + "nft_item_name" : "NFT name", + "nft_link_domain_button" : "Link domain", + "nft_link_domain_caption" : "After you link the domain you will be able to transfer it and use as an alias for your address.", + "nft_link_domain_mismatch_warn" : "The domain is not linked to your current address. Be careful with transactions to this domain.", + "nft_link_username_button" : "Link name", + "nft_link_username_caption" : "After you link the name you will be able to transfer it and use as an alias for your address.", + "nft_link_username_mismatch_warn" : "The name is not linked to your current address. Be careful with transactions to this name.", + "nft_marketplace_address" : "Marketplace", + "nft_marketplace_banner_description" : "Buy, sell, collect and exchange.", + "nft_marketplace_banner_title" : "Your NFT tokens will be stored here", + "nft_marketplaces" : "Discover", + "nft_marketplaces_title" : "NFT Markets", + "nft_metadata" : "Metadata", + "nft_more" : "More", + "nft_new_owner_address" : "New owner address", + "nft_on_sale" : "On sale", + "nft_on_sale_text" : "NFT is on sale at the marketplace now. For transfer, you should remove it from sale first.", + "nft_open_in_marketplace" : "View on NFT Market", + "nft_operations_expired" : "Request timed out, please try again", + "nft_operation_success" : "Done", + "nft_owner_address" : "Owner", + "nft_price" : "Price", + "nft_proceeds" : "Your proceeds", + "nft_properties" : "Properties", + "nft_royalty" : "Royalty", + "nft_royalty_address" : "Royalty address", + "nft_sale_cancel_title" : "Remove from sale", + "nft_sale_place_title" : "Sell NFT", + "nft_show_details" : "Show details", + "nft_single_nft" : "Single NFT", + "nft_standard" : "Token Standard", + "nft_title" : "NFTs", + "nft_token_id" : "Token ID", + "nft_transaction_head_placeholder" : "NFT", + "nft_transfer_comment" : "Comment", + "nft_transfer_description" : "The NFT will be sent to this address. Be careful when sending an NFT to another user.", + "nft_transfer_dns" : "Transfer", + "nft_transfer_nft" : "Transfer", + "nft_transfer_recipient" : "Recipient", + "nft_transfer_title" : "Transfer NFT", + "nft_unlink_domain_button" : "Linked with {{address}}", + "nft_unnamed_collection" : "Unnamed collection", + "nft_view_in_explorer" : "View in explorer", + "notifications" : { + "alert" : { + "cancel" : "Cancel", + "description" : "Link address from the notification doesn't match with app address.", + "open" : "Open anyway", + "title" : "Are you sure you want to open an external link?" + }, + "allow_notifications" : "Enable notifications", + "apps" : "Apps", + "apps_description" : "Notifications from connected apps in your activity", + "disconnect_app" : "Disconnect %{app_name}", + "disconnected_app" : "Disconnected app", + "earlier" : "Earlier", + "from_connected" : "From connected apps", + "muted" : "Notifications have been muted", + "mute_notifications" : "Mute notifications", + "notifications" : "Notifications", + "placeholder" : { + "description" : "Explore apps and services in Tonkeeper browser.", + "title" : "Notifications will be shown here" + }, + "report" : "Report" + }, + "notifications_disabled_action" : "Open Settings", + "notifications_disabled_description" : "You turned off notifications in your phone’s settings. To activate notifications, go to Settings on this device.", + "notifications_disabled_title" : "Notifications are disabled", + "notifications_not_supported" : "Notifications are not supported on your device", + "notifications_switch_title" : "Push notifications", + "notifications_title" : "Notifications", + "notification_switch_description" : "Get notifications when you receive TON, tokens and NFTs. Notifications from connected apps.", + "notify_connection_err_caption" : "%{host} is not responding. Please try again later.", + "notify_connection_err_caption_few" : "%{hosts} and %{lastHost} are not responding. Please try again later.", + "notify_connection_err_title" : "Could not connect to server", + "notify_incorrect_time_err_caption" : "In device settings, enable automatic time and date. When time isn't set automatically, it may affect fund transfers.", + "notify_incorrect_time_err_title" : "Time and date are incorrect", + "notify_no_signal_caption" : "Please check your internet connection.", + "notify_no_signal_title" : "No signal", + "passcode_changed" : "Passcode changed", + "paste" : "Paste", + "pin_enter_faceid_err" : " Biometrics check failed", + "pin_enter_skip_faceid_err" : "Biometrics is required", + "platform" : { + "android" : { + "capitalized_face_recognition" : "Face recognition", + "capitalized_fingerprint" : "Fingerprint", + "face_recognition" : "face recognition", + "face_recognition_genitive" : "face recognition", + "fingerprint" : "fingerprint", + "fingerprint_genitive" : "fingerprint" + }, + "ios" : { + "capitalized_face_recognition" : "Face ID", + "capitalized_fingerprint" : "Touch ID", + "face_recognition" : "Face ID", + "face_recognition_genitive" : "Face ID", + "fingerprint" : "Touch ID", + "fingerprint_genitive" : "Touch ID" + } + }, + "programmable_nfts" : { + "alert" : { + "cancel" : "Cancel", + "description" : "Visit this external link only if you trust the author of the collection.\n\n{{uri}}", + "open" : "Open anyway", + "title" : "Are you sure you want to open an external link?" + } + }, + "receive_address_title" : "Or use wallet address", + "receive_copy" : "Copy", + "receiveModal" : { + "copy" : "Copy", + "receive" : "Receive", + "receive_description" : "Send only %{tokenName} and tokens in TON network to this address, or you might lose your funds.", + "receive_title" : "Receive %{tokenName}", + "receive_ton" : "Send only Toncoin TON and tokens in TON network to this address, or you might lose your funds." + }, + "receive_qr_title" : "Show QR code to receive", + "receive_received_title" : "You received\n%{amount} %{currency}", + "receive_share" : "Share", + "receive_title" : "Receive %{currency}", + "receive_ton_and_jettons" : "Receive TON and other tokens", + "refresh_app" : "Restart", + "reminder_notifications_caption" : "Get notifications when you receive TON, tokens and NFTs.", + "reminder_notifications_enable_button" : "Enable notifications", + "reminder_notifications_later_button" : "Later", + "reminder_notifications_title" : "Get instant notifications", + "renew_in_progress" : "Renew in progress…", + "renew_progress_of" : "%{current} of %{count}", + "require_create_wallet_modal_caption" : "You need a connected wallet to use\nTonkeeper. Either create a new wallet or import an existing one.", + "require_create_wallet_modal_create_new" : "Create new wallet", + "require_create_wallet_modal_import" : "Import existing wallet", + "require_create_wallet_modal_title" : "Let’s set up your wallet", + "scan_qr_open_settings" : "Open settings", + "scan_qr_permission_error" : "Allow camera access to scan QR codes", + "scan_qr_title" : "Scan QR code", + "secret_words_caption" : "Write down these 24 words in the order given below and store them in a secret, safe place.", + "secret_words_title" : "Your recovery phrase", + "security_change_passcode" : "Change passcode", + "security_migration_caption" : "Now your balance and any operations are secured by a passcode. You can also speed up with biometric check.", + "security_migration_skip_button" : "Do not update now", + "security_migration_submit_button" : "Update security settings", + "security_migration_title" : "Update wallet security", + "security_reset_passcode" : "Reset passcode", + "security_title" : "Security", + "security_use_biometry_switch" : "Use %{biometryType}", + "security_use_biometry_tip" : "You can always unlock your wallet with a passcode.", + "send_address_placeholder" : "Address or name", + "send_all_warning_title" : "Are you sure you want to send all your balance?", + "send_build_tx_error" : "Your transaction failed", + "send_comment_label" : "Add a comment", + "send_fee_estimation_error" : "Failed to calculate fee", + "send_get_wallet_info_error" : "Failed to get wallet info", + "send_insufficient_funds" : "Insufficient funds", + "send_invalid_recipient_caption" : "The domain does not exist or the wallet address is not linked to it", + "send_invalid_recipient_title" : "Invalid recipient", + "send_lockup_warning_caption" : "Please check that you are sending to the allowed address.\n\nFee will be deducted even if transaction fails.", + "send_lockup_warning_submit_button" : "Send", + "send_lockup_warning_title" : "Amount exceeds liquid balance", + "send_publish_tx_error" : "Failed to send transaction", + "send_screen_steps" : { + "address" : { + "delete_alert_text" : "Are you sure want to delete «%{name}» from your favorites?", + "placeholder" : "Wallet address or domain", + "recent_label" : "Recent", + "suggest_actions" : { + "add" : "Add to favorites", + "delete" : "Delete", + "edit" : "Edit favorite", + "hide" : "Hide" + }, + "suggests_label" : "Favorites and recent", + "title" : "Recipient" + }, + "amount" : { + "insufficient_balance" : "Insufficient balance", + "less_than_min" : "Minimum %{minAmount} TON", + "liquid_jetton_note" : "Sending tsTON liquidity token", + "max" : "Max", + "recipient_label" : "To:", + "remaining" : "Available: %{amount}", + "title" : "Amount" + }, + "comfirm" : { + "action" : "%{coin} transfer", + "comment_decrypt" : "Decrypt", + "comment_description" : "Will be visible to everyone.", + "comment_description_encrypted" : "Will be visible only to recipient and you.", + "comment_encrypt" : "Encrypt comment", + "comment_label" : "Comment", + "comment_label_required" : "Required comment", + "comment_required_text" : "You must include the note from the exchange for transfer. Without it your funds will be lost. ", + "details_label" : "Details", + "details_max_balance_label" : "Sending max. balance of %{currency}", + "title" : "Confirm action" + }, + "done" : { + "add_favorite" : "Save address to favorites", + "address" : "Address: %{address}", + "comment" : "Comment: %{comment}", + "description" : "Your transaction has been sent to the network and will be processed in a few seconds.", + "done_label" : "Done", + "favorite_saved" : "Saved to favorites", + "fee" : "Fee: %{fee}", + "title" : "%{currency} sent!", + "to" : "To: %{name}" + } + }, + "send_sending_failed" : "Sending failed", + "send_sending_wrong_time_description" : "Turn on automatic time and date in your device settings. Then retry your transfer.", + "send_sending_wrong_time_title" : "Error occurred", + "send_title" : "Send %{currency}", + "settings_appearance" : "Theme", + "settings_backup_seed" : "Show recovery phrase", + "settings_contact_support" : "Contact us", + "settings_delete_account" : "Delete account", + "settings_delete_alert_button" : "Delete account and data", + "settings_delete_alert_caption" : "This action will delete your account and all data from this application.", + "settings_delete_alert_title" : "Are you sure you want to delete your account?", + "settings_jettons_list" : "Tokens", + "settings_legal_documents" : "Legal", + "settings_network_alert_title" : "Select network", + "settings_news" : "Tonkeeper news", + "settings_notifications" : "Notifications", + "settings_primary_currency" : "Currency", + "settings_rate" : "Rate Tonkeeper", + "settings_recovery_phrase" : "Recovery phrase", + "settings_reset" : "Log out", + "settings_reset_alert_button" : "Log out", + "settings_reset_alert_caption" : "This will erase keys to the wallet. Make sure you have backed up your secret recovery phrase.", + "settings_reset_alert_title" : "Log out?", + "settings_search_engine" : "Search", + "settings_security" : "Security", + "settings_subscriptions" : "Subscriptions", + "settings_support" : "Support", + "settings_title" : "Settings", + "settings_to_mainnet" : "Switch to Mainnet", + "settings_to_testnet" : "Switch to Testnet", + "settings_version" : "Version", + "settings_wallet_version" : "Active address", + "setup_biometry_caption" : "%{biometryType} allows you to open your wallet faster without having\nto enter your password.", + "setup_biometry_enable_button" : "Enable %{biometryType}", + "setup_biometry_title" : "Quick sign-in with %{biometryType}", + "setup_notifications_caption" : "Get notifications when you \n receive TON, tokens and NFTs.", + "setup_notifications_enable_button" : "Enable notifications", + "setup_notifications_title" : "Get instant notifications", + "skip" : "Skip", + "spam_action" : "Spam", + "staking" : { + "active" : "Active", + "confirm" : { + "address" : { + "label" : "Recipient address" + }, + "amount" : { + "label" : "Amount", + "value" : "%{value} TON" + }, + "fee" : { + "label" : "Fee", + "value" : "≈ %{value} TON" + }, + "recipient" : { + "label" : "Recipient" + }, + "withdraw_amount" : { + "label" : "Unstake amount" + } + }, + "confirm_deposit" : "Confirm and Stake", + "confirm_unstake" : "Confirm and Unstake", + "deposit" : "Stake", + "desc_large" : "Join staking and get rewards. Staking helps to maintain the TON network.", + "details" : { + "about_pool" : "Details", + "apy" : { + "highest_tag" : "MAX", + "label" : "APY", + "value" : "≈ %{value}%" + }, + "balance" : "Staking balance", + "cooldown" : { + "active" : "Active", + "desc" : "Two-hour period applied at the start of each staking cycle to improve the process of withdrawals and deposits between cycles", + "title" : "Cooldown period" + }, + "frequency" : { + "label" : "Reward frequency", + "value" : "Every %{count} hours" + }, + "links_title" : "Links", + "liquidity_token" : { + "label" : "%{token} liquidity token", + "value" : "Learn more" + }, + "min_deposit" : { + "label" : "Minimal deposit", + "value" : "%{value} TON" + }, + "next_cycle" : { + "desc" : "All transactions take effect once the cycle ends.", + "desc_liquid" : "Unstake requests are complete after the cycle ends.", + "in" : "in", + "reward_title" : "Next reward", + "title" : "Next cycle" + }, + "note" : "Staking is based on smart contracts by third parties. Tonkeeper is not responsible for staking experience.", + "pendingDeposit" : "Pending Stake", + "pendingWithdraw" : "Pending Unstake", + "pendingWithdrawDesc" : "at the end of the cycle", + "pool_address" : { + "label" : "Pool address" + }, + "readyWithdraw" : "Unstake ready", + "socials" : { + "telegram" : "Community", + "twitter" : "Twitter" + }, + "tap_to_collect" : "Tap to collect" + }, + "estimated_profit" : "%{amount} TON – annual profit\nif you stake TON today", + "get_withdrawal" : "Get withdrawal", + "highest_apy" : "MAX APY", + "jetton_note" : "When you stake TON in a %{poolName} pool, you receive a token called %{token} that represents your share in the pool. As the pool accumulates profits, your %{token} represents larger amount of TON.", + "learn_more" : "Learn more", + "message" : { + "pendingDeposit" : "%{amount} TON staked\n", + "pendingWithdraw" : "%{amount} TON unstaked\n", + "readyWithdraw" : "%{amount} TON ready.\nTap to collect" + }, + "no_funds" : "No funds available for unstake", + "not_exists" : "Invalid pool address", + "other" : "Other", + "rewards" : { + "after_top_up" : "After stake", + "current" : "Current", + "title" : "Your APY", + "value" : "≈ %{value} TON" + }, + "send_staked_ton" : "Staked TON", + "staked" : "Staked", + "staked_ton" : "Staked TON", + "staking_desc" : "Minimum deposit %{minStake} TON.\nEarn up to %{maxApy}%.", + "staking_pool_desc" : "APY ≈ %{apy}%", + "title" : "Staking", + "title_large" : "TON Staking", + "top_up" : "Stake", + "transaction" : "Confirm action", + "warning" : { + "about" : "About %{name}", + "beta_desc" : "We are not responsible for the stability and staking experience. Use at your own risk.", + "desc" : "Staking based on third-party smart contracts. We are not responsible for their work.", + "title" : "Warning" + }, + "widget_desc" : "APY up to %{apy}%", + "widget_staking_options" : "Staking options", + "widget_title" : "Earn TON", + "withdraw" : "Unstake", + "withdrawal_fee_warning" : { + "continue" : "Continue anyway", + "message" : "Please leave at least {{amount}} TON on your balance.", + "title" : "You will have not enough funds for withdraw" + }, + "withdrawal_request" : "Unstake Request" + }, + "subscription_back_to_merchant_button" : "Back", + "subscription_back_to_merchant_caption" : "The transaction is being processed. Your subscription will be active soon.", + "subscription_back_to_merchant_name" : "Back to %{merchantName}", + "subscription_back_to_merchant_title" : "Back to channel?", + "subscription_cancel" : "Cancel subscription", + "subscription_cancel_alert_cancel_btn" : "Not now", + "subscription_cancel_alert_caption" : "If you cancel now, you can still access your subscription until %{nextBill}", + "subscription_cancel_alert_submit_btn" : "Yes, cancel", + "subscription_cancel_alert_title" : "Cancel subscription?", + "subscription_expiring" : "Expiring", + "subscription_fee" : "Fee", + "subscription_next_bill" : "Next bill", + "subscription_open_merchant" : "Open in Telegram", + "subscription_period" : "Interval", + "subscription_period_custom" : "Every %{period}", + "subscription_period_day" : "Daily", + "subscription_period_half_year" : "Half-yearly", + "subscription_period_hour" : "Hourly", + "subscription_period_month" : "Monthly", + "subscription_period_quarter" : "Quarterly", + "subscription_period_week" : "Weekly", + "subscription_period_weeks" : "Every %{count} weeks", + "subscription_period_year" : "Yearly", + "subscription_price" : "Price", + "subscription_sent" : "Transaction sent", + "subscriptions_item_caption" : "%{price} TON, next bill on %{nextBill}", + "subscriptions_item_caption_expired" : "Expired %{date}", + "subscriptions_item_caption_expiring" : "%{price} TON, expiring %{date}", + "subscriptions_section_active" : "Active", + "subscriptions_section_expired" : "Expired", + "subscription_started" : "Subscription started", + "subscriptions_title" : "Subscriptions", + "subscription_subscribe" : "Subscribe", + "subscription_title" : "Subscription", + "subscription_unsubscribe" : "Unsubscribe", + "success" : "Success!", + "swap_title" : "Swap", + "tab_browser" : "Browser", + "tab_nft" : "NFTs", + "tab_settings" : "Settings", + "tab_swap" : "Swap", + "tab_wallet" : "Wallet", + "test_key" : "test key", + "today" : "Today", + "ton_login_back_to_button" : "Back to %{name}", + "ton_login_caption" : "%{name} is requesting access to your wallet address ", + "ton_login_connect_button" : "Connect wallet", + "ton_login_notice" : "Be sure to check the service address before connecting the wallet.", + "ton_login_success" : "Done", + "ton_login_title" : "Connect to %{name}?", + "transaction_bid_collection_name" : "Issuer", + "transaction_bid_date" : "Bid %{date}", + "transaction_bid_dns" : "Name", + "transaction_buy_date" : "Purchased on %{date}", + "transaction_buy_status_failed" : "Failed", + "transaction_buy_status_pending" : "Pending", + "transaction_buy_status_success" : "Success", + "transaction_confirmations" : "Confirmations", + "transaction_confirm_bid" : "Confirm bid", + "transaction_contract_deploy_date" : "%{date}", + "transaction_copy_caution" : "Be careful with external links. Never give your secret phrase to third-party resources — you can lose all your funds.\n\n- - -\n\n", + "transactionDetails" : { + "address" : "Address", + "bid_collection_name" : "Issuer", + "bid_name" : "Name", + "comment" : "Comment", + "description" : "Description", + "operation" : "Operation", + "payload" : "Payload", + "recipient" : "Recipient", + "recipient_address" : "Recipient address", + "sender" : "Sender", + "sender_address" : "Sender address", + "spam" : "SPAM", + "subscription_merchant_label" : "Merchant", + "subscription_product_label" : "Subscription", + "transaction" : "Transaction", + "unsubscription_title" : "Unsubscribed", + "withdraw_amount" : "Unstake amount" + }, + "transaction_exchange_from_currency" : "From", + "transaction_fee" : "Fee", + "transaction_hash" : "Transaction", + "transaction_merchant" : "Merchant", + "transaction_message" : "Message", + "transaction_purchase_id" : "Purchase ID", + "transaction_receive_date" : "Received on %{date}", + "transaction_recipient" : "Recipient", + "transaction_recipient_address" : "Recipient address", + "transaction_refund" : "Refund", + "transactions" : { + "bid" : "Bid", + "burned" : "Burned", + "contract_deploy" : "Contract Deploy", + "deposit" : "Stake", + "failed" : "Failed", + "nft_purchase" : "NFT Purchase", + "smartcontract_exec" : "Call contract", + "spam" : "Spam", + "subscription" : "Subscribed", + "swap" : "Swap", + "unknown" : "Unknown", + "unknown_description" : "Something happened but we couldn't recognize", + "unsubscription" : "Unsubscribed", + "wallet_initialized" : "Wallet initialized", + "withdraw" : "Unstake", + "withdrawal_request" : "Unstake Request" + }, + "transaction_sender" : "Sender", + "transaction_sender_address" : "Sender address", + "transaction_send_more_button" : "Send more to this recipient", + "transaction_sent_date" : "Sent on %{date}", + "transaction_show_subscription_button" : "View subscription", + "transaction_status" : "Status", + "transaction_subscription" : "Subscription", + "transaction_subscription_date" : "Charged on %{date}", + "transaction_transfer_name" : "Transfer name", + "transaction_type_bid" : "Bid", + "transaction_type_bounced" : "Bounced", + "transaction_type_buy" : "Purchased", + "transaction_type_contract_deploy" : "Contract Deploy", + "transaction_type_from" : "From", + "transaction_type_new_subscriber" : "New subscriber", + "transaction_type_pending" : "Pending", + "transaction_type_receive" : "Received", + "transaction_type_sent" : "Sent", + "transaction_type_subscriber_lost" : "Subscriber lost", + "transaction_type_subscription" : "Subscribed", + "transaction_type_to" : "To", + "transaction_type_unsubscription" : "Unsubscribed", + "transaction_type_wallet_initialized" : "Wallet initialized", + "transaction_unsubscription" : "Unsubscription", + "transaction_unsubscription_date" : "%{date}", + "transaction_view_in_explorer" : "View in explorer", + "transaction_wallet_initialized_date" : "%{date}", + "transaction_your_bid" : "Your bid", + "transfer_deeplink_address_error" : "Incorrect recipient address", + "transfer_deeplink_amount_error" : "Incorrect amount request", + "transfer_deeplink_nft_address_error" : "Incorrect NFT address", + "transfer_from_old_wallet_btn" : "Transfer", + "transfer_from_old_wallet_caption" : "Tonkeeper will transfer all coins from your old address to your current address.", + "transfer_from_old_wallet_in_progress" : "Transfer in progress", + "transfer_from_old_wallet_title" : "Transfer to current address", + "txActions" : { + "amount" : "Amount", + "fee" : "Fee", + "refund" : "Refund", + "signRaw" : { + "addressMismatch" : { + "wrongVersion" : { + "close" : "Cancel", + "description" : "Switch your active address to %{version} to confirm the action.", + "switch" : "Switch and continue", + "title" : "Action for another address of your wallet" + }, + "wrongWallet" : { + "close" : "OK", + "description" : "Log in to another wallet %{address} and try again.", + "title" : "Action for another wallet" + } + }, + "comment" : "Comment", + "insufficientFunds" : { + "rechargeWallet" : "Recharge wallet", + "stakingFee" : "%{count} TON needed for transaction. Estimated fee %{fee} TON will be deducted, the rest will be refunded.", + "title" : "Insufficient funds", + "toBePaid" : "To be paid: %{amount} %{currency}\n", + "withFees" : "+ blockchain fees.\n", + "yourBalance" : "Your balance: %{balance} %{currency}." + }, + "recipient" : "Recipient", + "title" : "Confirm transaction", + "totalFee" : "Total fee", + "totalRefund" : "Total refund", + "types" : { + "contractDeploy" : "Contract Deploy", + "jettonTransfer" : "Token Transfer", + "nftItemTransfer" : "NFT Transfer", + "subscribe" : "Subscription", + "tonTransfer" : "TON Transfer", + "unknownTransaction" : "Unknown transaction", + "unSubscribe" : "Unsubscription" + }, + "warning_caption" : "Tonkeeper cannot fully verify the result of this transaction. Please make sure you trust the recipient.", + "warning_title" : "Warning", + "wrongTime" : { + "button" : "Open Settings", + "description" : "Seems like your device clock is not in sync with the network. Open device settings and enable automatic time and date.", + "title" : "The clocks are not synchronized" + } + } + }, + "update" : { + "description" : "A new version of Tonkeeper is available. You can download it now.", + "download" : "Download", + "downloading" : "Downloading… {{progress}}%", + "mb" : "{{size}} MB", + "remindLater" : "Remind me later", + "retry" : "Download error. Tap to retry.", + "tap" : "Tap to update", + "title" : "Update Tonkeeper", + "version" : "Version {{version}}" + }, + "username_issued_by_telegram" : "Issued by Telegram. ", + "username_manage_name_button" : "Manage name", + "wallet_about" : "About", + "wallet_buy" : "Buy", + "wallet" : { + "buy_btn" : "Buy TON", + "collectibles_tab_lable" : "Collectibles", + "edit_tokens_btn" : "Edit", + "nft_tab_lable" : "Collectibles", + "old_wallets_title" : "Old wallets", + "old_wallet_title" : "Old wallet", + "receive_btn" : "Receive", + "screen_title" : "Wallet", + "send_btn" : "Send", + "swap_btn" : "Swap", + "tonkens_tab_lable" : "Tokens" + }, + "wallet_chat" : "Chat", + "wallet_community" : "Community", + "wallet_hours_symbol" : "h", + "wallet_old_balance" : "Old wallet:", + "wallet_receive" : "Receive", + "wallet_sell" : "Sell", + "wallet_send" : "Send", + "wallet_source_code" : "Source code", + "wallet_swap" : "Swap", + "wallet_title" : "Wallet", + "yesterday" : "Yesterday" +} \ No newline at end of file diff --git a/packages/shared/i18n/locales/tonkeeper/it.json b/packages/shared/i18n/locales/tonkeeper/it.json new file mode 100644 index 000000000..23fa3f151 --- /dev/null +++ b/packages/shared/i18n/locales/tonkeeper/it.json @@ -0,0 +1,701 @@ +{ + "about_ton" : "TON è una blockchain di livello 1 completamente decentralizzata progettata da Telegram per integrare miliardi di utenti. Vanta transazioni ultra veloci, commissioni minime, app facili da usare ed è rispettoso dell'ambiente.", + "access_confirmation_logout" : "Disconnetti", + "access_confirmation_reset" : "Resetta", + "access_confirmation_title" : "Immetti passcode", + "access_confirmation_update_biometry" : "Inserisci il passcode per utilizzare i dati di autenticazione biometrici", + "access_denied" : "Accesso negato", + "account_deleted" : "Account Eliminato", + "activity" : { + "buy_toncoin_btn" : "Compra Toncoin", + "empty_transaction_caption" : "Effettua la tua prima transazione!", + "empty_transaction_title" : "Le tue attività verranno mostrate qui", + "failed_transaction" : "Fallito", + "receive_btn" : "Ricevi", + "received" : "Ricevi", + "screen_title" : "Attività", + "sent" : "Invia" + }, + "add_edit_favorite" : { + "address_label" : "Indirizzo", + "add_title" : "Nuovo preferito", + "delete" : "Elimina", + "edit_title" : "Modifica preferito", + "name_placeholder" : "Nome", + "save" : "Salva" + }, + "add_other_coins" : "Aggiungi altre crypto", + "address_copied" : "Indirizzo copiato", + "appearance_accent_name" : { + "andromeda" : "Andromeda", + "arctic" : "Arctic", + "azure" : "Azure", + "coral" : "Coral", + "cosmos" : "Cosmos", + "default" : "Tonkeeper", + "flamingo" : "Flamingo", + "fluid" : "Fluid", + "galaxy" : "Galaxy", + "iris" : "Iris", + "marine" : "Marine", + "ocean" : "Ocean", + "sky" : "Sky" + }, + "appearance_confirm" : "Imposta", + "appearance_description" : "TON Diamonds NFT renderà il tuo wallet più colorato e unico.", + "appearance_title" : "Tema", + "app_name" : "Tonkeeper", + "auth_failed" : "Autenticazione fallita", + "balances_setup_wallet" : "Imposta wallet", + "browser" : { + "about_dapps_caption" : "Esplora app e servizi in cui puoi utilizzare Tonkeeper per l'accesso e i pagamenti.", + "about_dapps_learn_more" : "Scopri di più", + "about_dapps_title" : "Usa Tonkeeper con tutte le app e i servizi TON", + "actions" : { + "copy_link" : "Copia link", + "disconnect" : "Disconnetti", + "refresh" : "Aggiorna", + "share" : "Condividi" + }, + "connected_title" : "Connesso", + "empty_search" : "La ricerca non ha prodotto risultati", + "explore_all" : "Esplora tutti", + "more_description" : "Marcati, exchange ed altro", + "more_title" : "Esplora tutti i servizi", + "open_link" : "Apri link", + "popular_title" : "Popolari", + "remove_alert" : { + "approve_button" : "Rimuovi", + "title" : "Rimuovi “%{name}”?" + }, + "search_label" : "Cerca o inserisci l'indirizzo", + "start_typing" : "Inserisci un indirizzo o cerca nel Web", + "title" : "Browser", + "web_search_title" : "%{searchEngine} Cerca" + }, + "cancel" : "Cancella", + "chart" : { + "check_connection" : "Controlla la tua connessione e riprova.", + "no_internet" : "Nessuna connessione internet", + "periods" : { + "1D" : "G", + "1H" : "H", + "1M" : "M", + "1Y" : "A", + "6M" : "6M", + "7D" : "S" + }, + "price" : "Prezzo" + }, + "check_words_caption" : "Per controllare se hai scritto correttamente la frase di recupero, inserisci %{wordNum1}°, %{wordNum2}° e %{wordNum3}° parole.", + "check_words_success" : "Congratulazioni! Hai impostato il tuo wallet", + "check_words_title" : "Ok, controlliamo", + "choose_currency" : { + "currencies" : { + "AED" : "Dirham Emirati Arabi Uniti", + "CHF" : "Franco Svizzero", + "CNY" : "Yuan Chinese", + "EUR" : "Euro", + "GBP" : "Sterline", + "IDR" : "Rupia Infonesiana", + "INR" : "Rupia Indiana", + "JPY" : "Yen Giapponese", + "KRW" : "Won Sud Coreano", + "RUB" : "Rublo Russo", + "UAH" : "Grivnia ucraina", + "USD" : "Dollaro Americano", + "UZS" : "Sono uzbeko" + }, + "header_title" : "Valuta primaria" + }, + "confirm" : "Conferma", + "confirm_sending_amount" : "Ammontare", + "confirm_sending_fee" : "Commissioni", + "confirm_sending_inactive_warn_about" : "Cosa dovresti fare", + "confirm_sending_inactive_warn_description" : "Non procedere se ti aspetti che la magia della blockchain accada. Non lo farà.", + "confirm_sending_inactive_warn_title" : "Contratto Inattivo", + "confirm_sending_message" : "Commento", + "confirm_sending_method_title" : "Invia i tuoi fondi a %{name}?", + "confirm_sending_recipient" : "Destinatario", + "confirm_sending_recipient_address" : "Indirizzo Destinatario", + "confirm_sending_sent_caption_btc" : "La tua transazione viene inviata alla rete e verrà elaborata entro un'ora.", + "confirm_sending_sent_caption_other" : "La tua transazione viene inviata alla rete e verrà elaborata entro un minuto.", + "confirm_sending_sent_caption_ton" : "La tua transazione viene inviata alla rete e verrà elaborata in pochi secondi.", + "confirm_sending_sent_jetton_title" : "Token inviati", + "confirm_sending_sent_title" : "Monete inviate", + "confirm_sending_submit" : "Conferma e invia", + "confirm_sending_title" : "Conferma invio", + "continue" : "Prosegui", + "copied" : "Copiato", + "copy_error_log" : "Copia log errori", + "create_pin_current_title" : "Inserisci il passcode corrente", + "create_pin_new_title" : "Crea nuovo passcode", + "create_pin_repeat_title" : "Reimmetti passcode", + "create_wallet_caption" : "Ti consigliamo vivamente di annotare la frase di recupero perché è l'unico modo per accedere e recuperare il tuo wallet in caso di smarrimento del dispositivo. Non inviarlo a te stesso via e-mail o fare uno screenshot. È più sicuro se tenuto offline.", + "create_wallet_continue_button" : "Continua", + "create_wallet_generated" : "Il tuo portafoglio è\nappena stato creato!", + "create_wallet_generating" : "Generazione del wallet...", + "create_wallet_title" : "Prendi una penna e un pezzo di carta", + "deploy_contract_button" : "Conferma e propaga", + "deploy_contract_title" : "Propaga Contratto", + "disable_nft_marketplace_banner_description" : "Colleziona e scambia.", + "dns_address_linked" : "Indirizzo collegato", + "dns_address_unlinked" : "Indirizzo scollegato", + "dns_current_address" : "Il tuo indirizzo attuale", + "dns_link_title" : "Conferma transazione", + "dns_on_sale_text" : "Dominio attualmente in vendita sul mercato. Per il trasferimento, dovresti prima rimuoverlo dalla vendita.", + "dns_replace_button" : "Sostituisci", + "dns_replace_description" : "Aggiungi l'indirizzo del portafoglio a cui si collegherà il dominio {{domain}}.", + "dns_replace_save" : "Salva", + "dns_unlink_title" : "Conferma lo scollegamento", + "dns_wallet_address" : "Indirizzo Wallet", + "edit_coins_add" : "Aggiungi", + "edit_coins_added" : "Aggiunta", + "edit_coins_added_toast" : "Aggiunta", + "edit_coins_hide" : "Nascondi", + "edit_coins_title" : "Aggiungi crypto", + "error_network" : "Errore di Rete", + "error_occurred" : "Si è verificato un errore", + "exchange_method_dont_show_again" : "Non mostrare nuovamente", + "exchange_method_open_warning" : "Stai aprendo un'app esterna non gestita da Tonkeeper.", + "exchange_modal" : { + "buy_title" : "Compra Toncoin", + "other_ways_to_buy" : "Altre vie per comprare", + "other_ways_to_sell" : "Altre vie per vendere", + "sell_title" : "Vendi Toncoin" + }, + "exchange_other_ways" : "Altri modi per acquistare o vendere TON", + "exchange_telegram_bot" : "BOT TELEGRAM", + "exchange_title" : "Compra TON", + "form_optional_indicator" : "Facoltativo", + "import_wallet_caption" : "Per ripristinare l'accesso al tuo wallet, inserisci le 24 parole di recupero segrete che ti sono state fornite quando hai creato il tuo wallet.", + "import_wallet_reset_caption" : "Ripristina l'accesso al tuo wallet
 immettendo 24 parole segrete che hai annotato e creando il wallet.", + "import_wallet_title" : "Inserisci la tua\frase di recupero", + "import_wallet_wrong_words_err" : "Frase errata", + "info_about_inactive_back" : "Indietro", + "info_about_inactive_desc1" : "Tonkeeper non sa se questo indirizzo è un portafoglio o uno smart contract.", + "info_about_inactive_desc2" : "Se desideri semplicemente depositare denaro su un portafoglio, puoi procedere.", + "info_about_inactive_desc3_1" : "Se ti aspetti un'azione automatica da uno smart contract,", + "info_about_inactive_desc3_2" : "— il tuo trasferimento potrebbe rimanere bloccato su quell'indirizzo.", + "info_about_inactive_desc3_bold" : " NON PROCEDERE ", + "info_about_inactive_title" : "Contratto Inattivo", + "intro_continue_btn" : "Iniziamo", + "intro_item1_caption" : "Grazie all'architettura unica di The Open Network, le transazioni TON vengono eseguite in pochi secondi.", + "intro_item1_title" : "Velocità di prima classe", + "intro_item2_caption" : "Tonkeeper memorizza le tue chiavi crittografiche sul tuo dispositivo. Tutte le operazioni vengono eseguite tramite protocolli decentralizzati in modo che le tue criptovalute non finiscano mai nelle mani di exchange centralizzati.", + "intro_item2_title" : "Sicurezza End-to-End", + "intro_item3_caption" : "-", + "intro_item3_title" : "-", + "intro_title" : "Benvenuto\nin ", + "jetton_id" : "Token ID: %{jettonAddress}", + "jetton_id_copied" : "Token ID copiato", + "jetton_name" : "%{name} Token", + "jetton_open_explorer" : "Mostra dettagli", + "jetton_price" : "Prezzo:", + "jettons_list_title" : "Token", + "jettons_manage_tokens" : "Gestisci token", + "jettons_show_jettons" : "Mostra token nel wallet", + "jetton_token" : "Token", + "later" : "Dopo", + "legal_font_license" : "font Montserrat", + "legal_header_title" : "Legali", + "legal_licenses_title" : "Licenze", + "legal_privacy" : "Politica sulla Privacy", + "legal_terms" : "Termini di Servizio", + "link_copied" : "Link copiato", + "loading" : "Caricamento", + "manage_other_coins" : "Gestisci le mie crypto", + "migration_cancel_btn" : "Aggiorna dopo", + "migration_caption" : "Tonkeeper introduce un nuovo formato di wallet che supporta i pagamenti in abbonamento. Il tuo saldo verrà trasferito a un nuovo indirizzo. La tua frase di recupero rimarrà la stessa.", + "migration_failed" : "Migrazione fallita. Impossibile trasferire il saldo.", + "migration_fee_info" : "Commissioni di rete ≈%{tonFee} TON (%{fiatFee})", + "migration_in_progress" : "Migrazione a Wallet v4 in corso", + "migration_migrate_btn" : "Aggiorna wallet", + "migration_new_wallet" : "Nuovo indirizzo", + "migration_old_wallet" : "Vecchio indirizzo", + "migration_title" : "Aggiorna il tuo wallet", + "nft_about_collection" : "Riguardo {{collection}}", + "nft_about_dns" : "TON DNS è un servizio che consente agli utenti di assegnare un nome leggibile all'uomo a Wallet, Smart Contract e siti Web. \n\nCon TON DNS, l'accesso ai servizi decentralizzati è analogo all'accesso ai siti Web su Internet.", + "nft_browse_markets" : "Esplora i Mercati", + "nft_chain" : "Chain", + "nft_change_owner_title" : "Modifica il proprietario della Collezione", + "nft_change_theme" : "Cambia Tema", + "nft_collection" : "Collezione", + "nft_collection_name" : "Nome Collezione", + "nft_confirm_operation" : "Conferma", + "nft_contract_address" : "Indiurizzo Contratto", + "nft_deploy_collection_title" : "Crea Collezione NFT", + "nft_details" : "Dettagli", + "nft_diamonds_description" : "TON Diamonds possiede il potere di cambiare il tema nel tuo portafoglio Tonkeeper e abbinarlo al colore del tuo NFT.", + "nft_features" : "Caratteristiche", + "nft_fee" : "Commissioni", + "nft_fee_and_royalties" : "Commissioni & Royalties", + "nft_hide_details" : "Nascondi dettagli", + "nft_item_deploy_title" : "Minta NFT", + "nft_item_name" : "Nome NFT", + "nft_link_domain_button" : "Collega Dominio", + "nft_link_domain_caption" : "Dopo aver collegato il dominio, potrai trasferirlo e utilizzarlo come alias per il tuo indirizzo.", + "nft_link_domain_mismatch_warn" : "Il dominio non è collegato al tuo indirizzo attuale. Fai attenzione con le transazioni a questo dominio.", + "nft_link_username_button" : "Collega Nome", + "nft_link_username_caption" : "Dopo aver collegato il nome, potrai trasferirlo e utilizzarlo come alias per il tuo indirizzo.", + "nft_link_username_mismatch_warn" : "Il nome non è collegato al tuo indirizzo attuale. Fai attenzione alle transazioni con questo nome.", + "nft_marketplace_address" : "Marketplace", + "nft_marketplace_banner_description" : "Compra, vendi, colleziona e scambia.", + "nft_marketplace_banner_title" : "I tuoi token NFT verranno archiviati qui", + "nft_marketplaces" : "Scopri", + "nft_marketplaces_title" : "Mercati NFT", + "nft_metadata" : "Metadati", + "nft_more" : "Di più", + "nft_new_owner_address" : "Nuovo indirizzo del proprietario", + "nft_on_sale" : "In vendita", + "nft_on_sale_text" : "NFT attualmente in vendita sul mercato. Per il trasferimento, dovresti prima rimuoverlo dalla vendita.", + "nft_open_in_marketplace" : "Visualizza sul Mercato NFT", + "nft_operations_expired" : "Richiesta scaduta, riprova", + "nft_operation_success" : "Fatto", + "nft_owner_address" : "Proprietario", + "nft_price" : "Prezzo", + "nft_proceeds" : "Il tuo ricavato", + "nft_properties" : "Proprietà", + "nft_royalty" : "Royalty", + "nft_royalty_address" : "Indirizzo Royalty", + "nft_sale_cancel_title" : "Togli dalla vendita", + "nft_sale_place_title" : "Vendi NFT", + "nft_show_details" : "Mostra dettagli", + "nft_single_nft" : "NFT Singolo", + "nft_standard" : "Token Standard", + "nft_title" : "NFT", + "nft_token_id" : "Token ID", + "nft_transaction_head_placeholder" : "NFT", + "nft_transfer_comment" : "Commento", + "nft_transfer_description" : "L'NFT verrà inviato a questo indirizzo. Fai attenzione quando invii un NFT a un altro utente.", + "nft_transfer_dns" : "Trasferisci", + "nft_transfer_nft" : "Trasferisci", + "nft_transfer_recipient" : "Destinatario", + "nft_transfer_title" : "Trasferisci NFT", + "nft_unlink_domain_button" : "Collegato a {{address}}", + "nft_view_in_explorer" : "Visualizza nell'Explorer", + "notifications_disabled_action" : "Apri Impostazioni", + "notifications_disabled_description" : "Hai disattivato le notifiche nelle impostazioni del telefono. Per attivare le notifiche, vai su Impostazioni su questo dispositivo.", + "notifications_disabled_title" : "Le notifiche sono Disabilitate", + "notifications_not_supported" : "Le notifiche non sono supportate su questo dispositivo", + "notifications_switch_title" : "Notifiche", + "notifications_title" : "Notifiche", + "notification_switch_description" : "Ricevi notifiche quando ricevi TON, token e NFT", + "notify_connection_err_caption" : "%{host} non sta rispondendo. Riprova più tardi.", + "notify_connection_err_caption_few" : "%{hosts} e %{lastHost} non stanno rispondendo. Riprova più tardi.", + "notify_connection_err_title" : "Non riesco a collegarmi al server", + "notify_incorrect_time_err_caption" : "Nelle impostazioni del dispositivo, attiva data e ora automatici. Quando l'ora non viene impostata automaticamente, potrebbe influire sui trasferimenti di fondi.", + "notify_incorrect_time_err_title" : "Data ed ora sono errati", + "notify_no_signal_caption" : "Controlla la tua connessione internet.", + "notify_no_signal_title" : "Nessun segnale", + "passcode_changed" : "Passcode cambiato", + "pin_enter_faceid_err" : " Controllo biometrico fallito", + "pin_enter_skip_faceid_err" : "È richiesta la biometria", + "platform" : { + "android" : { + "capitalized_face_recognition" : "Riconoscimento Facciale", + "capitalized_fingerprint" : "Impronta Digitale", + "face_recognition" : "riconoscimento facciale", + "face_recognition_genitive" : "riconoscimento facciale", + "fingerprint" : "impronta digitale", + "fingerprint_genitive" : "impronta digitale" + }, + "ios" : { + "capitalized_face_recognition" : "Face ID", + "capitalized_fingerprint" : "Touch ID", + "face_recognition" : "Face ID", + "face_recognition_genitive" : "Face ID", + "fingerprint" : "Touch ID", + "fingerprint_genitive" : "Touch ID" + } + }, + "receive_address_title" : "Oppure usa l'indirizzo del wallet", + "receive_copy" : "Copia", + "receive_qr_title" : "Mostra il codice QR per ricevere", + "receive_received_title" : "Hai ricevuto\n%{amount} %{currency}", + "receive_share" : "Condividi", + "receive_title" : "Ricevi %{currency}", + "receive_ton_and_jettons" : "Ricevi TON e altri token", + "refresh_app" : "Riavvia", + "reminder_notifications_caption" : "Ricevi notifiche quando ricevi TON, token e NFT.", + "reminder_notifications_enable_button" : "Abilita notifiche", + "reminder_notifications_later_button" : "Dopo", + "reminder_notifications_title" : "Ricevi notifiche istantanee", + "require_create_wallet_modal_caption" : "Hai bisogno di un wallet connesso per usare\nTonkeeper. Crea un nuovo wallet o importane uno esistente.", + "require_create_wallet_modal_create_new" : "Crea un nuovo wallet", + "require_create_wallet_modal_import" : "Importa un wallet esistente", + "require_create_wallet_modal_title" : "Prepariamo il tuo wallet", + "scan_qr_open_settings" : "Apri le impostazioni", + "scan_qr_permission_error" : "Consenti l'accesso alla fotocamera per scansionare i codici QR", + "scan_qr_title" : "Scansiona QR code", + "secret_words_caption" : "Annota queste 24 parole nell'ordine indicato di seguito e conservale in un luogo segreto e sicuro.", + "secret_words_title" : "La tua Frase di Recupero", + "security_change_passcode" : "Cambia passcode", + "security_migration_caption" : "Ora il tuo saldo e tutte le operazioni sono protette da un passcode. Puoi anche velocizzare con il controllo biometrico.", + "security_migration_skip_button" : "Non aggiornare ora", + "security_migration_submit_button" : "Aggiorna le impostazioni di sicurezza", + "security_migration_title" : "Aggiorna la sicurezza del wallet", + "security_reset_passcode" : "Resetta passcode", + "security_title" : "Sicurezza", + "security_use_biometry_switch" : "Usa %{biometryType}", + "security_use_biometry_tip" : "Puoi sempre sbloccare il tuo wallet con un passcode.", + "send_address_placeholder" : "Indirizzo wallet o dominio", + "send_build_tx_error" : "La tua transazione è fallita", + "send_comment_label" : "Aggiungi un commento", + "send_fee_estimation_error" : "Impossibile calcolare la commissione", + "send_get_wallet_info_error" : "Impossibile ottenere informazioni sul wallet", + "send_insufficient_funds" : "Fondi insufficienti", + "send_invalid_recipient_caption" : "Il dominio non esiste o l'indirizzo del wallet non è collegato ad esso", + "send_invalid_recipient_title" : "Destinatario non valido", + "send_lockup_warning_caption" : "Controlla che tu stia inviando all'indirizzo consentito.\n\nLa commissione verrà detratta anche se la transazione fallisce.", + "send_lockup_warning_submit_button" : "Invia", + "send_lockup_warning_title" : "L'importo supera il saldo", + "send_publish_tx_error" : "Impossibile inviare la transazione", + "send_screen_steps" : { + "address" : { + "delete_alert_text" : "Sei sicuro di voler eliminare «%{name}» dai tuoi preferiti?", + "placeholder" : "Indirizzo wallet o dominio", + "recent_label" : "Recenti", + "suggest_actions" : { + "add" : "Aggiungi ai preferiti", + "delete" : "Elimina", + "edit" : "Modifica Preferiti", + "hide" : "Nascondi" + }, + "suggests_label" : "Preferiti e transazioni recenti" + }, + "amount" : { + "insufficient_balance" : "Fondi insufficienti", + "less_than_min" : "Minimo %{minAmount} TON", + "max" : "Massimo", + "recipient_label" : "Invia A:", + "remaining" : "Rimanente: %{amount}" + }, + "choose_coin" : { + "subtitle" : "Successivamente inserirai il destinatario e l'importo.", + "title" : "Seleziona un token da inviare" + }, + "comfirm" : { + "comment_characters_exceeded" : "La dimensione del messaggio è stata superata di %{count} caratteri.", + "comment_characters_left" : "%{count} caratteri rimanenti.", + "comment_description" : "Il commento è visibile a tutti.", + "comment_label" : "Commento", + "comment_label_required" : "Commento richiesto", + "comment_placeholder" : "Messaggio o riferimento (facoltativo)", + "comment_placeholder_required" : "Memo o tag", + "comment_required_text" : "È necessario includere memo o tag o commento quando si invia ad un exchange. ", + "details_label" : "Dettagli", + "details_max_balance_label" : "Invio max. bilancio di %{currency}" + }, + "done" : { + "add_favorite" : "Salva indirizzo nei preferiti", + "address" : "Indirizzo: %{address}", + "comment" : "Commento: %{comment}", + "description" : "La tua transazione è stata inviata alla rete e verrà elaborata in pochi secondi.", + "done_label" : "Fatto", + "favorite_saved" : "Salvato nei preferiti", + "fee" : "Commissioni: %{fee}", + "title" : "%{currency} inviati!", + "to" : "A: %{name}" + } + }, + "send_sending_failed" : "Invio fallito", + "send_sending_wrong_time_description" : "Attiva la data e ora automatiche nelle impostazioni del tuo dispositivo. Quindi ritenta il trasferimento.", + "send_sending_wrong_time_title" : "Si è verificato un errore", + "send_title" : "Invia %{currency}", + "settings_appearance" : "Tema", + "settings_backup_seed" : "Mostra Frase di Recupero", + "settings_contact_support" : "Contatta il team", + "settings_delete_account" : "Elimina Account", + "settings_delete_alert_button" : "Elimina Account e Dati", + "settings_delete_alert_caption" : "Questa azione eliminerà il tuo Account e tutti i Dati da questa applicazione.", + "settings_delete_alert_title" : "Sei sicuro di voler eliminare il tuo Account?", + "settings_jettons_list" : "Token", + "settings_legal_documents" : "Legale", + "settings_network_alert_title" : "Seleziona rete", + "settings_news" : "Tonkeeper news", + "settings_news_url" : "https://t.me/tonkeeper", + "settings_notifications" : "Notifiche", + "settings_primary_currency" : "Valuta", + "settings_rate" : "Vota TonKeeper", + "settings_recovery_phrase" : "Frase di Recupero", + "settings_reset" : "Disconnetti", + "settings_reset_alert_button" : "Disconnetti", + "settings_reset_alert_caption" : "Questo cancellerà le chiavi del portafoglio. Assicurati di aver eseguito il backup della tua frase segreta di recupero.", + "settings_reset_alert_title" : "Disconnetto?", + "settings_search_engine" : "Cerca", + "settings_security" : "Sicurezza", + "settings_subscriptions" : "Abbonamenti", + "settings_support" : "Supporto", + "settings_title" : "Impostazioni", + "settings_to_mainnet" : "Passa a Mainnet", + "settings_to_testnet" : "Passa a Testnet", + "settings_version" : "Versione", + "settings_wallet_version" : "Indirizzo Attivo", + "setup_biometry_caption" : "%{biometryType} ti permette di aprire il tuo wallet più velocemente senza dover\ninserire la tua password.", + "setup_biometry_enable_button" : "Abilita %{biometryType}", + "setup_biometry_title" : "Accesso rapido con %{biometryType}", + "setup_notifications_caption" : "Ricevi notifiche quando ricevi TON, token e NFT.", + "setup_notifications_enable_button" : "Abilita notifiche", + "setup_notifications_title" : "Ricevi notifiche istantanee", + "skip" : "Salta", + "spam_action" : "Spam", + "staking" : { + "confirm" : { + "address" : { + "label" : "Indirizzo destinatario" + }, + "amount" : { + "label" : "Importo", + "value" : "%{value} TON" + }, + "fee" : { + "label" : "Commissioni", + "value" : "≈ %{value} TON" + }, + "recipient" : { + "label" : "Destinatario" + }, + "withdraw_amount" : { + "label" : "Importo del prelievo", + "value" : "%{value} TON" + } + }, + "deposit" : "Deposito", + "details" : { + "about_pool" : "Riguarlo la pool", + "apy" : { + "label" : "Stima rapporto APY", + "value" : "≈ %{value}%" + }, + "balance" : "Bilancio staking", + "cooldown" : { + "active" : "Attivo", + "desc" : "Periodo di due ore applicato all'inizio di ogni ciclo di staking per migliorare il processo di prelievi e depositi tra i cicli", + "title" : "Periodo di raffreddamento" + }, + "frequency" : { + "label" : "Frequenza ricompensa", + "value" : "Ogni %{count} ore" + }, + "min_deposit" : { + "label" : "Deposito minimo", + "value" : "%{value} TON" + }, + "next_cycle" : { + "desc" : "Tutte le transazioni hanno effetto una volta terminato il ciclo", + "time" : "in %{time}", + "title" : "Prossimo ciclo" + }, + "pendingDeposit" : "Deposito in sospeso", + "pendingWithdraw" : "Prelievo in sospeso", + "pool_address" : { + "label" : "Indirizzo pool" + }, + "readyWithdraw" : "Prelievo pronto", + "show_details" : "Dettagli", + "tap_to_collect" : "Tocca per raccogliere" + }, + "get_withdrawal" : "Ottieni prelievo", + "rewards" : { + "after_top_up" : "Dopo il top up", + "current" : "Corrente", + "title" : "Le tue ricompense annuali", + "value" : "≈ %{value} TON" + }, + "staking_desc" : "Minimo deposito da %{minStake} TON.\nGuadagna sino a %{maxApy}%.", + "staking_pool_desc" : "APY ≈ %{apy}%", + "title" : "Staking", + "top_up" : "Top up", + "transaction" : "Transazione", + "warning" : { + "about" : "Riguardo %{name}", + "desc" : "Staking basato su Smart Contract di terze parti. Non siamo responsabili del loro lavoro.", + "title" : "Attenzione" + }, + "widget_desc" : "Guadagna sino a %{apy}% sui tuoi TON", + "withdraw" : "Prelievo", + "withdrawal_request" : "Richiedi prelievo" + }, + "subscription_back_to_merchant_button" : "Indietro", + "subscription_back_to_merchant_caption" : "La transazione è in fase di elaborazione. Il tuo abbonamento sarà presto attivo.", + "subscription_back_to_merchant_name" : "Torna a %{merchantName}", + "subscription_back_to_merchant_title" : "Tornare al canale?", + "subscription_cancel" : "Cancella abbonamento", + "subscription_cancel_alert_cancel_btn" : "Non ora", + "subscription_cancel_alert_caption" : "Se annulli ora, puoi comunque accedere al tuo abbonamento fino al %{nextBill}", + "subscription_cancel_alert_submit_btn" : "Si, cancella", + "subscription_cancel_alert_title" : "Annullare l'iscrizione?", + "subscription_expiring" : "In scadenza", + "subscription_fee" : "Commissioni", + "subscription_next_bill" : "Prossimo rinnovo", + "subscription_open_merchant" : "Apri in Telegram", + "subscription_period" : "Intervallo", + "subscription_period_custom" : "Ogni %{period}", + "subscription_period_day" : "Giornaliero", + "subscription_period_half_year" : "Semestrale", + "subscription_period_hour" : "Orario", + "subscription_period_month" : "Mensile", + "subscription_period_quarter" : "Quadrimestrale", + "subscription_period_week" : "Settimanale", + "subscription_period_weeks" : "Ogni %{count} Settimane", + "subscription_period_year" : "Annuale", + "subscription_price" : "Prezzo", + "subscription_sent" : "Transazione inviata", + "subscriptions_item_caption" : "%{price} TON, prossimo rinnovo %{nextBill}", + "subscriptions_item_caption_expired" : "Scaduto %{date}", + "subscriptions_item_caption_expiring" : "%{price} TON, scadenza %{date}", + "subscriptions_section_active" : "Attivo", + "subscriptions_section_expired" : "Scaduto", + "subscription_started" : "Abbonamento iniziato", + "subscriptions_title" : "Abbonamenti", + "subscription_subscribe" : "Abbonati", + "subscription_title" : "Abbonamento", + "subscription_unsubscribe" : "Disiscriviti", + "success" : "Riuscito!", + "swap_title" : "Swap", + "tab_browser" : "Browser", + "tab_nft" : "NFT", + "tab_settings" : "Impostazioni", + "tab_swap" : "Swap", + "tab_wallet" : "Wallet", + "today" : "Oggi", + "ton_login_back_to_button" : "Torna a %{name}", + "ton_login_caption" : "%{name} sta richiedendo l'accesso all'indirizzo del tuo wallet", + "ton_login_connect_button" : "Collega wallet", + "ton_login_notice" : "Assicurati di controllare l'indirizzo del servizio prima di collegare il wallet.", + "ton_login_success" : "Fatto", + "ton_login_title" : "Connetti a %{name}?", + "transaction_bid_collection_name" : "Emittente", + "transaction_bid_date" : "Offerta %{date}", + "transaction_bid_dns" : "Nome", + "transaction_buy_date" : "Acquistato il %{date}", + "transaction_buy_status_failed" : "Fallita", + "transaction_buy_status_pending" : "In Sospeso", + "transaction_buy_status_success" : "Riuscita", + "transaction_confirmations" : "Conferme", + "transaction_confirm_bid" : "Conferma Offerta", + "transaction_contract_deploy_date" : "%{date}", + "transaction_copy_caution" : "Fai attenzione ai link esterni. Non dare MAI la tua frase segreta a risorse di terze parti: puoi perdere tutti i tuoi fondi.\n\n- - -\n\n", + "transaction_exchange_from_currency" : "Da", + "transaction_fee" : "Commissioni", + "transaction_hash" : "Transazione", + "transaction_merchant" : "Negoziante", + "transaction_message" : "Messaggio", + "transaction_purchase_id" : "ID Acquisto", + "transaction_receive_date" : "Ricevuti il %{date}", + "transaction_recipient" : "Destinatario", + "transaction_recipient_address" : "Indirizzo Destinatario", + "transaction_refund" : "Rimborso", + "transaction_sender" : "Mittente", + "transaction_sender_address" : "Indirizzo Mittente", + "transaction_send_more_button" : "Invia altro a questo destinatario", + "transaction_sent_date" : "Inviati il %{date}", + "transaction_show_subscription_button" : "Visualizza Abbonamento", + "transaction_status" : "Stato", + "transaction_subscription" : "Iscrizione", + "transaction_subscription_date" : "Addebitati il %{date}", + "transaction_transfer_name" : "Trasferimento nome", + "transaction_type_bid" : "Offerta", + "transaction_type_bounced" : "Rimbalzata", + "transaction_type_buy" : "Comprati", + "transaction_type_contract_deploy" : "Distribuzione del Contratto", + "transaction_type_from" : "Da", + "transaction_type_new_subscriber" : "Nuovo Abbonato", + "transaction_type_pending" : "In Sospeso", + "transaction_type_receive" : "Ricevuti", + "transaction_type_sent" : "Inviati", + "transaction_type_subscriber_lost" : "Abbonato Perso", + "transaction_type_subscription" : "Abbonato", + "transaction_type_to" : "A", + "transaction_type_unsubscription" : "Abbonamento Annullato", + "transaction_type_wallet_initialized" : "Wallet inizializzato", + "transaction_unsubscription" : "Disiscrizione", + "transaction_unsubscription_date" : "%{date}", + "transaction_view_in_explorer" : "Visualizza in explorer", + "transaction_wallet_initialized_date" : "%{date}", + "transaction_your_bid" : "La tua Offerta", + "transfer_deeplink_address_error" : "Indirizzo del destinatario errato", + "transfer_deeplink_amount_error" : "Incorrect amount request", + "transfer_from_old_wallet_btn" : "Trasferisci", + "transfer_from_old_wallet_caption" : "Tonkeeper trasferirà tutte le monete dal tuo vecchio indirizzo al tuo attuale indirizzo.", + "transfer_from_old_wallet_in_progress" : "Trasferimento in corso", + "transfer_from_old_wallet_title" : "Trasferisci all'indirizzo corrente", + "txActions" : { + "amount" : "Ammontare", + "fee" : "Commissioni", + "refund" : "Rimborso", + "signRaw" : { + "addressMismatch" : { + "wrongVersion" : { + "close" : "Cancella", + "description" : "Cambia il tuo indirizzo attivo in %{version} per confermare l'azione.", + "switch" : "Cambia e continua", + "title" : "Azione per un altro indirizzo del tuo wallet" + }, + "wrongWallet" : { + "close" : "OK", + "description" : "Accedi a un altro wallet %{address} e riprova.", + "title" : "Azione per un altro wallet" + } + }, + "comment" : "Commento", + "insufficientFunds" : { + "rechargeWallet" : "Ricarica wallet", + "title" : "Fondi Insufficienti", + "toBePaid" : "Da pagare: %{amount} %{currency}\n", + "withFees" : "+ commissioni blockchain.\n", + "yourBalance" : "Il tuo bilancio: %{balance} %{currency}." + }, + "recipient" : "Destinatario", + "title" : "Conferma transazione", + "totalFee" : "Commissioni totali", + "totalRefund" : "Rimborso totale", + "types" : { + "contractDeploy" : "Propagazione Contratto", + "jettonTransfer" : "Trasferimento Token", + "nftItemTransfer" : "Trasferimento NFT", + "subscribe" : "Iscrizione", + "tonTransfer" : "Trasferimento TON", + "unknownTransaction" : "Transazione sconosciuta", + "unSubscribe" : "Disiscrizione" + }, + "warning_caption" : "Tonkeeper non può verificare completamente il risultato di questa transazione. Assicurati di fidarti del destinatario.", + "warning_title" : "Attenzione", + "wrongTime" : { + "button" : "Apri Impostazioni", + "description" : "Sembra che l'orologio del tuo dispositivo non sia sincronizzato con la rete. Apri le impostazioni del dispositivo e attiva data e ora automatiche.", + "title" : "Gli orologi non sono sincronizzati" + } + } + }, + "username_issued_by_telegram" : "Rilasciato da Telegram. ", + "username_manage_name_button" : "Gestisci nome", + "wallet_about" : "Info", + "wallet_buy" : "Compra", + "wallet" : { + "buy_btn" : "Compra", + "collectibles_tab_lable" : "Collezionabili", + "edit_tokens_btn" : "Modifica", + "old_wallets_title" : "Vecchi wallet", + "old_wallet_title" : "Vecchio wallet", + "receive_btn" : "Ricevi", + "screen_title" : "Wallet", + "sell_btn" : "Vendi", + "send_btn" : "Invia", + "tonkens_tab_lable" : "Token" + }, + "wallet_chat" : "Chat", + "wallet_community" : "Community", + "wallet_hours_symbol" : "h", + "wallet_old_balance" : "Vecchio wallet:", + "wallet_receive" : "Ricevi", + "wallet_sell" : "Vendi", + "wallet_send" : "Invia", + "wallet_source_code" : "Codice sorgente", + "wallet_swap" : "Swap", + "wallet_title" : "Wallet", + "wallet_toncommunity_chat_link" : "https://t.me/toncoin_it_chat", + "wallet_toncommunity_link" : "https://t.me/toncoin_it", + "yesterday" : "Ieri" +} \ No newline at end of file diff --git a/packages/shared/i18n/locales/tonkeeper/ru-RU.json b/packages/shared/i18n/locales/tonkeeper/ru-RU.json new file mode 100644 index 000000000..c1cc00b94 --- /dev/null +++ b/packages/shared/i18n/locales/tonkeeper/ru-RU.json @@ -0,0 +1,1009 @@ +{ + "about_ton" : "TON — это полностью децентрализованный блокчейн первого уровня, разработанный Telegram для поддержки миллиарда пользователей. Он гарантирует мгновенные транзакции, низкие комиссии, удобные приложения и безопасность для окружающей среды.", + "access_confirmation_logout" : "Выйти", + "access_confirmation_reset" : "Сброс", + "access_confirmation_title" : "Введите пин-код", + "access_confirmation_update_biometry" : "Введите пин-код, чтобы использовать биометрические данные для входа", + "access_denied" : "Доступ запрещён", + "account_deleted" : "Аккаунт удалён", + "activityActionModal" : { + "bid" : "Ставка", + "burned" : "Сожжено", + "call_contract" : "Вызов контракта", + "deposit" : "Депозит", + "purchase" : "Покупка", + "received" : "Получено", + "sent" : "Отправлено", + "swapped" : "Обмен", + "time_on" : "%{time}", + "withdraw" : "Вывод", + "withdrawal_request" : "Запрос на вывод" + }, + "activity" : { + "buy_toncoin_btn" : "Купить Toncoin", + "empty_transaction_caption" : "Совершите первую транзакцию!", + "empty_transaction_title" : "Ваша активность будет показана здесь", + "failed_transaction" : "Неуспешно", + "receive_btn" : "Получить", + "received" : "Received", + "screen_title" : "Активность", + "sent" : "Отправить" + }, + "add_edit_favorite" : { + "address_label" : "Адрес", + "add_title" : "Новый избранный", + "delete" : "Удалить", + "edit_title" : "Редактирование", + "name_placeholder" : "Название", + "save" : "Сохранить" + }, + "add_other_coins" : "Добавить валюты", + "address_copied" : "Адрес скопирован", + "address_update" : { + "first_option" : "Наиболее вероятно, что кошелёк получателя уже использовался и вы не заметите никакой разницы.", + "learn_more" : "Подробнее", + "new_style" : "Новый адрес", + "notification_desc_did_change" : "Пятого октября адрес вашего кошелька изменил свой формат на UQ, который ему лучше подходит. Старый адрес также продолжит работать. От вас не потребуется никаких действий.", + "notification_desc_will_change" : "Пятого октября адрес вашего кошелька изменит свой формат на UQ, который ему лучше подходит. Старый адрес также продолжит работать. От вас не потребуется никаких действий.", + "old_style" : "Старый адрес", + "post_dates" : "\n5 октября 2023: все адреса переводятся в формат UQ в Tonkeeper.\n\n1 января 2024: Tonkeeper прекращает проверку статуса контракта и использует в адресе флаг «bounceable». Монеты, отправленные на неопубликованные контракты с EQ-адресом, вернутся обратно отправителю.", + "post_rest" : "В сети TON возможно использование двух стилей адресов, но только один из них используется для всех типов аккаунтов: и приложений, и кошельков.\n\nФормат EQ лучше всего подходит для смарт-контрактов, обрабатывающих входящие средства. Если смарт-контракт ещё не опубликован (т.е. кода нет в блокчейне), то TONы, отправленные на этот адрес, вернутся отправителю. Это такая функция безопасности — в случае какой-либо ошибки TONы возвращаются.\n\nФормат UQ лучше всего подходит для кошельков. Так как кошельки предназначены для хранения средств, то отправка денег должна сработать даже когда у кошелька ещё не опубликован код. Поэтому, было бы бессмысленно делать так, чтобы монеты возвращались.\n\nВ этом году мы переводим кошельки на более правильный формат “UQ”. Если вы продолжите отправлять средства на EQ-адрес, который вам кто-то давно дал, то возможны два варианта:\n", + "post_top" : "К концу этого года вся сеть TON будет отображать адреса кошельков по-другому. Новый адрес будет начинаться с UQ вместо EQ. И последние четыре буквы тоже изменятся. Старый адрес продолжит работать и вести на тот же кошелёк. Всё это никак не повлияет на безопасность средств, хранящихся у вас в кошельке.", + "second_option" : "Менее вероятно, что кошелёк получателя ещё не использовался для платежей и со следующего года Тонкипер не будет отправлять деньги на этот адрес. Вам нужно будет попросить получателя дать новый UQ-адрес.", + "title" : "Обновление адреса", + "why_change" : "Для чего это обновление?", + "your_wallet" : "Ваш кошелёк" + }, + "appearance_accent_name" : { + "andromeda" : "Андромеда", + "arctic" : "Арктика", + "azure" : "Лазурь", + "coral" : "Коралл", + "cosmos" : "Космос", + "default" : "Tonkeeper", + "flamingo" : "Фламинго", + "fluid" : "Флюид", + "galaxy" : "Галактика", + "iris" : "Ирис", + "marine" : "Море", + "ocean" : "Океан", + "sky" : "Небо" + }, + "appearance_confirm" : "Применить", + "appearance_description" : "TON Diamonds NFT сделает ваш кошелёк более красочным и уникальным.", + "appearance_title" : "Оформление", + "app_name" : "Tonkeeper", + "approval" : { + "accept" : "Принять", + "accepted" : "Видимые", + "accepted_at_collection" : "Принята %{date}", + "accepted_at_token" : "Принят %{date}", + "accepted_collection" : "Коллекция принята", + "accepted_token" : "Токен принят", + "approve_all" : "Принять всё", + "approve_collection_many" : "Одобрите входящие токены из коллекции \"%{collection}\"", + "approve_collection_one" : "Одобрите входящий токен из коллекции \"%{collection}\"", + "approve_many" : "Одобрите %{count} входящих токенов", + "approve_many.few" : "Одобрите %{count} входящих токена", + "approve_many.many" : "Одобрите %{count} входящих токенов", + "approve_many.one" : "Одобрите %{count} входящий токен", + "approve_many.other" : "Одобрите %{count} входящих токенов", + "approve_token" : "Одобрите входящий токен \"%{name}\" ", + "approve_two_collections" : "Одобрите входящие токены из коллекций \"%{collection1}\" \"%{collection2}\"", + "approve_two_tokens" : "Одобрите входящие токены \"%{name1}\" и \"%{name2}\"", + "blacklisted_collection" : "Коллекция в чёрном списке", + "blacklisted_token" : "Токен в чёрном списке", + "decline" : "Отклонить", + "declined" : "Скрытые", + "declined_at_collection" : "Отклонена %{date}", + "declined_at_token" : "Отклонён %{date}", + "details_collection" : "Подробнее о коллекции", + "details_token" : "Подробнее о токене", + "id_collection" : "ID коллекции", + "id_token" : "ID токена", + "manage_tokens" : "Настроить токены", + "move_to_accepted" : "Переместить в Принятые", + "move_to_accepted_collection" : "Показывать коллекцию в кошельке", + "move_to_accepted_token" : "Показывать токен в кошельке", + "move_to_declined" : "Переместить в Отклонённые", + "move_to_declined_collection" : "Скрыть коллекцию из кошелька", + "move_to_declined_token" : "Скрыть токен из кошелька", + "name" : "Имя", + "pending" : "В ожидании", + "show_all" : "Показать все", + "single_token" : "Одиночный токен", + "token_copied" : "ID токена скопирован", + "token_count" : { + "few" : "%{count} токена", + "many" : "%{count} токенов", + "one" : "%{count} токен", + "other" : "%{count} токенов" + }, + "verify_collection" : "Проверьте коллекцию", + "verify_description_collection" : "Эти токены выпущены неизвестным эмитентом. Для обнаружения подделок проверьте ID коллекции в официальном источнике эмитента. Вы всегда можете изменить видимость коллекции в настройках.", + "verify_description_token" : "Этот токен выпущен неизвестным эмитентом. Для обнаружения подделок проверьте ID токена в официальном источнике эмитента. Вы всегда можете изменить видимость токена в настройках.", + "verify_token" : "Проверьте токен", + "whitelisted_collection" : "Коллекция в белом списке", + "whitelisted_token" : "Токен в белом списке" + }, + "auth_failed" : "Авторизация не прошла", + "balances_setup_wallet" : "Подключить кошелёк", + "browser" : { + "about_dapps_caption" : "Исследуйте приложения и сервисы, в которых вы можете использовать Tonkeeper для входа и платежей.", + "about_dapps_learn_more" : "Подробнее", + "about_dapps_title" : "Используйте Tonkeeper с приложениями и сервисами TON.", + "actions" : { + "copy_link" : "Скопировать ссылку", + "disconnect" : "Отключить", + "mute" : "Заглушить", + "refresh" : "Обновить", + "share" : "Поделиться" + }, + "connected_title" : "Подключённые", + "empty_search" : "По вашему запросу ничего не найдено", + "explore_all" : "Другие", + "more_description" : "Маркеты, биржи и другие", + "more_title" : "Исследуйте все сервисы", + "open_link" : "Открыть ссылку", + "popular_title" : "Популярные", + "remove_alert" : { + "approve_button" : "Отключить", + "title" : "Отключить «%{name}»?" + }, + "search_label" : "Поиск", + "start_typing" : "Введите адрес или начните поиск", + "title" : "Браузер", + "web_search_title" : "Поиск в %{searchEngine}" + }, + "cancel" : "Отмена", + "chart" : { + "check_connection" : "Проверьте подключение и повторите попытку.", + "no_internet" : "Нет подключения к интернету", + "periods" : { + "1D" : "Д", + "1H" : "Ч", + "1M" : "М", + "1Y" : "Г", + "6M" : "6M", + "7D" : "Н" + }, + "price" : "Цена" + }, + "check_words_caption" : "Чтобы убедиться, что вы записали секретный ключ правильно, введите слова %{wordNum1}, %{wordNum2} и %{wordNum3}.", + "check_words_success" : "Поздравляем! Ваш кошелёк готов", + "check_words_title" : "Давайте проверим", + "choose_country" : { + "cancel" : "Отмена", + "empty_placeholder" : "По вашему запросу ничего не найдено", + "search" : "Поиск", + "title" : "Выберите вашу страну" + }, + "choose_currency" : { + "currencies" : { + "AED" : "Дирхам ОАЭ", + "BDT" : "Бангладешская така", + "BRL" : "Бразильский реал", + "BYN" : "Белорусский рубль", + "CAD" : "Канадский доллар", + "CHF" : "Швейцарский франк", + "CNY" : "Китайский юань", + "EUR" : "Евро", + "GBP" : "Фунт стерлингов", + "GEL" : "Грузинский лари", + "IDR" : "Индонезийская рупия", + "ILS" : "Израильский шекель", + "INR" : "Индийская рупия", + "IRR" : "Иранский риал", + "JPY" : "Японская иена", + "KRW" : "Южнокорейская вона", + "KZT" : "Казахский тенге", + "NGN" : "Нигерийская найра", + "RUB" : "Российский рубль", + "THB" : "Тайский бат", + "TRY" : "Турецкая лира", + "UAH" : "Украинская гривна", + "USD" : "Доллар США", + "UZS" : "Узбекский сум", + "VND" : "Вьетнамский донг" + }, + "header_title" : "Основная валюта" + }, + "confirm" : "Подтвердить", + "confirm_renew_all_domains_title" : "Подтвердить действие", + "confirm_sending_amount" : "Сумма", + "confirm_sending_fee" : "Комиссия", + "confirm_sending_inactive_warn_about" : "Что важно знать", + "confirm_sending_inactive_warn_description" : "Не продолжайте, если вы ожидаете волшебства от блокчейна. Этого не произойдет.", + "confirm_sending_inactive_warn_title" : "Неактивный контракт", + "confirm_sending_liquid_warn_description" : "Вы больше не будете получать награды за отправленный застейканный TON. Награды начнёт получать новый владелец.", + "confirm_sending_liquid_warn_title" : "Примечание", + "confirm_sending_message" : "Комментарий", + "confirm_sending_method_title" : "Send your funds\nto %{name}?", + "confirm_sending_recipient" : "Получатель", + "confirm_sending_recipient_address" : "Адрес получателя", + "confirm_sending_sent_caption_btc" : "Транзакция отправлена в сеть и будет подтверждена в течение часа.", + "confirm_sending_sent_caption_ton" : "Транзакция отправлена в сеть и будет подтверждена через пару секунд.", + "confirm_sending_submit" : "Подтвердить и отправить", + "confirm_sending_title" : "Перевод", + "confirmSendModal" : { + "network_fee" : "Комиссия сети", + "title" : "Подтвердить действие", + "to_your_address" : "На ваш адрес", + "transaction_type" : { + "burn" : "Сжечь", + "receive" : "Получить", + "send" : "Отправить" + } + }, + "continue" : "Продолжить", + "copied" : "Скопировано", + "copy_error_log" : "Скопировать лог ошибки", + "create_pin_current_title" : "Введите текущий пин-код", + "create_pin_new_title" : "Задайте новый пин-код", + "create_pin_repeat_title" : "Введите пин-код ещё раз", + "create_wallet_caption" : "Мы настоятельно рекомендуем вам записать секретный ключ. Это единственный способ вернуть доступ к кошельку, если потеряете устройство. Не отправляйте ключ себе по почте и не делайте скриншот. Безопаснее всего вообще не хранить ключ на устройстве.", + "create_wallet_continue_button" : "Понятно", + "create_wallet_generated" : "Кошелёк создан!", + "create_wallet_generating" : "Создаём кошелёк...", + "create_wallet_title" : "Возьмите ручку\nи лист бумаги", + "decryption_error" : "Ошибка расшифровки", + "deploy_contract_button" : "Подтвердить и разместить", + "deploy_contract_title" : "Разместить контракт", + "disable_nft_marketplace_banner_description" : "Покупайте, продавайте, коллекционируйте и обменивайтесь.", + "dns_addresses" : { + "few" : "%{count} адреса", + "many" : "%{count} адресов", + "one" : "%{count} адрес", + "other" : "%{count} адресов" + }, + "dns_address_linked" : "Адрес связан", + "dns_address_unlinked" : "Адрес отвязан", + "dns_alert_expiring_many" : { + "few" : "У вас есть %{count} домена с истекающим сроком аренды. Продлите все до %{untilDate}.", + "many" : "У вас есть %{count} доменов с истекающим сроком аренды. Продлите все до %{untilDate}.", + "one" : "У вас есть %{count} домен с истекающим сроком аренды. Продлите все до %{untilDate}.", + "other" : "У вас есть %{count} доменов с истекающим сроком аренды. Продлите все до %{untilDate}." + }, + "dns_alert_expiring_one" : { + "few" : "%{domain} истекает через %{count} дня. Продлите до %{untilDate}.", + "many" : "%{domain} истекает через %{count} дней. Продлите до %{untilDate}.", + "one" : "%{domain} истекает через %{count} день. Продлите до %{untilDate}.", + "other" : "%{domain} истекает через %{count} дней. Продлите до %{untilDate}." + }, + "dns_current_address" : "Ваш текущий адрес", + "dns_expiration_date" : "Истекает", + "dns_link_title" : "Подтвердите транзакцию", + "dns_on_sale_text" : "Домен сейчас выставлен на продажу на маркете. Чтобы передать, необходимо сначала снять его с продажи.", + "dns_renew_all_until_btn" : "Продлить все до %{untilDate}", + "dns_renew_in_progress_btn" : "Выполняется продление домена…", + "dns_renew_toast_success" : "Домен продлён на 1 год", + "dns_renew_until_btn" : "Продлить до %{untilDate}", + "dns_renew_valid_caption" : { + "few" : "Истекает через %{count} дня", + "many" : "Истекает через %{count} дней", + "one" : "Истекает через %{count} день", + "other" : "Истекает через %{count} дней" + }, + "dns_replace_button" : "Заменить", + "dns_replace_description" : "Добавьте адрес кошелька, на который будет ссылаться домен {{domain}}.", + "dns_replace_save" : "Сохранить", + "dns_unlink_title" : "Подтвердите отвязку", + "dns_wallet_address" : "Адрес кошелька", + "domains_renewed" : "Домены продлены", + "edit_coins_add" : "Включить", + "edit_coins_added" : "Включено", + "edit_coins_added_toast" : "Включено", + "edit_coins_hide" : "Скрыть", + "edit_coins_title" : "Валюты", + "error_network" : "Ошибка сети", + "error_occurred" : "Произошла ошибка", + "exchange_method_dont_show_again" : "Больше не показывать", + "exchange_method_open_warning" : "Вы открываете внешнее приложение, которым не управляет Tonkeeper.", + "exchange_modal" : { + "hide" : "Скрыть", + "other_ways_to_buy" : "Другие способы покупки", + "show_all" : "Показать всё", + "title" : "Купить или продать" + }, + "exchange" : { + "not_exists" : "Неверный ID обменника" + }, + "exchange_other_ways" : "Другие способы покупки и продажи", + "exchange_telegram_bot" : "TELEGRAM BOT", + "exchange_title" : "Купить TON", + "expiring_domains" : "Истекающие домены", + "form_optional_indicator" : "Необязательно", + "import_wallet_caption" : "Чтобы восстановить доступ, введите 24 секретных слова, которые вы получили при создании кошелька.", + "import_wallet_reset_caption" : "Чтобы восстановить доступ, введите 24 секретных слова, которые вы получили при создании кошелька.", + "import_wallet_title" : "Введите секретный ключ", + "import_wallet_wrong_words_err" : "Неправильный ключ", + "info_about_inactive_back" : "Вернуться назад", + "info_about_inactive_desc1" : "Tonkeeper не знает, является ли этот адрес кошельком или смарт-контрактом.", + "info_about_inactive_desc2" : "Если вы хотите просто перевести деньги на кошелёк — вы можете продолжить.", + "info_about_inactive_desc3_1" : "Если вы ожидаете автоматического действия от смарт-контракта,", + "info_about_inactive_desc3_2" : "— ваш денежный перевод может застрять на адресе этого кошелька.", + "info_about_inactive_desc3_bold" : " НЕ ПРОДОЛЖАЙТЕ ", + "info_about_inactive_title" : "Неактивный контракт", + "intro_continue_btn" : "Начать", + "intro_item1_caption" : "Благодаря уникальной архитектуре TON, TON-транзакции проходят за секунды.", + "intro_item1_title" : "Рекордная скорость", + "intro_item2_caption" : "Tonkeeper хранит криптографические ключи на устройстве. Транзакции обрабатываются на децентрализованном блокчейне без рисков централизованных бирж.", + "intro_item2_title" : "Сквозная защита", + "intro_item3_caption" : "-", + "intro_item3_title" : "-", + "intro_title" : "Встречайте\n", + "jetton_id" : "ID токена: %{jettonAddress}", + "jetton_id_copied" : "ID токена скопирован", + "jetton_name" : "%{name} Токен", + "jetton_open_explorer" : "Подробнее", + "jetton_price" : "Цена:", + "jettons_list_title" : "Токены", + "jettons_manage_tokens" : "Настроить токены", + "jetton_token" : "Токен", + "later" : "Позже", + "legal_font_license" : "Шрифт Montserrat", + "legal_header_title" : "Документы", + "legal_licenses_title" : "Лицензии", + "legal_privacy" : "Политика конфиденциальности", + "legal_terms" : "Правила использования", + "link_copied" : "Ссылка скопирована", + "loading" : "Загрузка", + "manage_other_coins" : "Настроить валюты", + "migration_cancel_btn" : "Не обновлять сейчас", + "migration_caption" : "Tonkeeper вводит новый формат кошелька с поддержкой подписок. Баланс будет перенесен на новый адрес, секретный ключ останется прежним.", + "migration_failed" : "Обновление не прошло. Средства остались на старом кошельке.", + "migration_fee_info" : "Комиссия за транзакцию ≈%{tonFee} TON (%{fiatFee})", + "migration_in_progress" : "Идёт обновление на 4-ю версию", + "migration_migrate_btn" : "Обновить кошелёк", + "migration_new_wallet" : "Новый кошелёк", + "migration_old_wallet" : "Старый кошелёк", + "migration_title" : "Обновите кошелёк", + "nft_about_collection" : "Подробнее о коллекции", + "nft_about_dns" : "TON DNS — сервис, который позволяет задать криптокошелькам, смарт-контрактам или сайтам короткие читаемые имена. \n\nС TON DNS доступ к децентрализованным сервисам аналогичен доступу к веб-сайтам в интернете.", + "nft_browse_markets" : "Исследовать маркеты", + "nft_chain" : "Сеть", + "nft_change_owner_title" : "Сменить владельца коллекции", + "nft_change_theme" : "Изменить тему", + "nft_collection" : "Коллекция", + "nft_collection_name" : "Название коллекции", + "nft_confirm_operation" : "Подтвердить", + "nft_contract_address" : "Адрес контракта", + "nft_deploy_collection_title" : "Создать NFT коллекцию", + "nft_details" : "Детали", + "nft_diamonds_description" : "TON Diamonds обладают способностью менять тему в вашем кошельке Tonkeeper и сопоставлять ее с цветом вашего NFT.", + "nft_features" : "Возможности", + "nft_fee" : "Комиссия", + "nft_fee_and_royalties" : "Комиссия и роялти", + "nft_hide_details" : "Скрыть детали", + "nft_item_deploy_title" : "Выпустить NFT", + "nft_item_name" : "Название NFT", + "nft_link_domain_button" : "Привязать домен", + "nft_link_domain_caption" : "После того, как вы привяжете домен, вы сможете отправить его и использовать в качестве имени для своего адреса.", + "nft_link_domain_mismatch_warn" : "Домен не связан с вашим текущим адресом. Будьте осторожны с транзакциями на этот домен.", + "nft_link_username_button" : "Привязать имя", + "nft_link_username_caption" : "После того, как вы привяжете имя, вы сможете отправить его и использовать в качестве имени для своего адреса.", + "nft_link_username_mismatch_warn" : "Имя не связано с вашим текущим адресом. Будьте осторожны с транзакциями на это имя.", + "nft_marketplace_address" : "Маркетплейс", + "nft_marketplace_banner_description" : "Покупайте, продавайте, коллекционируйте и обменивайтесь.", + "nft_marketplace_banner_title" : "Здесь будут храниться ваши NFT токены", + "nft_marketplaces" : "Маркеты", + "nft_marketplaces_title" : "NFT маркеты", + "nft_metadata" : "Метаданные", + "nft_more" : "Раскрыть", + "nft_new_owner_address" : "Новый адрес владельца", + "nft_on_sale" : "На продаже", + "nft_on_sale_text" : "NFT сейчас выставлен на продажу на маркете. Чтобы передать, необходимо сначала снять его с продажи.", + "nft_open_in_marketplace" : "Посмотреть на NFT Маркете", + "nft_operations_expired" : "Время запроса истекло, попробуйте еще раз", + "nft_operation_success" : "Готово", + "nft_owner_address" : "Владелец", + "nft_price" : "Цена", + "nft_proceeds" : "Ваш доход", + "nft_properties" : "Характеристики", + "nft_royalty" : "Роялти", + "nft_royalty_address" : "Адрес роялти", + "nft_sale_cancel_title" : "Убрать с продажи", + "nft_sale_place_title" : "Продажа NFT", + "nft_show_details" : "Подробнее", + "nft_single_nft" : "Одиночный NFT", + "nft_standard" : "Стандарт токена", + "nft_title" : "NFT", + "nft_token_id" : "ID токена", + "nft_transaction_head_placeholder" : "NFT", + "nft_transfer_comment" : "Комментарий", + "nft_transfer_description" : "NFT будет отправлен на этот адрес. Будьте осторожны при отправке NFT, который вы отправляете другому пользователю.", + "nft_transfer_dns" : "Отправить", + "nft_transfer_nft" : "Отправить NFT", + "nft_transfer_recipient" : "Получатель", + "nft_transfer_title" : "Отправить NFT", + "nft_unlink_domain_button" : "Связан с {{address}}", + "nft_unnamed_collection" : "Коллекция без названия", + "nft_view_in_explorer" : "Подробнее", + "notifications" : { + "alert" : { + "cancel" : "Отмена", + "description" : "Адрес ссылки из уведомления не совпадает с адресом приложения.", + "open" : "Открыть всё равно", + "title" : "Вы уверены, что хотите открыть внешнюю ссылку?" + }, + "allow_notifications" : "Включить уведомления", + "apps" : "Приложения", + "apps_description" : "Уведомления от подключенных приложений в вашей активности", + "disconnect_app" : "Отключить %{app_name}", + "disconnected_app" : "Disconnected app", + "earlier" : "Ранее", + "from_connected" : "От ваших приложений", + "muted" : "Уведомления заглушены", + "mute_notifications" : "Отключить уведомления", + "notifications" : "Уведомления", + "placeholder" : { + "description" : "Исследуйте приложения и сервисы в браузере Tonkeeper.", + "title" : "Уведомления будут отображаться здесь" + }, + "report" : "Пожаловаться" + }, + "notifications_disabled_action" : "Открыть настройки", + "notifications_disabled_description" : "Вы отключили уведомления в настройках устройства. Чтобы ничего не пропустить разрешите уведомления.", + "notifications_disabled_title" : "Уведомления отключены", + "notifications_not_supported" : "Уведомления не поддерживаются на вашем устройстве", + "notifications_switch_title" : "Push-уведомления", + "notifications_title" : "Уведомления", + "notification_switch_description" : "Получайте уведомления при получении TON, токенов, NFT и уведомления от подключенных приложений.", + "notify_connection_err_caption" : "%{host} не отвечает. Попробуйте позже.", + "notify_connection_err_caption_few" : "%{hosts} и %{lastHost} не отвечают. Попробуйте позже.", + "notify_connection_err_title" : "Нет связи с сервером", + "notify_incorrect_time_err_caption" : "Включите автоматическое время и дату в настройках устройства. Автоматическое время поможет избежать ошибок при переводе средств.", + "notify_incorrect_time_err_title" : "Время и дата выставлены неверно", + "notify_no_signal_caption" : "Проверьте соединение с интернетом.", + "notify_no_signal_title" : "Нет связи", + "passcode_changed" : "Пин-код изменён", + "paste" : "Вставить", + "pin_enter_faceid_err" : "Ошибка сканирования биометрии", + "pin_enter_skip_faceid_err" : "Ошибка сканирования биометрии", + "platform" : { + "android" : { + "capitalized_face_recognition" : "Распознавание лица", + "capitalized_fingerprint" : "Отпечаток пальца", + "face_recognition" : "распознавание лица", + "face_recognition_genitive" : "распознавания лица", + "fingerprint" : "отпечаток пальца", + "fingerprint_genitive" : "отпечатка пальца" + }, + "ios" : { + "capitalized_face_recognition" : "Face ID", + "capitalized_fingerprint" : "Touch ID", + "face_recognition" : "Face ID", + "face_recognition_genitive" : "Face ID", + "fingerprint" : "Touch ID", + "fingerprint_genitive" : "Touch ID" + } + }, + "programmable_nfts" : { + "alert" : { + "cancel" : "Отмена", + "description" : "Переходите по этой внешней ссылке только в том случае, если вы доверяете автору коллекции.\n\n{{uri}}", + "open" : "Открыть всё равно", + "title" : "Вы уверены, что хотите открыть внешнюю ссылку?" + } + }, + "receive_address_title" : "Или используйте адрес", + "receive_copy" : "Копировать", + "receiveModal" : { + "copy" : "Скопировать", + "receive" : "Получить", + "receive_description" : "Отправляйте на этот адрес только %{tokenName} и токены в сети TON, иначе вы можете потерять свои средства.", + "receive_title" : "Получить %{tokenName}", + "receive_ton" : "Отправляйте на этот адрес только Toncoin TON и токены в сети TON, иначе вы можете потерять свои средства." + }, + "receive_qr_title" : "Покажите QR-код", + "receive_received_title" : "Вам зачислено\n%{amount} %{currency}", + "receive_share" : "Поделиться", + "receive_title" : "Получить %{currency}", + "receive_ton_and_jettons" : "Получить TON и другие токены", + "refresh_app" : "Перезапустить", + "reminder_notifications_caption" : "Получайте уведомления при получении TON, токенов и NFT.", + "reminder_notifications_enable_button" : "Включить уведомления", + "reminder_notifications_later_button" : "Позже", + "reminder_notifications_title" : "Получайте мгновенные уведомления", + "renew_in_progress" : "Выполняется продление…", + "renew_progress_of" : "%{current} из %{count}", + "require_create_wallet_modal_caption" : "Чтобы использовать Tonkeeper, нужен кошелёк. Создайте новый или подключите существующий.", + "require_create_wallet_modal_create_new" : "Создать новый кошелёк", + "require_create_wallet_modal_import" : "Подключить существующий", + "require_create_wallet_modal_title" : "Сперва подключим кошелёк", + "scan_qr_open_settings" : "Открыть настройки", + "scan_qr_permission_error" : "Разрешите доступ к камере, чтобы сканировать QR-коды", + "scan_qr_title" : "Отсканируйте QR-код", + "secret_words_caption" : "Запишите эти 24 слова ровно в таком же порядке и сохраните их в секретном, надёжном месте.", + "secret_words_title" : "Ваш секретный ключ", + "security_change_passcode" : "Поменять пин-код", + "security_migration_caption" : "Пин-код теперь защищает весь кошелёк, в дополнение к подтверждению платежей. Включите %{faceRecognition} для быстрого доступа.", + "security_migration_skip_button" : "Не обновлять сейчас", + "security_migration_submit_button" : "Включить защиту", + "security_migration_title" : "Обновление защиты кошелька", + "security_reset_passcode" : "Сбросить пин-код", + "security_title" : "Безопасность", + "security_use_biometry_switch" : "Использовать %{biometryType}", + "security_use_biometry_tip" : "Вы всегда можете разблокировать кошелёк с помощью пин-кода", + "send_address_placeholder" : "Адрес или имя", + "send_all_warning_title" : "Вы уверены, что хотите отправить весь свой баланс?", + "send_build_tx_error" : "Ошибка создания транзакции", + "send_fee_estimation_error" : "Ошибка подсчёта комиссии", + "send_get_wallet_info_error" : "Ошибка запроса кошелька", + "send_insufficient_funds" : "Недостаточно средств", + "send_invalid_recipient_caption" : "Домен не существует или адрес кошелька к нему не привязан. Введите действительный адрес домена или кошелька.", + "send_invalid_recipient_title" : "Неверный получатель", + "send_lockup_warning_caption" : "Проверьте что вы отправляете сумму на разрешенный адрес.\n\nЕсли транзакция отклонена сетью, комиссия всё равно будет списана.", + "send_lockup_warning_submit_button" : "Отправить", + "send_lockup_warning_title" : "Сумма превышает ликвидный баланс", + "send_publish_tx_error" : "Ошибка публикации транзакции", + "send_screen_steps" : { + "address" : { + "delete_alert_text" : "Вы точно хотите удалить «%{name}» из избранного?", + "placeholder" : "Адрес кошелька или домен", + "recent_label" : "Недавние", + "suggest_actions" : { + "add" : "Добавить в избранное", + "delete" : "Удалить", + "edit" : "Редактировать", + "hide" : "Скрыть" + }, + "suggests_label" : "Избранные и недавние", + "title" : "Получатель" + }, + "amount" : { + "insufficient_balance" : "Недостаточно средств", + "less_than_min" : "Минимум %{minAmount} TON", + "liquid_jetton_note" : "Отправка токена ликвидности tsTON", + "max" : "Максимум", + "recipient_label" : "Кому:", + "remaining" : "Доступно: %{amount}", + "title" : "Сумма" + }, + "comfirm" : { + "action" : "Отправка %{coin}", + "comment_decrypt" : "Расшифровать", + "comment_description" : "Будет виден всем.", + "comment_description_encrypted" : "Будет виден только получателю и вам.", + "comment_encrypt" : "Зашифровать комментарий", + "comment_label" : "Комментарий", + "comment_label_required" : "Обязательный комментарий", + "comment_required_text" : "Обязательно укажите memo или тег при отправке на биржу. ", + "details_label" : "Детали", + "details_max_balance_label" : "Отправка всего баланса %{currency}", + "title" : "Подтвердить действие" + }, + "done" : { + "add_favorite" : "Добавить адрес в избранное", + "address" : "Адрес: %{address}", + "comment" : "Комментарий: %{comment}", + "description" : "Ваша транзакция отправлена в сеть и будет обработана через несколько секунд.", + "done_label" : "Готово", + "favorite_saved" : "Добавлено в избранное", + "fee" : "Комиссия: %{fee}", + "title" : "%{currency} отправлен!", + "to" : "Кому: %{name}" + } + }, + "send_sending_failed" : "Отправка неуспешна", + "send_sending_wrong_time_description" : "Включите автоматическое время и дату в настройках своего устройства. После этого повторите перевод.", + "send_sending_wrong_time_title" : "Произошла ошибка", + "send_title" : "Отправить %{currency}", + "settings_appearance" : "Тема", + "settings_backup_seed" : "Показать секретный ключ", + "settings_contact_support" : "Написать команде", + "settings_delete_account" : "Удалить аккаунт", + "settings_delete_alert_button" : "Удалить аккаунт и данные", + "settings_delete_alert_caption" : "Это действие приведет к удалению вашего аккаунта и всех данных из этого приложения.", + "settings_delete_alert_title" : "Вы уверены, что хотите удалить аккаунт?", + "settings_jettons_list" : "Токены", + "settings_legal_documents" : "Юридические документы", + "settings_network_alert_title" : "Выберите сеть", + "settings_news" : "Новости Tonkeeper", + "settings_notifications" : "Уведомления", + "settings_primary_currency" : "Валюта", + "settings_rate" : "Оценить Tonkeeper", + "settings_recovery_phrase" : "Секретный ключ", + "settings_reset" : "Выйти", + "settings_reset_alert_button" : "Выйти", + "settings_reset_alert_caption" : "Доступ к кошельку будет отключен. Убедитесь, что вы сохранили секретный ключ.", + "settings_reset_alert_title" : "Выйти из кошелька?", + "settings_search_engine" : "Поиск", + "settings_security" : "Безопасность", + "settings_subscriptions" : "Подписки", + "settings_support" : "Поддержка", + "settings_title" : "Настройки", + "settings_to_mainnet" : "Переключить на Mainnet", + "settings_to_testnet" : "Переключить на Testnet", + "settings_version" : "Версия", + "settings_wallet_version" : "Текущий адрес", + "setup_biometry_caption" : "%{biometryType} позволяет открывать кошелёк быстрее без ввода пин-кода.", + "setup_biometry_enable_button" : "Включить %{biometryType}", + "setup_biometry_title" : "Быстрый доступ с помощью\n%{biometryType}", + "setup_notifications_caption" : "Получайте уведомления при получении TON, токенов и NFT.", + "setup_notifications_enable_button" : "Включить уведомления", + "setup_notifications_title" : "Получайте мгновенные уведомления", + "skip" : "Пропустить", + "spam_action" : "Спам", + "staking" : { + "active" : "Активные", + "confirm" : { + "address" : { + "label" : "Адрес получателя" + }, + "amount" : { + "label" : "Сумма", + "value" : "%{value} TON" + }, + "fee" : { + "label" : "Комиссия", + "value" : "≈ %{value} TON" + }, + "recipient" : { + "label" : "Получатель" + }, + "withdraw_amount" : { + "label" : "Сумма вывода", + "value" : "%{value} TON" + } + }, + "confirm_deposit" : "Подтвердить и внести", + "confirm_unstake" : "Подтвердить и отправить", + "deposit" : "Депозит", + "desc_large" : "Участвуйте в стейкинге и получайте вознаграждения. Стейкинг поддерживает сеть TON.", + "details" : { + "about_pool" : "Детали", + "apy" : { + "highest_tag" : "MAX", + "label" : "Годовая доходность", + "value" : "≈ %{value}%" + }, + "balance" : "Баланс стейкинга", + "cooldown" : { + "active" : "Активен", + "desc" : "Двухчасовой период, применяемый в начале каждого стейкинг цикла для улучшения процесса снятия и внесения средств между циклами", + "title" : "Период ожидания" + }, + "frequency" : { + "label" : "Частота выплат", + "value" : "Каждые %{count} часа", + "value.few" : "Каждые %{count} часа", + "value.many" : "Каждые %{count} часов", + "value.one" : "Каждые %{count} час", + "value.zero" : "Каждые %{count} часов" + }, + "links_title" : "Ссылки", + "liquidity_token" : { + "label" : "Токен ликвидности %{token}", + "value" : "Подробнее" + }, + "min_deposit" : { + "label" : "Минимальный депозит", + "value" : "%{value} TON" + }, + "next_cycle" : { + "desc" : "Все транзакции исполняются только после завершения цикла.", + "desc_liquid" : "Запросы на вывод исполнятся после завершения цикла.", + "in" : "через", + "reward_title" : "Следующая награда", + "title" : "Следующий цикл" + }, + "note" : "Стейкинг основан на сторонних смарт-контрактах. Tonkeeper не несёт ответственность за стабильность и результат.", + "pendingDeposit" : "Будет зачислено", + "pendingWithdraw" : "Ожидают вывод", + "pendingWithdrawDesc" : "по окончанию цикла", + "pool_address" : { + "label" : "Адрес пула" + }, + "readyWithdraw" : "Вывод готов", + "socials" : { + "telegram" : "Сообщество", + "twitter" : "Twitter" + }, + "tap_to_collect" : "Нажмите, чтобы вывести" + }, + "get_withdrawal" : "Получить вывод", + "highest_apy" : "MAX APY", + "jetton_note" : "Когда вы вносите TON в пул, вы получаете токен %{token}, который отображает вашу долю в пуле. По мере накопления прибыли в пуле, %{token} представляет всё большее число TON.", + "learn_more" : "Подробнее", + "message" : { + "pendingDeposit" : { + "few" : "%{amount} TON будет\nзачислено ", + "many" : "%{amount} TON будет\nзачислено ", + "one" : "%{amount} TON будет\nзачислен ", + "other" : "%{amount} TON будет\nзачислено ", + "zero" : "%{amount} TON будет\nзачислено " + }, + "pendingWithdraw" : { + "few" : "%{amount} TON будет выведено\n", + "many" : "%{amount} TON будет выведено\n", + "one" : "%{amount} TON будет выведен\n", + "other" : "%{amount} TON будет выведено\n", + "zero" : "%{amount} TON будет выведено\n" + }, + "readyWithdraw" : { + "few" : "%{amount} TON готовы к выводу.\nНажмите, чтобы вывести", + "many" : "%{amount} TON готовы к выводу.\nНажмите, чтобы вывести", + "one" : "%{amount} TON готов к выводу.\nНажмите, чтобы вывести", + "zero" : "%{amount} TON готовы к выводу.\nНажмите, чтобы вывести" + } + }, + "no_funds" : "Нет средств доступных для вывода", + "not_exists" : "Неверный адрес пула", + "other" : "Другие", + "rewards" : { + "after_top_up" : "После депозита", + "current" : "Текущая", + "title" : "Ваша годовая доходность", + "value" : "≈ %{value} TON" + }, + "send_staked_ton" : "Застейканного TON", + "staked" : "Стейкинг", + "staked_ton" : "Застейканный TON", + "staking_desc" : "Мин. депозит %{minStake} TON.\nЗарабатывайте до %{maxApy}%.", + "staking_pool_desc" : "APY ≈ %{apy}%", + "title" : "Стейкинг", + "title_large" : "Стейкинг TON", + "top_up" : "Внести", + "transaction" : "Подтвердить действие", + "warning" : { + "about" : "Подробнее о %{name}", + "beta_desc" : "Мы не несём ответственность за стабильность и результат стейкинга. Используйте на свой страх и риск.", + "desc" : "Стейкинг основан на сторонних смарт-контрактах. Мы не несем ответственность за их работу.", + "title" : "Предупреждение" + }, + "widget_desc" : "Годовая доходность до %{apy}%", + "widget_staking_options" : "Варианты стейкинга", + "widget_title" : "Зарабатывайте TON", + "withdraw" : "Вывести", + "withdrawal_fee_warning" : { + "continue" : "Продолжить всё равно", + "message" : "Пожалуйста, оставьте минимум {{amount}} TON на вашем балансе.", + "title" : "У вас не останется для вывода" + }, + "withdrawal_request" : "Запрос на вывод" + }, + "subscription_back_to_merchant_button" : "Вернуться", + "subscription_back_to_merchant_caption" : "Транзакция обрабатывается. Ваша подписка будет активна через пару минут.", + "subscription_back_to_merchant_name" : "Вернуться в %{merchantName}", + "subscription_back_to_merchant_title" : "Вернуться в канал?", + "subscription_cancel" : "Завершить подписку", + "subscription_cancel_alert_cancel_btn" : "Не сейчас", + "subscription_cancel_alert_caption" : "Если отписаться сейчас, подписка продолжит действовать до %{nextBill}", + "subscription_cancel_alert_submit_btn" : "Завершить", + "subscription_cancel_alert_title" : "Завершить подписку?", + "subscription_expiring" : "Завершается", + "subscription_fee" : "Комиссия", + "subscription_next_bill" : "След. списание", + "subscription_open_merchant" : "Открыть в Telegram", + "subscription_period" : "Период", + "subscription_period_custom" : "Каждые %{period}", + "subscription_period_day" : "Ежедневно", + "subscription_period_half_year" : "Каждые полгода", + "subscription_period_hour" : "Каждый час", + "subscription_period_month" : "Ежемесячно", + "subscription_period_quarter" : "Поквартально", + "subscription_period_week" : "Еженедельно", + "subscription_period_weeks" : "Каждые %{count} недели", + "subscription_period_year" : "Ежегодно", + "subscription_price" : "Цена", + "subscription_sent" : "Транзакция отправлена", + "subscriptions_item_caption" : "%{price} TON, след. списание %{nextBill}", + "subscriptions_item_caption_expired" : "Завершена %{date}", + "subscriptions_item_caption_expiring" : "%{price} TON, завершается %{date}", + "subscriptions_section_active" : "Активные", + "subscriptions_section_expired" : "Завершённые", + "subscription_started" : "Подписка оформлена", + "subscriptions_title" : "Подписки", + "subscription_subscribe" : "Подписаться", + "subscription_title" : "Подписка", + "subscription_unsubscribe" : "Отписаться", + "success" : "Успешно", + "swap_title" : "Обмен", + "tab_browser" : "Браузер", + "tab_nft" : "NFT", + "tab_settings" : "Настройки", + "tab_swap" : "Обмен", + "tab_wallet" : "Кошелёк", + "test_key" : "тестовый ключ", + "today" : "Сегодня", + "ton_login_back_to_button" : "Вернуться в %{name}", + "ton_login_caption" : "%{name} запрашивает доступ к адресу вашего кошелька\n", + "ton_login_connect_button" : "Подключить кошелёк", + "ton_login_notice" : "Обязательно проверьте адрес сервиса перед подключением кошелька.", + "ton_login_success" : "Готово", + "ton_login_title" : "Войти в %{name}", + "transaction_bid_collection_name" : "Эмитент", + "transaction_bid_date" : "Ставка %{date}", + "transaction_bid_dns" : "Имя", + "transaction_buy_date" : "Покупка %{date}", + "transaction_buy_status_failed" : "Не прошла", + "transaction_buy_status_pending" : "В ожидании", + "transaction_buy_status_success" : "Успешно", + "transaction_confirmations" : "Подтверждения", + "transaction_confirm_bid" : "Подтвердите ставку", + "transaction_contract_deploy_date" : "%{date}", + "transaction_copy_caution" : "Будьте осторожны при переходе по внешним ссылкам. Никогда не вводите свою секретную фразу на сторонних ресурсах, вы можете потерять свои средства.\n\n- - -\n\n", + "transactionDetails" : { + "address" : "Адрес", + "bid_collection_name" : "Эмитент", + "bid_date" : "Ставка %{time}", + "bid_name" : "Название", + "call_contract_date" : "Вызов контракта %{time}", + "comment" : "Комментарий", + "description" : "Описание", + "operation" : "Операция", + "payload" : "Данные", + "purchase_date" : "Покупка %{time}", + "received_date" : "Получено %{time}", + "recipient" : "Получатель", + "recipient_address" : "Адрес получателя", + "sender" : "Отправитель", + "sender_address" : "Адрес отправителя", + "sent_date" : "Отправлено %{time}", + "spam" : "СПАМ", + "subscription_merchant_label" : "Продавец", + "subscription_product_label" : "Подписка", + "swapped_date" : "Обмен %{time}", + "transaction" : "Транзакция", + "unsubscription_title" : "Отмена подписки", + "withdraw_amount" : "Сумма вывода" + }, + "transaction_exchange_from_currency" : "Из", + "transaction_fee" : "Комиссия", + "transaction_hash" : "Транзакция", + "transaction_merchant" : "Продавец", + "transaction_message" : "Комментарий", + "transaction_purchase_id" : "Покупка", + "transaction_receive_date" : "Получено %{date}", + "transaction_recipient" : "Получатель", + "transaction_recipient_address" : "Адрес получателя", + "transaction_refund" : "Возврат", + "transactions" : { + "bid" : "Ставка", + "burned" : "Сожжено", + "contract_deploy" : "Создание контракта", + "deposit" : "Депозит", + "failed" : "Неуспешно", + "nft_purchase" : "Покупка NFT", + "smartcontract_exec" : "Вызов контракта", + "spam" : "Спам", + "subscription" : "Подписка", + "swap" : "Обмен", + "unknown" : "Неизвестно", + "unknown_description" : "Что-то произошло, \nно мы не распознали", + "unsubscription" : "Отмена подписки", + "wallet_initialized" : "Кошелёк инициализирован", + "withdraw" : "Вывод", + "withdrawal_request" : "Запрос на вывод" + }, + "transaction_sender" : "Отправитель", + "transaction_sender_address" : "Адрес отправителя", + "transaction_send_more_button" : "Отправить ещё на этот адрес", + "transaction_sent_date" : "Отправлено %{date}", + "transaction_show_subscription_button" : "Информация о подписке", + "transaction_status" : "Статус", + "transaction_subscription" : "Подписка", + "transaction_subscription_date" : "Оплата %{date}", + "transaction_transfer_name" : "Передача имени", + "transaction_type_bid" : "Ставка", + "transaction_type_bounced" : "Возвращено", + "transaction_type_buy" : "Покупка", + "transaction_type_contract_deploy" : "Создание контракта", + "transaction_type_from" : "Отправитель", + "transaction_type_new_subscriber" : "Новый подписчик", + "transaction_type_pending" : "В ожидании", + "transaction_type_receive" : "Получено", + "transaction_type_sent" : "Отправлено", + "transaction_type_subscriber_lost" : "Подписчик потерян", + "transaction_type_subscription" : "Подписка", + "transaction_type_to" : "Получатель", + "transaction_type_unsubscription" : "Отмена подписки", + "transaction_type_wallet_initialized" : "Кошелёк инициализирован", + "transaction_unsubscription" : "Отмена подписки", + "transaction_unsubscription_date" : "%{date}", + "transaction_view_in_explorer" : "Подробнее", + "transaction_wallet_initialized_date" : "%{date}", + "transaction_your_bid" : "Ваша ставка", + "transfer_deeplink_address_error" : "Неверный адрес получателя", + "transfer_deeplink_amount_error" : "Некорректный запрос суммы", + "transfer_deeplink_nft_address_error" : "Неверный адрес NFT", + "transfer_from_old_wallet_btn" : "Перевести", + "transfer_from_old_wallet_caption" : "Tonkeeper переведет всю сумму со старого адреса на текущий.", + "transfer_from_old_wallet_in_progress" : "Идет перевод", + "transfer_from_old_wallet_title" : "Перевод на текущий адрес", + "txActions" : { + "amount" : "Сумма", + "fee" : "Комиссия", + "refund" : "Возврат", + "signRaw" : { + "addressMismatch" : { + "wrongVersion" : { + "close" : "Отмена", + "description" : "Переключите текущий адрес кошелька на %{version}, чтобы подтвердить действие.", + "switch" : "Переключить и продолжить", + "title" : "Действие для другого адреса вашего кошелька" + }, + "wrongWallet" : { + "close" : "Хорошо", + "description" : "Войдите в другой кошелёк %{address} и повторите попытку.", + "title" : "Действие для другого кошелька" + } + }, + "comment" : "Комментарий", + "insufficientFunds" : { + "rechargeWallet" : "Пополнить кошелёк", + "stakingFee" : { + "few" : "Для совершения транзакции необходимо %{count} TON. Предполагаемая комиссия в размере %{fee} TON будет удержана, остаток будет возвращён.", + "many" : "Для совершения транзакции необходимо %{count} TON. Предполагаемая комиссия в размере %{fee} TON будет удержана, остаток будет возвращён.", + "one" : "Для совершения транзакции необходим %{count} TON. Предполагаемая комиссия в размере %{fee} TON будет удержана, остаток будет возвращён.", + "other" : "Для совершения транзакции необходим %{count} TON. Предполагаемая комиссия в размере %{fee} TON будет удержана, остаток будет возвращён.", + "zero" : "Для совершения транзакции необходимо %{count} TON. Предполагаемая комиссия в размере %{fee} TON будет удержана, остаток будет возвращён." + }, + "title" : "Недостаточно средств", + "toBePaid" : "Необходимо: %{amount} %{currency}\n", + "withFees" : "+ комиссия сети.\n", + "yourBalance" : "Ваш баланс: %{balance} %{currency}." + }, + "recipient" : "Получатель", + "title" : "Подтвердить транзакцию", + "totalFee" : "Суммарная комиссия", + "totalRefund" : "Суммарный возврат", + "types" : { + "contractDeploy" : "Деплой контракта", + "jettonTransfer" : "Отправка токена", + "nftItemTransfer" : "Передача NFT", + "subscribe" : "Подписка", + "tonTransfer" : "Отправка TON", + "unknownTransaction" : "Неизвестная транзакция", + "unSubscribe" : "Отписка" + }, + "warning_caption" : "Tonkeeper не может полностью проверить результат этой транзакции. Убедитесь, что вы доверяете получателю.", + "warning_title" : "Предупреждение", + "wrongTime" : { + "button" : "Открыть настройки", + "description" : "Похоже, часы вашего устройства не синхронизированы с сетью. Откройте настройки устройства и включите автоматическое время и дату.", + "title" : "Время выставлено неверно" + } + } + }, + "update" : { + "description" : "Доступна новая версия Tonkeeper. Вы можете скачать её прямо сейчас.", + "download" : "Скачать", + "downloading" : "Скачивание… {{progress}}%", + "mb" : "{{size}} МБ", + "remindLater" : "Напомнить позже", + "retry" : "Ошибка загрузки. Нажмите, чтобы повторить попытку.", + "tap" : "Нажмите, чтобы обновить", + "title" : "Обновление Tonkeeper", + "version" : "Версия {{version}}" + }, + "username_issued_by_telegram" : "Эмитент Telegram. ", + "username_manage_name_button" : "Управлять именем", + "wallet_about" : "Подробнее", + "wallet_buy" : "Купить", + "wallet" : { + "buy_btn" : "Купить TON", + "collectibles_tab_lable" : "Коллекции", + "edit_tokens_btn" : "Настроить", + "nft_tab_lable" : "Коллекции", + "old_wallets_title" : "Cтарые кошельки", + "old_wallet_title" : "Cтарый кошелёк", + "receive_btn" : "Получить", + "screen_title" : "Кошелёк", + "send_btn" : "Отправить", + "swap_btn" : "Обменять", + "tonkens_tab_lable" : "Токены" + }, + "wallet_chat" : "Чат", + "wallet_community" : "Сообщество", + "wallet_hours_symbol" : "ч", + "wallet_old_balance" : "Старый кошелёк:", + "wallet_receive" : "Получить", + "wallet_sell" : "Продать", + "wallet_send" : "Отправить", + "wallet_source_code" : "Исходный код", + "wallet_swap" : "Обменять", + "wallet_title" : "Кошелёк", + "yesterday" : "Вчера" +} \ No newline at end of file diff --git a/packages/shared/i18n/locales/tonkeeper/tr-TR.json b/packages/shared/i18n/locales/tonkeeper/tr-TR.json new file mode 100644 index 000000000..0e21ef948 --- /dev/null +++ b/packages/shared/i18n/locales/tonkeeper/tr-TR.json @@ -0,0 +1,901 @@ +{ + "about_ton" : "TON, Telegram tarafından milyarlarca kullanıcıyı bünyesine katmak için tasarlanmış tamamen merkeziyetsiz bir layer-1 blokzinciridir. TON, ultra hızlı işlem hızına, düşük ücretlere, kullanımı kolay uygulamalara sahiptir ve çevre dostudur.", + "access_confirmation_logout" : "Oturumu kapat", + "access_confirmation_reset" : "Sıfırla", + "access_confirmation_title" : "Şifreyi girin", + "access_confirmation_update_biometry" : "Biyometrik kimlik doğrulama verilerini kullanmak için şifreyi girin", + "access_denied" : "Erişim reddedildi", + "account_deleted" : "Hesap silindi", + "activityActionModal" : { + "bid" : "Teklif ver", + "burned" : "Yakıldı", + "call_contract" : "Sözleşme çağrısı yap", + "deposit" : "Yatırma", + "purchase" : "Satın Al", + "received" : "Alındı", + "sent" : "Gönderildi", + "swapped" : "Takas edildi", + "time_on" : "İşlem zamanı: %{time}", + "withdraw" : "Çekme", + "withdrawal_request" : "Çekme talebi" + }, + "activity" : { + "buy_toncoin_btn" : "TONcoin satın alın", + "empty_transaction_caption" : "İlk işleminizi gerçekleştirin!", + "empty_transaction_title" : "İşleminiz burada gösterilecektir", + "failed_transaction" : "İşlem başarısız oldu", + "receive_btn" : "Al", + "received" : "Alındı", + "screen_title" : "Etkinlik", + "sent" : "Gönderildi" + }, + "add_edit_favorite" : { + "address_label" : "Adres", + "add_title" : "Yeni favori", + "delete" : "Sil", + "edit_title" : "Favoriyi düzenle", + "name_placeholder" : "İsim", + "save" : "Kaydet" + }, + "add_other_coins" : "Diğer kriptoları ekleyin", + "address_copied" : "Adres kopyalandı", + "appearance_accent_name" : { + "andromeda" : "Andromeda", + "arctic" : "Arctic", + "azure" : "Azure", + "coral" : "Coral", + "cosmos" : "Cosmos", + "default" : "Tonkeeper", + "flamingo" : "Flamingo", + "fluid" : "Fluid", + "galaxy" : "Galaxy", + "iris" : "Iris", + "marine" : "Marine", + "ocean" : "Ocean", + "sky" : "Sky" + }, + "appearance_confirm" : "Ayarla", + "appearance_description" : "TON Diamonds NFT, cüzdanınızı daha renkli ve benzersiz hale getirecektir.", + "appearance_title" : "Tema", + "app_name" : "Tonkeeper", + "approval" : { + "accept" : "Onaylayın", + "accepted" : "Onaylandı", + "accepted_at_collection" : "%{date} tarihinde onaylandı", + "accepted_at_token" : "%{date} tarihinde onaylandı", + "approve_all" : "Tümünü onayla", + "approve_collection_many" : "\"%{collection}\" koleksiyonundan gelen token'ları onaylayın", + "approve_collection_one" : "\"%{collection}\" koleksiyonundan gelen token'ı onaylayın", + "approve_many" : "Gelen %{count} token'ı onaylayın", + "approve_token" : "Gelen \"%{name}\" token'ını onaylayın", + "approve_two_collections" : "\"%{collection1}\" \"%{collection2}\" koleksiyonlarından gelen token'ları onaylayın", + "approve_two_tokens" : "Gelen \"%{name1}\" ve \"%{name2}\" token'larını onaylayın", + "blacklisted_collection" : "Kara listeye alınmış koleksiyon", + "blacklisted_token" : "Kara listeye alınmış token", + "decline" : "Reddet", + "declined" : "Reddedildi", + "declined_at_collection" : "%{date} tarihinde reddedildi", + "declined_at_token" : "%{date} tarihinde reddedildi", + "details_collection" : "Koleksiyon detayları", + "details_token" : "Token detayları", + "id_collection" : "Koleksiyon Kimliği", + "id_token" : "Token Kimliği", + "manage_tokens" : "Token'ları yönetin", + "move_to_accepted" : "Onaylananlar'a taşıyın", + "move_to_declined" : "Reddedilenler'e taşıyın", + "name" : "İsim", + "pending" : "Beklemede", + "show_all" : "Tümünü göster", + "single_token" : "Tek token", + "token_copied" : "Token kimliği kopyalandı", + "token_count" : { + "one" : "%{count} token", + "other" : "%{count} token" + }, + "verify_collection" : "Koleksiyonu doğrulayın", + "verify_description_collection" : "Bu token'lar bilinmeyen bir token yayıncısı tarafından basılmış. Token'ların sahtelerini tespit etmek için, token yayıncının resmi kaynağıyla karşılaştırarak koleksiyon kimliğini doğrulayın. Token görünürlüğünü daha sonra ayarlar içerisinden değiştirebilirsiniz.", + "verify_description_token" : "Bu token bilinmeyen bir token yayıncısı tarafından basılmış. Token'ların sahtelerini tespit etmek için, token yayıncının resmi kaynağıyla karşılaştırarak token kimliğini doğrulayın. Token görünürlüğünü daha sonra ayarlar içerisinden değiştirebilirsiniz.", + "verify_token" : "Token'i doğrulayın", + "whitelisted_collection" : "Beyaz listeye alınmış koleksiyon", + "whitelisted_token" : "Beyaz listeye alınmış token" + }, + "auth_failed" : "Kimlik doğrulama başarısız oldu", + "balances_setup_wallet" : "Cüzdanı ayarlayın", + "browser" : { + "about_dapps_caption" : "Oturum açma ve ödemeler için Tonkeeper'ı kullanabileceğiniz uygulamaları ve hizmetleri keşfedin.", + "about_dapps_learn_more" : "Daha fazla bilgi edinin", + "about_dapps_title" : "Tüm TON uygulamaları ve hizmetleriyle Tonkeeper'ı kullanın", + "actions" : { + "copy_link" : "Bağlantıyı kopyalayın", + "disconnect" : "Bağlantıyı kesin", + "mute" : "Sessize alın", + "refresh" : "Yenileyin", + "share" : "Paylaşın" + }, + "connected_title" : "Bağlandı", + "empty_search" : "Aramanız hiçbir sonuç vermedi", + "explore_all" : "Tümünü keşfedin", + "more_description" : "Marketler, borsalar ve daha fazlası", + "more_title" : "Tüm hizmetleri keşfedin", + "open_link" : "Bağlantıyı açın", + "popular_title" : "Popüler", + "remove_alert" : { + "approve_button" : "Kaldırın", + "title" : "“%{name}” kaldırılsın mı?" + }, + "search_label" : "Adresi arayın ya da girin", + "start_typing" : "Bir adres girin veya web'de arama yapın", + "title" : "Tarayıcı", + "web_search_title" : "%{searchEngine} Arama" + }, + "cancel" : "İptal", + "chart" : { + "check_connection" : "Lütfen bağlantınızı kontrol edin ve tekrar deneyin.", + "no_internet" : "İnternet bağlantısı yok", + "periods" : { + "1D" : "G", + "1H" : "H", + "1M" : "A", + "1Y" : "Y", + "6M" : "6 Ay", + "7D" : "H" + }, + "price" : "Fiyat" + }, + "check_words_caption" : "Kurtarma ifadenizi doğru yazıp yazmadığınızı kontrol etmek için lütfen %{wordNum1}, %{wordNum2} ve %{wordNum3} numaralı kelimeleri girin.", + "check_words_success" : "Tebrikler! Cüzdan kurulumunuzu tamamladınız", + "check_words_title" : "Haydi şimdi kontrol edelim", + "choose_country" : { + "title" : "Ülkenizi seçin" + }, + "choose_currency" : { + "currencies" : { + "AED" : "Birleşik Arap Emirlikleri dirhemi", + "BDT" : "Bangladeş takası", + "BRL" : "Brezilya reali", + "BYN" : "Belarus rublesi", + "CAD" : "Kanada doları", + "CHF" : "İsviçre frangı", + "CNY" : "Çin yuanı", + "EUR" : "Euro", + "GBP" : "İngiliz sterlini", + "GEL" : "Gürcistan larisi", + "IDR" : "Endonezya rupisi", + "ILS" : "İsrail şekeli", + "INR" : "Hint rupisi", + "IRR" : "İran riyali", + "JPY" : "Japon yeni", + "KRW" : "Güney Kore wonu", + "KZT" : "Kazakistan tengesi", + "NGN" : "Nijerya nairası", + "RUB" : "Rus rublesi", + "THB" : "Tayland bahtı", + "TRY" : "Türk lirası", + "UAH" : "Ukrayna hryvnyası", + "USD" : "Amerikan doları", + "UZS" : "Özbekistan somu", + "VND" : "Vietnam dongu" + }, + "header_title" : "Birincil para birimi" + }, + "confirm" : "Onaylayın", + "confirm_sending_amount" : "Tutar", + "confirm_sending_fee" : "Ücret", + "confirm_sending_inactive_warn_about" : "Ne yapmalısınız?", + "confirm_sending_inactive_warn_description" : "Eğer blok zincirinin sihir gerçekleştirmesini bekliyorsanız devam etmeyin. Çünkü böyle bir şey olmayacak.", + "confirm_sending_inactive_warn_title" : "Etkin olmayan sözleşme", + "confirm_sending_liquid_warn_description" : "Artık gönderilen stake edilmiş TON coin'lerden ödül almayacaksınız. Bu coin'lerin yeni sahibi ödülleri almaya başlayacak.", + "confirm_sending_liquid_warn_title" : "Not", + "confirm_sending_message" : "Yorum", + "confirm_sending_method_title" : "Kriptolarınızı %{name}'e göndermek istiyor musunuz?", + "confirm_sending_recipient" : "Alıcı", + "confirm_sending_recipient_address" : "Alıcı adresi", + "confirm_sending_sent_caption_btc" : "İşleminiz ağa gönderildi ve bir saat içinde işleme alınacak.", + "confirm_sending_sent_caption_ton" : "İşleminiz ağa gönderildi ve bir kaç saniye içinde işleme alınacak.", + "confirm_sending_submit" : "Onaylayın ve Gönderin", + "confirm_sending_title" : "Göndermeyi onaylayın", + "continue" : "Devam et", + "copied" : "Kopyalandı", + "copy_error_log" : "Hata kaydını kopyalayın", + "create_pin_current_title" : "Mevcut şifreyi girin", + "create_pin_new_title" : "Yeni şifre oluşturun", + "create_pin_repeat_title" : "Şifreyi tekrar girin", + "create_wallet_caption" : "Cihazınızı kaybetmeniz durumunda cüzdanınıza erişmenin ve hesabınızı kurtarmanın tek yolu olduğu için kurtarma ifadesini bir yere yazmanızı şiddetle tavsiye ederiz. Kurtarma ifadenizi kendinize e-posta yoluyla göndermeyin veya ekran görüntüsü almayın. Bu ifadeyi çevrimdışı şekilde saklamak daha güvenlidir.", + "create_wallet_continue_button" : "Devam et", + "create_wallet_generated" : "Cüzdanınız oluşturuldu!", + "create_wallet_generating" : "Cüzdan oluşturuluyor...", + "create_wallet_title" : "Bir kalem ve bir kağıt alın", + "decryption_error" : "Şifre çözme hatası", + "deploy_contract_button" : "Onaylayın ve dağıtımını gerçekleştirin", + "deploy_contract_title" : "Sözleşmenin dağıtımını gerçekleştirin", + "disable_nft_marketplace_banner_description" : "Toplayın ve takas edin.", + "dns_address_linked" : "Adres bağlandı", + "dns_address_unlinked" : "Adresin bağlantısı kaldırıldı", + "dns_current_address" : "Mevcut adresiniz", + "dns_expiration_date" : "Son geçerlilik tarihi", + "dns_link_title" : "İşlemi onaylayın", + "dns_on_sale_text" : "Alan adı şu anda pazar yerinde satışta. Transfer için önce satıştan kaldırmalısınız.", + "dns_renew_in_progress_btn" : "Alan adı yenileme işlemi devam ediyor... ", + "dns_renew_toast_success" : "Alan adı 1 yıllığına yenilendi", + "dns_renew_until_btn" : "%{untilDate} tarihine kadar yenileyin", + "dns_renew_valid_caption" : { + "one" : "%{count} gün içinde sona eriyor", + "other" : "%{count} gün içinde sona eriyor" + }, + "dns_replace_button" : "Değiştirin", + "dns_replace_description" : "{{domain}} alan adının bağlanacağı cüzdan adresini ekleyin.", + "dns_replace_save" : "Kaydet", + "dns_unlink_title" : "Bağlantıyı kaldırmayı onaylayın", + "dns_wallet_address" : "Cüzdan adresi", + "edit_coins_add" : "Ekle", + "edit_coins_added" : "Eklendi", + "edit_coins_added_toast" : "Eklendi", + "edit_coins_hide" : "Gizle", + "edit_coins_title" : "Kripto ekleyin", + "error_network" : "Ağ hatası", + "error_occurred" : "Bir hata oluştu", + "exchange_method_dont_show_again" : "Tekrar gösterme", + "exchange_method_open_warning" : "Tonkeeper tarafından işletilmeyen harici bir uygulamayı açıyorsunuz.", + "exchange_modal" : { + "hide" : "Gizle", + "other_ways_to_buy" : "Diğer satın alma seçenekleri", + "show_all" : "Tümünü göster", + "title" : "Satın Al veya Sat" + }, + "exchange" : { + "not_exists" : "Geçersiz takas kimliği" + }, + "exchange_other_ways" : "TON satın almak veya satmak için diğer seçenekler", + "exchange_telegram_bot" : "TELEGRAM BOTU", + "exchange_title" : "TON satın alın", + "form_optional_indicator" : "İsteğe bağlı", + "import_wallet_caption" : "Cüzdanınıza erişimi geri kazanmak için, cüzdanınızı oluşturduğunuz sırada size verilen 24 harften oluşan gizli kurtarma ifadesini girin.", + "import_wallet_reset_caption" : "Cüzdanınızı oluşturduğunuz sırada size verilen 24 harften oluşan gizli kurtarma ifadesini girerek cüzdanınıza erişimi geri kazanın.", + "import_wallet_title" : "Gizli kurtarma ifadenizi girin", + "import_wallet_wrong_words_err" : "Gizli kurtarma ifadesi hatalı", + "info_about_inactive_back" : "Geri", + "info_about_inactive_desc1" : "Tonkeeper bu adresin bir cüzdan adresi mi yoksa akıllı bir sözleşme adresi mi olduğunu bilmiyor.", + "info_about_inactive_desc2" : "Amacınız sadece cüzdana para yatırmak ise, devam edebilirsiniz.", + "info_about_inactive_desc3_1" : "Eğer bir akıllı sözleşmeden otomatik bir işlem gerçekleştirmesini bekliyorsanız,", + "info_about_inactive_desc3_2" : "- transfer işleminiz söz konusu adreste takılı kalabilir.", + "info_about_inactive_desc3_bold" : "DEVAM ETMEYİN", + "info_about_inactive_title" : "Etkin olmayan sözleşme", + "intro_continue_btn" : "Başlayın", + "intro_item1_caption" : "The Open Network'ün benzersiz mimarisi sayesinde, TON'daki işlemler saniyeler içinde gerçekleştirilir.", + "intro_item1_title" : "Birinci sınıf hız", + "intro_item2_caption" : "Tonkeeper, şifreleme anahtarlarınızı cihazınızda saklar. Tüm işlemler merkeziyetsiz protokoller aracılığıyla gerçekleştirildiğinden kripto paralarınız hiçbir zaman merkezi borsaların eline geçmez.", + "intro_item2_title" : "Uçtan uca güvenlik", + "intro_item3_caption" : "-", + "intro_item3_title" : "-", + "intro_title" : "XXXX'e hoş geldiniz", + "jetton_id" : "Token kimliği: %{jettonAddress}", + "jetton_id_copied" : "Token kimliği kopyalandı", + "jetton_name" : "%{name} Token", + "jetton_open_explorer" : "Detayları görüntüleyin", + "jetton_price" : "Fiyat:", + "jettons_list_title" : "Token'lar", + "jettons_manage_tokens" : "Token'ları yönetin", + "jettons_show_jettons" : "Cüzdandaki token'ları göster", + "jetton_token" : "Token", + "later" : "Daha sonra", + "legal_font_license" : "Montserrat yazı tipi", + "legal_header_title" : "Hukuki açıklama", + "legal_licenses_title" : "Lisanslar", + "legal_privacy" : "Gizlilik politikası", + "legal_terms" : "Kullanım şartları", + "link_copied" : "Bağlantı kopyalandı", + "loading" : "Yükleniyor", + "manage_other_coins" : "Kripto paralarımı yönet", + "migration_cancel_btn" : "Daha sonra yükselt", + "migration_caption" : "Tonkeeper, üyelik ödemelerini destekleyen yeni bir cüzdan formatı sunuyor. Bakiyeniz yeni bir adrese transfer edilecektir. Gizli kurtarma ifadeniz aynı kalacaktır.", + "migration_failed" : "Geçiş işlemi başarısız oldu. Bakiyeniz transfer edilemiyor.", + "migration_fee_info" : "Ağ ücreti ≈%{tonFee} TON (%{fiatFee})", + "migration_in_progress" : "Cüzdan v4'e geçiş devam ediyor", + "migration_migrate_btn" : "Cüzdanı yükseltin", + "migration_new_wallet" : "Yeni adres", + "migration_old_wallet" : "Eski adres", + "migration_title" : "Cüzdanınızı yükseltin", + "nft_about_collection" : "Koleksiyon hakkında", + "nft_about_dns" : "TON DNS, kullanıcıların kripto cüzdanlarına, akıllı sözleşmelere ve web sitelerine insan tarafından okunabilir bir isim atamasına olanak tanıyan bir hizmettir. TON DNS ile merkeziyetsiz hizmetlere erişim, İnternetteki web sitelerine erişime benzer.", + "nft_browse_markets" : "Piyasalara göz atın", + "nft_chain" : "Zincir", + "nft_change_owner_title" : "Koleksiyon sahibini değiştir", + "nft_change_theme" : "Temayı değiştir", + "nft_collection" : "Koleksiyon", + "nft_collection_name" : "Koleksiyon adı", + "nft_confirm_operation" : "Onaylayın", + "nft_contract_address" : "Sözleşme adresi", + "nft_deploy_collection_title" : "NFT Koleksiyonu Oluşturun", + "nft_details" : "Detaylar", + "nft_diamonds_description" : "TON Diamonds, Tonkeeper cüzdanınızdaki temayı değiştirme gücüne sahiptir ve temanızın rengini NFT'nizin rengiyle eşleştirir.", + "nft_features" : "Özellikler", + "nft_fee" : "Ücret", + "nft_fee_and_royalties" : "Ücretler ve telif hakları", + "nft_hide_details" : "Detayları gizle", + "nft_item_deploy_title" : "NFT'i Mint'leyin", + "nft_item_name" : "NFT ismi", + "nft_link_domain_button" : "Alan adını bağlayın", + "nft_link_domain_caption" : "Alan adını bağladıktan sonra, onu transfer edebilir ve adresiniz için bir takma ad olarak kullanabilirsiniz.", + "nft_link_domain_mismatch_warn" : "Alan adı mevcut adresinizle bağlantılı değil. Bu alan adını içeren işlemlerde dikkatli olun.", + "nft_link_username_button" : "İsmi bağlayın", + "nft_link_username_caption" : "İsmi bağladıktan sonra, onu transfer edebilir ve adresiniz için bir takma ad olarak kullanabilirsiniz.", + "nft_link_username_mismatch_warn" : "İsim mevcut adresinizle bağlantılı değil. Bu ismi içeren işlemlerde dikkatli olun.", + "nft_marketplace_address" : "Pazar yeri", + "nft_marketplace_banner_description" : "Satın alın, satın, toplayın ve takas edin.", + "nft_marketplace_banner_title" : "NFT tokenleriniz burada saklanacaktır", + "nft_marketplaces" : "Keşfedin", + "nft_marketplaces_title" : "NFT Marketleri", + "nft_metadata" : "Metadata", + "nft_more" : "Genişlet", + "nft_new_owner_address" : "Yeni sahibin adresi", + "nft_on_sale" : "Satışta", + "nft_on_sale_text" : "NFT şu anda pazar yerinde satışta. Transfer için önce satıştan kaldırmalısınız.", + "nft_open_in_marketplace" : "NFT Marketi'nde görüntüleyin", + "nft_operations_expired" : "İstek zaman aşımına uğradı, lütfen tekrar deneyin", + "nft_operation_success" : "Tamamlandı", + "nft_owner_address" : "Sahibi", + "nft_price" : "Fiyat", + "nft_proceeds" : "Kazancınız", + "nft_properties" : "Özellikler", + "nft_royalty" : "Telif Hakkı", + "nft_royalty_address" : "Telif hakkı adresi", + "nft_sale_cancel_title" : "Satıştan kaldırın", + "nft_sale_place_title" : "NFT'yi satın", + "nft_show_details" : "Detayları göster", + "nft_single_nft" : "Tek NFT", + "nft_standard" : "Token Standardı", + "nft_title" : "NFT'ler", + "nft_token_id" : "Token Kimliği", + "nft_transaction_head_placeholder" : "NFT", + "nft_transfer_comment" : "Yorum", + "nft_transfer_description" : "NFT bu adrese gönderilecek. Başka bir kullanıcıya NFT gönderirken dikkatli olun.", + "nft_transfer_dns" : "Transfer edin", + "nft_transfer_nft" : "Transfer edin", + "nft_transfer_recipient" : "Alıcı", + "nft_transfer_title" : "NFT'i transfer edin", + "nft_unlink_domain_button" : "{{address}} ile bağlantılı", + "nft_unnamed_collection" : "İsimsiz koleksiyon", + "nft_view_in_explorer" : "Explorer'da görüntüleyin", + "notifications" : { + "alert" : { + "cancel" : "İptal", + "description" : "Bildirimdeki bağlantı adresi uygulama adresiyle eşleşmiyor.", + "open" : "Yine de aç", + "title" : "Harici bir bağlantıyı açmak istediğinizden emin misiniz?" + }, + "allow_notifications" : "Bildirimleri etkinleştirin", + "apps" : "Uygulamalar", + "apps_description" : "Etkinlik sekmenizdeki bağlı uygulamalardan gelen bildirimler", + "disconnect_app" : "%{app_name} uygulamasının bağlantısını kesin", + "disconnected_app" : "Uygulama bağlantısı kesildi", + "earlier" : "Daha önce", + "from_connected" : "Bağlı uygulamalardan", + "muted" : "Bildirimler sessize alındı", + "mute_notifications" : "Bildirimleri sessize al", + "notifications" : "Bildirimler", + "placeholder" : { + "description" : "Uygulamaları ve hizmetleri Tonkeeper tarayıcısında keşfedin.", + "title" : "Bildirimler burada gösterilecektir" + }, + "report" : "Rapor edin" + }, + "notifications_disabled_action" : "Ayarları Aç", + "notifications_disabled_description" : "Telefonunuzun ayarlarında bildirimleri kapattınız. Bildirimleri etkinleştirmek için cihazınızdaki Ayarlar'a gidin.", + "notifications_disabled_title" : "Bildirimler devre dışı bırakıldı", + "notifications_not_supported" : "Cihazınızda bildirimler desteklenmiyor", + "notifications_switch_title" : "Anlık bildirimler", + "notifications_title" : "Bildirimler", + "notification_switch_description" : "Bağlı uygulamalardan cüzdanınıza TON, token ve NFT geldiğinde bildirim alın.", + "notify_connection_err_caption" : "%{host} yanıt vermiyor. Lütfen daha sonra tekrar deneyin.", + "notify_connection_err_caption_few" : "%{hosts} ve %{lastHost} yanıt vermiyor. Lütfen daha sonra tekrar deneyin.", + "notify_connection_err_title" : "Sunucuya bağlanılamadı", + "notify_incorrect_time_err_caption" : "Cihaz ayarlarında otomatik saat ve tarih ayarını etkinleştirin. Saatin otomatik olarak ayarlanmaması, kripto transferlerini etkileyebilir.", + "notify_incorrect_time_err_title" : "Saat ve tarih yanlış", + "notify_no_signal_caption" : "Lütfen internet bağlantınızı kontrol edin.", + "notify_no_signal_title" : "Sinyal yok", + "passcode_changed" : "Şifre değiştirildi", + "paste" : "Yapıştır", + "pin_enter_faceid_err" : "Biyometrik doğrulama başarısız oldu", + "pin_enter_skip_faceid_err" : "Biyometrik kimlik doğrulama gereklidir", + "platform" : { + "android" : { + "capitalized_face_recognition" : "Yüz tanıma", + "capitalized_fingerprint" : "Parmak izi", + "face_recognition" : "yüz tanıma", + "face_recognition_genitive" : "yüz tanıma", + "fingerprint" : "Parmak izi", + "fingerprint_genitive" : "Parmak izi" + }, + "ios" : { + "capitalized_face_recognition" : "Yüz kimliği", + "capitalized_fingerprint" : "Touch ID", + "face_recognition" : "Yüz kimliği", + "face_recognition_genitive" : "Yüz kimliği", + "fingerprint" : "Touch ID", + "fingerprint_genitive" : "Touch ID" + } + }, + "programmable_nfts" : { + "alert" : { + "cancel" : "İptal", + "description" : "Bu harici bağlantıyı yalnızca koleksiyonu çıkartana güveniyorsanız ziyaret edin. {{uri}}", + "open" : "Yine de aç", + "title" : "Harici bir bağlantıyı açmak istediğinizden emin misiniz?" + } + }, + "receive_address_title" : "ya da cüzdan adresini kullanın", + "receive_copy" : "Kopyala", + "receiveModal" : { + "copy" : "Kopyala", + "receive" : "Al", + "receive_ton" : "Bu adrese yalnızca TON ağındaki TON ve token'ları gönderin, öteki türlü kripto varlıklarınızı kaybedebilirsiniz." + }, + "receive_qr_title" : "Almak için QR kodunu gösterin", + "receive_received_title" : "%{amount} %{currency} aldınız", + "receive_share" : "Paylaş", + "receive_title" : "%{currency} al", + "receive_ton_and_jettons" : "TON ve diğer token'ları cüzdana alın", + "refresh_app" : "Yeniden Başlat", + "reminder_notifications_caption" : "Cüzdanınıza TON, token ve NFT geldiğinde bildirimler alın.", + "reminder_notifications_enable_button" : "Bildirimleri etkinleştirin", + "reminder_notifications_later_button" : "Daha sonra", + "reminder_notifications_title" : "Anlık bildirimler alın", + "require_create_wallet_modal_caption" : "Tonkeeper'ı kullanmak için bağlı bir cüzdana ihtiyacınız var. Bunun için ya yeni bir cüzdan oluşturun ya da mevcut bir cüzdanı içe aktarın.", + "require_create_wallet_modal_create_new" : "Yeni cüzdan oluşturun", + "require_create_wallet_modal_import" : "Mevcut cüzdanı içe aktarın", + "require_create_wallet_modal_title" : "Haydi şimdi cüzdanınızı ayarlayalım", + "scan_qr_open_settings" : "Ayarları Aç", + "scan_qr_permission_error" : "QR kodlarını tarayabilmek için kameraya erişime izin verin", + "scan_qr_title" : "QR kodunu tarayın", + "secret_words_caption" : "Bu 24 kelimeyi aşağıda verilen sırayla not edin ve gizli, güvenli bir yerde saklayın.", + "secret_words_title" : "Gizli kurtarma ifadeniz", + "security_change_passcode" : "Şifreyi değiştirin", + "security_migration_caption" : "Artık bakiyeniz ve tüm işlemleriniz bir şifre ile güvence altına alınmıştır. Biyometrik kontrol ile de işlemlerinizi hızlandırabilirsiniz.", + "security_migration_skip_button" : "Şimdi güncelleme yapmayın", + "security_migration_submit_button" : "Güvenlik ayarlarını güncelleyin", + "security_migration_title" : "Cüzdan güvenliğini güncelleyin", + "security_reset_passcode" : "Şifreyi sıfırlayın", + "security_title" : "Güvenlik", + "security_use_biometry_switch" : "%{biometryType} kullanın", + "security_use_biometry_tip" : "Cüzdanınızı her zaman bir şifre ile açabilirsiniz.", + "send_address_placeholder" : "Adres veya isim", + "send_all_warning_title" : "Tüm bakiyenizi göndermek istediğinizden emin misiniz?", + "send_build_tx_error" : "İşleminiz başarısız oldu", + "send_comment_label" : "Yorum ekleyin", + "send_fee_estimation_error" : "Ücret hesaplanamadı", + "send_get_wallet_info_error" : "Cüzdan bilgileri alınamadı", + "send_insufficient_funds" : "Yetersiz bakiye", + "send_invalid_recipient_caption" : "Alan adı mevcut değil ya da cüzdan adresi ile bağlantılı değil", + "send_invalid_recipient_title" : "Geçersiz alıcı", + "send_lockup_warning_caption" : "Lütfen izin verilen adrese gönderdiğinizden emin olun. İşlem başarısız olsa bile işlem ücreti kesilecektir.", + "send_lockup_warning_submit_button" : "Gönder", + "send_lockup_warning_title" : "Tutar likit bakiyeyi aşıyor", + "send_publish_tx_error" : "İşlem gönderimi başarısız oldu", + "send_screen_steps" : { + "address" : { + "delete_alert_text" : "Favorilerinizden «%{name}» kullanıcısını kaldırmak istediğinize emin misiniz?", + "placeholder" : "Cüzdan adresi veya alan adı", + "recent_label" : "En son", + "suggest_actions" : { + "add" : "Favorilere ekleyin", + "delete" : "Sil", + "edit" : "Favoriyi düzenleyin", + "hide" : "Gizle" + }, + "suggests_label" : "Favoriler ve en son erişilenler", + "title" : "Alıcı" + }, + "amount" : { + "insufficient_balance" : "Yetersiz bakiye", + "less_than_min" : "Minimum %{minAmount} TON", + "liquid_jetton_note" : "tsTON likidite tokeni gönderiliyor", + "max" : "Maksimum", + "recipient_label" : "Alıcı:", + "remaining" : "Mevcut: %{amount}", + "title" : "Tutar" + }, + "comfirm" : { + "action" : "%{coin} transferi", + "comment_decrypt" : "Şifreyi çöz", + "comment_description" : "Herkes tarafından görülebilir olacaktır.", + "comment_description_encrypted" : "Sadece alıcı ve siz tarafından görülebilecektir.", + "comment_encrypt" : "Yorumu şifrele", + "comment_label" : "Yorum", + "comment_label_required" : "Gerekli yorum", + "comment_required_text" : "Transfer için borsanın notunu eklemelisiniz. Aksi takdirde gönderdiğiniz tutarlar kaybolacaktır.", + "details_label" : "Detaylar", + "details_max_balance_label" : "Maksimum %{currency} bakiye gönderiliyor", + "title" : "İşlemi onaylayın" + }, + "done" : { + "add_favorite" : "Adresi favorilere kaydet", + "address" : "Adres: %{address}", + "comment" : "Yorum: %{comment}", + "description" : "İşleminiz ağa gönderildi ve birkaç saniye içinde işleme alınacak.", + "done_label" : "Tamamlandı", + "favorite_saved" : "Favorilere kaydedildi", + "fee" : "Ücret: %{fee}", + "title" : "%{currency} gönderildi!", + "to" : "Alıcı: %{name}" + } + }, + "send_sending_failed" : "Gönderim başarısız oldu", + "send_sending_wrong_time_description" : "Cihaz ayarlarında otomatik saat ve tarih ayarını açın. Ardından transfer işleminizi yeniden deneyin.", + "send_sending_wrong_time_title" : "Hata oluştu", + "send_title" : "%{currency} gönder", + "settings_appearance" : "Tema", + "settings_backup_seed" : "Gizli kurtarma ifadesini göster", + "settings_contact_support" : "Bize Ulaşın", + "settings_delete_account" : "Hesabı sil", + "settings_delete_alert_button" : "Hesabı ve verileri sil", + "settings_delete_alert_caption" : "Bu işlem hesabınızı ve bu uygulamadaki tüm verilerinizi silecektir.", + "settings_delete_alert_title" : "Hesabınızı silmek istediğinize emin misiniz?", + "settings_jettons_list" : "Token'lar", + "settings_legal_documents" : "Hukuki açıklama", + "settings_network_alert_title" : "Ağ seçin", + "settings_news" : "Tonkeeper Haberleri", + "settings_notifications" : "Bildirimler", + "settings_primary_currency" : "Para birimi", + "settings_rate" : "Tonkeeper'i değerlendirin", + "settings_recovery_phrase" : "Gizli kurtarma ifadesi", + "settings_reset" : "Oturumu kapat", + "settings_reset_alert_button" : "Oturumu kapat", + "settings_reset_alert_caption" : "Bu işlem, cüzdan anahtarlarını siler. Gizli kurtarma ifadesini yedeklediğinizden emin olun.", + "settings_reset_alert_title" : "Oturum kapatılsın mı?", + "settings_search_engine" : "Arama", + "settings_security" : "Güvenlik", + "settings_subscriptions" : "Üyelikler", + "settings_support" : "Destek", + "settings_title" : "Ayarlar", + "settings_to_mainnet" : "Mainnet'e geçiş yapın", + "settings_to_testnet" : "Testnet'e geçiş yapın", + "settings_version" : "Sürüm", + "settings_wallet_version" : "Aktif adres", + "setup_biometry_caption" : "%{biometryType}, şifrenizi girmeden cüzdanınızı daha hızlı açmanıza olanak tanır.", + "setup_biometry_enable_button" : "%{biometryType} özelliğini etkinleştirin", + "setup_biometry_title" : "%{biometryType} ile hızlı oturum açma", + "setup_notifications_caption" : "Cüzdanınıza TON, token ve NFT geldiğinde bildirimler alın.", + "setup_notifications_enable_button" : "Bildirimleri etkinleştirin", + "setup_notifications_title" : "Anlık bildirimler alın", + "skip" : "Atla", + "spam_action" : "İstenmeyen mesaj", + "staking" : { + "active" : "Aktif", + "confirm" : { + "address" : { + "label" : "Alıcı adresi" + }, + "amount" : { + "label" : "Tutar", + "value" : "%{value} TON" + }, + "fee" : { + "label" : "Ücret", + "value" : "≈ %{value} TON" + }, + "recipient" : { + "label" : "Alıcı" + }, + "withdraw_amount" : { + "label" : "Çekilecek tutar" + } + }, + "confirm_deposit" : "Onaylayın ve yatırın", + "deposit" : "Yatırma", + "desc_large" : "TONcoin stake edenler arasına katılın ve ödüller kazanın. Staking, TON ağını korumaya yardımcı olur.", + "details" : { + "about_pool" : "Detaylar", + "apy" : { + "highest_tag" : "MAKS", + "label" : "APY", + "value" : "≈ %{value}%" + }, + "balance" : "Staking bakiyesi", + "cooldown" : { + "active" : "Aktif", + "desc" : "Her staking döngüsünün başında çekme ve yatırma işlemlerini iyileştirmek için uygulanan iki saatlik bir süre", + "title" : "Bekleme süresi" + }, + "frequency" : { + "label" : "Ödül sıklığı", + "value" : "Her %{count} saatte bir" + }, + "links_title" : "Bağlantılar", + "liquidity_token" : { + "label" : "%{token} likidite tokeni", + "value" : "Daha fazla bilgi edinin" + }, + "min_deposit" : { + "label" : "Minimum yatırabilecek tutar", + "value" : "%{value} TON" + }, + "next_cycle" : { + "desc" : "Tüm işlemler, döngü sona erdikten sonra geçerli olur.", + "desc_liquid" : "Tüm çekim talepleri, döngü sona erdiğinde gerçekleştirilir.", + "in" : ":", + "reward_title" : "Sonraki ödül", + "title" : "Sonraki döngü" + }, + "note" : "Staking, üçüncü taraflar tarafından yazılan akıllı sözleşmelere dayanmaktadır. Tonkeeper, staking deneyiminizden sorumlu değildir.", + "pendingDeposit" : "Yatırma bekleniyor", + "pendingWithdraw" : "Çekme bekleniyor", + "pendingWithdrawDesc" : "döngünün sonunda", + "pool_address" : { + "label" : "Havuz adresi" + }, + "readyWithdraw" : "Çekim için hazır", + "socials" : { + "telegram" : "Topluluk", + "twitter" : "Twitter" + }, + "tap_to_collect" : "Çekmek için dokunun" + }, + "estimated_profit" : "%{amount} TON - Eğer bugün TON stake ederseniz kazanacağınız yıllık kâr", + "get_withdrawal" : "Çekim yapın", + "highest_apy" : "MAKS. APY", + "learn_more" : "Daha fazla bilgi edinin", + "message" : { + "pendingDeposit" : "%{amount} TON eklenecek", + "pendingWithdraw" : "%{amount} TON çekilecek", + "readyWithdraw" : "%{amount} TON çekilmeye hazır.\nÇekmek için dokunun" + }, + "not_exists" : "Geçersiz havuz adresi", + "other" : "Diğer", + "rewards" : { + "after_top_up" : "Yatırma işleminden sonra", + "current" : "Güncel", + "title" : "APY'niz", + "value" : "≈ %{value} TON" + }, + "send_staked_ton" : "Stake edilmiş TON", + "staked_ton" : "Stake edilmiş TON", + "staking_desc" : "Minimum yatırma tutarı %{minStake} TON'dur. Azami %{maxApy}% oranında getiri elde edebilirsiniz.", + "staking_pool_desc" : "APY ≈ %{apy}%", + "title" : "Staking", + "title_large" : "TON Staking", + "top_up" : "Yatırma", + "transaction" : "İşlem", + "warning" : { + "about" : "%{name} hakkında", + "beta_desc" : "Staking işleminin istikrarından ve işlem sırasındaki deneyiminizden sorumlu değiliz. Bu hizmeti, tüm riski sadece kendinize ait olduğunu unutmadan kullanınız.", + "desc" : "Staking, üçüncü taraflar tarafından yazılan akıllı sözleşmelere dayanmaktadır. Tonkeeper olarak söz konusu üçüncü tarafların çalışmaları bakımından herhangi bir sorumluluğumuz bulunmamaktadır.", + "title" : "Uyarı" + }, + "widget_desc" : "%{apy}% kadar APY", + "widget_title" : "TON kazanın", + "withdraw" : "Çekme", + "withdrawal_fee_warning" : { + "continue" : "Yine de devam et", + "message" : "Lütfen bakiyenizde en az {{amount}} TON bırakın.", + "title" : "Çekim yapmak için yeterli bakiyeniz bulunmamaktadır" + }, + "withdrawal_request" : "Çekme talebi" + }, + "subscription_back_to_merchant_button" : "Geri", + "subscription_back_to_merchant_caption" : "Talebiniz işleniyor. Üyeliğiniz yakında aktif olacaktır.", + "subscription_back_to_merchant_name" : "%{merchantName}'e geri dön", + "subscription_back_to_merchant_title" : "Kanala geri dönülsün mü?", + "subscription_cancel" : "Üyeliği iptal et", + "subscription_cancel_alert_cancel_btn" : "Şimdi değil", + "subscription_cancel_alert_caption" : "Şimdi iptal ederseniz, hâlâ üyeliğinize %{nextBill} tarihine kadar erişebilirsiniz", + "subscription_cancel_alert_submit_btn" : "Evet, iptal et", + "subscription_cancel_alert_title" : "Üyeliği iptal etmek istiyor musunuz?", + "subscription_expiring" : "Süresi sona eriyor", + "subscription_fee" : "Ücret", + "subscription_next_bill" : "Sonraki fatura", + "subscription_open_merchant" : "Telegram'da aç", + "subscription_period" : "Aralık", + "subscription_period_custom" : "Her %{period} ", + "subscription_period_day" : "Günlük", + "subscription_period_half_year" : "Altı aylık", + "subscription_period_hour" : "Saatlik", + "subscription_period_month" : "Aylık", + "subscription_period_quarter" : "Üç aylık", + "subscription_period_week" : "Haftalık", + "subscription_period_weeks" : "Her %{count} haftada bir", + "subscription_period_year" : "Yıllık", + "subscription_price" : "Fiyat", + "subscription_sent" : "İşlem gönderildi", + "subscriptions_item_caption" : "%{price} TON, sonraki fatura %{nextBill} tarihinde düzenlenecektir", + "subscriptions_item_caption_expired" : "%{date} tarihinde süresi dolmuş", + "subscriptions_item_caption_expiring" : "%{price} TON, %{date} tarihinde süresi doluyor", + "subscriptions_section_active" : "Aktif", + "subscriptions_section_expired" : "Süresi dolmuş", + "subscription_started" : "Üyelik başlatıldı", + "subscriptions_title" : "Üyelikler", + "subscription_subscribe" : "Üye ol", + "subscription_title" : "Üyelik", + "subscription_unsubscribe" : "Üyelikten çık", + "success" : "Başarılı!", + "swap_title" : "Takas", + "tab_browser" : "Tarayıcı", + "tab_nft" : "NFT'ler", + "tab_settings" : "Ayarlar", + "tab_swap" : "Takas", + "tab_wallet" : "Cüzdan", + "today" : "Bugün", + "ton_login_back_to_button" : "%{name}'e geri dön", + "ton_login_caption" : "%{name}, cüzdan adresinize erişim istiyor", + "ton_login_connect_button" : "Cüzdanı bağlayın", + "ton_login_notice" : "Cüzdanı bağlamadan önce servis adresini kontrol ettiğinizden emin olun.", + "ton_login_success" : "Tamamlandı", + "ton_login_title" : "%{name}'e bağlanılsın mı?", + "transaction_bid_collection_name" : "Koleksiyon yayıncısı", + "transaction_bid_date" : "%{date} tarihli teklif", + "transaction_bid_dns" : "İsim", + "transaction_buy_date" : "%{date} tarihinde satın alındı", + "transaction_buy_status_failed" : "Başarısız", + "transaction_buy_status_pending" : "Beklemede", + "transaction_buy_status_success" : "Başarılı", + "transaction_confirmations" : "Onaylar", + "transaction_confirm_bid" : "Teklifi onayla", + "transaction_contract_deploy_date" : "%{date}", + "transaction_copy_caution" : "Harici bağlantılara dikkat edin. Gizli kurtarma ifadenizi üçüncü taraflarla asla paylaşmayın - yoksa tüm bakiyenizi kaybedebilirsiniz.\n\n- - -\n\n", + "transactionDetails" : { + "address" : "Adres", + "bid_collection_name" : "Koleksiyon yayıncısı", + "bid_name" : "İsim", + "comment" : "Yorum", + "operation" : "İşlem", + "payload" : "Bloğun yararlı yükü", + "recipient" : "Alıcı", + "recipient_address" : "Alıcı adresi", + "sender" : "Gönderen", + "sender_address" : "Gönderen adresi", + "spam" : "İstenmeyen mesaj", + "subscription_merchant_label" : "Satıcı", + "subscription_product_label" : "Üyelik", + "transaction" : "İşlem", + "unsubscription_title" : "Üyelikten çıkıldı" + }, + "transaction_exchange_from_currency" : "Satılan", + "transaction_fee" : "Ücret", + "transaction_hash" : "İşlem", + "transaction_merchant" : "Satıcı", + "transaction_message" : "Mesaj", + "transaction_purchase_id" : "Satın Alma Kimliği", + "transaction_receive_date" : "%{date} tarihinde alındı", + "transaction_recipient" : "Alıcı", + "transaction_recipient_address" : "Alıcı adresi", + "transaction_refund" : "İade", + "transactions" : { + "bid" : "Teklif ver", + "burned" : "Yakıldı", + "contract_deploy" : "Sözleşme Dağıtımı", + "deposit" : "Yatırma", + "failed" : "Başarısız", + "nft_purchase" : "NFT Satın Alma", + "smartcontract_exec" : "Sözleşme çağrısı yap", + "spam" : "İstenmeyen mesaj", + "subscription" : "Üye olundu", + "swap" : "Takas", + "unknown" : "Bilinmeyen", + "unknown_description" : "Bir şeyler oldu ancak anlayamadık", + "unsubscription" : "Üyelikten çıkıldı", + "wallet_initialized" : "Cüzdan başlatıldı", + "withdraw" : "Çekme", + "withdrawal_request" : "Çekme talebi" + }, + "transaction_sender" : "Gönderen", + "transaction_sender_address" : "Gönderen adresi", + "transaction_send_more_button" : "Bu alıcıya daha fazla gönderin", + "transaction_sent_date" : "%{date} tarihinde gönderildi", + "transaction_show_subscription_button" : "Üyeliği görüntüle", + "transaction_status" : "Durum", + "transaction_subscription" : "Üyelik", + "transaction_subscription_date" : "%{date} tarihinde ücret tahsil edildi", + "transaction_transfer_name" : "Transfer adı", + "transaction_type_bid" : "Teklif verme", + "transaction_type_bounced" : "Geri iade edildi", + "transaction_type_buy" : "Satın alındı", + "transaction_type_contract_deploy" : "Sözleşme Dağıtımı", + "transaction_type_from" : "Alındı:", + "transaction_type_new_subscriber" : "Yeni üye", + "transaction_type_pending" : "Beklemede", + "transaction_type_receive" : "Alındı", + "transaction_type_sent" : "Gönderildi", + "transaction_type_subscriber_lost" : "Üye kaybedildi", + "transaction_type_subscription" : "Üye olundu", + "transaction_type_to" : "Gönderildi:", + "transaction_type_unsubscription" : "Üyelikten çıkıldı", + "transaction_type_wallet_initialized" : "Cüzdan başlatıldı", + "transaction_unsubscription" : "Üyelikten çıkma", + "transaction_unsubscription_date" : "%{date}", + "transaction_view_in_explorer" : "Explorer'da görüntüleyin", + "transaction_wallet_initialized_date" : "%{date}", + "transaction_your_bid" : "Teklifiniz", + "transfer_deeplink_address_error" : "Hatalı alıcı adresi", + "transfer_deeplink_amount_error" : "Hatalı tutar isteği", + "transfer_deeplink_nft_address_error" : "Hatalı NFT adresi", + "transfer_from_old_wallet_btn" : "Transfer et", + "transfer_from_old_wallet_caption" : "Tonkeeper, tüm coin'leri eski adresinizden yeni adresinize transfer edecek.", + "transfer_from_old_wallet_in_progress" : "Transfer işlemi devam ediyor", + "transfer_from_old_wallet_title" : "Mevcut adrese transfer et", + "txActions" : { + "amount" : "Tutar", + "fee" : "Ücret", + "refund" : "İade", + "signRaw" : { + "addressMismatch" : { + "wrongVersion" : { + "close" : "İptal", + "description" : "İşlemi onaylamak için etkin adresinizi %{version} olarak değiştirin.", + "switch" : "Değiştir ve devam et", + "title" : "Cüzdanınızın başka bir adresi için işlem" + }, + "wrongWallet" : { + "close" : "Tamam", + "description" : "%{address} numaralı başka bir cüzdan ile giriş yapın ve tekrar deneyin.", + "title" : "Başka bir cüzdan için işlem" + } + }, + "comment" : "Yorum", + "insufficientFunds" : { + "rechargeWallet" : "Cüzdana yeniden bakiye yükleyin", + "stakingFee" : "İşlem için %{amount} TON gerekiyor. Tahminen %{fee} TON ücret kesilecek, geri kalanı iade edilecektir.", + "title" : "Yetersiz bakiye", + "toBePaid" : "Ödenecek tutar: %{amount} %{currency}\n", + "withFees" : "+ blokzinciri ücretleri.\n", + "yourBalance" : "Bakiyeniz: %{balance} %{currency}." + }, + "recipient" : "Alıcı", + "title" : "İşlemi onaylayın", + "totalFee" : "Toplam ücret", + "totalRefund" : "Toplam iade tutarı", + "types" : { + "contractDeploy" : "Sözleşme Dağıtımı", + "jettonTransfer" : "Token Transferi", + "nftItemTransfer" : "NFT Transferi", + "subscribe" : "Üyelik", + "tonTransfer" : "TON Transferi", + "unknownTransaction" : "Bilinmeyen işlem", + "unSubscribe" : "Üyelikten çıkma" + }, + "warning_caption" : "Tonkeeper bu işlemin sonucunu tam olarak doğrulayamaz. Alıcının güvenilir olduğundan emin olun.", + "warning_title" : "Uyarı", + "wrongTime" : { + "button" : "Ayarları Aç", + "description" : "Cihazınızın saati ağ ile senkronize edilmemiş gibi görünüyor. Cihaz ayarlarına gidin ve otomatik saat ve tarih ayarını etkinleştirin.", + "title" : "Saatler senkronize değil" + } + } + }, + "update" : { + "description" : "Tonkeeper'in yeni bir sürümü mevcut. Şimdi indirebilirsiniz.", + "download" : "İndir", + "downloading" : "İndiriliyor... {{progress}}%", + "mb" : "{{size}} MB", + "remindLater" : "Daha sonra hatırlat", + "retry" : "İndirme hatası. Yeniden denemek için dokunun.", + "tap" : "Güncellemek için dokunun", + "title" : "Tonkeeper'ı güncelleyin", + "version" : "Sürüm {{version}}" + }, + "username_issued_by_telegram" : "Telegram tarafından verilmiştir", + "username_manage_name_button" : "İsmi yönet", + "wallet_about" : "Hakkında", + "wallet_buy" : "Satın al", + "wallet" : { + "buy_btn" : "TON satın alın", + "collectibles_tab_lable" : "Koleksiyon varlıkları", + "edit_tokens_btn" : "Düzenle", + "old_wallets_title" : "Eski cüzdanlar", + "old_wallet_title" : "Eski cüzdan", + "receive_btn" : "Al", + "screen_title" : "Cüzdan", + "send_btn" : "Gönder", + "swap_btn" : "Takas", + "tonkens_tab_lable" : "Tokenlar" + }, + "wallet_chat" : "Sohbet", + "wallet_community" : "Topluluk", + "wallet_hours_symbol" : "s", + "wallet_old_balance" : "Eski cüzdan:", + "wallet_receive" : "Al", + "wallet_sell" : "Sat", + "wallet_send" : "Gönder", + "wallet_source_code" : "Kaynak kodu", + "wallet_swap" : "Takas", + "wallet_title" : "Cüzdan", + "yesterday" : "Dün" +} \ No newline at end of file diff --git a/packages/shared/i18n/locales/tonkeeper/zh-Hans-CN.json b/packages/shared/i18n/locales/tonkeeper/zh-Hans-CN.json new file mode 100644 index 000000000..8cc5646e1 --- /dev/null +++ b/packages/shared/i18n/locales/tonkeeper/zh-Hans-CN.json @@ -0,0 +1,845 @@ +{ + "about_ton" : "TON 是 Telegram 为数十亿用户设计的完全去中心化的第一层区块链。它拥有超快的交易速度、极低的费用、易于使用的应用程序,并且非常环保。", + "access_confirmation_logout" : "退出登录", + "access_confirmation_reset" : "重置", + "access_confirmation_title" : "输入密码", + "access_confirmation_update_biometry" : "输入密码以使用生物识别身份验证数据", + "access_denied" : "访问被禁止", + "account_deleted" : "账户已删除", + "activity" : { + "buy_toncoin_btn" : "购买Toncoin", + "empty_transaction_caption" : "进行您的第一笔交易!", + "empty_transaction_title" : "您的活动将在此显示", + "failed_transaction" : "失败", + "receive_btn" : "接收", + "received" : "已接收", + "screen_title" : "活动", + "sent" : "已发送" + }, + "add_edit_favorite" : { + "address_label" : "地址", + "add_title" : "新的收藏", + "delete" : "删除", + "edit_title" : "编辑收藏", + "name_placeholder" : "名称", + "save" : "保存" + }, + "add_other_coins" : "增添代币", + "address_copied" : "地址已复制", + "appearance_accent_name" : { + "andromeda" : "仙女座", + "arctic" : "北极", + "azure" : "湛蓝", + "coral" : "珊瑚", + "cosmos" : "宇宙", + "default" : "Tonkeeper", + "flamingo" : "火烈鸟", + "fluid" : "渐变", + "galaxy" : "银河", + "iris" : "鸢尾", + "marine" : "海洋", + "ocean" : "大海", + "sky" : "天空" + }, + "appearance_confirm" : "设置", + "appearance_description" : "TON Diamonds NFT将使您的钱包更加丰富多彩和独特。", + "appearance_title" : "主题", + "app_name" : "Tonkeeper", + "approval" : { + "accept" : "接受", + "accepted" : "已接受", + "accepted_at_collection" : "在 %{date} 接受", + "accepted_at_token" : "在 %{date} 接受", + "approve_all" : "接受所有", + "approve_collection_many" : "批准来自 \"%{collection}\" 集合的传入代币", + "approve_collection_one" : "批准来自 \"%{collection}\" 集合的传入代币", + "approve_many" : "批准 %{count} 传入的代币", + "approve_token" : "批准传入的代币\"%{name}\"", + "approve_two_collections" : "批准来自 \"%{collection1}\" 和 \"%{collection2}\" 集合的传入代币", + "approve_two_tokens" : "批准传入的代币\"%{name1}\" 和 \"%{name2}\"", + "blacklisted_collection" : "黑名单集合", + "blacklisted_token" : "黑名单代币", + "decline" : "拒绝", + "declined" : "已拒绝", + "declined_at_collection" : "在 %{date} 拒绝", + "declined_at_token" : "在 %{date} 拒绝", + "details_collection" : "集合详情", + "details_token" : "代币详细信息", + "id_collection" : "集合ID", + "id_token" : "代币ID", + "manage_tokens" : "管理代币", + "move_to_accepted" : "移至已接受", + "move_to_declined" : "移至已拒绝", + "name" : "名称", + "pending" : "待定", + "show_all" : "显示所有", + "single_token" : "单一代币", + "token_copied" : "代币ID已复制", + "token_count" : { + "one" : "%{count} 代币", + "other" : "%{count} 代币" + }, + "verify_collection" : "验证集合", + "verify_description_collection" : "这些代币来自未知发行者。要检测伪造品,请使用发行者的官方来源验证集合ID。您稍后可以在设置中更改代币的可见性。", + "verify_description_token" : "此代币来自未知发行者。要检测伪造品,请使用发行者的官方来源验证代币ID。您稍后可以在设置中更改代币的可见性。", + "verify_token" : "验证代币", + "whitelisted_collection" : "白名单集合", + "whitelisted_token" : "白名单代币" + }, + "auth_failed" : "认证失败", + "balances_setup_wallet" : "注册钱包", + "browser" : { + "about_dapps_caption" : "探索可以使用Tonkeeper进行登录和支付的应用和服务。", + "about_dapps_learn_more" : "了解更多", + "about_dapps_title" : "使用Tonkeeper与所有TON应用和服务", + "actions" : { + "copy_link" : "复制链接", + "disconnect" : "断开连接", + "mute" : "静音", + "refresh" : "刷新", + "share" : "分享" + }, + "connected_title" : "已连接", + "empty_search" : "没有搜索到结果", + "explore_all" : "探索所有", + "more_description" : "市场、交易所等", + "more_title" : "探索所有服务", + "open_link" : "打开链接", + "popular_title" : "热门", + "remove_alert" : { + "approve_button" : "移除", + "title" : "移除“%{name}”?" + }, + "search_label" : "搜索或输入地址", + "start_typing" : "输入地址或在网络上搜索", + "title" : "浏览器", + "web_search_title" : "%{searchEngine} 搜索" + }, + "cancel" : "取消", + "chart" : { + "check_connection" : "请检查您的连接并再试一次。", + "no_internet" : "无网络连接", + "periods" : { + "1D" : "天", + "1H" : "小时", + "1M" : "月", + "1Y" : "年", + "6M" : "6个月", + "7D" : "周" + }, + "price" : "价格" + }, + "check_words_caption" : "为了检查您是否正确地写下了您的恢复短语,请输入第%{wordNum1}、%{wordNum2}和%{wordNum3}个词。", + "check_words_success" : "恭喜!您已经设置了您的钱包", + "check_words_title" : "让我们检查一下", + "choose_country" : { + "title" : "选择您的国家" + }, + "choose_currency" : { + "currencies" : { + "AED" : "阿联酋迪拉姆", + "BDT" : "孟加拉塔卡", + "BRL" : "巴西雷亚尔", + "BYN" : "白俄罗斯卢布", + "CAD" : "加拿大元", + "CHF" : "瑞士法郎", + "CNY" : "人民币", + "EUR" : "欧元", + "GBP" : "英镑", + "GEL" : "格鲁吉亚拉里", + "IDR" : "印尼卢比", + "ILS" : "以色列谢克尔", + "INR" : "印度卢比", + "IRR" : "伊朗里亚尔", + "JPY" : "日元", + "KRW" : "韩元", + "KZT" : "哈萨克斯坦坚戈", + "NGN" : "尼日利亚奈拉", + "RUB" : "俄罗斯卢布", + "THB" : "泰铢", + "TRY" : "土耳其里拉", + "UAH" : "乌克兰格里夫纳", + "USD" : "美元", + "UZS" : "乌兹别克苏姆", + "VND" : "越南盾" + }, + "header_title" : "主要货币" + }, + "confirm" : "确认", + "confirm_sending_amount" : "金额", + "confirm_sending_fee" : "手续费", + "confirm_sending_inactive_warn_about" : "你应该做什么", + "confirm_sending_inactive_warn_description" : "如果您期望区块链发生奇迹,请不要继续。不会的。真的不会的。", + "confirm_sending_inactive_warn_title" : "非活跃合约", + "confirm_sending_message" : "Comment", + "confirm_sending_method_title" : "将你的资金发送到%{name}?", + "confirm_sending_recipient" : "接收者", + "confirm_sending_recipient_address" : "接收者地址", + "confirm_sending_sent_caption_btc" : "你的交易已经发送到网络,将在一小时内处理。", + "confirm_sending_sent_caption_other" : "你的交易已经发送到网络,将在一分钟内处理。", + "confirm_sending_sent_caption_ton" : "你的交易已经发送到网络,将在几秒钟内处理。", + "confirm_sending_sent_jetton_title" : "已发送代币", + "confirm_sending_sent_title" : "已发送币种", + "confirm_sending_submit" : "确认并发送", + "confirm_sending_title" : "确认发送", + "continue" : "继续", + "copied" : "复制", + "copy_error_log" : "复制错误指令", + "create_pin_current_title" : "输入当前的密码", + "create_pin_new_title" : "创建新密码", + "create_pin_repeat_title" : "重新输入密码", + "create_wallet_caption" : "我们强烈建议您“写下”恢复短语,因为这是访问和恢复您的钱包的唯一方式!为防失去您的设备,不要通过电子邮件发送给自己或截屏保存;也不要将其上传至在线聊天软件!离线保管更安全。", + "create_wallet_continue_button" : "继续", + "create_wallet_generated" : "恭喜!您的钱包已成功创建!", + "create_wallet_generating" : "正在生成钱包...", + "create_wallet_title" : "拿一支笔和一张纸", + "decryption_error" : "解密错误", + "deploy_contract_button" : "确认并部署", + "deploy_contract_title" : "部署合同", + "disable_nft_marketplace_banner_description" : "收集和交换。", + "dns_address_linked" : "地址已链接", + "dns_address_unlinked" : "地址已取消链接", + "dns_current_address" : "您当前的地址", + "dns_expiration_date" : "到期日期", + "dns_link_title" : "确认交易", + "dns_on_sale_text" : "域名现在在市场上出售。为了转移,你首先应该从销售中移除它。", + "dns_renew_in_progress_btn" : "正在进行域名续期...", + "dns_renew_toast_success" : "域名已续期1年", + "dns_renew_until_btn" : "续期至 %{untilDate}", + "dns_renew_valid_caption" : { + "one" : "在 %{count} 天内到期", + "other" : "在 %{count} 天内到期" + }, + "dns_replace_button" : "替换", + "dns_replace_description" : "添加将与{{domain}}链接的钱包地址。", + "dns_replace_save" : "保存", + "dns_unlink_title" : "确认取消链接", + "dns_wallet_address" : "钱包地址", + "edit_coins_add" : "添加", + "edit_coins_added" : "已添加", + "edit_coins_added_toast" : "已添加", + "edit_coins_hide" : "隐藏", + "edit_coins_title" : "添加加密货币", + "error_network" : "网络错误", + "error_occurred" : "发生了一个错误", + "exchange_method_dont_show_again" : "不再显示", + "exchange_method_open_warning" : "您正在打开一个非Tonkeeper操作的外部应用。", + "exchange_modal" : { + "hide" : "隐藏", + "other_ways_to_buy" : "其他购买方式", + "show_all" : "显示所有", + "title" : "购买或出售" + }, + "exchange_other_ways" : "其他购买或出售TON的方式", + "exchange_telegram_bot" : "TELEGRAM机器人", + "exchange_title" : "购买TON", + "form_optional_indicator" : "可选", + "import_wallet_caption" : "为了恢复到您的钱包,请输入创建钱包时给您的24个助记词。", + "import_wallet_reset_caption" : "请恢复您的钱包\n通过输入创建钱包时写下的24个助记词。", + "import_wallet_title" : "输入您的\n恢复短语", + "import_wallet_wrong_words_err" : "短语不正确", + "info_about_inactive_back" : "返回", + "info_about_inactive_desc1" : "Tonkeeper不知道这个地址是钱包还是智能合约。", + "info_about_inactive_desc2" : "如果你只是想存钱到一个钱包 - 你可以继续。", + "info_about_inactive_desc3_1" : "如果你期待从一个智能合约中自动执行操作,", + "info_about_inactive_desc3_2" : "— 你的转账可能会停在那个地址上。", + "info_about_inactive_desc3_bold" : " !不要继续! ", + "info_about_inactive_title" : "非活跃合约", + "intro_continue_btn" : "开始", + "intro_item1_caption" : "得益于 The Open Network 的独特架构,TON 交易可在数秒内完成结算。", + "intro_item1_title" : "世界级速度", + "intro_item2_caption" : "Tonkeeper 将您的加密密钥存储在您的设备上。所有交易都通过去中心化协议执行,因此您的加密货币绝不会落入中心化交易所的手中。", + "intro_item2_title" : "端对端安全性能", + "intro_item3_caption" : "-", + "intro_item3_title" : "-", + "intro_title" : "欢迎", + "jetton_id" : "代币ID: %{jettonAddress}", + "jetton_id_copied" : "代币ID已复制", + "jetton_name" : "%{name} 代币", + "jetton_open_explorer" : "查看详情", + "jetton_price" : "价格:", + "jettons_list_title" : "代币", + "jettons_manage_tokens" : "管理代币", + "jettons_show_jettons" : "在钱包中显示代币", + "jetton_token" : "代币", + "later" : "稍后", + "legal_font_license" : "Montserrat字体", + "legal_header_title" : "法律", + "legal_licenses_title" : "许可证", + "legal_privacy" : "隐私政策", + "legal_terms" : "服务条款", + "link_copied" : "链接已复制", + "loading" : "加载", + "manage_other_coins" : "管理我的代币", + "migration_cancel_btn" : "稍后升级", + "migration_caption" : "Tonkeeper引入了支持订阅付款的新钱包格式。您的余额将转移到新地址。您的恢复短语将保持不变。", + "migration_failed" : "迁移失败。无法转移您的余额。", + "migration_fee_info" : "网络费用 ≈%{tonFee} TON (%{fiatFee})", + "migration_in_progress" : "正在进行到钱包v4的迁移", + "migration_migrate_btn" : "升级钱包", + "migration_new_wallet" : "新地址", + "migration_old_wallet" : "旧地址", + "migration_title" : "升级您的钱包", + "nft_about_collection" : "关于 {{collection}}", + "nft_about_dns" : "TON DNS 是一项服务,允许用户为加密钱包、智能合约和网站分配人类可读的名称。\n\n 使用 TON DNS,像访问互联网上一样访问去中心化服务的网站。", + "nft_browse_markets" : "浏览市场", + "nft_chain" : "链", + "nft_change_owner_title" : "更改集合所有者", + "nft_change_theme" : "更改主题", + "nft_collection" : "收藏", + "nft_collection_name" : "集合名称", + "nft_confirm_operation" : "确认", + "nft_contract_address" : "合约地址", + "nft_deploy_collection_title" : "创建NFT集合", + "nft_details" : "详细信息", + "nft_diamonds_description" : "TON Diamonds拥有改变你的Tonkeeper钱包主题并使其与你的NFT颜色相匹配的力量。", + "nft_features" : "特点", + "nft_fee" : "费用", + "nft_fee_and_royalties" : "费用 & 版权", + "nft_hide_details" : "隐藏详情", + "nft_item_deploy_title" : "Mint NFT", + "nft_item_name" : "NFT名称", + "nft_link_domain_button" : "链接域名", + "nft_link_domain_caption" : "链接域名后,你将能够转移它并使用它作为你的地址的别名。", + "nft_link_domain_mismatch_warn" : "域名未链接到你当前的地址。对此域的交易要小心。", + "nft_link_username_button" : "链接名称", + "nft_link_username_caption" : "链接名称后,你将能够转移它并使用它作为你的地址的别名。", + "nft_link_username_mismatch_warn" : "名称未链接到你当前的地址。对此名字的交易要小心。", + "nft_marketplace_address" : "市场", + "nft_marketplace_banner_description" : "购买、出售、收集和交换。", + "nft_marketplace_banner_title" : "您的NFT代币将存储在这里", + "nft_marketplaces" : "发现", + "nft_marketplaces_title" : "NFT市场", + "nft_metadata" : "元数据", + "nft_more" : "更多", + "nft_new_owner_address" : "新所有者地址", + "nft_on_sale" : "正在出售", + "nft_on_sale_text" : "NFT现在在市场上出售。为了转移,你首先应该从销售中移除它。", + "nft_open_in_marketplace" : "在NFT市场上查看", + "nft_operations_expired" : "请求超时,请重试", + "nft_operation_success" : "完成", + "nft_owner_address" : "所有者", + "nft_price" : "价格", + "nft_proceeds" : "您的收益", + "nft_properties" : "属性", + "nft_royalty" : "版税", + "nft_royalty_address" : "版税地址", + "nft_sale_cancel_title" : "取消出售", + "nft_sale_place_title" : "出售NFT", + "nft_show_details" : "显示详情", + "nft_single_nft" : "单一NFT", + "nft_standard" : "代币标准", + "nft_title" : "NFTs", + "nft_token_id" : "代币ID", + "nft_transaction_head_placeholder" : "NFT", + "nft_transfer_comment" : "评论", + "nft_transfer_description" : "NFT将发送到此地址。在向其他用户发送NFT时要小心。", + "nft_transfer_dns" : "转移", + "nft_transfer_nft" : "转移", + "nft_transfer_recipient" : "接收者", + "nft_transfer_title" : "转移NFT", + "nft_unlink_domain_button" : "已与{{address}}链接", + "nft_unnamed_collection" : "未命名的收藏", + "nft_view_in_explorer" : "在浏览器中查看", + "notifications" : { + "alert" : { + "cancel" : "取消", + "description" : "通知中的链接地址与应用地址不匹配。", + "open" : "仍然打开", + "title" : "您确定要打开外部链接吗?" + }, + "allow_notifications" : "允许通知", + "apps" : "应用", + "apps_description" : "在您的活动中来自已连接的应用的通知", + "disconnect_app" : "断开%{app_name}连接", + "disconnected_app" : "已断开应用", + "earlier" : "早些时候", + "from_connected" : "来自已连接的服务", + "muted" : "已静音", + "mute_notifications" : "静音通知", + "notifications" : "通知", + "placeholder" : { + "description" : "在Tonkeeper浏览器中探索应用和服务。", + "title" : "通知将在此处显示" + }, + "report" : "报告" + }, + "notifications_disabled_action" : "打开设置", + "notifications_disabled_description" : "您在手机设置中关闭了通知。要激活通知,请转到此设备的设置。", + "notifications_disabled_title" : "通知已禁用", + "notifications_not_supported" : "您的设备不支持通知", + "notifications_switch_title" : "推送通知", + "notifications_title" : "通知", + "notification_switch_description" : "当您收到TON、代币和NFT时获得通知。来自已连接应用的通知。", + "notify_connection_err_caption" : "%{host} 没有响应,请稍后重试", + "notify_connection_err_caption_few" : "%{hosts} 和 %{lastHost} 没有响应,请稍后重试", + "notify_connection_err_title" : "连接服务器失败", + "notify_incorrect_time_err_caption" : "请在设备设置中启用自动时间和日期。如果不自动设置时间,可能会影响资金转账。", + "notify_incorrect_time_err_title" : "时间和日期不正确", + "notify_no_signal_caption" : "请确认你的网络连接", + "notify_no_signal_title" : "没有信号", + "passcode_changed" : "密码已更改", + "paste" : "粘贴", + "pin_enter_faceid_err" : "生物特征检查失败", + "pin_enter_skip_faceid_err" : "需要生物特征", + "platform" : { + "android" : { + "capitalized_face_recognition" : "面部识别", + "capitalized_fingerprint" : "指纹", + "face_recognition" : "面部识别", + "face_recognition_genitive" : "面部识别", + "fingerprint" : "指纹", + "fingerprint_genitive" : "指纹" + }, + "ios" : { + "capitalized_face_recognition" : "Face ID", + "capitalized_fingerprint" : "Touch ID", + "face_recognition" : "Face ID", + "face_recognition_genitive" : "Face ID", + "fingerprint" : "Touch ID", + "fingerprint_genitive" : "Touch ID" + } + }, + "receive_address_title" : "或使用钱包地址", + "receive_copy" : "复制", + "receive_qr_title" : "显示收款二维码", + "receive_received_title" : "你已接收\n%{amount} %{currency}", + "receive_share" : "分享", + "receive_title" : "接收 %{currency}", + "receive_ton_and_jettons" : "接收TON和其他代币", + "refresh_app" : "重新刷新", + "reminder_notifications_caption" : "当您收到TON、代币和NFT时获得通知。", + "reminder_notifications_enable_button" : "启用通知", + "reminder_notifications_later_button" : "稍后", + "reminder_notifications_title" : "获得即时通知", + "require_create_wallet_modal_caption" : "您需要一个已连接的钱包来使用\nTonkeeper。创建一个新钱包,或者导入一个现有的钱包。", + "require_create_wallet_modal_create_new" : "创建新钱包", + "require_create_wallet_modal_import" : "导入现有钱包", + "require_create_wallet_modal_title" : "让我们设置您的钱包", + "scan_qr_open_settings" : "打开设置", + "scan_qr_permission_error" : "允许摄像头访问以扫描二维码", + "scan_qr_title" : "扫描二维码", + "secret_words_caption" : "按下面给出的顺序写下这24个词,并将它们存放在一个秘密的、安全的地方。", + "secret_words_title" : "您的恢复短语", + "security_change_passcode" : "更改密码", + "security_migration_caption" : "现在,您的余额和任何操作都受到密码的保护。您还可以使用生物密钥来加速登入。", + "security_migration_skip_button" : "现在不更新", + "security_migration_submit_button" : "更新安全设置", + "security_migration_title" : "更新钱包安全", + "security_reset_passcode" : "重置密码", + "security_title" : "安全", + "security_use_biometry_switch" : "使用%{biometryType}", + "security_use_biometry_tip" : "您始终可以使用密码解锁您的钱包。", + "send_address_placeholder" : "地址或名称", + "send_all_warning_title" : "你确定要发送你所有的余额吗?", + "send_build_tx_error" : "您的交易失败", + "send_comment_label" : "添加评论", + "send_fee_estimation_error" : "手续费计算失败", + "send_get_wallet_info_error" : "获取钱包信息失败", + "send_insufficient_funds" : "资金不足", + "send_invalid_recipient_caption" : "该域名不存在或钱包地址与其未链接", + "send_invalid_recipient_title" : "无效接收者", + "send_liquid_jetton_warning_title" : "你确定要发送部分质押余额吗?", + "send_lockup_warning_caption" : "请确认你正在发送到允许的地址。\n\n即使交易失败,也会扣除手续费。", + "send_lockup_warning_submit_button" : "发送", + "send_lockup_warning_title" : "金额超过可用余额", + "send_publish_tx_error" : "发送交易失败", + "send_screen_steps" : { + "address" : { + "delete_alert_text" : "你确定要从收藏中删除「%{name}」吗?", + "placeholder" : "钱包地址或域名", + "recent_label" : "最近的", + "suggest_actions" : { + "add" : "添加到收藏", + "delete" : "删除", + "edit" : "编辑收藏", + "hide" : "隐藏" + }, + "suggests_label" : "收藏和最近的", + "title" : "接收者" + }, + "amount" : { + "insufficient_balance" : "余额不足", + "less_than_min" : "最少 %{minAmount} TON", + "max" : "最大", + "recipient_label" : "至:", + "remaining" : "剩余: %{amount}", + "title" : "金额" + }, + "comfirm" : { + "action" : "%{coin} 转账", + "comment_decrypt" : "解密", + "comment_description" : "所有人都可以看到。", + "comment_description_encrypted" : "只有接收者和你可以看到。", + "comment_encrypt" : "加密 Comment", + "comment_label" : "Comment", + "comment_label_required" : "需要的 Comment", + "comment_required_text" : "你必须包含交换的备注进行转账。否则你的资金将会丢失。", + "details_label" : "详情", + "details_max_balance_label" : "发送全部余额 %{currency}", + "title" : "确认交易" + }, + "done" : { + "add_favorite" : "将地址保存到收藏", + "address" : "地址: %{address}", + "comment" : "评论: %{comment}", + "description" : "你的交易已经发送到网络,将在几秒钟内处理。", + "done_label" : "完成", + "favorite_saved" : "保存到收藏", + "fee" : "手续费: %{fee}", + "title" : "%{currency} 已发送!", + "to" : "至: %{name}" + } + }, + "send_sending_failed" : "发送失败", + "send_sending_wrong_time_description" : "时间不同步。在设备设置中打开自动同步日期和时间后重试转账。", + "send_sending_wrong_time_title" : "发生错误", + "send_title" : "发送 %{currency}", + "settings_appearance" : "主题", + "settings_backup_seed" : "显示恢复短语", + "settings_contact_support" : "联系我们", + "settings_delete_account" : "删除账户", + "settings_delete_alert_button" : "删除账户和数据", + "settings_delete_alert_caption" : "此操作将从此应用中删除您的账户和所有数据。", + "settings_delete_alert_title" : "您确定要删除您的账户吗?", + "settings_jettons_list" : "代币", + "settings_legal_documents" : "法律文件", + "settings_network_alert_title" : "选择网络", + "settings_news" : "Tonkeeper新闻", + "settings_news_url" : "https://t.me/tonkeeper", + "settings_notifications" : "通知", + "settings_primary_currency" : "货币", + "settings_rate" : "为Tonkeeper评分", + "settings_recovery_phrase" : "恢复短语", + "settings_reset" : "退出登录", + "settings_reset_alert_button" : "退出登录", + "settings_reset_alert_caption" : "这将删除钱包的密钥。确保您已备份了您的秘密恢复短语。", + "settings_reset_alert_title" : "退出登录?", + "settings_search_engine" : "搜索", + "settings_security" : "安全", + "settings_subscriptions" : "订阅", + "settings_support" : "支持", + "settings_title" : "设置", + "settings_to_mainnet" : "切换到主网", + "settings_to_testnet" : "切换到测试网", + "settings_version" : "版本", + "settings_wallet_version" : "活动地址", + "setup_biometry_caption" : "%{biometryType}允许您更快地打开您的钱包,而无需输入密码。", + "setup_biometry_enable_button" : "启用%{biometryType}", + "setup_biometry_title" : "使用%{biometryType}快速登录", + "setup_notifications_caption" : "当您收到TON、代币和NFT时获得通知。", + "setup_notifications_enable_button" : "启用通知", + "setup_notifications_title" : "获得即时通知", + "skip" : "跳过", + "spam_action" : "垃圾邮件", + "staking" : { + "active" : "活跃的", + "confirm" : { + "address" : { + "label" : "接收者地址" + }, + "amount" : { + "label" : "金额" + }, + "fee" : { + "label" : "费用", + "value" : "≈ %{value} TON" + }, + "recipient" : { + "label" : "接收者" + }, + "withdraw_amount" : { + "label" : "提款金额" + } + }, + "deposit" : "存款", + "details" : { + "about_pool" : "关于质押池", + "apy" : { + "label" : "预估年化收益率", + "value" : "≈ %{value}%" + }, + "balance" : "质押余额", + "cooldown" : { + "active" : "活跃的", + "desc" : "应用于每个质押周期开始的两小时时段,以改善周期之间的存款和提款过程", + "title" : "冷却时间" + }, + "frequency" : { + "label" : "奖励频率", + "value" : "每%{count}小时" + }, + "min_deposit" : { + "label" : "最小存款", + "value" : "%{value} TON" + }, + "next_cycle" : { + "desc" : "所有交易在周期结束后生效", + "desc_liquid" : "所有提款请求在周期结束后生效", + "time" : "在%{time}内", + "title" : "下一个周期" + }, + "pendingDeposit" : "待处理的存款", + "pendingWithdraw" : "待处理的提款", + "pool_address" : { + "label" : "质押池地址" + }, + "readyWithdraw" : "提款已准备好", + "show_details" : "详细信息", + "tap_to_collect" : "点击收集" + }, + "get_withdrawal" : "收到提款", + "other" : "其他", + "recommended" : "最高利息", + "rewards" : { + "after_top_up" : "充值后", + "current" : "当前的", + "title" : "您的年度奖励", + "value" : "≈ %{value} TON" + }, + "staking_desc" : "最低存款从%{minStake} TON开始。\n赚取高达%{maxApy}%的收益。", + "staking_pool_desc" : "年化收益率 ≈ %{apy}%", + "title" : "质押", + "top_up" : "充值", + "transaction" : "交易", + "warning" : { + "about" : "关于%{name}", + "desc" : "质押基于第三方智能合约。我们不对其工作负责。", + "title" : "警告" + }, + "widget_desc" : "在您的TONs上赚取高达 %{apy}%的收益", + "withdraw" : "提款", + "withdrawal_fee_warning" : { + "continue" : "继续操作", + "message" : "请至少在您的余额上保留{{amount}} TON。", + "title" : "您的资金不足以提款" + }, + "withdrawal_request" : "提款请求" + }, + "subscription_back_to_merchant_button" : "返回", + "subscription_back_to_merchant_caption" : "交易正在处理中。您的订阅很快就会生效。", + "subscription_back_to_merchant_name" : "返回到%{merchantName}", + "subscription_back_to_merchant_title" : "返回到频道?", + "subscription_cancel" : "取消订阅", + "subscription_cancel_alert_cancel_btn" : "现在不", + "subscription_cancel_alert_caption" : "如果您现在取消,您仍然可以在%{nextBill}之前访问您的订阅。", + "subscription_cancel_alert_submit_btn" : "是的,取消", + "subscription_cancel_alert_title" : "取消订阅?", + "subscription_expiring" : "到期", + "subscription_fee" : "费用", + "subscription_next_bill" : "下一次账单", + "subscription_open_merchant" : "在Telegram中打开", + "subscription_period" : "间隔", + "subscription_period_custom" : "每%{period}", + "subscription_period_day" : "每日", + "subscription_period_half_year" : "每半年", + "subscription_period_hour" : "每小时", + "subscription_period_month" : "每月", + "subscription_period_quarter" : "每季度", + "subscription_period_week" : "每周", + "subscription_period_weeks" : "每%{count}周", + "subscription_period_year" : "每年", + "subscription_price" : "价格", + "subscription_sent" : "交易已发送", + "subscriptions_item_caption" : "%{price} TON, 下一次账单在%{nextBill}", + "subscriptions_item_caption_expired" : "在%{date}到期", + "subscriptions_item_caption_expiring" : "%{price} TON, 在%{date}到期", + "subscriptions_section_active" : "活跃", + "subscriptions_section_expired" : "已过期", + "subscription_started" : "已开始订阅", + "subscriptions_title" : "订阅", + "subscription_subscribe" : "订阅", + "subscription_title" : "订阅", + "subscription_unsubscribe" : "取消订阅", + "success" : "成功!", + "swap_title" : "交换", + "tab_browser" : "浏览器", + "tab_nft" : "NFTs", + "tab_settings" : "设置", + "tab_swap" : "交换", + "tab_wallet" : "钱包", + "today" : "今天", + "ton_login_back_to_button" : "返回到%{name}", + "ton_login_caption" : "%{name}正在请求访问您的钱包地址", + "ton_login_connect_button" : "连接钱包", + "ton_login_notice" : "连接钱包之前,请务必检查服务地址。", + "ton_login_success" : "完成", + "ton_login_title" : "连接到%{name}?", + "transaction_bid_collection_name" : "发行者", + "transaction_bid_date" : "出价日期 %{date}", + "transaction_bid_dns" : "名称", + "transaction_buy_date" : "购买日期 %{date}", + "transaction_buy_status_failed" : "失败", + "transaction_buy_status_pending" : "待处理", + "transaction_buy_status_success" : "成功", + "transaction_confirmations" : "确认", + "transaction_confirm_bid" : "确认出价", + "transaction_contract_deploy_date" : "合约部署日期 %{date}", + "transaction_copy_caution" : "小心外部链接!!!永远不要将你的密钥/助记词提供给第三者 — 否则你可能会失去所有的资金。\n\n- - -\n\n", + "transactionDetails" : { + "address" : "地址", + "bid_collection_name" : "发行者", + "bid_date" : "在 %{time} 出价", + "bid_name" : "名称", + "comment" : "评论", + "operation" : "操作", + "payload" : "有效载荷", + "purchase_date" : "在 %{time} 购买", + "received_date" : "在 %{time} 收到", + "recipient" : "接收者", + "recipient_address" : "接收者地址", + "sender" : "发送者", + "sender_address" : "发送者地址", + "sent_date" : "在 %{time} 发送", + "spam" : "垃圾邮件", + "swapped_date" : "在 %{time} 交换", + "transaction" : "交易" + }, + "transaction_exchange_from_currency" : "从", + "transaction_fee" : "手续费", + "transaction_hash" : "交易", + "transaction_merchant" : "商家", + "transaction_message" : "消息", + "transaction_purchase_id" : "购买ID", + "transaction_receive_date" : "接收日期 %{date}", + "transaction_recipient" : "收款方", + "transaction_recipient_address" : "收款方地址", + "transaction_refund" : "退款", + "transactions" : { + "bid" : "出价", + "contract_deploy" : "部署合约", + "failed" : "失败", + "nft_purchase" : "NFT购买", + "smartcontract_exec" : "调用合约", + "spam" : "垃圾消息", + "subscription" : "已订阅", + "swap" : "交换", + "unknown" : "未知", + "unknown_description" : "发生了一些事情,但我们无法识别", + "unsubscription" : "已退订", + "wallet_initialized" : "钱包已初始化" + }, + "transaction_sender" : "付款方", + "transaction_sender_address" : "付款方地址", + "transaction_send_more_button" : "向此接收方发送更多", + "transaction_sent_date" : "发送日期 %{date}", + "transaction_show_subscription_button" : "查看订阅", + "transaction_status" : "状态", + "transaction_subscription" : "订阅", + "transaction_subscription_date" : "扣费日期 %{date}", + "transaction_transfer_name" : "转账名称", + "transaction_type_bid" : "出价", + "transaction_type_bounced" : "已退回", + "transaction_type_buy" : "已购买", + "transaction_type_contract_deploy" : "合约部署", + "transaction_type_from" : "来自", + "transaction_type_new_subscriber" : "新订阅者", + "transaction_type_pending" : "支付中", + "transaction_type_receive" : "已接收", + "transaction_type_sent" : "已发送", + "transaction_type_subscriber_lost" : "订阅者丢失", + "transaction_type_subscription" : "已订阅", + "transaction_type_to" : "到", + "transaction_type_unsubscription" : "已取消订阅", + "transaction_type_wallet_initialized" : "已初始化钱包", + "transaction_unsubscription" : "取消订阅", + "transaction_unsubscription_date" : "取消订阅日期 %{date}", + "transaction_view_in_explorer" : "在浏览器中查看", + "transaction_wallet_initialized_date" : "钱包初始化日期 %{date}", + "transaction_your_bid" : "你的出价", + "transfer_deeplink_address_error" : "收件人地址不正确", + "transfer_deeplink_amount_error" : "金额请求不正确", + "transfer_deeplink_nft_address_error" : "NFT地址不正确", + "transfer_from_old_wallet_btn" : "转移", + "transfer_from_old_wallet_caption" : "Tonkeeper将从您的旧地址转移所有硬币到您的当前地址。", + "transfer_from_old_wallet_in_progress" : "转移正在进行中", + "transfer_from_old_wallet_title" : "转移到当前地址", + "txActions" : { + "amount" : "金额", + "fee" : "费用", + "refund" : "退款", + "signRaw" : { + "addressMismatch" : { + "wrongVersion" : { + "close" : "取消", + "description" : "切换您的活动地址至%{version}以确认此操作。", + "switch" : "切换并继续", + "title" : "您钱包的另一个地址的操作" + }, + "wrongWallet" : { + "close" : "好的", + "description" : "登录到另一个钱包%{address}然后再试。", + "title" : "另一个钱包的操作" + } + }, + "comment" : "评论", + "insufficientFunds" : { + "rechargeWallet" : "充值钱包", + "title" : "资金不足", + "toBePaid" : "支付金额: %{amount} %{currency}\n", + "withFees" : "+ 区块链费用。\n", + "yourBalance" : "您的余额: %{balance} %{currency}。" + }, + "recipient" : "收款方", + "title" : "确认交易", + "totalFee" : "总费用", + "totalRefund" : "总退款", + "types" : { + "contractDeploy" : "合同部署", + "jettonTransfer" : "代币转移", + "nftItemTransfer" : "NFT转移", + "subscribe" : "订阅", + "tonTransfer" : "TON转移", + "unknownTransaction" : "未知交易", + "unSubscribe" : "退订" + }, + "warning_caption" : "Tonkeeper无法完全验证此交易的结果。请确保您信任接收者。", + "warning_title" : "警告", + "wrongTime" : { + "button" : "打开设置", + "description" : "似乎您的设备时钟与网络不同步。打开设备设置并启用自动时间和日期。", + "title" : "时钟未同步" + } + } + }, + "update" : { + "description" : "Tonkeeper的新版本现已可用。您现在可以下载它。", + "download" : "下载", + "downloading" : "下载中... {{progress}}%", + "mb" : "{{size}} MB", + "remindLater" : "稍后提醒我", + "retry" : "下载错误。点击重试。", + "tap" : "点击更新", + "title" : "更新Tonkeeper", + "version" : "版本 {{version}}" + }, + "username_issued_by_telegram" : "由Telegram发布。", + "username_manage_name_button" : "管理名称", + "wallet_about" : "关于", + "wallet_buy" : "购买", + "wallet" : { + "buy_btn" : "购买TON", + "collectibles_tab_lable" : "收藏品", + "edit_tokens_btn" : "编辑", + "old_wallets_title" : "旧钱包", + "old_wallet_title" : "旧钱包", + "receive_btn" : "接收", + "screen_title" : "钱包", + "send_btn" : "发送", + "swap_btn" : "交换", + "tonkens_tab_lable" : "代币" + }, + "wallet_chat" : "聊天室", + "wallet_community" : "社区", + "wallet_hours_symbol" : "h", + "wallet_old_balance" : "老钱包:", + "wallet_receive" : "接收", + "wallet_sell" : "出售", + "wallet_send" : "发送", + "wallet_source_code" : "源代码", + "wallet_swap" : "交换", + "wallet_title" : "钱包", + "wallet_toncommunity_chat_link" : "https://t.me/toncoin_chat", + "wallet_toncommunity_link" : "https://t.me/toncoin", + "yesterday" : "昨天" +} \ No newline at end of file diff --git a/packages/shared/i18n/translations.ts b/packages/shared/i18n/translations.ts index 47d704d81..f53ee6cb3 100644 --- a/packages/shared/i18n/translations.ts +++ b/packages/shared/i18n/translations.ts @@ -1,5 +1,5 @@ -import en from './locales/en.json'; -import ru from './locales/ru.json'; +import en from './tonkeeper/en.json'; +import ru from './tonkeeper/ru-RU.json'; export const translations = { ru, en }; diff --git a/packages/shared/package.json b/packages/shared/package.json index 9b0cf8866..bcc6333d9 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -2,7 +2,10 @@ "name": "@tonkeeper/shared", "version": "1.0.0", "private": true, - "scripts": {}, + "scripts": { + "push_locales": "tolgee push ./i18n/locales", + "pull_locales": "tolgee pull --namespace tonkeeper --overwrite ./i18n/locales" + }, "dependencies": { "@tonkeeper/core": "*", "@tonkeeper/router": "*", From acee6f39df84e0772f1cc06ae6d2210d318cfdb6 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Thu, 12 Oct 2023 23:30:03 +0900 Subject: [PATCH 02/24] Update locales --- packages/shared/i18n/locales/tonkeeper/en.json | 1 - packages/shared/i18n/locales/tonkeeper/ru-RU.json | 1 - 2 files changed, 2 deletions(-) diff --git a/packages/shared/i18n/locales/tonkeeper/en.json b/packages/shared/i18n/locales/tonkeeper/en.json index 96c9568a9..63b822a69 100644 --- a/packages/shared/i18n/locales/tonkeeper/en.json +++ b/packages/shared/i18n/locales/tonkeeper/en.json @@ -773,7 +773,6 @@ "tab_settings" : "Settings", "tab_swap" : "Swap", "tab_wallet" : "Wallet", - "test_key" : "test key", "today" : "Today", "ton_login_back_to_button" : "Back to %{name}", "ton_login_caption" : "%{name} is requesting access to your wallet address ", diff --git a/packages/shared/i18n/locales/tonkeeper/ru-RU.json b/packages/shared/i18n/locales/tonkeeper/ru-RU.json index c1cc00b94..765e01a66 100644 --- a/packages/shared/i18n/locales/tonkeeper/ru-RU.json +++ b/packages/shared/i18n/locales/tonkeeper/ru-RU.json @@ -805,7 +805,6 @@ "tab_settings" : "Настройки", "tab_swap" : "Обмен", "tab_wallet" : "Кошелёк", - "test_key" : "тестовый ключ", "today" : "Сегодня", "ton_login_back_to_button" : "Вернуться в %{name}", "ton_login_caption" : "%{name} запрашивает доступ к адресу вашего кошелька\n", From 74179a18951adeb474d95bd864edda7cd57b8f38 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Thu, 12 Oct 2023 23:30:49 +0900 Subject: [PATCH 03/24] fix(mobile): Locales path --- packages/shared/i18n/translations.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/shared/i18n/translations.ts b/packages/shared/i18n/translations.ts index f53ee6cb3..c184a4a41 100644 --- a/packages/shared/i18n/translations.ts +++ b/packages/shared/i18n/translations.ts @@ -1,5 +1,5 @@ -import en from './tonkeeper/en.json'; -import ru from './tonkeeper/ru-RU.json'; +import en from './locales/tonkeeper/en.json'; +import ru from './locales/tonkeeper/ru-RU.json'; export const translations = { ru, en }; From 61054c9bacc82b4ae30b4bcd3e67af078d93900f Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Fri, 13 Oct 2023 21:19:57 +0900 Subject: [PATCH 04/24] feature(mobile): Enable Chinese and Turkish --- .../ios/ton_keeper.xcodeproj/project.pbxproj | 12 +++++++++- .../Localizable/tr.lproj/PassCode.strings | 5 +++++ .../Localizable/tr.lproj/PassCode.stringsdict | 22 +++++++++++++++++++ .../zh-Hans.lproj/PassCode.strings | 5 +++++ .../zh-Hans.lproj/PassCode.stringsdict | 22 +++++++++++++++++++ packages/shared/i18n/translations.ts | 4 +++- packages/uikit/src/components/IconButton.tsx | 2 +- 7 files changed, 69 insertions(+), 3 deletions(-) create mode 100644 packages/mobile/ios/ton_keeper/Resources/Localizable/tr.lproj/PassCode.strings create mode 100644 packages/mobile/ios/ton_keeper/Resources/Localizable/tr.lproj/PassCode.stringsdict create mode 100644 packages/mobile/ios/ton_keeper/Resources/Localizable/zh-Hans.lproj/PassCode.strings create mode 100644 packages/mobile/ios/ton_keeper/Resources/Localizable/zh-Hans.lproj/PassCode.stringsdict diff --git a/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj b/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj index 99c1bb4a1..57e6025a8 100644 --- a/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj +++ b/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj @@ -130,6 +130,10 @@ 39C1C20FA83478354251FB2A /* libPods-ton_keeper.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ton_keeper.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 5008E610299F9D1400D4850B /* SFMono-Bold.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "SFMono-Bold.otf"; path = "../assets/fonts/SFMono-Bold.otf"; sourceTree = ""; }; 5008E611299F9D1400D4850B /* SFMono-Medium.otf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "SFMono-Medium.otf"; path = "../assets/fonts/SFMono-Medium.otf"; sourceTree = ""; }; + 50AD04972AD96A5C00E0648C /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/PassCode.strings; sourceTree = ""; }; + 50AD04982AD96A5D00E0648C /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = tr; path = tr.lproj/PassCode.stringsdict; sourceTree = ""; }; + 50AD04992AD96AFA00E0648C /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/PassCode.strings"; sourceTree = ""; }; + 50AD049A2AD96AFA00E0648C /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "zh-Hans"; path = "zh-Hans.lproj/PassCode.stringsdict"; sourceTree = ""; }; 66B33E2FC88F6DF6B498F962 /* Pods-ton_keeper-ton_keeperTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ton_keeper-ton_keeperTests.debug.xcconfig"; path = "Target Support Files/Pods-ton_keeper-ton_keeperTests/Pods-ton_keeper-ton_keeperTests.debug.xcconfig"; sourceTree = ""; }; 66D7306F36185132B3874D4C /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-ton_keeper-ton_keeperTests/ExpoModulesProvider.swift"; sourceTree = ""; }; 6AFA288D04A19A6FAE554C55 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-ton_keeper/ExpoModulesProvider.swift"; sourceTree = ""; }; @@ -817,6 +821,8 @@ en, Base, ru, + tr, + "zh-Hans", ); mainGroup = 83CBB9F61A601CBA00E9B192; productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; @@ -1025,7 +1031,7 @@ outputFileListPaths = ( ); outputPaths = ( - "$SRCROOT/$PROJECT_NAME/Resources/Generated/R.generated.swift", + $SRCROOT/$PROJECT_NAME/Resources/Generated/R.generated.swift, ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -1156,6 +1162,8 @@ children = ( C4380878292BD26A00FF5669 /* en */, C438087A292BD26C00FF5669 /* ru */, + 50AD04982AD96A5D00E0648C /* tr */, + 50AD049A2AD96AFA00E0648C /* zh-Hans */, ); name = PassCode.stringsdict; sourceTree = ""; @@ -1165,6 +1173,8 @@ children = ( C4F5F2062927C85B00D08D79 /* en */, C4F5F2082927C88200D08D79 /* ru */, + 50AD04972AD96A5C00E0648C /* tr */, + 50AD04992AD96AFA00E0648C /* zh-Hans */, ); name = PassCode.strings; sourceTree = ""; diff --git a/packages/mobile/ios/ton_keeper/Resources/Localizable/tr.lproj/PassCode.strings b/packages/mobile/ios/ton_keeper/Resources/Localizable/tr.lproj/PassCode.strings new file mode 100644 index 000000000..a42a4775e --- /dev/null +++ b/packages/mobile/ios/ton_keeper/Resources/Localizable/tr.lproj/PassCode.strings @@ -0,0 +1,5 @@ +"enter" = "Enter passcode"; +"logout" = "Log out"; +"attempts.remaining" = "Attempts remaining: %@"; +"createNew" = "Create new passcode"; +"reenter" = "Re-enter passcode"; diff --git a/packages/mobile/ios/ton_keeper/Resources/Localizable/tr.lproj/PassCode.stringsdict b/packages/mobile/ios/ton_keeper/Resources/Localizable/tr.lproj/PassCode.stringsdict new file mode 100644 index 000000000..912057480 --- /dev/null +++ b/packages/mobile/ios/ton_keeper/Resources/Localizable/tr.lproj/PassCode.stringsdict @@ -0,0 +1,22 @@ + + + + + tryAfter + + NSStringLocalizedFormatKey + %#@number@ + number + + NSStringFormatValueTypeKey + ld + NSStringFormatSpecTypeKey + NSStringPluralRuleType + other + Try after %ld minutes + one + Try after %ld minute + + + + diff --git a/packages/mobile/ios/ton_keeper/Resources/Localizable/zh-Hans.lproj/PassCode.strings b/packages/mobile/ios/ton_keeper/Resources/Localizable/zh-Hans.lproj/PassCode.strings new file mode 100644 index 000000000..a42a4775e --- /dev/null +++ b/packages/mobile/ios/ton_keeper/Resources/Localizable/zh-Hans.lproj/PassCode.strings @@ -0,0 +1,5 @@ +"enter" = "Enter passcode"; +"logout" = "Log out"; +"attempts.remaining" = "Attempts remaining: %@"; +"createNew" = "Create new passcode"; +"reenter" = "Re-enter passcode"; diff --git a/packages/mobile/ios/ton_keeper/Resources/Localizable/zh-Hans.lproj/PassCode.stringsdict b/packages/mobile/ios/ton_keeper/Resources/Localizable/zh-Hans.lproj/PassCode.stringsdict new file mode 100644 index 000000000..912057480 --- /dev/null +++ b/packages/mobile/ios/ton_keeper/Resources/Localizable/zh-Hans.lproj/PassCode.stringsdict @@ -0,0 +1,22 @@ + + + + + tryAfter + + NSStringLocalizedFormatKey + %#@number@ + number + + NSStringFormatValueTypeKey + ld + NSStringFormatSpecTypeKey + NSStringPluralRuleType + other + Try after %ld minutes + one + Try after %ld minute + + + + diff --git a/packages/shared/i18n/translations.ts b/packages/shared/i18n/translations.ts index c184a4a41..8d8c7badc 100644 --- a/packages/shared/i18n/translations.ts +++ b/packages/shared/i18n/translations.ts @@ -1,6 +1,8 @@ import en from './locales/tonkeeper/en.json'; import ru from './locales/tonkeeper/ru-RU.json'; +import tr from './locales/tonkeeper/tr-TR.json'; +import zhHans from './locales/tonkeeper/zh-Hans-CN.json'; -export const translations = { ru, en }; +export const translations = { ru, en, tr, 'zh-Hans': zhHans }; export const SupportedLocales = Object.keys(translations); diff --git a/packages/uikit/src/components/IconButton.tsx b/packages/uikit/src/components/IconButton.tsx index 8bc623864..65752d9fc 100644 --- a/packages/uikit/src/components/IconButton.tsx +++ b/packages/uikit/src/components/IconButton.tsx @@ -42,7 +42,7 @@ export const IconButton = memo((props) => { {props.iconName && } - + {props.title} From 125bd05e575a832c5309e373c95d5900e7a9f160 Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Fri, 13 Oct 2023 21:32:38 +0900 Subject: [PATCH 05/24] fix(mobile): Add new locales to date-fns --- packages/shared/utils/date.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/shared/utils/date.ts b/packages/shared/utils/date.ts index 3f10c6f76..ab5f0f290 100644 --- a/packages/shared/utils/date.ts +++ b/packages/shared/utils/date.ts @@ -1,4 +1,4 @@ -import { enUS, ru } from 'date-fns/locale'; +import { enUS, ru, tr, zhCN } from 'date-fns/locale'; import { i18n, t } from '../i18n'; import { differenceInCalendarMonths, @@ -8,7 +8,7 @@ import { differenceInCalendarYears, } from 'date-fns'; -const dateFnsLocales = { ru, en: enUS }; +const dateFnsLocales = { ru, en: enUS, tr, 'zh-Hans': zhCN }; const getFNSLocale = () => { return dateFnsLocales[i18n.locale] ?? enUS; From 2798e6361eaa878ae9c85a987fc13f96ce93a5d5 Mon Sep 17 00:00:00 2001 From: bogoslavskiy Date: Sat, 14 Oct 2023 16:49:28 +0400 Subject: [PATCH 06/24] bump(ios): react-native 0.72.6 --- packages/mobile/.eslintrc.js | 6 +- packages/mobile/Gemfile | 5 +- packages/mobile/Gemfile.lock | 42 +- packages/mobile/ios/Podfile | 16 +- .../ios/ton_keeper.xcodeproj/project.pbxproj | 65 +- .../ios/ton_keeper/Application/AppDelegate.mm | 10 - packages/mobile/metro.config.js | 2 +- packages/mobile/package.json | 30 +- packages/shared/package.json | 2 +- packages/uikit/package.json | 2 +- yarn.lock | 1443 ++++++++--------- 11 files changed, 800 insertions(+), 823 deletions(-) diff --git a/packages/mobile/.eslintrc.js b/packages/mobile/.eslintrc.js index 189699723..7fbe5394d 100644 --- a/packages/mobile/.eslintrc.js +++ b/packages/mobile/.eslintrc.js @@ -1,6 +1,4 @@ module.exports = { root: true, - extends: '@react-native-community', - parser: '@typescript-eslint/parser', - plugins: ['@typescript-eslint'], -}; + extends: '@react-native', +}; \ No newline at end of file diff --git a/packages/mobile/Gemfile b/packages/mobile/Gemfile index ecb457e6a..36647872e 100644 --- a/packages/mobile/Gemfile +++ b/packages/mobile/Gemfile @@ -1,4 +1,5 @@ source 'https://rubygems.org' # You may use http://rbenv.org/ or https://rvm.io/ to install and use this version -ruby File.read(File.join(__dir__, '.ruby-version')).strip -gem 'cocoapods', '~> 1.11', '>= 1.11.3' \ No newline at end of file +ruby ">= 2.6.10" +gem 'cocoapods', '~> 1.13' +gem 'activesupport', '>= 6.1.7.3', '< 7.1.0' \ No newline at end of file diff --git a/packages/mobile/Gemfile.lock b/packages/mobile/Gemfile.lock index 4dc374e20..cfce9bfe8 100644 --- a/packages/mobile/Gemfile.lock +++ b/packages/mobile/Gemfile.lock @@ -3,28 +3,27 @@ GEM specs: CFPropertyList (3.0.6) rexml - activesupport (6.1.7.2) + activesupport (7.0.8) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) tzinfo (~> 2.0) - zeitwerk (~> 2.3) - addressable (2.8.1) + addressable (2.8.5) public_suffix (>= 2.0.2, < 6.0) algoliasearch (1.27.5) httpclient (~> 2.8, >= 2.8.3) json (>= 1.5.1) atomos (0.1.3) claide (1.1.0) - cocoapods (1.11.3) + cocoapods (1.13.0) addressable (~> 2.8) claide (>= 1.0.2, < 2.0) - cocoapods-core (= 1.11.3) + cocoapods-core (= 1.13.0) cocoapods-deintegrate (>= 1.0.3, < 2.0) - cocoapods-downloader (>= 1.4.0, < 2.0) + cocoapods-downloader (>= 1.6.0, < 2.0) cocoapods-plugins (>= 1.0.0, < 2.0) cocoapods-search (>= 1.0.0, < 2.0) - cocoapods-trunk (>= 1.4.0, < 2.0) + cocoapods-trunk (>= 1.6.0, < 2.0) cocoapods-try (>= 1.1.0, < 2.0) colored2 (~> 3.1) escape (~> 0.0.4) @@ -32,10 +31,10 @@ GEM gh_inspector (~> 1.0) molinillo (~> 0.8.0) nap (~> 1.0) - ruby-macho (>= 1.0, < 3.0) - xcodeproj (>= 1.21.0, < 2.0) - cocoapods-core (1.11.3) - activesupport (>= 5.0, < 7) + ruby-macho (>= 2.3.0, < 3.0) + xcodeproj (>= 1.23.0, < 2.0) + cocoapods-core (1.13.0) + activesupport (>= 5.0, < 8) addressable (~> 2.8) algoliasearch (~> 1.0) concurrent-ruby (~> 1.1) @@ -54,19 +53,19 @@ GEM netrc (~> 0.11) cocoapods-try (1.2.0) colored2 (3.1.2) - concurrent-ruby (1.2.0) + concurrent-ruby (1.2.2) escape (0.0.4) ethon (0.16.0) ffi (>= 1.15.0) - ffi (1.15.5) + ffi (1.16.1) fourflusher (2.3.1) fuzzy_match (2.0.4) gh_inspector (1.1.3) httpclient (2.8.3) - i18n (1.12.0) + i18n (1.14.1) concurrent-ruby (~> 1.0) json (2.6.3) - minitest (5.17.0) + minitest (5.16.3) molinillo (0.8.0) nanaimo (0.3.0) nap (1.1.0) @@ -78,24 +77,23 @@ GEM ethon (>= 0.9.0) tzinfo (2.0.6) concurrent-ruby (~> 1.0) - xcodeproj (1.22.0) + xcodeproj (1.23.0) CFPropertyList (>= 2.3.3, < 4.0) atomos (~> 0.1.3) claide (>= 1.0.2, < 2.0) colored2 (~> 3.1) nanaimo (~> 0.3.0) rexml (~> 3.2.4) - zeitwerk (2.6.7) PLATFORMS - arm64-darwin-22 - ruby + arm64-darwin-23 DEPENDENCIES - cocoapods (~> 1.11, >= 1.11.3) + activesupport (>= 6.1.7.3, < 7.1.0) + cocoapods (~> 1.13) RUBY VERSION - ruby 2.7.6p219 + ruby 3.2.2p53 BUNDLED WITH - 2.4.10 + 2.4.20 diff --git a/packages/mobile/ios/Podfile b/packages/mobile/ios/Podfile index 9623e352a..5727ccf6f 100644 --- a/packages/mobile/ios/Podfile +++ b/packages/mobile/ios/Podfile @@ -34,8 +34,7 @@ elsif podfile_properties.key?('ios.flipper') then flipper_config = FlipperConfiguration.enabled(["Debug", "Release"], { 'Flipper' => podfile_properties['ios.flipper'] }) end end - - + target 'ton_keeper' do use_expo_modules! config = use_native_modules! @@ -56,17 +55,8 @@ target 'ton_keeper' do use_react_native!( :path => config[:reactNativePath], - # Hermes is now enabled by default. Disable by setting this flag to false. - # Upcoming versions of React Native may rely on get_default_flags(), but - # we make it explicit here to aid in the React Native upgrade process. :hermes_enabled => true, :fabric_enabled => false, - # Enables Flipper. - # - # Note that if you have use_frameworks! enabled, Flipper will not work and - # you should disable the next line. - # :flipper_configuration => flipper_config, - # An absolute path to your application root. :app_path => "#{Pod::Config.instance.installation_root}/.." ) @@ -80,10 +70,10 @@ target 'ton_keeper' do post_install do |installer| react_native_post_install( installer, - # Set `mac_catalyst_enabled` to `true` in order to apply patches - # necessary for Mac Catalyst builds + config[:reactNativePath], :mac_catalyst_enabled => false ) + __apply_Xcode_12_5_M1_post_install_workaround(installer) installer.target_installation_results.pod_target_installation_results .each do |pod_name, target_installation_result| diff --git a/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj b/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj index 9ec73a733..cc52ac534 100644 --- a/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj +++ b/packages/mobile/ios/ton_keeper.xcodeproj/project.pbxproj @@ -755,6 +755,7 @@ buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "ton_keeperTests" */; buildPhases = ( 027EACABF3131444CA1290DC /* [CP] Check Pods Manifest.lock */, + DD2E2577A653816C1086F2C6 /* [Expo] Configure project */, 00E356EA1AD99517003FC87E /* Sources */, 00E356EB1AD99517003FC87E /* Frameworks */, 00E356EC1AD99517003FC87E /* Resources */, @@ -778,6 +779,7 @@ 8C4EC056529EFADE0053216C /* [CP] Check Pods Manifest.lock */, C4F5F2092927C96100D08D79 /* R.swift codegen */, FD10A7F022414F080027D42C /* Start Packager */, + 914665CBF9B9C82E180E82E9 /* [Expo] Configure project */, 13B07F871A680F5B00A75B9A /* Sources */, 13B07F8C1A680F5B00A75B9A /* Frameworks */, 13B07F8E1A680F5B00A75B9A /* Resources */, @@ -965,6 +967,25 @@ shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; + 914665CBF9B9C82E180E82E9 /* [Expo] Configure project */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "[Expo] Configure project"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "# This script configures Expo modules and generates the modules provider file.\nbash -l -c \"./Pods/Target\\ Support\\ Files/Pods-ton_keeper/expo-configure-project.sh\"\n"; + }; AAADAFD88EE0FE222F244A1B /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -1031,12 +1052,31 @@ outputFileListPaths = ( ); outputPaths = ( - $SRCROOT/$PROJECT_NAME/Resources/Generated/R.generated.swift, + "$SRCROOT/$PROJECT_NAME/Resources/Generated/R.generated.swift", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "\"$PODS_ROOT/R.swift/rswift\" generate \"$SRCROOT/$PROJECT_NAME/Resources/Generated/R.generated.swift\"\n"; }; + DD2E2577A653816C1086F2C6 /* [Expo] Configure project */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "[Expo] Configure project"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "# This script configures Expo modules and generates the modules provider file.\nbash -l -c \"./Pods/Target\\ Support\\ Files/Pods-ton_keeper-ton_keeperTests/expo-configure-project.sh\"\n"; + }; F95E499949E50FBC1ECC1307 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -1346,6 +1386,7 @@ GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", + _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION, ); GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; @@ -1354,7 +1395,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( /usr/lib/swift, "$(inherited)", @@ -1366,6 +1407,13 @@ ); MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; + OTHER_CFLAGS = "$(inherited)"; + OTHER_CPLUSPLUSFLAGS = "$(inherited)"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-Wl", + "-ld_classic", + ); REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; }; @@ -1407,13 +1455,17 @@ "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + _LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION, + ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 12.0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; LD_RUNPATH_SEARCH_PATHS = ( /usr/lib/swift, "$(inherited)", @@ -1424,6 +1476,13 @@ "\"$(inherited)\"", ); MTL_ENABLE_DEBUG_INFO = NO; + OTHER_CFLAGS = "$(inherited)"; + OTHER_CPLUSPLUSFLAGS = "$(inherited)"; + OTHER_LDFLAGS = ( + "$(inherited)", + "-Wl", + "-ld_classic", + ); REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native"; SDKROOT = iphoneos; VALIDATE_PRODUCT = YES; diff --git a/packages/mobile/ios/ton_keeper/Application/AppDelegate.mm b/packages/mobile/ios/ton_keeper/Application/AppDelegate.mm index aead1d134..00f08c4a3 100644 --- a/packages/mobile/ios/ton_keeper/Application/AppDelegate.mm +++ b/packages/mobile/ios/ton_keeper/Application/AppDelegate.mm @@ -38,16 +38,6 @@ - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge #endif } -/// This method controls whether the `concurrentRoot`feature of React18 is turned on or off. -/// -/// @see: https://reactjs.org/blog/2022/03/29/react-v18.html -/// @note: This requires to be rendering on Fabric (i.e. on the New Architecture). -/// @return: `true` if the `concurrentRoot` feature is enabled. Otherwise, it returns `false`. -- (BOOL)concurrentRootEnabled -{ - return true; -} - // Linking API - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary *)options { return [super application:application openURL:url options:options] || [RCTLinkingManager application:application openURL:url options:options]; diff --git a/packages/mobile/metro.config.js b/packages/mobile/metro.config.js index a8d7191b0..476187e84 100644 --- a/packages/mobile/metro.config.js +++ b/packages/mobile/metro.config.js @@ -24,7 +24,7 @@ config.resolver.nodeModulesPaths = [ 'react-native-svg-transformer', )), (config.resolver.assetExts = config.resolver.assetExts.filter((ext) => ext !== 'svg')); -config.resolver.sourceExts.push('svg', 'cjs'); +config.resolver.sourceExts.push('svg', 'cjs', 'mjs'); config.resolver.extraNodeModules = { stream: require.resolve('stream-browserify'), diff --git a/packages/mobile/package.json b/packages/mobile/package.json index 90c2f0f00..7dd466f03 100644 --- a/packages/mobile/package.json +++ b/packages/mobile/package.json @@ -57,15 +57,15 @@ "date-fns": "^2.30.0", "domain-from-partial-url": "^1.1.0", "dotenv": "^16.0.3", - "expo": "~48.0.15", + "expo": "~49.0.13", "expo-blur": "~12.2.2", "expo-local-authentication": "~13.2.1", - "expo-modules-core": "~1.2.6", + "expo-modules-core": "~1.5.11", "expo-secure-store": "~12.1.1", "expo-splash-screen": "~0.18.1", "http-browserify": "^1.7.0", "https-browserify": "^1.0.0", - "i18n-js": "^4.1.1", + "i18n-js": "^4.3.2", "int64-buffer": "^1.0.1", "isomorphic-webcrypto": "^2.3.8", "js-sha512": "^0.8.0", @@ -73,8 +73,8 @@ "jsonwebtoken": "^8.5.1", "linkify-it": "^3.0.2", "lodash": "^4.17.21", - "lottie-ios": "3.2.3", - "lottie-react-native": "5.1.3", + "lottie-ios": "4.3.0", + "lottie-react-native": "6.3.1", "memoize-one": "^6.0.0", "node-html-parser": "^6.1.4", "node-libs-browser": "^2.2.1", @@ -83,7 +83,7 @@ "qrcode": "^1.4.4", "query-string": "^7.0.1", "react": "18.2.0", - "react-native": "0.71.7", + "react-native": "0.72.6", "react-native-apk-install": "0.1.0", "react-native-camera": "^4.2.1", "react-native-config": "^1.5.1", @@ -142,9 +142,9 @@ "devDependencies": { "@babel/core": "^7.20.0", "@babel/plugin-transform-flow-strip-types": "^7.22.5", - "@react-native-community/eslint-config": "^3.2.0", + "@react-native/eslint-config": "0.72.2", + "@tsconfig/react-native": "^3.0.0", "@types/bluebird": "^3.5.36", - "@types/i18n-js": "^3.8.2", "@types/jest": "^29.2.1", "@types/lodash": "^4.14.172", "@types/react": "~18.0.24", @@ -155,7 +155,7 @@ "eslint": "^8.19.0", "expo-yarn-workspaces": "^2.1.0", "jest": "^29.2.1", - "metro-react-native-babel-preset": "0.73.8", + "metro-react-native-babel-preset": "0.76.8", "patch-package": "^6.4.7", "postinstall-postinstall": "^2.1.0", "prettier": "^2.8.7", @@ -163,16 +163,8 @@ "react-test-renderer": "18.2.0", "typescript": "^4.9.4" }, - "jest": { - "preset": "react-native", - "moduleFileExtensions": [ - "ts", - "tsx", - "js", - "jsx", - "json", - "node" - ] + "engines": { + "node": ">=16" }, "expo": { "autolinking": { diff --git a/packages/shared/package.json b/packages/shared/package.json index bcc6333d9..cda1ff23a 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -12,7 +12,7 @@ "@tonkeeper/uikit": "*", "date-fns": "^2.30.0", "react": "18.2.0", - "react-native": "0.71.7", + "react-native": "0.72.6", "react-native-qrcode-styled": "^0.2.1", "react-native-web": "~0.18.10" }, diff --git a/packages/uikit/package.json b/packages/uikit/package.json index 2253c673a..35a225f4d 100644 --- a/packages/uikit/package.json +++ b/packages/uikit/package.json @@ -15,7 +15,7 @@ "expo-linear-gradient": "^12.1.2", "lodash": "^4.17.21", "react": "18.2.0", - "react-native": "0.71.7", + "react-native": "0.72.6", "react-native-web": "~0.18.10" }, diff --git a/yarn.lock b/yarn.lock index 1366065f7..50275767c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -169,7 +169,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.13.16", "@babel/core@^7.14.0", "@babel/core@^7.20.0", "@babel/core@^7.4.5": +"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.13.16", "@babel/core@^7.20.0", "@babel/core@^7.4.5": version "7.22.9" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.22.9.tgz#bd96492c68822198f33e8a256061da3cf391f58f" integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w== @@ -190,10 +190,10 @@ json5 "^2.2.2" semver "^6.3.1" -"@babel/eslint-parser@^7.18.2": - version "7.22.9" - resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.22.9.tgz#75f8aa978d1e76c87cc6f26c1ea16ae58804d390" - integrity sha512-xdMkt39/nviO/4vpVdrEYPwXCsYIXSSAr6mC7WQsNIlGnuxKyKE7GZjalcnbSWiC4OXGNNN3UQPeHfjSC6sTDA== +"@babel/eslint-parser@^7.20.0": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.22.15.tgz#263f059c476e29ca4972481a17b8b660cb025a34" + integrity sha512-yc8OOBIQk1EcRrpizuARSQS0TWAcOMpEJ1aafhNznaeYkeL+OhqnDObGFylB8ka8VFF/sZc+S4RzHyO+3LjQxg== dependencies: "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1" eslint-visitor-keys "^2.1.0" @@ -321,7 +321,7 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== @@ -438,7 +438,7 @@ "@babel/helper-remap-async-to-generator" "^7.18.9" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-class-properties@^7.0.0", "@babel/plugin-proposal-class-properties@^7.13.0": +"@babel/plugin-proposal-class-properties@^7.0.0", "@babel/plugin-proposal-class-properties@^7.13.0", "@babel/plugin-proposal-class-properties@^7.18.0": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3" integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== @@ -465,7 +465,15 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-export-default-from" "^7.22.5" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.0.0", "@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8": +"@babel/plugin-proposal-export-namespace-from@^7.18.9": + version "7.18.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" + integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== + dependencies: + "@babel/helper-plugin-utils" "^7.18.9" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8", "@babel/plugin-proposal-nullish-coalescing-operator@^7.18.0": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1" integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA== @@ -473,7 +481,15 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.12.13": +"@babel/plugin-proposal-numeric-separator@^7.0.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75" + integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.18.6" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + +"@babel/plugin-proposal-object-rest-spread@^7.0.0", "@babel/plugin-proposal-object-rest-spread@^7.12.13", "@babel/plugin-proposal-object-rest-spread@^7.20.0": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz#aa662940ef425779c75534a5c41e9d936edc390a" integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== @@ -492,7 +508,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.0.0", "@babel/plugin-proposal-optional-chaining@^7.13.12": +"@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.20.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.21.0.tgz#886f5c8978deb7d30f678b2e24346b287234d3ea" integrity sha512-p4zeefM72gpmEe2fkUr/OnOXpWEf8nAgk7ZYVqqfFiyIG7oFfVZcCrU64hWn5xp4tQ9LkV4bTIa5rD0KANpKNA== @@ -549,7 +565,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-syntax-dynamic-import@^7.0.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": +"@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== @@ -570,7 +586,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.18.0", "@babel/plugin-syntax-flow@^7.22.5": +"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.12.1", "@babel/plugin-syntax-flow@^7.18.0", "@babel/plugin-syntax-flow@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.22.5.tgz#163b820b9e7696ce134df3ee716d9c0c98035859" integrity sha512-9RdCl0i+q0QExayk2nOS7853w08yLucnnPML6EN9S8fgMPVtdLDCdx/cOQ/i44Lb9UeQX9A35yaqBBOMMZxPxQ== @@ -700,7 +716,7 @@ "@babel/helper-remap-async-to-generator" "^7.22.5" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-transform-async-to-generator@^7.0.0", "@babel/plugin-transform-async-to-generator@^7.22.5": +"@babel/plugin-transform-async-to-generator@^7.20.0", "@babel/plugin-transform-async-to-generator@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz#c7a85f44e46f8952f6d27fe57c2ed3cc084c3775" integrity sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ== @@ -770,6 +786,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-transform-destructuring@^7.20.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.0.tgz#6447aa686be48b32eaf65a73e0e2c0bd010a266c" + integrity sha512-vaMdgNXFkYrB+8lbgniSYWHsgqK5gjaMNcc84bMIOMRLH0L9AqYq3hwMdvnyqj1OPqea8UtjPEuS/DCenah1wg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-transform-dotall-regex@^7.22.5", "@babel/plugin-transform-dotall-regex@^7.4.4": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.22.5.tgz#dbb4f0e45766eb544e193fb00e65a1dd3b2a4165" @@ -809,7 +832,7 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-transform-flow-strip-types@^7.0.0", "@babel/plugin-transform-flow-strip-types@^7.22.5": +"@babel/plugin-transform-flow-strip-types@^7.0.0", "@babel/plugin-transform-flow-strip-types@^7.20.0", "@babel/plugin-transform-flow-strip-types@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.22.5.tgz#0bb17110c7bf5b35a60754b2f00c58302381dee2" integrity sha512-tujNbZdxdG0/54g/oua8ISToaXTFBf8EnSb5PgQSciIXWOWKX3S4+JR7ZE9ol8FZwf9kxitzkGQ+QWeov/mCiA== @@ -1413,23 +1436,24 @@ mv "~2" safe-json-stringify "~1" -"@expo/cli@0.7.3": - version "0.7.3" - resolved "https://registry.yarnpkg.com/@expo/cli/-/cli-0.7.3.tgz#8d61490f4961d40c38af72b7184e3c7cab70773e" - integrity sha512-uMGHbAhApqXR2sd1KPhgvpbOhBBnspad8msEqHleT2PHXwKIwTUDzBGO9+jdOAWwCx2MJfw3+asYjzoD3DN9Bg== +"@expo/cli@0.10.13": + version "0.10.13" + resolved "https://registry.yarnpkg.com/@expo/cli/-/cli-0.10.13.tgz#6503e6c477a8407986cd645952b0ad6177e08fe7" + integrity sha512-8ciyz+yIDih6zCNMWK0IyEv411W7vej/TaWIFGarogPVbFokXrUKr0aKoQG1RU1SLlY4eUpHakbIzqog+rhJdQ== dependencies: "@babel/runtime" "^7.20.0" "@expo/code-signing-certificates" "0.0.5" - "@expo/config" "~8.0.0" - "@expo/config-plugins" "~6.0.0" - "@expo/dev-server" "0.3.0" + "@expo/config" "~8.1.0" + "@expo/config-plugins" "~7.2.0" + "@expo/dev-server" "0.5.5" "@expo/devcert" "^1.0.0" + "@expo/env" "0.0.5" "@expo/json-file" "^8.2.37" - "@expo/metro-config" "~0.7.0" + "@expo/metro-config" "~0.10.0" "@expo/osascript" "^2.0.31" - "@expo/package-manager" "~1.0.0" + "@expo/package-manager" "~1.1.0" "@expo/plist" "^0.0.20" - "@expo/prebuild-config" "6.0.1" + "@expo/prebuild-config" "6.2.6" "@expo/rudder-sdk-node" "1.1.1" "@expo/spawn-async" "1.5.0" "@expo/xcpretty" "^4.2.1" @@ -1452,7 +1476,6 @@ graphql-tag "^2.10.1" https-proxy-agent "^5.0.1" internal-ip "4.3.0" - is-root "^2.1.0" js-yaml "^3.13.1" json-schema-deref-sync "^0.13.0" md5-file "^3.2.3" @@ -1466,9 +1489,10 @@ progress "2.0.3" prompts "^2.3.2" qrcode-terminal "0.11.0" + require-from-string "^2.0.2" requireg "^0.2.2" resolve-from "^5.0.0" - semver "^6.3.0" + semver "^7.5.3" send "^0.18.0" slugify "^1.3.4" structured-headers "^0.4.1" @@ -1488,12 +1512,12 @@ node-forge "^1.2.1" nullthrows "^1.1.1" -"@expo/config-plugins@6.0.2", "@expo/config-plugins@~6.0.0": - version "6.0.2" - resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-6.0.2.tgz#cf07319515022ba94d9aa9fa30e0cff43a14256f" - integrity sha512-Cn01fXMHwjU042EgO9oO3Mna0o/UCrW91MQLMbJa4pXM41CYGjNgVy1EVXiuRRx/upegHhvltBw5D+JaUm8aZQ== +"@expo/config-plugins@7.2.5", "@expo/config-plugins@~7.2.0": + version "7.2.5" + resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-7.2.5.tgz#b15f22878975fdc4ddcfa8cdc971937ddc4c0249" + integrity sha512-w+5ccu1IxBHgyQk9CPFKLZOk8yZQEyTjbJwOzESK1eR7QwosbcsLkN1c1WWUZYiCXwORu3UTwJYll4+X2xxJhQ== dependencies: - "@expo/config-types" "^48.0.0" + "@expo/config-types" "^49.0.0-alpha.1" "@expo/json-file" "~8.2.37" "@expo/plist" "^0.0.20" "@expo/sdk-runtime-versions" "^1.0.0" @@ -1504,17 +1528,17 @@ getenv "^1.0.0" glob "7.1.6" resolve-from "^5.0.0" - semver "^7.3.5" + semver "^7.5.3" slash "^3.0.0" xcode "^3.0.1" - xml2js "0.4.23" + xml2js "0.6.0" -"@expo/config-plugins@~7.2.0": - version "7.2.5" - resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-7.2.5.tgz#b15f22878975fdc4ddcfa8cdc971937ddc4c0249" - integrity sha512-w+5ccu1IxBHgyQk9CPFKLZOk8yZQEyTjbJwOzESK1eR7QwosbcsLkN1c1WWUZYiCXwORu3UTwJYll4+X2xxJhQ== +"@expo/config-plugins@~6.0.0": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-6.0.2.tgz#cf07319515022ba94d9aa9fa30e0cff43a14256f" + integrity sha512-Cn01fXMHwjU042EgO9oO3Mna0o/UCrW91MQLMbJa4pXM41CYGjNgVy1EVXiuRRx/upegHhvltBw5D+JaUm8aZQ== dependencies: - "@expo/config-types" "^49.0.0-alpha.1" + "@expo/config-types" "^48.0.0" "@expo/json-file" "~8.2.37" "@expo/plist" "^0.0.20" "@expo/sdk-runtime-versions" "^1.0.0" @@ -1525,10 +1549,10 @@ getenv "^1.0.0" glob "7.1.6" resolve-from "^5.0.0" - semver "^7.5.3" + semver "^7.3.5" slash "^3.0.0" xcode "^3.0.1" - xml2js "0.6.0" + xml2js "0.4.23" "@expo/config-types@^48.0.0": version "48.0.0" @@ -1540,37 +1564,37 @@ resolved "https://registry.yarnpkg.com/@expo/config-types/-/config-types-49.0.0.tgz#15ffef715285c06703f6fb7ec0cda853f645cc09" integrity sha512-8eyREVi+K2acnMBe/rTIu1dOfyR2+AMnTLHlut+YpMV9OZPdeKV0Bs9BxAewGqBA2slslbQ9N39IS2CuTKpXkA== -"@expo/config@8.0.5", "@expo/config@~8.0.0": - version "8.0.5" - resolved "https://registry.yarnpkg.com/@expo/config/-/config-8.0.5.tgz#71380a7a20f2e27fe386d7bb73428a437b27a96b" - integrity sha512-3CnLmtAQUWqLZwTRliS23QoFwdyhg4AWtp6gZ0qfcXthR84RvlZKcCDQQIyPiRUgu8dZa+gQDcdRJtgE+GM5XQ== +"@expo/config@8.1.2", "@expo/config@~8.1.0": + version "8.1.2" + resolved "https://registry.yarnpkg.com/@expo/config/-/config-8.1.2.tgz#7fff28b3acefe39702e9f3ce1c9fd896a52caa80" + integrity sha512-4e7hzPj50mQIlsrzOH6XZ36O094mPfPTIDIH4yv49bWNMc7GFLTofB/lcT+QyxiLaJuC0Wlk9yOLB8DIqmtwug== dependencies: "@babel/code-frame" "~7.10.4" - "@expo/config-plugins" "~6.0.0" - "@expo/config-types" "^48.0.0" + "@expo/config-plugins" "~7.2.0" + "@expo/config-types" "^49.0.0-alpha.1" "@expo/json-file" "^8.2.37" getenv "^1.0.0" glob "7.1.6" require-from-string "^2.0.2" resolve-from "^5.0.0" - semver "7.3.2" + semver "7.5.3" slugify "^1.3.4" sucrase "^3.20.0" -"@expo/config@~8.1.0": - version "8.1.2" - resolved "https://registry.yarnpkg.com/@expo/config/-/config-8.1.2.tgz#7fff28b3acefe39702e9f3ce1c9fd896a52caa80" - integrity sha512-4e7hzPj50mQIlsrzOH6XZ36O094mPfPTIDIH4yv49bWNMc7GFLTofB/lcT+QyxiLaJuC0Wlk9yOLB8DIqmtwug== +"@expo/config@~8.0.0": + version "8.0.5" + resolved "https://registry.yarnpkg.com/@expo/config/-/config-8.0.5.tgz#71380a7a20f2e27fe386d7bb73428a437b27a96b" + integrity sha512-3CnLmtAQUWqLZwTRliS23QoFwdyhg4AWtp6gZ0qfcXthR84RvlZKcCDQQIyPiRUgu8dZa+gQDcdRJtgE+GM5XQ== dependencies: "@babel/code-frame" "~7.10.4" - "@expo/config-plugins" "~7.2.0" - "@expo/config-types" "^49.0.0-alpha.1" + "@expo/config-plugins" "~6.0.0" + "@expo/config-types" "^48.0.0" "@expo/json-file" "^8.2.37" getenv "^1.0.0" glob "7.1.6" require-from-string "^2.0.2" resolve-from "^5.0.0" - semver "7.5.3" + semver "7.3.2" slugify "^1.3.4" sucrase "^3.20.0" @@ -1588,13 +1612,13 @@ xcode "^3.0.0" xml-js "^1.6.11" -"@expo/dev-server@0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@expo/dev-server/-/dev-server-0.3.0.tgz#c575c88b0ec28f127f328a80ea6a3a4c6f785800" - integrity sha512-2A6/8uZADSKAtzyR6YqhCBUFxb5DFmjxmFn0EHMqnPnsh13ZSiKEjrZPrRkM6Li2EHLYqHK2rmweJ7O/7q9pPQ== +"@expo/dev-server@0.5.5": + version "0.5.5" + resolved "https://registry.yarnpkg.com/@expo/dev-server/-/dev-server-0.5.5.tgz#33f9065e0cf5f36ac61944a92d11390cc71b7035" + integrity sha512-t0fT8xH1exwYsH5hh7bAt85VF+gXxg24qrbny2rR/iKoPTWFCd2JNQV8pvfLg51hvrywQ3YCBuT3lU1w7aZxFA== dependencies: "@expo/bunyan" "4.0.0" - "@expo/metro-config" "~0.7.0" + "@expo/metro-config" "~0.10.0" "@expo/osascript" "2.0.33" "@expo/spawn-async" "^1.5.0" body-parser "^1.20.1" @@ -1606,7 +1630,6 @@ node-fetch "^2.6.0" open "^8.3.0" resolve-from "^5.0.0" - semver "7.3.2" serialize-error "6.0.0" temp-dir "^2.0.0" @@ -1701,19 +1724,6 @@ resolve-from "^5.0.0" sucrase "^3.20.0" -"@expo/metro-config@~0.7.0": - version "0.7.1" - resolved "https://registry.yarnpkg.com/@expo/metro-config/-/metro-config-0.7.1.tgz#eaae792da23554c1abbc401df868566fab29951b" - integrity sha512-vGWU62Zp5pRGw5IEHDNdqvsy62/hu/Na7bswePYVjoaItOjJY7+qilFeF0AAK+3V8qAM8fpltH3ByylKfWaA7A== - dependencies: - "@expo/config" "~8.0.0" - chalk "^4.1.0" - debug "^4.3.2" - find-yarn-workspace-root "~2.0.0" - getenv "^1.0.0" - resolve-from "^5.0.0" - sucrase "^3.20.0" - "@expo/osascript@2.0.33", "@expo/osascript@^2.0.31": version "2.0.33" resolved "https://registry.yarnpkg.com/@expo/osascript/-/osascript-2.0.33.tgz#e9dcc8da54466c11939074aa71a006024ea884b1" @@ -1722,10 +1732,10 @@ "@expo/spawn-async" "^1.5.0" exec-async "^2.2.0" -"@expo/package-manager@~1.0.0": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@expo/package-manager/-/package-manager-1.0.2.tgz#6c5fd0ee9b3d28c5523b2484c62c6c7b0c8dbf89" - integrity sha512-dlUp6o8qs1mi3/+l3y7cY3oMoqQVVzvH18cUTi6+t4ob8XwTpaeP2SwOP+obwZN29dMg9YzZAv4eQz+mshAbQA== +"@expo/package-manager@~1.1.0": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@expo/package-manager/-/package-manager-1.1.2.tgz#e58c9bed4cbb829ebf2cbb80b8542600a6609bd1" + integrity sha512-JI9XzrxB0QVXysyuJ996FPCJGDCYRkbUvgG4QmMTTMFA1T+mv8YzazC3T9C1pHQUAAveVCre1+Pqv0nZXN24Xg== dependencies: "@expo/json-file" "^8.2.37" "@expo/spawn-async" "^1.5.0" @@ -1764,6 +1774,22 @@ semver "7.3.2" xml2js "0.4.23" +"@expo/prebuild-config@6.2.6": + version "6.2.6" + resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-6.2.6.tgz#c5b4f8adcba4be00c874d6b24a8267d45c555261" + integrity sha512-uFVvDAm9dPg9p1qpnr4CVnpo2hmkZIL5FQz+VlIdXXJpe7ySh/qTGHtKWY/lWUshQkAJ0nwbKGPztGWdABns/Q== + dependencies: + "@expo/config" "~8.1.0" + "@expo/config-plugins" "~7.2.0" + "@expo/config-types" "^49.0.0-alpha.1" + "@expo/image-utils" "0.3.22" + "@expo/json-file" "^8.2.37" + debug "^4.3.1" + fs-extra "^9.0.0" + resolve-from "^5.0.0" + semver "7.5.3" + xml2js "0.6.0" + "@expo/react-native-action-sheet@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@expo/react-native-action-sheet/-/react-native-action-sheet-4.0.1.tgz#fa78e55a87a741f235be2c4ce0b0ea2b6afd06cf" @@ -2063,6 +2089,13 @@ dependencies: "@sinclair/typebox" "^0.27.8" +"@jest/schemas@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.6.3.tgz#430b5ce8a4e0044a7e3819663305a7b3091c8e03" + integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== + dependencies: + "@sinclair/typebox" "^0.27.8" + "@jest/source-map@^29.6.0": version "29.6.0" resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.6.0.tgz#bd34a05b5737cb1a99d43e1957020ac8e5b9ddb1" @@ -2147,6 +2180,18 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" +"@jest/types@^29.6.3": + version "29.6.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.6.3.tgz#1131f8cf634e7e84c5e77bab12f052af585fba59" + integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== + dependencies: + "@jest/schemas" "^29.6.3" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + "@jimp/bmp@^0.16.13": version "0.16.13" resolved "https://registry.yarnpkg.com/@jimp/bmp/-/bmp-0.16.13.tgz#57ffa5b17417b5a181f6f184bdabc8218e8448ef" @@ -2463,139 +2508,129 @@ dependencies: merge-options "^3.0.4" -"@react-native-community/cli-clean@^10.1.1": - version "10.1.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-10.1.1.tgz#4c73ce93a63a24d70c0089d4025daac8184ff504" - integrity sha512-iNsrjzjIRv9yb5y309SWJ8NDHdwYtnCpmxZouQDyOljUdC9MwdZ4ChbtA4rwQyAwgOVfS9F/j56ML3Cslmvrxg== +"@react-native-community/cli-clean@11.3.7": + version "11.3.7" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-11.3.7.tgz#cb4c2f225f78593412c2d191b55b8570f409a48f" + integrity sha512-twtsv54ohcRyWVzPXL3F9VHGb4Qhn3slqqRs3wEuRzjR7cTmV2TIO2b1VhaqF4HlCgNd+cGuirvLtK2JJyaxMg== dependencies: - "@react-native-community/cli-tools" "^10.1.1" + "@react-native-community/cli-tools" "11.3.7" chalk "^4.1.2" - execa "^1.0.0" + execa "^5.0.0" prompts "^2.4.0" -"@react-native-community/cli-config@^10.1.1": - version "10.1.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-10.1.1.tgz#08dcc5d7ca1915647dc06507ed853fe0c1488395" - integrity sha512-p4mHrjC+s/ayiNVG6T35GdEGdP6TuyBUg5plVGRJfTl8WT6LBfLYLk+fz/iETrEZ/YkhQIsQcEUQC47MqLNHog== +"@react-native-community/cli-config@11.3.7": + version "11.3.7" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-11.3.7.tgz#4ce95548252ecb094b576369abebf9867c95d277" + integrity sha512-FDBLku9xskS+bx0YFJFLCmUJhEZ4/MMSC9qPYOGBollWYdgE7k/TWI0IeYFmMALAnbCdKQAYP5N29N55Tad8lg== dependencies: - "@react-native-community/cli-tools" "^10.1.1" + "@react-native-community/cli-tools" "11.3.7" chalk "^4.1.2" cosmiconfig "^5.1.0" - deepmerge "^3.2.0" + deepmerge "^4.3.0" glob "^7.1.3" joi "^17.2.1" -"@react-native-community/cli-debugger-ui@^10.0.0": - version "10.0.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-10.0.0.tgz#4bb6d41c7e46449714dc7ba5d9f5b41ef0ea7c57" - integrity sha512-8UKLcvpSNxnUTRy8CkCl27GGLqZunQ9ncGYhSrWyKrU9SWBJJGeZwi2k2KaoJi5FvF2+cD0t8z8cU6lsq2ZZmA== +"@react-native-community/cli-debugger-ui@11.3.7": + version "11.3.7" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-11.3.7.tgz#2147b73313af8de3c9b396406d5d344b904cf2bb" + integrity sha512-aVmKuPKHZENR8SrflkMurZqeyLwbKieHdOvaZCh1Nn/0UC5CxWcyST2DB2XQboZwsvr3/WXKJkSUO+SZ1J9qTQ== dependencies: serve-static "^1.13.1" -"@react-native-community/cli-doctor@^10.2.2": - version "10.2.5" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-10.2.5.tgz#e5e28c66c2373f05a94b296a8ec637f8df736707" - integrity sha512-1YbzXvsldBmSw1MmBsXB74bKiHXKNCjlb2ByLgkfTiarpSvETYam3g5vex0N+qc0Cdkzkq+8NznE744LFhnUpw== +"@react-native-community/cli-doctor@11.3.7": + version "11.3.7" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-11.3.7.tgz#7d5f5b1aea78134bba713fa97795986345ff1344" + integrity sha512-YEHUqWISOHnsl5+NM14KHelKh68Sr5/HeEZvvNdIcvcKtZic3FU7Xd1WcbNdo3gCq5JvzGFfufx02Tabh5zmrg== dependencies: - "@react-native-community/cli-config" "^10.1.1" - "@react-native-community/cli-platform-ios" "^10.2.5" - "@react-native-community/cli-tools" "^10.1.1" + "@react-native-community/cli-config" "11.3.7" + "@react-native-community/cli-platform-android" "11.3.7" + "@react-native-community/cli-platform-ios" "11.3.7" + "@react-native-community/cli-tools" "11.3.7" chalk "^4.1.2" command-exists "^1.2.8" envinfo "^7.7.2" - execa "^1.0.0" + execa "^5.0.0" hermes-profile-transformer "^0.0.6" ip "^1.1.5" node-stream-zip "^1.9.1" ora "^5.4.1" prompts "^2.4.0" - semver "^6.3.0" + semver "^7.5.2" strip-ansi "^5.2.0" sudo-prompt "^9.0.0" wcwidth "^1.0.1" + yaml "^2.2.1" -"@react-native-community/cli-hermes@^10.2.0": - version "10.2.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-10.2.0.tgz#cc252f435b149f74260bc918ce22fdf58033a87e" - integrity sha512-urfmvNeR8IiO/Sd92UU3xPO+/qI2lwCWQnxOkWaU/i2EITFekE47MD6MZrfVulRVYRi5cuaFqKZO/ccOdOB/vQ== +"@react-native-community/cli-hermes@11.3.7": + version "11.3.7" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-11.3.7.tgz#091e730a1f8bace6c3729e8744bad6141002e0e8" + integrity sha512-chkKd8n/xeZkinRvtH6QcYA8rjNOKU3S3Lw/3Psxgx+hAYV0Gyk95qJHTalx7iu+PwjOOqqvCkJo5jCkYLkoqw== dependencies: - "@react-native-community/cli-platform-android" "^10.2.0" - "@react-native-community/cli-tools" "^10.1.1" + "@react-native-community/cli-platform-android" "11.3.7" + "@react-native-community/cli-tools" "11.3.7" chalk "^4.1.2" hermes-profile-transformer "^0.0.6" ip "^1.1.5" -"@react-native-community/cli-platform-android@10.2.0", "@react-native-community/cli-platform-android@^10.2.0": - version "10.2.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-10.2.0.tgz#0bc689270a5f1d9aaf9e723181d43ca4dbfffdef" - integrity sha512-CBenYwGxwFdObZTn1lgxWtMGA5ms2G/ALQhkS+XTAD7KHDrCxFF9yT/fnAjFZKM6vX/1TqGI1RflruXih3kAhw== +"@react-native-community/cli-platform-android@11.3.7": + version "11.3.7" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-11.3.7.tgz#7845bc48258b6bb55df208a23b3690647f113995" + integrity sha512-WGtXI/Rm178UQb8bu1TAeFC/RJvYGnbHpULXvE20GkmeJ1HIrMjkagyk6kkY3Ej25JAP2R878gv+TJ/XiRhaEg== dependencies: - "@react-native-community/cli-tools" "^10.1.1" + "@react-native-community/cli-tools" "11.3.7" chalk "^4.1.2" - execa "^1.0.0" + execa "^5.0.0" glob "^7.1.3" logkitty "^0.7.1" -"@react-native-community/cli-platform-ios@10.2.1": - version "10.2.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-10.2.1.tgz#2e6bd2cb6d48cbb8720d7b7265bb1bab80745f72" - integrity sha512-hz4zu4Y6eyj7D0lnZx8Mf2c2si8y+zh/zUTgCTaPPLzQD8jSZNNBtUUiA1cARm2razpe8marCZ1QbTMAGbf3mg== - dependencies: - "@react-native-community/cli-tools" "^10.1.1" - chalk "^4.1.2" - execa "^1.0.0" - fast-xml-parser "^4.0.12" - glob "^7.1.3" - ora "^5.4.1" - -"@react-native-community/cli-platform-ios@^10.2.5": - version "10.2.5" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-10.2.5.tgz#7888c74b83099885bf9e6d52170c6e663ad971ee" - integrity sha512-hq+FZZuSBK9z82GLQfzdNDl8vbFx5UlwCLFCuTtNCROgBoapFtVZQKRP2QBftYNrQZ0dLAb01gkwxagHsQCFyg== +"@react-native-community/cli-platform-ios@11.3.7": + version "11.3.7" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-11.3.7.tgz#87478f907634713b7236c77870446a5ca1f35ff1" + integrity sha512-Z/8rseBput49EldX7MogvN6zJlWzZ/4M97s2P+zjS09ZoBU7I0eOKLi0N9wx+95FNBvGQQ/0P62bB9UaFQH2jw== dependencies: - "@react-native-community/cli-tools" "^10.1.1" + "@react-native-community/cli-tools" "11.3.7" chalk "^4.1.2" - execa "^1.0.0" + execa "^5.0.0" fast-xml-parser "^4.0.12" glob "^7.1.3" ora "^5.4.1" -"@react-native-community/cli-plugin-metro@^10.2.2": - version "10.2.3" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-10.2.3.tgz#419e0155a50951c3329818fba51cb5021a7294f1" - integrity sha512-jHi2oDuTePmW4NEyVT8JEGNlIYcnFXCSV2ZMp4rnDrUk4TzzyvS3IMvDlESEmG8Kry8rvP0KSUx/hTpy37Sbkw== +"@react-native-community/cli-plugin-metro@11.3.7": + version "11.3.7" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-11.3.7.tgz#2e8a9deb30b40495c5c1347a1837a824400fa00f" + integrity sha512-0WhgoBVGF1f9jXcuagQmtxpwpfP+2LbLZH4qMyo6OtYLWLG13n2uRep+8tdGzfNzl1bIuUTeE9yZSAdnf9LfYQ== dependencies: - "@react-native-community/cli-server-api" "^10.1.1" - "@react-native-community/cli-tools" "^10.1.1" + "@react-native-community/cli-server-api" "11.3.7" + "@react-native-community/cli-tools" "11.3.7" chalk "^4.1.2" - execa "^1.0.0" - metro "0.73.10" - metro-config "0.73.10" - metro-core "0.73.10" - metro-react-native-babel-transformer "0.73.10" - metro-resolver "0.73.10" - metro-runtime "0.73.10" + execa "^5.0.0" + metro "0.76.8" + metro-config "0.76.8" + metro-core "0.76.8" + metro-react-native-babel-transformer "0.76.8" + metro-resolver "0.76.8" + metro-runtime "0.76.8" readline "^1.3.0" -"@react-native-community/cli-server-api@^10.1.1": - version "10.1.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-10.1.1.tgz#e382269de281bb380c2e685431364fbbb8c1cb3a" - integrity sha512-NZDo/wh4zlm8as31UEBno2bui8+ufzsZV+KN7QjEJWEM0levzBtxaD+4je0OpfhRIIkhaRm2gl/vVf7OYAzg4g== +"@react-native-community/cli-server-api@11.3.7": + version "11.3.7" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-11.3.7.tgz#2cce54b3331c9c51b9067129c297ab2e9a142216" + integrity sha512-yoFyGdvR3HxCnU6i9vFqKmmSqFzCbnFSnJ29a+5dppgPRetN+d//O8ard/YHqHzToFnXutAFf2neONn23qcJAg== dependencies: - "@react-native-community/cli-debugger-ui" "^10.0.0" - "@react-native-community/cli-tools" "^10.1.1" + "@react-native-community/cli-debugger-ui" "11.3.7" + "@react-native-community/cli-tools" "11.3.7" compression "^1.7.1" connect "^3.6.5" - errorhandler "^1.5.0" + errorhandler "^1.5.1" nocache "^3.0.1" pretty-format "^26.6.2" serve-static "^1.13.1" ws "^7.5.1" -"@react-native-community/cli-tools@^10.1.1": - version "10.1.1" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-10.1.1.tgz#fa66e509c0d3faa31f7bb87ed7d42ad63f368ddd" - integrity sha512-+FlwOnZBV+ailEzXjcD8afY2ogFEBeHOw/8+XXzMgPaquU2Zly9B+8W089tnnohO3yfiQiZqkQlElP423MY74g== +"@react-native-community/cli-tools@11.3.7": + version "11.3.7" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-11.3.7.tgz#37aa7efc7b4a1b7077d541f1d7bb11a2ab7b6ff2" + integrity sha512-peyhP4TV6Ps1hk+MBHTFaIR1eI3u+OfGBvr5r0wPwo3FAJvldRinMgcB/TcCcOBXVORu7ba1XYjkubPeYcqAyA== dependencies: appdirsjs "^1.2.4" chalk "^4.1.2" @@ -2604,68 +2639,44 @@ node-fetch "^2.6.0" open "^6.2.0" ora "^5.4.1" - semver "^6.3.0" + semver "^7.5.2" shell-quote "^1.7.3" -"@react-native-community/cli-types@^10.0.0": - version "10.0.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-10.0.0.tgz#046470c75ec18f8b3bd906e54e43a6f678e01a45" - integrity sha512-31oUM6/rFBZQfSmDQsT1DX/5fjqfxg7sf2u8kTPJK7rXVya5SRpAMaCXsPAG0omsmJxXt+J9HxUi3Ic+5Ux5Iw== +"@react-native-community/cli-types@11.3.7": + version "11.3.7" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-11.3.7.tgz#12fe7cff3da08bd27e11116531b2e001939854b9" + integrity sha512-OhSr/TiDQkXjL5YOs8+hvGSB+HltLn5ZI0+A3DCiMsjUgTTsYh+Z63OtyMpNjrdCEFcg0MpfdU2uxstCS6Dc5g== dependencies: joi "^17.2.1" -"@react-native-community/cli@10.2.2": - version "10.2.2" - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-10.2.2.tgz#3fa438ba7f19f83e07bc337765fc1cabdcf2cac2" - integrity sha512-aZVcVIqj+OG6CrliR/Yn8wHxrvyzbFBY9cj7n0MvRw/P54QUru2nNqUTSSbqv0Qaa297yHJbe6kFDojDMSTM8Q== - dependencies: - "@react-native-community/cli-clean" "^10.1.1" - "@react-native-community/cli-config" "^10.1.1" - "@react-native-community/cli-debugger-ui" "^10.0.0" - "@react-native-community/cli-doctor" "^10.2.2" - "@react-native-community/cli-hermes" "^10.2.0" - "@react-native-community/cli-plugin-metro" "^10.2.2" - "@react-native-community/cli-server-api" "^10.1.1" - "@react-native-community/cli-tools" "^10.1.1" - "@react-native-community/cli-types" "^10.0.0" +"@react-native-community/cli@11.3.7": + version "11.3.7" + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-11.3.7.tgz#564c0054269d8385fa9d301750b2e56dbb5c0cc9" + integrity sha512-Ou8eDlF+yh2rzXeCTpMPYJ2fuqsusNOhmpYPYNQJQ2h6PvaF30kPomflgRILems+EBBuggRtcT+I+1YH4o/q6w== + dependencies: + "@react-native-community/cli-clean" "11.3.7" + "@react-native-community/cli-config" "11.3.7" + "@react-native-community/cli-debugger-ui" "11.3.7" + "@react-native-community/cli-doctor" "11.3.7" + "@react-native-community/cli-hermes" "11.3.7" + "@react-native-community/cli-plugin-metro" "11.3.7" + "@react-native-community/cli-server-api" "11.3.7" + "@react-native-community/cli-tools" "11.3.7" + "@react-native-community/cli-types" "11.3.7" chalk "^4.1.2" commander "^9.4.1" - execa "^1.0.0" + execa "^5.0.0" find-up "^4.1.0" fs-extra "^8.1.0" graceful-fs "^4.1.3" prompts "^2.4.0" - semver "^6.3.0" + semver "^7.5.2" "@react-native-community/clipboard@^1.5.1": version "1.5.1" resolved "https://registry.yarnpkg.com/@react-native-community/clipboard/-/clipboard-1.5.1.tgz#32abb3ea2eb91ee3f9c5fb1d32d5783253c9fabe" integrity sha512-AHAmrkLEH5UtPaDiRqoULERHh3oNv7Dgs0bTC0hO5Z2GdNokAMPT5w8ci8aMcRemcwbtdHjxChgtjbeA38GBdA== -"@react-native-community/eslint-config@^3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@react-native-community/eslint-config/-/eslint-config-3.2.0.tgz#42f677d5fff385bccf1be1d3b8faa8c086cf998d" - integrity sha512-ZjGvoeiBtCbd506hQqwjKmkWPgynGUoJspG8/MuV/EfKnkjCtBmeJvq2n+sWbWEvL9LWXDp2GJmPzmvU5RSvKQ== - dependencies: - "@babel/core" "^7.14.0" - "@babel/eslint-parser" "^7.18.2" - "@react-native-community/eslint-plugin" "^1.1.0" - "@typescript-eslint/eslint-plugin" "^5.30.5" - "@typescript-eslint/parser" "^5.30.5" - eslint-config-prettier "^8.5.0" - eslint-plugin-eslint-comments "^3.2.0" - eslint-plugin-ft-flow "^2.0.1" - eslint-plugin-jest "^26.5.3" - eslint-plugin-prettier "^4.2.1" - eslint-plugin-react "^7.30.1" - eslint-plugin-react-hooks "^4.6.0" - eslint-plugin-react-native "^4.0.0" - -"@react-native-community/eslint-plugin@^1.1.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/eslint-plugin/-/eslint-plugin-1.3.0.tgz#9e558170c106bbafaa1ef502bd8e6d4651012bf9" - integrity sha512-+zDZ20NUnSWghj7Ku5aFphMzuM9JulqCW+aPXT6IfIXFbb8tzYTTOSeRFOtuekJ99ibW2fUCSsjuKNlwDIbHFg== - "@react-native-community/netinfo@^9.3.2": version "9.4.1" resolved "https://registry.yarnpkg.com/@react-native-community/netinfo/-/netinfo-9.4.1.tgz#7b880758adca65fe47ee866cf7b00416b9dcc192" @@ -2696,20 +2707,69 @@ resolved "https://registry.yarnpkg.com/@react-native-firebase/messaging/-/messaging-18.5.0.tgz#2a80b25816470e9843682e031a3a113566067ce6" integrity sha512-y1FApYxBMcygmbWBqUPFC+fCfvx6Yf6TdZewun7kPwx+S+tkYzoKx1IsXtxOXtqyJjCNEYirjFgNrs5SSd02zA== -"@react-native/assets@1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@react-native/assets/-/assets-1.0.0.tgz#c6f9bf63d274bafc8e970628de24986b30a55c8e" - integrity sha512-KrwSpS1tKI70wuKl68DwJZYEvXktDHdZMG0k2AXD/rJVSlB23/X2CB2cutVR0HwNMJIal9HOUOBB2rVfa6UGtQ== +"@react-native/assets-registry@^0.72.0": + version "0.72.0" + resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.72.0.tgz#c82a76a1d86ec0c3907be76f7faf97a32bbed05d" + integrity sha512-Im93xRJuHHxb1wniGhBMsxLwcfzdYreSZVQGDoMJgkd6+Iky61LInGEHnQCTN0fKNYF1Dvcofb4uMmE1RQHXHQ== + +"@react-native/codegen@^0.72.7": + version "0.72.7" + resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.72.7.tgz#b6832ce631ac63143024ea094a6b5480a780e589" + integrity sha512-O7xNcGeXGbY+VoqBGNlZ3O05gxfATlwE1Q1qQf5E38dK+tXn5BY4u0jaQ9DPjfE8pBba8g/BYI1N44lynidMtg== + dependencies: + "@babel/parser" "^7.20.0" + flow-parser "^0.206.0" + jscodeshift "^0.14.0" + nullthrows "^1.1.1" + +"@react-native/eslint-config@0.72.2": + version "0.72.2" + resolved "https://registry.yarnpkg.com/@react-native/eslint-config/-/eslint-config-0.72.2.tgz#31da4cec65ad2805d4db9fdda138452821d72133" + integrity sha512-rAYuQQXzi63W7+9Pu/+23od/b/lTSzHjMFibum3sKgdG2LIyvhoMEWQ5+Chu7TqebqYy1b9SDn/KEMHvpWFtNg== + dependencies: + "@babel/core" "^7.20.0" + "@babel/eslint-parser" "^7.20.0" + "@react-native/eslint-plugin" "^0.72.0" + "@typescript-eslint/eslint-plugin" "^5.30.5" + "@typescript-eslint/parser" "^5.30.5" + eslint-config-prettier "^8.5.0" + eslint-plugin-eslint-comments "^3.2.0" + eslint-plugin-ft-flow "^2.0.1" + eslint-plugin-jest "^26.5.3" + eslint-plugin-prettier "^4.2.1" + eslint-plugin-react "^7.30.1" + eslint-plugin-react-hooks "^4.6.0" + eslint-plugin-react-native "^4.0.0" -"@react-native/normalize-color@*", "@react-native/normalize-color@2.1.0", "@react-native/normalize-color@^2.0.0": +"@react-native/eslint-plugin@^0.72.0": + version "0.72.0" + resolved "https://registry.yarnpkg.com/@react-native/eslint-plugin/-/eslint-plugin-0.72.0.tgz#7ec4c6a73dfde4bd6b4a4d3c462cfdc2637bf91d" + integrity sha512-xWQthnyKd+H22TBqeJUTFebsyWAAwzUb7EQCT8F/WMZsS1sv5UG+2cM/cU9/2HEbVZgxHYuLIi915WznjKPvlg== + +"@react-native/gradle-plugin@^0.72.11": + version "0.72.11" + resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.72.11.tgz#c063ef12778706611de7a1e42b74b14d9405fb9f" + integrity sha512-P9iRnxiR2w7EHcZ0mJ+fmbPzMby77ZzV6y9sJI3lVLJzF7TLSdbwcQyD3lwMsiL+q5lKUHoZJS4sYmih+P2HXw== + +"@react-native/js-polyfills@^0.72.1": + version "0.72.1" + resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.72.1.tgz#905343ef0c51256f128256330fccbdb35b922291" + integrity sha512-cRPZh2rBswFnGt5X5EUEPs0r+pAsXxYsifv/fgy9ZLQokuT52bPH+9xjDR+7TafRua5CttGW83wP4TntRcWNDA== + +"@react-native/normalize-color@*", "@react-native/normalize-color@^2.0.0": version "2.1.0" resolved "https://registry.yarnpkg.com/@react-native/normalize-color/-/normalize-color-2.1.0.tgz#939b87a9849e81687d3640c5efa2a486ac266f91" integrity sha512-Z1jQI2NpdFJCVgpY+8Dq/Bt3d+YUi1928Q+/CZm/oh66fzM0RUl54vvuXlPJKybH4pdCZey1eDTPaLHkMPNgWA== -"@react-native/polyfills@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@react-native/polyfills/-/polyfills-2.0.0.tgz#4c40b74655c83982c8cf47530ee7dc13d957b6aa" - integrity sha512-K0aGNn1TjalKj+65D7ycc1//H9roAQ51GJVk5ZJQFb2teECGmzd86bYDC0aYdbRf7gtovescq4Zt6FR0tgXiHQ== +"@react-native/normalize-colors@*": + version "0.74.1" + resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.74.1.tgz#6e8ccf99954728dcd3cfe0d56e758ee5050a7bea" + integrity sha512-r+bTRs6pImqE3fx4h7bPzH2sOWSrnSHF/RJ7d00pNUj2P6ws3DdhS7WV+/7YosZkloYQfkiIkK3pIHvcYn665w== + +"@react-native/normalize-colors@^0.72.0": + version "0.72.0" + resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.72.0.tgz#14294b7ed3c1d92176d2a00df48456e8d7d62212" + integrity sha512-285lfdqSXaqKuBbbtP9qL2tDrfxdOFtIMvkKadtleRQkdOxx+uzGvFr82KHmc/sSiMtfXGp7JnFYWVh4sFl7Yw== "@react-native/virtualized-lists@^0.72.4": version "0.72.6" @@ -2719,6 +2779,14 @@ invariant "^2.2.4" nullthrows "^1.1.1" +"@react-native/virtualized-lists@^0.72.8": + version "0.72.8" + resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.72.8.tgz#a2c6a91ea0f1d40eb5a122fb063daedb92ed1dc3" + integrity sha512-J3Q4Bkuo99k7mu+jPS9gSUSgq+lLRSI/+ahXNwV92XgJ/8UgOTxu2LPwhJnBk/sQKxq7E8WkZBnBiozukQMqrw== + dependencies: + invariant "^2.2.4" + nullthrows "^1.1.1" + "@react-navigation/bottom-tabs@^6.5.8": version "6.5.8" resolved "https://registry.yarnpkg.com/@react-navigation/bottom-tabs/-/bottom-tabs-6.5.8.tgz#9536c6e45154abc183c363d07c94991e10b14856" @@ -3007,6 +3075,11 @@ Base64 "~0.2.0" inherits "~2.0.1" +"@tsconfig/react-native@^3.0.0": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@tsconfig/react-native/-/react-native-3.0.2.tgz#f7db242eee4820f5a3d0edcc86c920bb7d9ec0f2" + integrity sha512-F7IoHEqf741lut4Z2K+IkWQRvXAhBiZMeY5L7BysG7Z2Z3MlIyFR+AagD8jQ/CqC1vowGnRwfLjeuwIpaeoJxA== + "@types/aes-js@^3.1.1": version "3.1.1" resolved "https://registry.yarnpkg.com/@types/aes-js/-/aes-js-3.1.1.tgz#34b3978122310c135de4b377270d1d65676fae28" @@ -3083,11 +3156,6 @@ resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-5.1.2.tgz#693b316ad323ea97eed6b38ed1a3cc02b1672b57" integrity sha512-h4lTMgMJctJybDp8CQrxTUiiYmedihHWkjnF/8Pxseu2S6Nlfcy8kwboQ8yejh456rP2yWoEVm1sS/FVsfM48w== -"@types/i18n-js@^3.8.2": - version "3.8.4" - resolved "https://registry.yarnpkg.com/@types/i18n-js/-/i18n-js-3.8.4.tgz#d82acfe3b1fbfbb9ae7eff84360a6ae436ba14d7" - integrity sha512-lXIJLglOZsa81DzqiiG99xF6qGJvwRGqzCQe1FB+/JhgVTyGGVa63DMopEQMJdpAlUUSdJsIhC7sw5xDfDjXWw== - "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": version "2.0.4" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" @@ -3628,11 +3696,6 @@ abort-controller@^3.0.0: dependencies: event-target-shim "^5.0.0" -absolute-path@^0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/absolute-path/-/absolute-path-0.0.0.tgz#a78762fbdadfb5297be99b15d35a785b2f095bf7" - integrity sha512-HQiug4c+/s3WOvEnDRxXVmNtSG5s2gJM9r19BTcqjp7BWcE48PB+Y2G6jE65kqI0LpsQeMZygt/b60Gi4KxGyA== - abstract-leveldown@~0.12.1: version "0.12.4" resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-0.12.4.tgz#29e18e632e60e4e221d5810247852a63d7b2e410" @@ -4015,6 +4078,13 @@ ast-types@0.14.2: dependencies: tslib "^2.0.1" +ast-types@0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.15.2.tgz#39ae4809393c4b16df751ee563411423e85fb49d" + integrity sha512-c27loCv9QkZinsa5ProX751khO9DJl/AcB5c2KNtA6NRvHKS0PgLfcftz72KVq504vB0Gku5s2kUZzDBvQWvHg== + dependencies: + tslib "^2.0.1" + astral-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" @@ -4141,16 +4211,16 @@ babel-plugin-jest-hoist@^29.5.0: "@types/babel__core" "^7.1.14" "@types/babel__traverse" "^7.0.6" -babel-plugin-module-resolver@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/babel-plugin-module-resolver/-/babel-plugin-module-resolver-4.1.0.tgz#22a4f32f7441727ec1fbf4967b863e1e3e9f33e2" - integrity sha512-MlX10UDheRr3lb3P0WcaIdtCSRlxdQsB1sBqL7W0raF070bGl1HQQq5K3T2vf2XAYie+ww+5AKC/WrkjRO2knA== +babel-plugin-module-resolver@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-module-resolver/-/babel-plugin-module-resolver-5.0.0.tgz#2b7fc176bd55da25f516abf96015617b4f70fc73" + integrity sha512-g0u+/ChLSJ5+PzYwLwP8Rp8Rcfowz58TJNCe+L/ui4rpzE/mg//JVX0EWBUYoxaextqnwuGHzfGp2hh0PPV25Q== dependencies: - find-babel-config "^1.2.0" - glob "^7.1.6" + find-babel-config "^2.0.0" + glob "^8.0.3" pkg-up "^3.1.0" - reselect "^4.0.0" - resolve "^1.13.1" + reselect "^4.1.7" + resolve "^1.22.1" babel-plugin-polyfill-corejs2@^0.4.4: version "0.4.5" @@ -4197,6 +4267,13 @@ babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz#aa213c1435e2bffeb6fca842287ef534ad05d5cf" integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ== +babel-plugin-transform-flow-enums@^0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-flow-enums/-/babel-plugin-transform-flow-enums-0.0.2.tgz#d1d0cc9bdc799c850ca110d0ddc9f21b9ec3ef25" + integrity sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ== + dependencies: + "@babel/plugin-syntax-flow" "^7.12.1" + babel-preset-current-node-syntax@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" @@ -4215,18 +4292,19 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-expo@~9.3.2: - version "9.3.2" - resolved "https://registry.yarnpkg.com/babel-preset-expo/-/babel-preset-expo-9.3.2.tgz#0fe408d8d816a3e10fde2e1d1f7aa51b112baf3a" - integrity sha512-BjyvjwjJG0MaaDBLP/esbXRrAItM76po9L9zfnLxeqgFsHCIPmD+6ir45coDLGAXwR8m9It3G1yqYM9JPyemsQ== +babel-preset-expo@~9.5.2: + version "9.5.2" + resolved "https://registry.yarnpkg.com/babel-preset-expo/-/babel-preset-expo-9.5.2.tgz#5ed1756c8434ca972d7a940e4f13570a283641df" + integrity sha512-hU1G1TDiikuXV6UDZjPnX+WdbjbtidDiYhftMEVrZQSst45pDPVBWbM41TUKrpJMwv4FypsLzK+378gnMPRVWQ== dependencies: "@babel/plugin-proposal-decorators" "^7.12.9" + "@babel/plugin-proposal-export-namespace-from" "^7.18.9" "@babel/plugin-proposal-object-rest-spread" "^7.12.13" "@babel/plugin-transform-react-jsx" "^7.12.17" "@babel/preset-env" "^7.20.0" - babel-plugin-module-resolver "^4.1.0" + babel-plugin-module-resolver "^5.0.0" babel-plugin-react-native-web "~0.18.10" - metro-react-native-babel-preset "0.73.9" + metro-react-native-babel-preset "0.76.8" babel-preset-fbjs@^3.4.0: version "3.4.0" @@ -4479,6 +4557,13 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + braces@^2.3.1, braces@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" @@ -4806,7 +4891,7 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.0.0, camelcase@^6.2.0: +camelcase@^6.2.0: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== @@ -5718,11 +5803,6 @@ decode-uri-component@^0.2.0, decode-uri-component@^0.2.2: resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== -dedent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.6.0.tgz#0e6da8f0ce52838ef5cec5c8f9396b0c1b64a3cb" - integrity sha512-cSfRWjXJtZQeRuZGVvDrJroCR5V2UvBNUMHsPCdNYzuAG8b9V8aAy3KUcdQrGQPXs17Y+ojbPh1aOCplg9YR9g== - dedent@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/dedent/-/dedent-1.3.0.tgz#15d6809eb15b581d5587a2dc208f34118e35bee3" @@ -5750,12 +5830,7 @@ deep-is@^0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -deepmerge@^3.2.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-3.3.0.tgz#d3c47fd6f3a93d517b14426b0628a17b0125f5f7" - integrity sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA== - -deepmerge@^4.2.2: +deepmerge@^4.2.2, deepmerge@^4.3.0: version "4.3.1" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== @@ -5864,19 +5939,19 @@ depd@~1.1.2: resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== -deprecated-react-native-prop-types@^2.2.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-2.3.0.tgz#c10c6ee75ff2b6de94bb127f142b814e6e08d9ab" - integrity sha512-pWD0voFtNYxrVqvBMYf5gq3NA2GCpfodS1yNynTPc93AYA/KEMGeWDqqeUB6R2Z9ZofVhks2aeJXiuQqKNpesA== +deprecated-react-native-prop-types@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-4.1.0.tgz#8ed03a64c21b7fbdd2d000957b6838d4f38d2c66" + integrity sha512-WfepZHmRbbdTvhcolb8aOKEvQdcmTMn5tKLbqbXmkBvjFjRVWAYqsXk/DBsV8TZxws8SdGHLuHaJrHSQUPRdfw== dependencies: - "@react-native/normalize-color" "*" + "@react-native/normalize-colors" "*" invariant "*" prop-types "*" -deprecated-react-native-prop-types@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-3.0.1.tgz#a275f84cd8519cd1665e8df3c99e9067d57a23ec" - integrity sha512-J0jCJcsk4hMlIb7xwOZKLfMpuJn6l8UtrPEzzQV5ewz5gvKNYakhBuq9h2rWX7YwHHJZFhU5W8ye7dB9oN8VcQ== +deprecated-react-native-prop-types@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/deprecated-react-native-prop-types/-/deprecated-react-native-prop-types-2.3.0.tgz#c10c6ee75ff2b6de94bb127f142b814e6e08d9ab" + integrity sha512-pWD0voFtNYxrVqvBMYf5gq3NA2GCpfodS1yNynTPc93AYA/KEMGeWDqqeUB6R2Z9ZofVhks2aeJXiuQqKNpesA== dependencies: "@react-native/normalize-color" "*" invariant "*" @@ -6281,7 +6356,7 @@ error-stack-parser@^2.0.6: dependencies: stackframe "^1.3.4" -errorhandler@^1.5.0: +errorhandler@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/errorhandler/-/errorhandler-1.5.1.tgz#b9ba5d17cf90744cd1e851357a6e75bf806a9a91" integrity sha512-rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A== @@ -6720,19 +6795,19 @@ expect@^29.0.0, expect@^29.6.2: jest-message-util "^29.6.2" jest-util "^29.6.2" -expo-application@~5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/expo-application/-/expo-application-5.1.1.tgz#5206bf0cf89cb0e32d1f5037a0481e5c86b951ab" - integrity sha512-aDatTcTTCdTbHw8h4/Tq2ilc6InM5ntF9xWCJdOcnUEcglxxGphVI/lzJKBaBF6mJECA8mEOjpVg2EGxOctTwg== +expo-application@~5.3.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/expo-application/-/expo-application-5.3.1.tgz#074bbfc6bb5d65ae74a67f5288fa3eb582237e53" + integrity sha512-HR2+K+Hm33vLw/TfbFaHrvUbRRNRco8R+3QaCKy7eJC2LFfT05kZ15ynGaKfB5DJ/oqPV3mxXVR/EfwmE++hoA== -expo-asset@~8.9.1: - version "8.9.2" - resolved "https://registry.yarnpkg.com/expo-asset/-/expo-asset-8.9.2.tgz#07f32d29d4f0ef99c80ffc831e81d62238f759a9" - integrity sha512-aHMaZkIG5/UoguINEHm2ln/KviU2m/yuryslnhCKR3KXRxiLnMhxmrONLGbknuNE0O1iCaprrl1w3y71u01Rpw== +expo-asset@~8.10.1: + version "8.10.1" + resolved "https://registry.yarnpkg.com/expo-asset/-/expo-asset-8.10.1.tgz#a7e8cf1c555ab8f844599822cb084fee95a93644" + integrity sha512-5VMTESxgY9GBsspO/esY25SKEa7RyascVkLe/OcL1WgblNFm7xCCEEUIW8VWS1nHJQGYxpMZPr3bEfjMpdWdyA== dependencies: blueimp-md5 "^2.10.0" - expo-constants "~14.3.0" - expo-file-system "~15.3.0" + expo-constants "~14.4.2" + expo-file-system "~15.4.0" invariant "^2.2.4" md5-file "^3.2.3" path-browserify "^1.0.0" @@ -6743,47 +6818,32 @@ expo-blur@~12.2.2: resolved "https://registry.yarnpkg.com/expo-blur/-/expo-blur-12.2.2.tgz#b7f94499255afbd3468302d02f3c4e39a0e562d5" integrity sha512-SvGbEZbB0VFNGqCW7FcqzWOEb3lrRgBnQKGrsKo49KwhMyHTYjYVYWnmrk9l8Tr7lIaNnd55QD6dPAzcXjZYMg== -expo-constants@~14.2.1: - version "14.2.1" - resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-14.2.1.tgz#b5b6b8079d2082c31ccf2cbc7cf97a0e83c229c3" - integrity sha512-DD5u4QmBds2U7uYo409apV7nX+XjudARcgqe7S9aRFJ/6kyftmuxvk1DpaU4X42Av8z/tfKwEpuxl+vl7HHx/Q== - dependencies: - "@expo/config" "~8.0.0" - uuid "^3.3.2" - -expo-constants@~14.3.0: - version "14.3.0" - resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-14.3.0.tgz#56478ddbbff990273174819528d218f9576ac147" - integrity sha512-O8b+mZlPXZGH4wLLd+jMihGD0ZSMJRSmSsmcG7T60jHU3Dw4yDIuzHM/wMoBoL1pxLIbEwvcwDj0w8c+Sn+1sQ== +expo-constants@~14.4.2: + version "14.4.2" + resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-14.4.2.tgz#cac5e8b524069545739b8d8595ce96cc5be6578c" + integrity sha512-nOB122DOAjk+KrJT69lFQAoYVQGQjFHSigCPVBzVdko9S1xGsfiOH9+X5dygTsZTIlVLpQJDdmZ7ONiv3i+26w== dependencies: - "@expo/config" "~8.0.0" + "@expo/config" "~8.1.0" uuid "^3.3.2" -expo-file-system@~15.2.2: - version "15.2.2" - resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-15.2.2.tgz#a1ddf8aabf794f93888a146c4f5187e2004683a3" - integrity sha512-LFkOLcWwlmnjkURxZ3/0ukS35OswX8iuQknLHRHeyk8mUA8fpRPPelD/a1lS+yclqfqavMJmTXVKM1Nsq5XVMA== - dependencies: - uuid "^3.4.0" - -expo-file-system@~15.3.0: - version "15.3.0" - resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-15.3.0.tgz#fae2806bbedee6c0c3ecf1a0f9015963f4c4d1df" - integrity sha512-YUvNZzZJlF5TZM+FoRW9biJPB7qEgZbGYm8xJpqnxpj70FkFhwwoKiXVduZk+KVNiIs7d0q7e+Jdvmcr+Id3FQ== +expo-file-system@~15.4.0, expo-file-system@~15.4.4: + version "15.4.4" + resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-15.4.4.tgz#b29e0507b57ee0cc7173cf8844aaf992e411f518" + integrity sha512-F0xS88D85F7qVQ61r0qBnzh6VW/s6iIl+VaQEEi2nAIOQHw1JIEj4yCXPLTtbyn5VmArbe2dSL3KYz1V+BLkKA== dependencies: uuid "^3.4.0" -expo-font@~11.1.1: - version "11.1.1" - resolved "https://registry.yarnpkg.com/expo-font/-/expo-font-11.1.1.tgz#268eed407e94f6e88083c01b68c357d010748d23" - integrity sha512-X+aICqYY69hiiDDtcNrjq8KutHrH2TrHuMqk0Rfq0P7hF6hMd+YefwLBNkvIrqrgmTAuqiLjMUwj2rHLqmgluw== +expo-font@~11.4.0: + version "11.4.0" + resolved "https://registry.yarnpkg.com/expo-font/-/expo-font-11.4.0.tgz#e2d31c0bb76ba3c37c2d84703a49aeafc3afef28" + integrity sha512-nkmezCFD7gR/I6R+e3/ry18uEfF8uYrr6h+PdBJu+3dawoLOpo+wFb/RG9bHUekU1/cPanR58LR7G5MEMKHR2w== dependencies: fontfaceobserver "^2.1.0" -expo-keep-awake@~12.0.1: - version "12.0.1" - resolved "https://registry.yarnpkg.com/expo-keep-awake/-/expo-keep-awake-12.0.1.tgz#19c5ab55391394ded3f6c262b0707c7140658a11" - integrity sha512-hqeCnb4033TyuZaXs93zTK7rjVJ3bywXATyMmKmKkLEsH2PKBAl/VmjlCOPQL/2Ncqz6aj7Wo//tjeJTARBD4g== +expo-keep-awake@~12.3.0: + version "12.3.0" + resolved "https://registry.yarnpkg.com/expo-keep-awake/-/expo-keep-awake-12.3.0.tgz#c42449ae19c993274ddc43aafa618792b6aec408" + integrity sha512-ujiJg1p9EdCOYS05jh5PtUrfiZnK0yyLy+UewzqrjUqIT8eAGMQbkfOn3C3fHE7AKd5AefSMzJnS3lYZcZYHDw== expo-linear-gradient@^12.1.2: version "12.3.0" @@ -6797,11 +6857,12 @@ expo-local-authentication@~13.2.1: dependencies: invariant "^2.2.4" -expo-modules-autolinking@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-1.2.0.tgz#3ead115510a43fe196fc0498586b6133bd573209" - integrity sha512-QOPh/iXykNDCAzUual1imSrn2aDakzCGUp2QmxVREr0llajXygroUWlT9sQXh1zKzbNp+a+i/xK375ZeBFiNJA== +expo-modules-autolinking@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-1.5.1.tgz#363f90c172769ce12bf56c7be9ca0897adfc7a81" + integrity sha512-yt5a1VCp2BF9CrsO689PCD5oXKP14MMhnOanQMvDn4BDpURYfzAlDVGC5fZrNQKtwn/eq3bcrxIwZ7D9QjVVRg== dependencies: + "@expo/config" "~8.1.0" chalk "^4.1.0" commander "^7.2.0" fast-glob "^3.2.5" @@ -6819,10 +6880,10 @@ expo-modules-autolinking@^0.0.3: find-up "~5.0.0" fs-extra "^9.1.0" -expo-modules-core@1.2.7, expo-modules-core@~1.2.6: - version "1.2.7" - resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-1.2.7.tgz#c80627b13a8f1c94ae9da8eea41e1ef1df5788c8" - integrity sha512-sulqn2M8+tIdxi6QFkKppDEzbePAscgE2LEHocYoQOgHxJpeT7axE0Hkzc+81EeviQilZzGeFZMtNMGh3c9yJg== +expo-modules-core@1.5.11, expo-modules-core@~1.5.11: + version "1.5.11" + resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-1.5.11.tgz#6ee33641cec5ef9c629393a267cef122110d2bf0" + integrity sha512-1Dj2t74nVjxq6xEQf2b9WFfAMhPzVnR0thY0PfRFgob4STyj3sq1U4PIHVWvKQBtDKIa227DrNRb+Hu+LqKWQg== dependencies: compare-versions "^3.4.0" invariant "^2.2.4" @@ -6870,28 +6931,26 @@ expo-yarn-workspaces@^2.1.0: minimist "^1.2.6" mkdirp "^0.5.1" -expo@~48.0.15: - version "48.0.20" - resolved "https://registry.yarnpkg.com/expo/-/expo-48.0.20.tgz#098a19b1eba81a15062fa853ae6941fdf9aef1f4" - integrity sha512-SDRlLRINWWqf/OIPaUr/BsFZLhR5oEj1u9Cn06h1mPeo8pqv6ei/QTSZql4e0ixHIu3PWMPrUx9k/47nnTyTpg== +expo@~49.0.13: + version "49.0.13" + resolved "https://registry.yarnpkg.com/expo/-/expo-49.0.13.tgz#9ee185d4eb1ac2859e67895bd919db5a04d1b8ec" + integrity sha512-k2QFmT5XN490ksjKJgogfS5SFj6ZKCu1GwWz4VUV4S9gkPjzr8zQAZoVPKaWxUYRb6xDpTJXdhLt7gSnV3bJvw== dependencies: "@babel/runtime" "^7.20.0" - "@expo/cli" "0.7.3" - "@expo/config" "8.0.5" - "@expo/config-plugins" "6.0.2" + "@expo/cli" "0.10.13" + "@expo/config" "8.1.2" + "@expo/config-plugins" "7.2.5" "@expo/vector-icons" "^13.0.0" - babel-preset-expo "~9.3.2" - cross-spawn "^6.0.5" - expo-application "~5.1.1" - expo-asset "~8.9.1" - expo-constants "~14.2.1" - expo-file-system "~15.2.2" - expo-font "~11.1.1" - expo-keep-awake "~12.0.1" - expo-modules-autolinking "1.2.0" - expo-modules-core "1.2.7" + babel-preset-expo "~9.5.2" + expo-application "~5.3.0" + expo-asset "~8.10.1" + expo-constants "~14.4.2" + expo-file-system "~15.4.4" + expo-font "~11.4.0" + expo-keep-awake "~12.3.0" + expo-modules-autolinking "1.5.1" + expo-modules-core "1.5.11" fbemitter "^3.0.0" - getenv "^1.0.0" invariant "^2.2.4" md5-file "^3.2.3" node-fetch "^2.6.7" @@ -7170,13 +7229,13 @@ finalhandler@1.2.0: statuses "2.0.1" unpipe "~1.0.0" -find-babel-config@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/find-babel-config/-/find-babel-config-1.2.0.tgz#a9b7b317eb5b9860cda9d54740a8c8337a2283a2" - integrity sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA== +find-babel-config@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/find-babel-config/-/find-babel-config-2.0.0.tgz#a8216f825415a839d0f23f4d18338a1cc966f701" + integrity sha512-dOKT7jvF3hGzlW60Gc3ONox/0rRZ/tz7WCil0bqA1In/3I8f1BctpXahRnEKDySZqci7u+dqq93sZST9fOJpFw== dependencies: - json5 "^0.5.1" - path-exists "^3.0.0" + json5 "^2.1.1" + path-exists "^4.0.0" find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: version "2.1.0" @@ -7239,6 +7298,11 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== +flow-enums-runtime@^0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/flow-enums-runtime/-/flow-enums-runtime-0.0.5.tgz#95884bfcc82edaf27eef7e1dd09732331cfbafbc" + integrity sha512-PSZF9ZuaZD03sT9YaIs0FrGJ7lSUw7rHZIex+73UYVXg46eL/wxN5PaVcPJFudE2cJu5f0fezitV5aBkLHPUOQ== + flow-parser@0.*: version "0.213.1" resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.213.1.tgz#c1916465050b165c9d8b931c02d78fe582e6c20c" @@ -7249,10 +7313,10 @@ flow-parser@^0.121.0: resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.121.0.tgz#9f9898eaec91a9f7c323e9e992d81ab5c58e618f" integrity sha512-1gIBiWJNR0tKUNv8gZuk7l9rVX06OuLzY9AoGio7y/JT4V1IZErEMEq2TJS+PFcw/y0RshZ1J/27VfK1UQzYVg== -flow-parser@^0.185.0: - version "0.185.2" - resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.185.2.tgz#cb7ee57f77377d6c5d69a469e980f6332a15e492" - integrity sha512-2hJ5ACYeJCzNtiVULov6pljKOLygy0zddoqSI1fFetM+XRPpRshFdGEijtqlamA1XwyZ+7rhryI6FQFzvtLWUQ== +flow-parser@^0.206.0: + version "0.206.0" + resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.206.0.tgz#f4f794f8026535278393308e01ea72f31000bfef" + integrity sha512-HVzoK3r6Vsg+lKvlIZzaWNBVai+FXTX1wdYhz/wVlH13tb/gOdLXmlTqy6odmTBhT5UoWUbq0k8263Qhr9d88w== flush-write-stream@^1.0.0: version "1.1.1" @@ -7601,6 +7665,17 @@ glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^8.0.3: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + global-modules@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" @@ -7825,17 +7900,17 @@ he@1.2.0, he@^1.2.0: resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== -hermes-estree@0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.8.0.tgz#530be27243ca49f008381c1f3e8b18fb26bf9ec0" - integrity sha512-W6JDAOLZ5pMPMjEiQGLCXSSV7pIBEgRR5zGkxgmzGSXHOxqV5dC/M1Zevqpbm9TZDE5tu358qZf8Vkzmsc+u7Q== +hermes-estree@0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/hermes-estree/-/hermes-estree-0.12.0.tgz#8a289f9aee854854422345e6995a48613bac2ca8" + integrity sha512-+e8xR6SCen0wyAKrMT3UD0ZCCLymKhRgjEB5sS28rKiFir/fXgLoeRilRUssFCILmGHb+OvHDUlhxs0+IEyvQw== -hermes-parser@0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.8.0.tgz#116dceaba32e45b16d6aefb5c4c830eaeba2d257" - integrity sha512-yZKalg1fTYG5eOiToLUaw69rQfZq/fi+/NtEXRU7N87K/XobNRhRWorh80oSge2lWUiZfTgUvRJH+XgZWrhoqA== +hermes-parser@0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/hermes-parser/-/hermes-parser-0.12.0.tgz#114dc26697cfb41a6302c215b859b74224383773" + integrity sha512-d4PHnwq6SnDLhYl3LHNHvOg7nQ6rcI7QVil418REYksv0Mh3cEkHDcuhGxNQ3vgnLSLl4QSvDrFCwQNYdpWlzw== dependencies: - hermes-estree "0.8.0" + hermes-estree "0.12.0" hermes-profile-transformer@^0.0.6: version "0.0.6" @@ -8047,17 +8122,23 @@ human-signals@^2.1.0: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== +husky@^8.0.0: + version "8.0.3" + resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" + integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== + hyphenate-style-name@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz#691879af8e220aea5750e8827db4ef62a54e361d" integrity sha512-ygGZLjmXfPHj+ZWh6LwbC37l43MhfztxetbFCoYTM2VjkIUpeHgSNn7QIyVFj7YQ1Wl9Cbw5sholVJPzWvC2MQ== -i18n-js@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/i18n-js/-/i18n-js-4.3.0.tgz#f1098e21a762faf8b8d09453abfdb6a28ee0f57b" - integrity sha512-PX93eT6WPV6Ym6mHtFKGDRZB0zwDX7HUPkgprjsZ28J6/Ohw1nvRYuM93or3pWv2VLxs6XfBf7X9Fc/YAZNEtQ== +i18n-js@^4.3.2: + version "4.3.2" + resolved "https://registry.yarnpkg.com/i18n-js/-/i18n-js-4.3.2.tgz#ec5391f23c76f5374b53645c83d272914eb81291" + integrity sha512-n8gbEbQEueym2/q2yrZk5/xKWjFcKtg3/Escw4JHSVWa8qtKqP8j7se3UjkRbHlO/REqFA0V/MG1q8tEfyHeOA== dependencies: bignumber.js "*" + lodash "*" make-plural "*" iconv-lite@0.4.24: @@ -8096,12 +8177,7 @@ image-q@^4.0.0: dependencies: "@types/node" "16.9.1" -image-size@^0.6.0: - version "0.6.3" - resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.6.3.tgz#e7e5c65bb534bd7cdcedd6cb5166272a85f75fb2" - integrity sha512-47xSUiQioGaB96nqtp5/q55m0aBQSQdyIloMOc/x+QVTDZLNmXE892IIDrJ0hM1A5vcNUDD5tDffkSP5lCaIIA== - -image-size@^1.0.0: +image-size@^1.0.0, image-size@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.0.2.tgz#d778b6d0ab75b2737c1556dd631652eb963bc486" integrity sha512-xfOoWjceHntRb3qFCrh5ZFORYH8XCdYpASltMhZ/Q0KZiOwjdE/Yl2QCiWdwD+lygV5bMCvauzgu5PxBX/Yerg== @@ -8233,7 +8309,7 @@ internal-slot@^1.0.3, internal-slot@^1.0.5: has "^1.0.3" side-channel "^1.0.4" -invariant@*, invariant@2.2.4, invariant@^2.2.2, invariant@^2.2.4: +invariant@*, invariant@2.2.4, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== @@ -8376,6 +8452,13 @@ is-core-module@^2.11.0, is-core-module@^2.9.0: dependencies: has "^1.0.3" +is-core-module@^2.13.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" + integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -8588,7 +8671,7 @@ is-resolvable@^1.0.0: resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== -is-root@2.1.0, is-root@^2.1.0: +is-root@2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== @@ -8884,16 +8967,16 @@ jest-environment-node@^29.2.1, jest-environment-node@^29.6.2: jest-mock "^29.6.2" jest-util "^29.6.2" -jest-get-type@^26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" - integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== - jest-get-type@^29.4.3: version "29.4.3" resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg== +jest-get-type@^29.6.3: + version "29.6.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.6.3.tgz#36f499fdcea197c1045a127319c0481723908fd1" + integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== + jest-haste-map@^29.6.2: version "29.6.2" resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.6.2.tgz#298c25ea5255cfad8b723179d4295cf3a50a70d1" @@ -9048,14 +9131,6 @@ jest-runtime@^29.6.2: slash "^3.0.0" strip-bom "^4.0.0" -jest-serializer@^27.0.6: - version "27.5.1" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.5.1.tgz#81438410a30ea66fd57ff730835123dea1fb1f64" - integrity sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w== - dependencies: - "@types/node" "*" - graceful-fs "^4.2.9" - jest-snapshot@^29.6.2: version "29.6.2" resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.6.2.tgz#9b431b561a83f2bdfe041e1cab8a6becdb01af9c" @@ -9106,17 +9181,17 @@ jest-util@^29.6.2: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^26.5.2: - version "26.6.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.6.2.tgz#23d380971587150467342911c3d7b4ac57ab20ec" - integrity sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ== +jest-validate@^29.2.1: + version "29.7.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.7.0.tgz#7bf705511c64da591d46b15fce41400d52147d9c" + integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== dependencies: - "@jest/types" "^26.6.2" - camelcase "^6.0.0" + "@jest/types" "^29.6.3" + camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^26.3.0" + jest-get-type "^29.6.3" leven "^3.1.0" - pretty-format "^26.6.2" + pretty-format "^29.7.0" jest-validate@^29.6.2: version "29.6.2" @@ -9283,6 +9358,31 @@ jscodeshift@^0.13.1: temp "^0.8.4" write-file-atomic "^2.3.0" +jscodeshift@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/jscodeshift/-/jscodeshift-0.14.0.tgz#7542e6715d6d2e8bde0b4e883f0ccea358b46881" + integrity sha512-7eCC1knD7bLUPuSCwXsMZUH51O8jIcoVyKtI6P0XM0IVzlGjckPy3FIwQlorzbN0Sg79oK+RlohN32Mqf/lrYA== + dependencies: + "@babel/core" "^7.13.16" + "@babel/parser" "^7.13.16" + "@babel/plugin-proposal-class-properties" "^7.13.0" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8" + "@babel/plugin-proposal-optional-chaining" "^7.13.12" + "@babel/plugin-transform-modules-commonjs" "^7.13.8" + "@babel/preset-flow" "^7.13.13" + "@babel/preset-typescript" "^7.13.0" + "@babel/register" "^7.13.16" + babel-core "^7.0.0-bridge.0" + chalk "^4.1.2" + flow-parser "0.*" + graceful-fs "^4.2.4" + micromatch "^4.0.4" + neo-async "^2.5.0" + node-dir "^0.1.17" + recast "^0.21.0" + temp "^0.8.4" + write-file-atomic "^2.3.0" + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -9332,11 +9432,6 @@ json3@^3.3.2: resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== -json5@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" - integrity sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw== - json5@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" @@ -9344,7 +9439,7 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -json5@^2.1.2, json5@^2.2.2: +json5@^2.1.1, json5@^2.1.2, json5@^2.2.2: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -9766,7 +9861,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -lodash@4.17.21, "lodash@>=3.5 <5", lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.17.5: +lodash@*, lodash@4.17.21, "lodash@>=3.5 <5", lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.17.5: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -9807,18 +9902,15 @@ loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.3.1, loose-envify@^1.4 dependencies: js-tokens "^3.0.0 || ^4.0.0" -lottie-ios@3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/lottie-ios/-/lottie-ios-3.2.3.tgz#d5a029ccce611603d178ea7ba725c1446f2310b4" - integrity sha512-mubYMN6+1HXa8z3EJKBvNBkl4UoVM4McjESeB2PgvRMSngmJtC5yUMRdhbbrIAn5Liu3hFGao/14s5hQIgtkRQ== +lottie-ios@4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lottie-ios/-/lottie-ios-4.3.0.tgz#a8970dc5fc6a0e0a5921df4e4390b0daea833b62" + integrity sha512-VNeTSpUyQlO9WA5/nsBWKlBAc/ualNMiz22AbcCl2yAVy7E9JTE5HAG/nL+pMCigdFEUUl78tTDmhtCxYbtxTA== -lottie-react-native@5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/lottie-react-native/-/lottie-react-native-5.1.3.tgz#6f5d0867bb762cee1dfc0613845d50c73e138ddd" - integrity sha512-Ho+oM+D3if85I2EBn8c17tcg7pc880Sp/DOeNW5aWiNtlCJKX/kmlhoM19NLqjzkHEm96fTkTcTy82ZwYU3Kbg== - dependencies: - invariant "^2.2.2" - react-native-safe-modules "^1.0.3" +lottie-react-native@6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/lottie-react-native/-/lottie-react-native-6.3.1.tgz#3ad152da79601e6a79ea811436a12a84fe1a4a72" + integrity sha512-M18nAVYeGMF//bhL27D2zuMcrFPH0jbD/deBvcWi0CCcfZf6LQfx45xt+cuDqwr5nh6dMm+ta8KfZJmkbNhtlg== lower-case@^2.0.2: version "2.0.2" @@ -10016,178 +10108,120 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== -metro-babel-transformer@0.73.10: - version "0.73.10" - resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.73.10.tgz#b27732fa3869f397246ee8ecf03b64622ab738c1" - integrity sha512-Yv2myTSnpzt/lTyurLvqYbBkytvUJcLHN8XD3t7W6rGiLTQPzmf1zypHQLphvcAXtCWBOXFtH7KLOSi2/qMg+A== +metro-babel-transformer@0.76.8: + version "0.76.8" + resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.76.8.tgz#5efd1027353b36b73706164ef09c290dceac096a" + integrity sha512-Hh6PW34Ug/nShlBGxkwQJSgPGAzSJ9FwQXhUImkzdsDgVu6zj5bx258J8cJVSandjNoQ8nbaHK6CaHlnbZKbyA== dependencies: "@babel/core" "^7.20.0" - hermes-parser "0.8.0" - metro-source-map "0.73.10" + hermes-parser "0.12.0" nullthrows "^1.1.1" -metro-babel-transformer@0.73.9: - version "0.73.9" - resolved "https://registry.yarnpkg.com/metro-babel-transformer/-/metro-babel-transformer-0.73.9.tgz#bec8aaaf1bbdc2e469fde586fde455f8b2a83073" - integrity sha512-DlYwg9wwYIZTHtic7dyD4BP0SDftoltZ3clma76nHu43blMWsCnrImHeHsAVne3XsQ+RJaSRxhN5nkG2VyVHwA== - dependencies: - "@babel/core" "^7.20.0" - hermes-parser "0.8.0" - metro-source-map "0.73.9" - nullthrows "^1.1.1" - -metro-cache-key@0.73.10: - version "0.73.10" - resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.73.10.tgz#8d63591187d295b62a80aed64a87864b1e9d67a2" - integrity sha512-JMVDl/EREDiUW//cIcUzRjKSwE2AFxVWk47cFBer+KA4ohXIG2CQPEquT56hOw1Y1s6gKNxxs1OlAOEsubrFjw== +metro-cache-key@0.76.8: + version "0.76.8" + resolved "https://registry.yarnpkg.com/metro-cache-key/-/metro-cache-key-0.76.8.tgz#8a0a5e991c06f56fcc584acadacb313c312bdc16" + integrity sha512-buKQ5xentPig9G6T37Ww/R/bC+/V1MA5xU/D8zjnhlelsrPG6w6LtHUS61ID3zZcMZqYaELWk5UIadIdDsaaLw== -metro-cache@0.73.10: - version "0.73.10" - resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.73.10.tgz#02e9cb7c1e42aab5268d2ecce35ad8f2c08891de" - integrity sha512-wPGlQZpdVlM404m7MxJqJ+hTReDr5epvfPbt2LerUAHY9RN99w61FeeAe25BMZBwgUgDtAsfGlJ51MBHg8MAqw== +metro-cache@0.76.8: + version "0.76.8" + resolved "https://registry.yarnpkg.com/metro-cache/-/metro-cache-0.76.8.tgz#296c1c189db2053b89735a8f33dbe82575f53661" + integrity sha512-QBJSJIVNH7Hc/Yo6br/U/qQDUpiUdRgZ2ZBJmvAbmAKp2XDzsapnMwK/3BGj8JNWJF7OLrqrYHsRsukSbUBpvQ== dependencies: - metro-core "0.73.10" + metro-core "0.76.8" rimraf "^3.0.2" -metro-config@0.73.10: - version "0.73.10" - resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.73.10.tgz#a9ec3d0a1290369e3f46c467a4c4f6dd43acc223" - integrity sha512-wIlybd1Z9I8K2KcStTiJxTB7OK529dxFgogNpKCTU/3DxkgAASqSkgXnZP6kVyqjh5EOWAKFe5U6IPic7kXDdQ== +metro-config@0.76.8: + version "0.76.8" + resolved "https://registry.yarnpkg.com/metro-config/-/metro-config-0.76.8.tgz#20bd5397fcc6096f98d2a813a7cecb38b8af062d" + integrity sha512-SL1lfKB0qGHALcAk2zBqVgQZpazDYvYFGwCK1ikz0S6Y/CM2i2/HwuZN31kpX6z3mqjv/6KvlzaKoTb1otuSAA== dependencies: + connect "^3.6.5" cosmiconfig "^5.0.5" - jest-validate "^26.5.2" - metro "0.73.10" - metro-cache "0.73.10" - metro-core "0.73.10" - metro-runtime "0.73.10" + jest-validate "^29.2.1" + metro "0.76.8" + metro-cache "0.76.8" + metro-core "0.76.8" + metro-runtime "0.76.8" -metro-core@0.73.10: - version "0.73.10" - resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.73.10.tgz#feb3c228aa8c0dde71d8e4cef614cc3a1dc3bbd7" - integrity sha512-5uYkajIxKyL6W45iz/ftNnYPe1l92CvF2QJeon1CHsMXkEiOJxEjo41l+iSnO/YodBGrmMCyupSO4wOQGUc0lw== +metro-core@0.76.8: + version "0.76.8" + resolved "https://registry.yarnpkg.com/metro-core/-/metro-core-0.76.8.tgz#917c8157c63406cb223522835abb8e7c6291dcad" + integrity sha512-sl2QLFI3d1b1XUUGxwzw/KbaXXU/bvFYrSKz6Sg19AdYGWFyzsgZ1VISRIDf+HWm4R/TJXluhWMEkEtZuqi3qA== dependencies: lodash.throttle "^4.1.1" - metro-resolver "0.73.10" + metro-resolver "0.76.8" -metro-file-map@0.73.10: - version "0.73.10" - resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.73.10.tgz#55bd906fb7c1bef8e1a31df4b29a3ef4b49f0b5a" - integrity sha512-XOMWAybeaXyD6zmVZPnoCCL2oO3rp4ta76oUlqWP0skBzhFxVtkE/UtDwApEMUY361JeBBago647gnKiARs+1g== +metro-file-map@0.76.8: + version "0.76.8" + resolved "https://registry.yarnpkg.com/metro-file-map/-/metro-file-map-0.76.8.tgz#a1db1185b6c316904ba6b53d628e5d1323991d79" + integrity sha512-A/xP1YNEVwO1SUV9/YYo6/Y1MmzhL4ZnVgcJC3VmHp/BYVOXVStzgVbWv2wILe56IIMkfXU+jpXrGKKYhFyHVw== dependencies: - abort-controller "^3.0.0" anymatch "^3.0.3" debug "^2.2.0" fb-watchman "^2.0.0" graceful-fs "^4.2.4" invariant "^2.2.4" jest-regex-util "^27.0.6" - jest-serializer "^27.0.6" jest-util "^27.2.0" jest-worker "^27.2.0" micromatch "^4.0.4" + node-abort-controller "^3.1.1" nullthrows "^1.1.1" walker "^1.0.7" optionalDependencies: fsevents "^2.3.2" -metro-hermes-compiler@0.73.10: - version "0.73.10" - resolved "https://registry.yarnpkg.com/metro-hermes-compiler/-/metro-hermes-compiler-0.73.10.tgz#4525a7835c803a5d0b3b05c6619202e2273d630f" - integrity sha512-rTRWEzkVrwtQLiYkOXhSdsKkIObnL+Jqo+IXHI7VEK2aSLWRAbtGNqECBs44kbOUypDYTFFE+WLtoqvUWqYkWg== - -metro-inspector-proxy@0.73.10: - version "0.73.10" - resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.73.10.tgz#752fed2ab88199c9dcc3369c3d59da6c5b954a51" - integrity sha512-CEEvocYc5xCCZBtGSIggMCiRiXTrnBbh8pmjKQqm9TtJZALeOGyt5pXUaEkKGnhrXETrexsg6yIbsQHhEvVfvQ== +metro-inspector-proxy@0.76.8: + version "0.76.8" + resolved "https://registry.yarnpkg.com/metro-inspector-proxy/-/metro-inspector-proxy-0.76.8.tgz#6b8678a7461b0b42f913a7881cc9319b4d3cddff" + integrity sha512-Us5o5UEd4Smgn1+TfHX4LvVPoWVo9VsVMn4Ldbk0g5CQx3Gu0ygc/ei2AKPGTwsOZmKxJeACj7yMH2kgxQP/iw== dependencies: connect "^3.6.5" debug "^2.2.0" + node-fetch "^2.2.0" ws "^7.5.1" - yargs "^17.5.1" + yargs "^17.6.2" -metro-minify-terser@0.73.10: - version "0.73.10" - resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.73.10.tgz#557eab3a512b90b7779350ff5d25a215c4dbe61f" - integrity sha512-uG7TSKQ/i0p9kM1qXrwbmY3v+6BrMItsOcEXcSP8Z+68bb+t9HeVK0T/hIfUu1v1PEnonhkhfzVsaP8QyTd5lQ== +metro-minify-terser@0.76.8: + version "0.76.8" + resolved "https://registry.yarnpkg.com/metro-minify-terser/-/metro-minify-terser-0.76.8.tgz#915ab4d1419257fc6a0b9fa15827b83fe69814bf" + integrity sha512-Orbvg18qXHCrSj1KbaeSDVYRy/gkro2PC7Fy2tDSH1c9RB4aH8tuMOIXnKJE+1SXxBtjWmQ5Yirwkth2DyyEZA== dependencies: terser "^5.15.0" -metro-minify-uglify@0.73.10: - version "0.73.10" - resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.73.10.tgz#4de79056d502479733854c90f2075374353ea154" - integrity sha512-eocnSeJKnLz/UoYntVFhCJffED7SLSgbCHgNvI6ju6hFb6EFHGJT9OLbkJWeXaWBWD3Zw5mYLS8GGqGn/CHZPA== +metro-minify-uglify@0.76.8: + version "0.76.8" + resolved "https://registry.yarnpkg.com/metro-minify-uglify/-/metro-minify-uglify-0.76.8.tgz#74745045ea2dd29f8783db483b2fce58385ba695" + integrity sha512-6l8/bEvtVaTSuhG1FqS0+Mc8lZ3Bl4RI8SeRIifVLC21eeSDp4CEBUWSGjpFyUDfi6R5dXzYaFnSgMNyfxADiQ== dependencies: uglify-es "^3.1.9" -metro-react-native-babel-preset@0.73.10: - version "0.73.10" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.10.tgz#304b24bb391537d2c987732cc0a9774be227d3f6" - integrity sha512-1/dnH4EHwFb2RKEKx34vVDpUS3urt2WEeR8FYim+ogqALg4sTpG7yeQPxWpbgKATezt4rNfqAANpIyH19MS4BQ== - dependencies: - "@babel/core" "^7.20.0" - "@babel/plugin-proposal-async-generator-functions" "^7.0.0" - "@babel/plugin-proposal-class-properties" "^7.0.0" - "@babel/plugin-proposal-export-default-from" "^7.0.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.0.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" - "@babel/plugin-proposal-optional-chaining" "^7.0.0" - "@babel/plugin-syntax-dynamic-import" "^7.0.0" - "@babel/plugin-syntax-export-default-from" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.18.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0" - "@babel/plugin-syntax-optional-chaining" "^7.0.0" - "@babel/plugin-transform-arrow-functions" "^7.0.0" - "@babel/plugin-transform-async-to-generator" "^7.0.0" - "@babel/plugin-transform-block-scoping" "^7.0.0" - "@babel/plugin-transform-classes" "^7.0.0" - "@babel/plugin-transform-computed-properties" "^7.0.0" - "@babel/plugin-transform-destructuring" "^7.0.0" - "@babel/plugin-transform-flow-strip-types" "^7.0.0" - "@babel/plugin-transform-function-name" "^7.0.0" - "@babel/plugin-transform-literals" "^7.0.0" - "@babel/plugin-transform-modules-commonjs" "^7.0.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.0.0" - "@babel/plugin-transform-parameters" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/plugin-transform-react-jsx-self" "^7.0.0" - "@babel/plugin-transform-react-jsx-source" "^7.0.0" - "@babel/plugin-transform-runtime" "^7.0.0" - "@babel/plugin-transform-shorthand-properties" "^7.0.0" - "@babel/plugin-transform-spread" "^7.0.0" - "@babel/plugin-transform-sticky-regex" "^7.0.0" - "@babel/plugin-transform-template-literals" "^7.0.0" - "@babel/plugin-transform-typescript" "^7.5.0" - "@babel/plugin-transform-unicode-regex" "^7.0.0" - "@babel/template" "^7.0.0" - react-refresh "^0.4.0" - -metro-react-native-babel-preset@0.73.8: - version "0.73.8" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.8.tgz#04908f264f5d99c944ae20b5b11f659431328431" - integrity sha512-spNrcQJTbQntEIqJnCA6yL4S+dzV9fXCk7U+Rm7yJasZ4o4Frn7jP23isu7FlZIp1Azx1+6SbP7SgQM+IP5JgQ== +metro-react-native-babel-preset@0.76.8: + version "0.76.8" + resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.76.8.tgz#7476efae14363cbdfeeec403b4f01d7348e6c048" + integrity sha512-Ptza08GgqzxEdK8apYsjTx2S8WDUlS2ilBlu9DR1CUcHmg4g3kOkFylZroogVAUKtpYQNYwAvdsjmrSdDNtiAg== dependencies: "@babel/core" "^7.20.0" "@babel/plugin-proposal-async-generator-functions" "^7.0.0" - "@babel/plugin-proposal-class-properties" "^7.0.0" + "@babel/plugin-proposal-class-properties" "^7.18.0" "@babel/plugin-proposal-export-default-from" "^7.0.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.0.0" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.0" + "@babel/plugin-proposal-numeric-separator" "^7.0.0" + "@babel/plugin-proposal-object-rest-spread" "^7.20.0" "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" - "@babel/plugin-proposal-optional-chaining" "^7.0.0" - "@babel/plugin-syntax-dynamic-import" "^7.0.0" + "@babel/plugin-proposal-optional-chaining" "^7.20.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" "@babel/plugin-syntax-export-default-from" "^7.0.0" "@babel/plugin-syntax-flow" "^7.18.0" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0" "@babel/plugin-syntax-optional-chaining" "^7.0.0" "@babel/plugin-transform-arrow-functions" "^7.0.0" - "@babel/plugin-transform-async-to-generator" "^7.0.0" + "@babel/plugin-transform-async-to-generator" "^7.20.0" "@babel/plugin-transform-block-scoping" "^7.0.0" "@babel/plugin-transform-classes" "^7.0.0" "@babel/plugin-transform-computed-properties" "^7.0.0" - "@babel/plugin-transform-destructuring" "^7.0.0" - "@babel/plugin-transform-flow-strip-types" "^7.0.0" + "@babel/plugin-transform-destructuring" "^7.20.0" + "@babel/plugin-transform-flow-strip-types" "^7.20.0" "@babel/plugin-transform-function-name" "^7.0.0" "@babel/plugin-transform-literals" "^7.0.0" "@babel/plugin-transform-modules-commonjs" "^7.0.0" @@ -10201,161 +10235,66 @@ metro-react-native-babel-preset@0.73.8: "@babel/plugin-transform-shorthand-properties" "^7.0.0" "@babel/plugin-transform-spread" "^7.0.0" "@babel/plugin-transform-sticky-regex" "^7.0.0" - "@babel/plugin-transform-template-literals" "^7.0.0" "@babel/plugin-transform-typescript" "^7.5.0" "@babel/plugin-transform-unicode-regex" "^7.0.0" "@babel/template" "^7.0.0" + babel-plugin-transform-flow-enums "^0.0.2" react-refresh "^0.4.0" -metro-react-native-babel-preset@0.73.9: - version "0.73.9" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-preset/-/metro-react-native-babel-preset-0.73.9.tgz#ef54637dd20f025197beb49e71309a9c539e73e2" - integrity sha512-AoD7v132iYDV4K78yN2OLgTPwtAKn0XlD2pOhzyBxiI8PeXzozhbKyPV7zUOJUPETj+pcEVfuYj5ZN/8+bhbCw== - dependencies: - "@babel/core" "^7.20.0" - "@babel/plugin-proposal-async-generator-functions" "^7.0.0" - "@babel/plugin-proposal-class-properties" "^7.0.0" - "@babel/plugin-proposal-export-default-from" "^7.0.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.0.0" - "@babel/plugin-proposal-object-rest-spread" "^7.0.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" - "@babel/plugin-proposal-optional-chaining" "^7.0.0" - "@babel/plugin-syntax-dynamic-import" "^7.0.0" - "@babel/plugin-syntax-export-default-from" "^7.0.0" - "@babel/plugin-syntax-flow" "^7.18.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0" - "@babel/plugin-syntax-optional-chaining" "^7.0.0" - "@babel/plugin-transform-arrow-functions" "^7.0.0" - "@babel/plugin-transform-async-to-generator" "^7.0.0" - "@babel/plugin-transform-block-scoping" "^7.0.0" - "@babel/plugin-transform-classes" "^7.0.0" - "@babel/plugin-transform-computed-properties" "^7.0.0" - "@babel/plugin-transform-destructuring" "^7.0.0" - "@babel/plugin-transform-flow-strip-types" "^7.0.0" - "@babel/plugin-transform-function-name" "^7.0.0" - "@babel/plugin-transform-literals" "^7.0.0" - "@babel/plugin-transform-modules-commonjs" "^7.0.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.0.0" - "@babel/plugin-transform-parameters" "^7.0.0" - "@babel/plugin-transform-react-display-name" "^7.0.0" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/plugin-transform-react-jsx-self" "^7.0.0" - "@babel/plugin-transform-react-jsx-source" "^7.0.0" - "@babel/plugin-transform-runtime" "^7.0.0" - "@babel/plugin-transform-shorthand-properties" "^7.0.0" - "@babel/plugin-transform-spread" "^7.0.0" - "@babel/plugin-transform-sticky-regex" "^7.0.0" - "@babel/plugin-transform-template-literals" "^7.0.0" - "@babel/plugin-transform-typescript" "^7.5.0" - "@babel/plugin-transform-unicode-regex" "^7.0.0" - "@babel/template" "^7.0.0" - react-refresh "^0.4.0" - -metro-react-native-babel-transformer@0.73.10: - version "0.73.10" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.73.10.tgz#4e20a9ce131b873cda0b5a44d3eb4002134a64b8" - integrity sha512-4G/upwqKdmKEjmsNa92/NEgsOxUWOygBVs+FXWfXWKgybrmcjh3NoqdRYrROo9ZRA/sB9Y/ZXKVkWOGKHtGzgg== +metro-react-native-babel-transformer@0.76.8: + version "0.76.8" + resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.76.8.tgz#c3a98e1f4cd5faf1e21eba8e004b94a90c4db69b" + integrity sha512-3h+LfS1WG1PAzhq8QF0kfXjxuXetbY/lgz8vYMQhgrMMp17WM1DNJD0gjx8tOGYbpbBC1qesJ45KMS4o5TA73A== dependencies: "@babel/core" "^7.20.0" babel-preset-fbjs "^3.4.0" - hermes-parser "0.8.0" - metro-babel-transformer "0.73.10" - metro-react-native-babel-preset "0.73.10" - metro-source-map "0.73.10" + hermes-parser "0.12.0" + metro-react-native-babel-preset "0.76.8" nullthrows "^1.1.1" -metro-react-native-babel-transformer@0.73.9: - version "0.73.9" - resolved "https://registry.yarnpkg.com/metro-react-native-babel-transformer/-/metro-react-native-babel-transformer-0.73.9.tgz#4f4f0cfa5119bab8b53e722fabaf90687d0cbff0" - integrity sha512-DSdrEHuQ22ixY7DyipyKkIcqhOJrt5s6h6X7BYJCP9AMUfXOwLe2biY3BcgJz5GOXv8/Akry4vTCvQscVS1otQ== - dependencies: - "@babel/core" "^7.20.0" - babel-preset-fbjs "^3.4.0" - hermes-parser "0.8.0" - metro-babel-transformer "0.73.9" - metro-react-native-babel-preset "0.73.9" - metro-source-map "0.73.9" - nullthrows "^1.1.1" - -metro-resolver@0.73.10: - version "0.73.10" - resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.73.10.tgz#c39a3bd8d33e5d78cb256110d29707d8d49ed0be" - integrity sha512-HeXbs+0wjakaaVQ5BI7eT7uqxlZTc9rnyw6cdBWWMgUWB++KpoI0Ge7Hi6eQAOoVAzXC3m26mPFYLejpzTWjng== - dependencies: - absolute-path "^0.0.0" - -metro-runtime@0.73.10: - version "0.73.10" - resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.73.10.tgz#c3de19d17e75ffe1a145778d99422e7ffc208768" - integrity sha512-EpVKm4eN0Fgx2PEWpJ5NiMArV8zVoOin866jIIvzFLpmkZz1UEqgjf2JAfUJnjgv3fjSV3JqeGG2vZCaGQBTow== - dependencies: - "@babel/runtime" "^7.0.0" - react-refresh "^0.4.0" +metro-resolver@0.76.8: + version "0.76.8" + resolved "https://registry.yarnpkg.com/metro-resolver/-/metro-resolver-0.76.8.tgz#0862755b9b84e26853978322464fb37c6fdad76d" + integrity sha512-KccOqc10vrzS7ZhG2NSnL2dh3uVydarB7nOhjreQ7C4zyWuiW9XpLC4h47KtGQv3Rnv/NDLJYeDqaJ4/+140HQ== -metro-runtime@0.73.9: - version "0.73.9" - resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.73.9.tgz#0b24c0b066b8629ee855a6e5035b65061fef60d5" - integrity sha512-d5Hs83FpKB9r8q8Vb95+fa6ESpwysmPr4lL1I2rM2qXAFiO7OAPT9Bc23WmXgidkBtD0uUFdB2lG+H1ATz8rZg== +metro-runtime@0.76.8: + version "0.76.8" + resolved "https://registry.yarnpkg.com/metro-runtime/-/metro-runtime-0.76.8.tgz#74b2d301a2be5f3bbde91b8f1312106f8ffe50c3" + integrity sha512-XKahvB+iuYJSCr3QqCpROli4B4zASAYpkK+j3a0CJmokxCDNbgyI4Fp88uIL6rNaZfN0Mv35S0b99SdFXIfHjg== dependencies: "@babel/runtime" "^7.0.0" react-refresh "^0.4.0" -metro-source-map@0.73.10: - version "0.73.10" - resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.73.10.tgz#28e09a28f1a2f7a4f8d0845b845cbed74e2f48f9" - integrity sha512-NAGv14701p/YaFZ76KzyPkacBw/QlEJF1f8elfs23N1tC33YyKLDKvPAzFJiYqjdcFvuuuDCA8JCXd2TgLxNPw== +metro-source-map@0.76.8: + version "0.76.8" + resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.76.8.tgz#f085800152a6ba0b41ca26833874d31ec36c5a53" + integrity sha512-Hh0ncPsHPVf6wXQSqJqB3K9Zbudht4aUtNpNXYXSxH+pteWqGAXnjtPsRAnCsCWl38wL0jYF0rJDdMajUI3BDw== dependencies: "@babel/traverse" "^7.20.0" "@babel/types" "^7.20.0" invariant "^2.2.4" - metro-symbolicate "0.73.10" + metro-symbolicate "0.76.8" nullthrows "^1.1.1" - ob1 "0.73.10" + ob1 "0.76.8" source-map "^0.5.6" vlq "^1.0.0" -metro-source-map@0.73.9: - version "0.73.9" - resolved "https://registry.yarnpkg.com/metro-source-map/-/metro-source-map-0.73.9.tgz#89ca41f6346aeb12f7f23496fa363e520adafebe" - integrity sha512-l4VZKzdqafipriETYR6lsrwtavCF1+CMhCOY9XbyWeTrpGSNgJQgdeJpttzEZTHQQTLR0csQo0nD1ef3zEP6IQ== - dependencies: - "@babel/traverse" "^7.20.0" - "@babel/types" "^7.20.0" - invariant "^2.2.4" - metro-symbolicate "0.73.9" - nullthrows "^1.1.1" - ob1 "0.73.9" - source-map "^0.5.6" - vlq "^1.0.0" - -metro-symbolicate@0.73.10: - version "0.73.10" - resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.73.10.tgz#7853a9a8fbfd615a5c9db698fffc685441ac880f" - integrity sha512-PmCe3TOe1c/NVwMlB+B17me951kfkB3Wve5RqJn+ErPAj93od1nxicp6OJe7JT4QBRnpUP8p9tw2sHKqceIzkA== +metro-symbolicate@0.76.8: + version "0.76.8" + resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.76.8.tgz#f102ac1a306d51597ecc8fdf961c0a88bddbca03" + integrity sha512-LrRL3uy2VkzrIXVlxoPtqb40J6Bf1mlPNmUQewipc3qfKKFgtPHBackqDy1YL0njDsWopCKcfGtFYLn0PTUn3w== dependencies: invariant "^2.2.4" - metro-source-map "0.73.10" + metro-source-map "0.76.8" nullthrows "^1.1.1" source-map "^0.5.6" through2 "^2.0.1" vlq "^1.0.0" -metro-symbolicate@0.73.9: - version "0.73.9" - resolved "https://registry.yarnpkg.com/metro-symbolicate/-/metro-symbolicate-0.73.9.tgz#cb452299a36e5b86b2826e7426d51221635c48bf" - integrity sha512-4TUOwxRHHqbEHxRqRJ3wZY5TA8xq7AHMtXrXcjegMH9FscgYztsrIG9aNBUBS+VLB6g1qc6BYbfIgoAnLjCDyw== - dependencies: - invariant "^2.2.4" - metro-source-map "0.73.9" - nullthrows "^1.1.1" - source-map "^0.5.6" - through2 "^2.0.1" - vlq "^1.0.0" - -metro-transform-plugins@0.73.10: - version "0.73.10" - resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.73.10.tgz#1b762330cbbedb6c18438edc3d76b063c88882af" - integrity sha512-D4AgD3Vsrac+4YksaPmxs/0ocT67bvwTkFSIgWWeDvWwIG0U1iHzTS9f8Bvb4PITnXryDoFtjI6OWF7uOpGxpA== +metro-transform-plugins@0.76.8: + version "0.76.8" + resolved "https://registry.yarnpkg.com/metro-transform-plugins/-/metro-transform-plugins-0.76.8.tgz#d77c28a6547a8e3b72250f740fcfbd7f5408f8ba" + integrity sha512-PlkGTQNqS51Bx4vuufSQCdSn2R2rt7korzngo+b5GCkeX5pjinPjnO2kNhQ8l+5bO0iUD/WZ9nsM2PGGKIkWFA== dependencies: "@babel/core" "^7.20.0" "@babel/generator" "^7.20.0" @@ -10363,29 +10302,28 @@ metro-transform-plugins@0.73.10: "@babel/traverse" "^7.20.0" nullthrows "^1.1.1" -metro-transform-worker@0.73.10: - version "0.73.10" - resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.73.10.tgz#bb401dbd7b10a6fe443a5f7970cba38425efece0" - integrity sha512-IySvVubudFxahxOljWtP0QIMMpgUrCP0bW16cz2Enof0PdumwmR7uU3dTbNq6S+XTzuMHR+076aIe4VhPAWsIQ== +metro-transform-worker@0.76.8: + version "0.76.8" + resolved "https://registry.yarnpkg.com/metro-transform-worker/-/metro-transform-worker-0.76.8.tgz#b9012a196cee205170d0c899b8b175b9305acdea" + integrity sha512-mE1fxVAnJKmwwJyDtThildxxos9+DGs9+vTrx2ktSFMEVTtXS/bIv2W6hux1pqivqAfyJpTeACXHk5u2DgGvIQ== dependencies: "@babel/core" "^7.20.0" "@babel/generator" "^7.20.0" "@babel/parser" "^7.20.0" "@babel/types" "^7.20.0" babel-preset-fbjs "^3.4.0" - metro "0.73.10" - metro-babel-transformer "0.73.10" - metro-cache "0.73.10" - metro-cache-key "0.73.10" - metro-hermes-compiler "0.73.10" - metro-source-map "0.73.10" - metro-transform-plugins "0.73.10" + metro "0.76.8" + metro-babel-transformer "0.76.8" + metro-cache "0.76.8" + metro-cache-key "0.76.8" + metro-source-map "0.76.8" + metro-transform-plugins "0.76.8" nullthrows "^1.1.1" -metro@0.73.10: - version "0.73.10" - resolved "https://registry.yarnpkg.com/metro/-/metro-0.73.10.tgz#d9a0efb1e403e3aee5cf5140e0a96a7220c23901" - integrity sha512-J2gBhNHFtc/Z48ysF0B/bfTwUwaRDLjNv7egfhQCc+934dpXcjJG2KZFeuybF+CvA9vo4QUi56G2U+RSAJ5tsA== +metro@0.76.8: + version "0.76.8" + resolved "https://registry.yarnpkg.com/metro/-/metro-0.76.8.tgz#ba526808b99977ca3f9ac5a7432fd02a340d13a6" + integrity sha512-oQA3gLzrrYv3qKtuWArMgHPbHu8odZOD9AoavrqSFllkPgOtmkBvNNDLCELqv5SjBfqjISNffypg+5UGG3y0pg== dependencies: "@babel/code-frame" "^7.0.0" "@babel/core" "^7.20.0" @@ -10394,7 +10332,6 @@ metro@0.73.10: "@babel/template" "^7.0.0" "@babel/traverse" "^7.20.0" "@babel/types" "^7.20.0" - absolute-path "^0.0.0" accepts "^1.3.7" async "^3.2.2" chalk "^4.0.0" @@ -10404,29 +10341,28 @@ metro@0.73.10: denodeify "^1.2.1" error-stack-parser "^2.0.6" graceful-fs "^4.2.4" - hermes-parser "0.8.0" - image-size "^0.6.0" + hermes-parser "0.12.0" + image-size "^1.0.2" invariant "^2.2.4" jest-worker "^27.2.0" jsc-safe-url "^0.2.2" lodash.throttle "^4.1.1" - metro-babel-transformer "0.73.10" - metro-cache "0.73.10" - metro-cache-key "0.73.10" - metro-config "0.73.10" - metro-core "0.73.10" - metro-file-map "0.73.10" - metro-hermes-compiler "0.73.10" - metro-inspector-proxy "0.73.10" - metro-minify-terser "0.73.10" - metro-minify-uglify "0.73.10" - metro-react-native-babel-preset "0.73.10" - metro-resolver "0.73.10" - metro-runtime "0.73.10" - metro-source-map "0.73.10" - metro-symbolicate "0.73.10" - metro-transform-plugins "0.73.10" - metro-transform-worker "0.73.10" + metro-babel-transformer "0.76.8" + metro-cache "0.76.8" + metro-cache-key "0.76.8" + metro-config "0.76.8" + metro-core "0.76.8" + metro-file-map "0.76.8" + metro-inspector-proxy "0.76.8" + metro-minify-terser "0.76.8" + metro-minify-uglify "0.76.8" + metro-react-native-babel-preset "0.76.8" + metro-resolver "0.76.8" + metro-runtime "0.76.8" + metro-source-map "0.76.8" + metro-symbolicate "0.76.8" + metro-transform-plugins "0.76.8" + metro-transform-worker "0.76.8" mime-types "^2.1.27" node-fetch "^2.2.0" nullthrows "^1.1.1" @@ -10434,10 +10370,9 @@ metro@0.73.10: serialize-error "^2.1.0" source-map "^0.5.6" strip-ansi "^6.0.0" - temp "0.8.3" throat "^5.0.0" ws "^7.5.1" - yargs "^17.5.1" + yargs "^17.6.2" microevent.ts@~0.1.1: version "0.1.1" @@ -10556,6 +10491,13 @@ minimatch@3.0.4: dependencies: brace-expansion "^1.1.7" +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + minimist@^1.2.0, minimist@^1.2.6: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" @@ -10803,6 +10745,11 @@ nocache@^3.0.1: resolved "https://registry.yarnpkg.com/nocache/-/nocache-3.0.4.tgz#5b37a56ec6e09fc7d401dceaed2eab40c8bfdf79" integrity sha512-WDD0bdg9mbq6F4mRxEYcPWwfA1vxd0mrvKOyxI7Xj/atfRHVeutzuWByG//jfm4uPzp0y4Kj051EORCBSQMycw== +node-abort-controller@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" + integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== + node-dir@^0.1.17: version "0.1.17" resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" @@ -11068,15 +11015,10 @@ oas-validator@^5.0.8: should "^13.2.1" yaml "^1.10.0" -ob1@0.73.10: - version "0.73.10" - resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.73.10.tgz#bf0a2e8922bb8687ddca82327c5cf209414a1bd4" - integrity sha512-aO6EYC+QRRCkZxVJhCWhLKgVjhNuD6Gu1riGjxrIm89CqLsmKgxzYDDEsktmKsoDeRdWGQM5EdMzXDl5xcVfsw== - -ob1@0.73.9: - version "0.73.9" - resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.73.9.tgz#d5677a0dd3e2f16ad84231278d79424436c38c59" - integrity sha512-kHOzCOFXmAM26fy7V/YuXNKne2TyRiXbFAvPBIbuedJCZZWQZHLdPzMeXJI4Egt6IcfDttRzN3jQ90wOwq1iNw== +ob1@0.76.8: + version "0.76.8" + resolved "https://registry.yarnpkg.com/ob1/-/ob1-0.76.8.tgz#ac4c459465b1c0e2c29aaa527e09fc463d3ffec8" + integrity sha512-dlBkJJV5M/msj9KYA9upc+nUWVwuOFFTbu28X6kZeGwcuW+JxaHSBZ70SYQnk5M+j5JbNLR6yKHmgW4M5E7X5g== object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" @@ -12155,6 +12097,15 @@ pretty-format@^29.0.0, pretty-format@^29.6.2: ansi-styles "^5.0.0" react-is "^18.0.0" +pretty-format@^29.7.0: + version "29.7.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.7.0.tgz#ca42c758310f365bfa71a0bda0a807160b776812" + integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== + dependencies: + "@jest/schemas" "^29.6.3" + ansi-styles "^5.0.0" + react-is "^18.0.0" + process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -12462,10 +12413,10 @@ react-dev-utils@~11.0.1: strip-ansi "6.0.0" text-table "0.2.0" -react-devtools-core@^4.26.1: - version "4.28.0" - resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-4.28.0.tgz#3fa18709b24414adddadac33b6b9cea96db60f2f" - integrity sha512-E3C3X1skWBdBzwpOUbmXG8SgH6BtsluSMe+s6rRcujNKG1DGi8uIfhdhszkgDpAsMoE55hwqRUzeXCmETDBpTg== +react-devtools-core@^4.27.2: + version "4.28.4" + resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-4.28.4.tgz#fb8183eada77093f4c2f9830e664bf22255abe27" + integrity sha512-IUZKLv3CimeM07G3vX4H4loxVpByrzq3HvfTX7v9migalwvLs9ZY5D3S3pKR33U+GguYfBBdMMZyToFhsSE/iQ== dependencies: shell-quote "^1.6.1" ws "^7" @@ -12530,16 +12481,6 @@ react-native-codegen@^0.69.1: jscodeshift "^0.13.1" nullthrows "^1.1.1" -react-native-codegen@^0.71.5: - version "0.71.5" - resolved "https://registry.yarnpkg.com/react-native-codegen/-/react-native-codegen-0.71.5.tgz#454a42a891cd4ca5fc436440d301044dc1349c14" - integrity sha512-rfsuc0zkuUuMjFnrT55I1mDZ+pBRp2zAiRwxck3m6qeGJBGK5OV5JH66eDQ4aa+3m0of316CqrJDRzVlYufzIg== - dependencies: - "@babel/parser" "^7.14.0" - flow-parser "^0.185.0" - jscodeshift "^0.13.1" - nullthrows "^1.1.1" - react-native-config@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/react-native-config/-/react-native-config-1.5.1.tgz#73c94f511493e9b7ff9350cdf351d203a1b05acc" @@ -12611,11 +12552,6 @@ react-native-get-random-values@^1.8.0: dependencies: fast-base64-decode "^1.0.0" -react-native-gradle-plugin@^0.71.17: - version "0.71.19" - resolved "https://registry.yarnpkg.com/react-native-gradle-plugin/-/react-native-gradle-plugin-0.71.19.tgz#3379e28341fcd189bc1f4691cefc84c1a4d7d232" - integrity sha512-1dVk9NwhoyKHCSxcrM6vY6cxmojeATsBobDicX0ZKr7DgUF2cBQRTKsimQFvzH8XhOVXyH8p4HyDSZNIFI8OlQ== - react-native-haptic-feedback@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/react-native-haptic-feedback/-/react-native-haptic-feedback-2.0.3.tgz#09133b2175503831c04798cb0dc63ae91e3959c1" @@ -12744,13 +12680,6 @@ react-native-safe-area-context@4.5.0: resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-4.5.0.tgz#9208313236e8f49e1920ac1e2a2c975f03aed284" integrity sha512-0WORnk9SkREGUg2V7jHZbuN5x4vcxj/1B0QOcXJjdYWrzZHgLcUzYWWIUecUPJh747Mwjt/42RZDOaFn3L8kPQ== -react-native-safe-modules@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/react-native-safe-modules/-/react-native-safe-modules-1.0.3.tgz#f5f29bb9d09d17581193843d4173ad3054f74890" - integrity sha512-DUxti4Z+AgJ/ZsO5U7p3uSCUBko8JT8GvFlCeOXk9bMd+4qjpoDvMYpfbixXKgL88M+HwmU/KI1YFN6gsQZyBA== - dependencies: - dedent "^0.6.0" - react-native-screens@3.25.0: version "3.25.0" resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-3.25.0.tgz#cf45e271ce733c9cf782fef8c9b3eb9e53faf01d" @@ -12904,45 +12833,47 @@ react-native-webview@^11.14.0: escape-string-regexp "2.0.0" invariant "2.2.4" -react-native@0.71.7: - version "0.71.7" - resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.71.7.tgz#d0ae409f6ee4fc7e7a876b4ca9d8d28934133228" - integrity sha512-Id6iRLS581fJMFGbBl1jP5uSmjExtGOvw5Gvh7694zISXjsRAsFMmU+izs0pyCLqDBoHK7y4BT7WGPGw693nYw== +react-native@0.72.6: + version "0.72.6" + resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.72.6.tgz#9f8d090694907e2f83af22e115cc0e4a3d5fa626" + integrity sha512-RafPY2gM7mcrFySS8TL8x+TIO3q7oAlHpzEmC7Im6pmXni6n1AuufGaVh0Narbr1daxstw7yW7T9BKW5dpVc2A== dependencies: "@jest/create-cache-key-function" "^29.2.1" - "@react-native-community/cli" "10.2.2" - "@react-native-community/cli-platform-android" "10.2.0" - "@react-native-community/cli-platform-ios" "10.2.1" - "@react-native/assets" "1.0.0" - "@react-native/normalize-color" "2.1.0" - "@react-native/polyfills" "2.0.0" + "@react-native-community/cli" "11.3.7" + "@react-native-community/cli-platform-android" "11.3.7" + "@react-native-community/cli-platform-ios" "11.3.7" + "@react-native/assets-registry" "^0.72.0" + "@react-native/codegen" "^0.72.7" + "@react-native/gradle-plugin" "^0.72.11" + "@react-native/js-polyfills" "^0.72.1" + "@react-native/normalize-colors" "^0.72.0" + "@react-native/virtualized-lists" "^0.72.8" abort-controller "^3.0.0" anser "^1.4.9" base64-js "^1.1.2" - deprecated-react-native-prop-types "^3.0.1" + deprecated-react-native-prop-types "4.1.0" event-target-shim "^5.0.1" + flow-enums-runtime "^0.0.5" invariant "^2.2.4" jest-environment-node "^29.2.1" jsc-android "^250231.0.0" memoize-one "^5.0.0" - metro-react-native-babel-transformer "0.73.9" - metro-runtime "0.73.9" - metro-source-map "0.73.9" + metro-runtime "0.76.8" + metro-source-map "0.76.8" mkdirp "^0.5.1" nullthrows "^1.1.1" pretty-format "^26.5.2" promise "^8.3.0" - react-devtools-core "^4.26.1" - react-native-codegen "^0.71.5" - react-native-gradle-plugin "^0.71.17" + react-devtools-core "^4.27.2" react-refresh "^0.4.0" react-shallow-renderer "^16.15.0" regenerator-runtime "^0.13.2" - scheduler "^0.23.0" - stacktrace-parser "^0.1.3" + scheduler "0.24.0-canary-efb381bbf-20230505" + stacktrace-parser "^0.1.10" use-sync-external-store "^1.0.0" whatwg-fetch "^3.0.0" ws "^6.2.2" + yargs "^17.6.2" react-query@^3.39.3: version "3.39.3" @@ -13082,6 +13013,16 @@ recast@^0.20.4: source-map "~0.6.1" tslib "^2.0.1" +recast@^0.21.0: + version "0.21.5" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.21.5.tgz#e8cd22bb51bcd6130e54f87955d33a2b2e57b495" + integrity sha512-hjMmLaUXAm1hIuTqOdeYObMslq/q+Xff6QE3Y2P+uoHAg2nmVlLBps2hzh1UJDdMtDTMXOFewK6ky51JQIeECg== + dependencies: + ast-types "0.15.2" + esprima "~4.0.0" + source-map "~0.6.1" + tslib "^2.0.1" + recursive-readdir@2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" @@ -13267,7 +13208,7 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== -reselect@^4.0.0, reselect@^4.1.8: +reselect@^4.1.7, reselect@^4.1.8: version "4.1.8" resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.8.tgz#3f5dc671ea168dccdeb3e141236f69f02eaec524" integrity sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ== @@ -13311,7 +13252,7 @@ resolve.exports@^2.0.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== -resolve@^1.13.1, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.3.2: +resolve@^1.14.2, resolve@^1.20.0, resolve@^1.3.2: version "1.22.2" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== @@ -13320,6 +13261,15 @@ resolve@^1.13.1, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.3.2: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +resolve@^1.22.1: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + resolve@^2.0.0-next.4: version "2.0.0-next.4" resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" @@ -13391,11 +13341,6 @@ rimraf@^2.5.4, rimraf@^2.6.2, rimraf@^2.6.3: dependencies: glob "^7.1.3" -rimraf@~2.2.6: - version "2.2.8" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" - integrity sha512-R5KMKHnPAQaZMqLOsyuyUmcIjSeDm+73eoqQpaXA7AZ22BL+6C+1mcUscgOsNd8WVlJuvlgAPsegcx7pjlV0Dg== - rimraf@~2.4.0: version "2.4.5" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da" @@ -13490,6 +13435,13 @@ sax@>=0.6.0, sax@^1.2.4, sax@~1.2.4: resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== +scheduler@0.24.0-canary-efb381bbf-20230505: + version "0.24.0-canary-efb381bbf-20230505" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.24.0-canary-efb381bbf-20230505.tgz#5dddc60e29f91cd7f8b983d7ce4a99c2202d178f" + integrity sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA== + dependencies: + loose-envify "^1.1.0" + scheduler@^0.23.0: version "0.23.0" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" @@ -13558,7 +13510,7 @@ semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.5, semver@^7.3.7, semver@^7.5.3: +semver@^7.3.5, semver@^7.3.7, semver@^7.5.2, semver@^7.5.3: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== @@ -14078,7 +14030,7 @@ stacktrace-js@^2.0.0: stack-generator "^2.0.5" stacktrace-gps "^3.0.4" -stacktrace-parser@^0.1.3: +stacktrace-parser@^0.1.10: version "0.1.10" resolved "https://registry.yarnpkg.com/stacktrace-parser/-/stacktrace-parser-0.1.10.tgz#29fb0cae4e0d0b85155879402857a1639eb6051a" integrity sha512-KJP1OCML99+8fhOHxwwzyWrlUuVX5GQ0ZpJTd1DFXhdkrvg1szxfHhawXUZ3g9TkXORQd4/WG68jMlQZ2p8wlg== @@ -14553,14 +14505,6 @@ temp-dir@^2.0.0: resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e" integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg== -temp@0.8.3: - version "0.8.3" - resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59" - integrity sha512-jtnWJs6B1cZlHs9wPG7BrowKxZw/rf6+UpGAkr8AaYmiTyTO7zQlLoST8zx/8TcUPnZmeBoB+H8ARuHZaSijVw== - dependencies: - os-tmpdir "^1.0.0" - rimraf "~2.2.6" - temp@^0.8.4: version "0.8.4" resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.4.tgz#8c97a33a4770072e0a05f919396c7665a7dd59f2" @@ -15870,6 +15814,11 @@ yaml@^1.10.0, yaml@^1.10.2: resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== +yaml@^2.2.1: + version "2.3.3" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.3.tgz#01f6d18ef036446340007db8e016810e5d64aad9" + integrity sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ== + yargs-parser@^13.1.2: version "13.1.2" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" @@ -15924,7 +15873,7 @@ yargs@^15.1.0, yargs@^15.3.1: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^17.0.1, yargs@^17.3.1, yargs@^17.5.1: +yargs@^17.0.1, yargs@^17.3.1, yargs@^17.6.2: version "17.7.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== From 3ca828802f5a0c000af1e9f2bccfcb85216dc76b Mon Sep 17 00:00:00 2001 From: bogoslavskiy Date: Sat, 14 Oct 2023 17:05:19 +0400 Subject: [PATCH 07/24] fix(mobile): eslint config --- packages/mobile/.eslintrc.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/mobile/.eslintrc.js b/packages/mobile/.eslintrc.js index 7fbe5394d..1a1c9e479 100644 --- a/packages/mobile/.eslintrc.js +++ b/packages/mobile/.eslintrc.js @@ -1,4 +1,10 @@ module.exports = { root: true, extends: '@react-native', -}; \ No newline at end of file + parser: '@typescript-eslint/parser', + rules: { + 'react/react-in-jsx-scope': 'off', + 'react/jsx-uses-react': 'off', + 'react-hooks/exhaustive-deps': 'warn', + }, +}; From 24895f878f4b1b887968db1f9986db7dd2730d6f Mon Sep 17 00:00:00 2001 From: bogoslavskiy Date: Sat, 14 Oct 2023 17:53:11 +0400 Subject: [PATCH 08/24] bump(android): react-native 0.72.6 --- packages/mobile/android/app/build.gradle | 46 ----- packages/mobile/android/build.gradle | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 3 +- packages/mobile/android/gradle.properties | 2 +- .../gradle/wrapper/gradle-wrapper.properties | 3 +- packages/mobile/android/gradlew | 12 +- packages/mobile/android/gradlew.bat | 11 +- packages/mobile/android/settings.gradle | 2 +- packages/mobile/package.json | 8 +- .../android/build.gradle | 2 +- yarn.lock | 188 +++++++++--------- 11 files changed, 126 insertions(+), 153 deletions(-) diff --git a/packages/mobile/android/app/build.gradle b/packages/mobile/android/app/build.gradle index 93f84ff06..a5686d136 100644 --- a/packages/mobile/android/app/build.gradle +++ b/packages/mobile/android/app/build.gradle @@ -6,8 +6,6 @@ plugins { id "com.google.firebase.crashlytics" } -import com.android.build.OutputFile - def projectRoot = rootDir.getAbsoluteFile().getParentFile().getAbsolutePath() def expoDebuggableVariants = ['debug'] // Override `debuggableVariants` for expo-updates debugging @@ -77,14 +75,6 @@ ext { hermesEnabled = (findProperty('expo.jsEngine') ?: "hermes") == "hermes" } -/** - * Set this to true to create four separate APKs instead of one, - * one for each native architecture. This is useful if you don't - * use App Bundles (https://developer.android.com/guide/app-bundle/) - * and want to have separate APKs to upload to the Play Store. - */ -def enableSeparateBuildPerCPUArchitecture = false - /** * Set this to true to Run Proguard on Release builds to minify the Java bytecode. */ @@ -103,16 +93,6 @@ def enableProguardInReleaseBuilds = (findProperty('android.enableProguardInRelea */ def jscFlavor = 'org.webkit:android-jsc:+' -/** - * Private function to get the list of Native Architectures you want to build. - * This reads the value from reactNativeArchitectures in your gradle.properties - * file and works together with the --active-arch-only flag of react-native run-android. - */ -def reactNativeArchitectures() { - def value = project.getProperties().get("reactNativeArchitectures") - return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"] -} - android { ndkVersion rootProject.ext.ndkVersion @@ -128,14 +108,6 @@ android { missingDimensionStrategy 'react-native-camera', 'general' } - splits { - abi { - reset() - enable enableSeparateBuildPerCPUArchitecture - universalApk false // If true, also generate a universal APK - include (*reactNativeArchitectures()) - } - } signingConfigs { release { if (project.hasProperty('TONKEEPER_UPLOAD_STORE_FILE')) { @@ -164,22 +136,6 @@ android { proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" } } - - // applicationVariants are e.g. debug, release - applicationVariants.all { variant -> - variant.outputs.each { output -> - // For each separate APK per architecture, set a unique version code as described here: - // https://developer.android.com/studio/build/configure-apk-splits.html - // Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc. - def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4] - def abi = output.getFilter(OutputFile.ABI) - if (abi != null) { // null for the universal-debug, universal-release variants - output.versionCodeOverride = - defaultConfig.versionCode * 1000 + versionCodes.get(abi) - } - - } - } } // Apply static values from `gradle.properties` to the `android.packagingOptions` @@ -231,8 +187,6 @@ dependencies { } } - implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.0.0") - debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") { exclude group:'com.squareup.okhttp3', module:'okhttp' diff --git a/packages/mobile/android/build.gradle b/packages/mobile/android/build.gradle index 47aead383..d824cb9c5 100644 --- a/packages/mobile/android/build.gradle +++ b/packages/mobile/android/build.gradle @@ -19,7 +19,7 @@ buildscript { mavenCentral() } dependencies { - classpath('com.android.tools.build:gradle:7.4.1') + classpath("com.android.tools.build:gradle") classpath('com.facebook.react:react-native-gradle-plugin') classpath('de.undercouch:gradle-download-task:5.0.1') classpath('com.google.gms:google-services:4.3.14') diff --git a/packages/mobile/android/devkit/gradle/wrapper/gradle-wrapper.properties b/packages/mobile/android/devkit/gradle/wrapper/gradle-wrapper.properties index 00aea7273..4c9ec0d59 100644 --- a/packages/mobile/android/devkit/gradle/wrapper/gradle-wrapper.properties +++ b/packages/mobile/android/devkit/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,7 @@ #Thu Nov 24 22:01:19 MSK 2022 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-all.zip +networkTimeout=10000 distributionPath=wrapper/dists zipStorePath=wrapper/dists zipStoreBase=GRADLE_USER_HOME diff --git a/packages/mobile/android/gradle.properties b/packages/mobile/android/gradle.properties index 69be14f43..06857db53 100644 --- a/packages/mobile/android/gradle.properties +++ b/packages/mobile/android/gradle.properties @@ -25,7 +25,7 @@ android.enableJetifier=true android.kotlinVersion=1.7.20 # Version of flipper SDK to use with React Native -FLIPPER_VERSION=0.125.0 +FLIPPER_VERSION=0.182.0 # Use this property to specify which architecture you want to build. # You can also override it from the CLI using diff --git a/packages/mobile/android/gradle/wrapper/gradle-wrapper.properties b/packages/mobile/android/gradle/wrapper/gradle-wrapper.properties index 8fad3f5a9..6ec1567a0 100644 --- a/packages/mobile/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/mobile/android/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-all.zip +networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/packages/mobile/android/gradlew b/packages/mobile/android/gradlew index 1b6c78733..dc7fe01a3 100755 --- a/packages/mobile/android/gradlew +++ b/packages/mobile/android/gradlew @@ -80,10 +80,10 @@ do esac done -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit - -APP_NAME="Gradle" +# This is normally unused +# shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' @@ -205,6 +205,12 @@ set -- \ org.gradle.wrapper.GradleWrapperMain \ "$@" +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + # Use "xargs" to parse quoted args. # # With -n1 it outputs one arg per line, with the quotes and backslashes removed. diff --git a/packages/mobile/android/gradlew.bat b/packages/mobile/android/gradlew.bat index ac1b06f93..fb402c12a 100644 --- a/packages/mobile/android/gradlew.bat +++ b/packages/mobile/android/gradlew.bat @@ -26,6 +26,7 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 if "%DIRNAME%" == "" set DIRNAME=. +@rem This is normally unused set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% @@ -40,7 +41,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute +if %ERRORLEVEL% equ 0 goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -75,13 +76,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar :end @rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd +if %ERRORLEVEL% equ 0 goto mainEnd :fail rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal diff --git a/packages/mobile/android/settings.gradle b/packages/mobile/android/settings.gradle index 7d650a628..296ba599c 100644 --- a/packages/mobile/android/settings.gradle +++ b/packages/mobile/android/settings.gradle @@ -31,4 +31,4 @@ useExpoModules() apply from: new File(["node", "--print", "require.resolve('@react-native-community/cli-platform-android/package.json')"].execute(null, rootDir).text.trim(), "../native_modules.gradle"); applyNativeModulesSettingsGradle(settings) -includeBuild(new File(["node", "--print", "require.resolve('react-native-gradle-plugin/package.json')"].execute(null, rootDir).text.trim()).getParentFile()) +includeBuild(new File(["node", "--print", "require.resolve('@react-native/gradle-plugin/package.json')"].execute(null, rootDir).text.trim()).getParentFile()) diff --git a/packages/mobile/package.json b/packages/mobile/package.json index 7dd466f03..8ddbe5fd8 100644 --- a/packages/mobile/package.json +++ b/packages/mobile/package.json @@ -58,11 +58,11 @@ "domain-from-partial-url": "^1.1.0", "dotenv": "^16.0.3", "expo": "~49.0.13", - "expo-blur": "~12.2.2", - "expo-local-authentication": "~13.2.1", + "expo-blur": "~12.6.0", + "expo-local-authentication": "~13.6.0", "expo-modules-core": "~1.5.11", - "expo-secure-store": "~12.1.1", - "expo-splash-screen": "~0.18.1", + "expo-secure-store": "~12.5.0", + "expo-splash-screen": "~0.22.0", "http-browserify": "^1.7.0", "https-browserify": "^1.0.0", "i18n-js": "^4.3.2", diff --git a/packages/react-native-apk-install/android/build.gradle b/packages/react-native-apk-install/android/build.gradle index b754bda88..f96acd12a 100644 --- a/packages/react-native-apk-install/android/build.gradle +++ b/packages/react-native-apk-install/android/build.gradle @@ -8,7 +8,7 @@ buildscript { } dependencies { - classpath('com.android.tools.build:gradle:7.4.1') + classpath('com.android.tools.build:gradle:7.4.2') } } diff --git a/yarn.lock b/yarn.lock index 50275767c..a99ed5a12 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1533,12 +1533,12 @@ xcode "^3.0.1" xml2js "0.6.0" -"@expo/config-plugins@~6.0.0": - version "6.0.2" - resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-6.0.2.tgz#cf07319515022ba94d9aa9fa30e0cff43a14256f" - integrity sha512-Cn01fXMHwjU042EgO9oO3Mna0o/UCrW91MQLMbJa4pXM41CYGjNgVy1EVXiuRRx/upegHhvltBw5D+JaUm8aZQ== +"@expo/config-plugins@~7.4.0": + version "7.4.0" + resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-7.4.0.tgz#3803521b8849c036e4f7db68521a3c99de67ebeb" + integrity sha512-/BwYRl6QQ9ZKYpVaIqHE5sSPqNZI9CUtfLfYHhpnShQUA1KHRMi6y9zjb3IXJisk0/fcrtRm2yP3A7F0l304sQ== dependencies: - "@expo/config-types" "^48.0.0" + "@expo/config-types" "^50.0.0-alpha.1" "@expo/json-file" "~8.2.37" "@expo/plist" "^0.0.20" "@expo/sdk-runtime-versions" "^1.0.0" @@ -1549,21 +1549,43 @@ getenv "^1.0.0" glob "7.1.6" resolve-from "^5.0.0" - semver "^7.3.5" + semver "^7.5.3" slash "^3.0.0" xcode "^3.0.1" - xml2js "0.4.23" + xml2js "0.6.0" -"@expo/config-types@^48.0.0": - version "48.0.0" - resolved "https://registry.yarnpkg.com/@expo/config-types/-/config-types-48.0.0.tgz#15a46921565ffeda3c3ba010701398f05193d5b3" - integrity sha512-DwyV4jTy/+cLzXGAo1xftS6mVlSiLIWZjl9DjTCLPFVgNYQxnh7htPilRv4rBhiNs7KaznWqKU70+4zQoKVT9A== +"@expo/config-plugins@~7.5.0": + version "7.5.0" + resolved "https://registry.yarnpkg.com/@expo/config-plugins/-/config-plugins-7.5.0.tgz#323d70d50ce46fc45d10f5e4fbc8b5e1fc55c091" + integrity sha512-qOKjmgbddLh1vj9ytUT6AduhEans2cHgS42nopVgh5Wz8X+QUvPcCr1Yc8MvLM3OlbswBMCJceeosZa463i0uA== + dependencies: + "@expo/config-types" "^50.0.0-alpha.1" + "@expo/fingerprint" "^0.2.0" + "@expo/json-file" "~8.2.37" + "@expo/plist" "^0.0.20" + "@expo/sdk-runtime-versions" "^1.0.0" + "@react-native/normalize-color" "^2.0.0" + chalk "^4.1.2" + debug "^4.3.1" + find-up "~5.0.0" + getenv "^1.0.0" + glob "7.1.6" + resolve-from "^5.0.0" + semver "^7.5.3" + slash "^3.0.0" + xcode "^3.0.1" + xml2js "0.6.0" "@expo/config-types@^49.0.0-alpha.1": version "49.0.0" resolved "https://registry.yarnpkg.com/@expo/config-types/-/config-types-49.0.0.tgz#15ffef715285c06703f6fb7ec0cda853f645cc09" integrity sha512-8eyREVi+K2acnMBe/rTIu1dOfyR2+AMnTLHlut+YpMV9OZPdeKV0Bs9BxAewGqBA2slslbQ9N39IS2CuTKpXkA== +"@expo/config-types@^50.0.0-alpha.1": + version "50.0.0-alpha.2" + resolved "https://registry.yarnpkg.com/@expo/config-types/-/config-types-50.0.0-alpha.2.tgz#52b4e3238544f5e38f91a21ac41f612de3b82e39" + integrity sha512-eAUMUg4wnw0bYovs+isibq4l9ssMacS/r0NolDxDdIX/N+ZjIEZ5DEl5GO8dnD0dKbN/DPWwUln7SG/nSYHfmw== + "@expo/config@8.1.2", "@expo/config@~8.1.0": version "8.1.2" resolved "https://registry.yarnpkg.com/@expo/config/-/config-8.1.2.tgz#7fff28b3acefe39702e9f3ce1c9fd896a52caa80" @@ -1581,37 +1603,23 @@ slugify "^1.3.4" sucrase "^3.20.0" -"@expo/config@~8.0.0": - version "8.0.5" - resolved "https://registry.yarnpkg.com/@expo/config/-/config-8.0.5.tgz#71380a7a20f2e27fe386d7bb73428a437b27a96b" - integrity sha512-3CnLmtAQUWqLZwTRliS23QoFwdyhg4AWtp6gZ0qfcXthR84RvlZKcCDQQIyPiRUgu8dZa+gQDcdRJtgE+GM5XQ== +"@expo/config@~8.3.0": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@expo/config/-/config-8.3.1.tgz#2b417ddb81891d4b65be91469e7f4b830b430645" + integrity sha512-5fNGAw5h/MDOc8Ulv9nonafPtOT042B7dF6vrVxSP3CY5qiVu0tCsmbL412wEcrAZ8MY7UMv9e6IzpGTgleYgg== dependencies: "@babel/code-frame" "~7.10.4" - "@expo/config-plugins" "~6.0.0" - "@expo/config-types" "^48.0.0" + "@expo/config-plugins" "~7.5.0" + "@expo/config-types" "^50.0.0-alpha.1" "@expo/json-file" "^8.2.37" getenv "^1.0.0" glob "7.1.6" require-from-string "^2.0.2" resolve-from "^5.0.0" - semver "7.3.2" + semver "7.5.3" slugify "^1.3.4" sucrase "^3.20.0" -"@expo/configure-splash-screen@^0.6.0": - version "0.6.0" - resolved "https://registry.yarnpkg.com/@expo/configure-splash-screen/-/configure-splash-screen-0.6.0.tgz#07d97ee512fd859fcc09506ba3762fd6263ebc39" - integrity sha512-4DyPoNXJqx9bN4nEwF3HQreo//ECu7gDe1Xor3dnnzFm9P/VDxAKdbEhA0n+R6fgkNfT2onVHWijqvdpTS3Xew== - dependencies: - color-string "^1.5.3" - commander "^5.1.0" - fs-extra "^9.0.0" - glob "^7.1.6" - lodash "^4.17.15" - pngjs "^5.0.0" - xcode "^3.0.0" - xml-js "^1.6.11" - "@expo/dev-server@0.5.5": version "0.5.5" resolved "https://registry.yarnpkg.com/@expo/dev-server/-/dev-server-0.5.5.tgz#33f9065e0cf5f36ac61944a92d11390cc71b7035" @@ -1663,6 +1671,19 @@ dotenv-expand "~10.0.0" getenv "^1.0.0" +"@expo/fingerprint@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@expo/fingerprint/-/fingerprint-0.2.0.tgz#ea8b41ba2bfa94cc8815d758b60d57764e47aef4" + integrity sha512-k6MhJTrX4CYEwsyGemiLT8rnBwjRBYe0eKYAM3kqw0WbSHzkOJm739sgdswGLmA53iiX6FbB1TsiLnqt+h2U2w== + dependencies: + "@expo/spawn-async" "^1.5.0" + chalk "^4.1.2" + debug "^4.3.4" + find-up "^5.0.0" + minimatch "^3.0.4" + p-limit "^3.1.0" + resolve-from "^5.0.0" + "@expo/image-utils@0.3.22": version "0.3.22" resolved "https://registry.yarnpkg.com/@expo/image-utils/-/image-utils-0.3.22.tgz#3a45fb2e268d20fcc761c87bca3aca7fd8e24260" @@ -1758,22 +1779,6 @@ base64-js "^1.2.3" xmlbuilder "^14.0.0" -"@expo/prebuild-config@6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-6.0.1.tgz#e3a5bbf5892859e71ac6a2408b1cc8ba6ca3f58f" - integrity sha512-WK3FDht1tdXZGCvtG5s7HSwzhsc7Tyu2DdqV9jVUsLtGD42oqUepk13mEWlU9LOTBgLsoEueKjoSK4EXOXFctw== - dependencies: - "@expo/config" "~8.0.0" - "@expo/config-plugins" "~6.0.0" - "@expo/config-types" "^48.0.0" - "@expo/image-utils" "0.3.22" - "@expo/json-file" "^8.2.37" - debug "^4.3.1" - fs-extra "^9.0.0" - resolve-from "^5.0.0" - semver "7.3.2" - xml2js "0.4.23" - "@expo/prebuild-config@6.2.6": version "6.2.6" resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-6.2.6.tgz#c5b4f8adcba4be00c874d6b24a8267d45c555261" @@ -1790,6 +1795,22 @@ semver "7.5.3" xml2js "0.6.0" +"@expo/prebuild-config@6.4.0": + version "6.4.0" + resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-6.4.0.tgz#162a2aa07f2a3202617f0ac607a507d77a20ffc4" + integrity sha512-RjKK7rd2H9P1pTcAcZFUd9tpxCwFNyyrlTdHZWlvZvZnBJWIyUZex7P3q7db7KLJ6UrVPmlM+B7OSc0Mxs4uoQ== + dependencies: + "@expo/config" "~8.3.0" + "@expo/config-plugins" "~7.4.0" + "@expo/config-types" "^50.0.0-alpha.1" + "@expo/image-utils" "0.3.22" + "@expo/json-file" "^8.2.37" + debug "^4.3.1" + fs-extra "^9.0.0" + resolve-from "^5.0.0" + semver "7.5.3" + xml2js "0.6.0" + "@expo/react-native-action-sheet@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@expo/react-native-action-sheet/-/react-native-action-sheet-4.0.1.tgz#fa78e55a87a741f235be2c4ce0b0ea2b6afd06cf" @@ -5187,7 +5208,7 @@ color-name@^1.0.0, color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^1.5.3, color-string@^1.6.0, color-string@^1.9.0: +color-string@^1.6.0, color-string@^1.9.0: version "1.9.1" resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== @@ -5243,11 +5264,6 @@ commander@^4.0.0, commander@^4.1.1: resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== -commander@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" - integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== - commander@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" @@ -6813,10 +6829,10 @@ expo-asset@~8.10.1: path-browserify "^1.0.0" url-parse "^1.5.9" -expo-blur@~12.2.2: - version "12.2.2" - resolved "https://registry.yarnpkg.com/expo-blur/-/expo-blur-12.2.2.tgz#b7f94499255afbd3468302d02f3c4e39a0e562d5" - integrity sha512-SvGbEZbB0VFNGqCW7FcqzWOEb3lrRgBnQKGrsKo49KwhMyHTYjYVYWnmrk9l8Tr7lIaNnd55QD6dPAzcXjZYMg== +expo-blur@~12.6.0: + version "12.6.0" + resolved "https://registry.yarnpkg.com/expo-blur/-/expo-blur-12.6.0.tgz#70f8d63671d175802a7a30c168088f6a9fdd8ffb" + integrity sha512-yrZYu4mQX4ZJtSrjNVMuB9kCMB8Xerk5Zn5iES6ojmGAk+yxJ/jdyhaUVqbpaA8LBmspdKgQz2dW8+9wa8dSAg== expo-constants@~14.4.2: version "14.4.2" @@ -6850,10 +6866,10 @@ expo-linear-gradient@^12.1.2: resolved "https://registry.yarnpkg.com/expo-linear-gradient/-/expo-linear-gradient-12.3.0.tgz#7abd8fedbf0138c86805aebbdfbbf5e5fa865f19" integrity sha512-f9e+Oxe5z7fNQarTBZXilMyswlkbYWQHONVfq8MqmiEnW3h9XsxxmVJLG8uVQSQPUsbW+x1UUT/tnU6mkMWeLg== -expo-local-authentication@~13.2.1: - version "13.2.1" - resolved "https://registry.yarnpkg.com/expo-local-authentication/-/expo-local-authentication-13.2.1.tgz#7139a67d4a980e55347ac2b079015e52eb7da974" - integrity sha512-DugTdymppsXyW0EDuYwUO6l2I9YK+FkDOUmuPQRGXPkYvmETSGEoGI7JQf0i/unihhS1uzyYvqNBAT3mPM4Tpg== +expo-local-authentication@~13.6.0: + version "13.6.0" + resolved "https://registry.yarnpkg.com/expo-local-authentication/-/expo-local-authentication-13.6.0.tgz#8f2567563ae64ab23d523af00230bb4888e0c736" + integrity sha512-kvM3oZc+K0xHMBFdNAVEVUbynaq0A2coqxk8kECx25hJ3vxgIY1Dktx+UD6Y+H9zMyQwYtcGhRPW4BOK1cqRuA== dependencies: invariant "^2.2.4" @@ -6905,18 +6921,17 @@ expo-random@*: dependencies: base64-js "^1.3.0" -expo-secure-store@~12.1.1: - version "12.1.1" - resolved "https://registry.yarnpkg.com/expo-secure-store/-/expo-secure-store-12.1.1.tgz#d4992dbb6170882d99d83a440a49864b36904cd1" - integrity sha512-phD8e8mlJWaESUBCpHq0GjS3OiqZ7g+I6SpTGQpt+xSS0pEE1ZUBXnIF+WR2OvoseKiS9ODzDl85CUlut/eNKw== +expo-secure-store@~12.5.0: + version "12.5.0" + resolved "https://registry.yarnpkg.com/expo-secure-store/-/expo-secure-store-12.5.0.tgz#f52456e15315d64d1e9000384d4a837eea9dbb1f" + integrity sha512-Ow2ei+SB1w4zPLxmOg2PVPf2i45Eii0T9KUaER5iRLJAMcBWN4nyGCxzESOoN3OrvxVadP0hAn6RVE1G3gdD+Q== -expo-splash-screen@~0.18.1: - version "0.18.2" - resolved "https://registry.yarnpkg.com/expo-splash-screen/-/expo-splash-screen-0.18.2.tgz#dde246204da875785ba40c7143a70013cdefdbb6" - integrity sha512-fsiKmyn/lbJtV6Uor6wSvl21fScOidFzmB/HHShQJJOu2TBN/vqMvhPu/r0bF5NVk8Wi64r98hiWY1EEsbW03w== +expo-splash-screen@~0.22.0: + version "0.22.0" + resolved "https://registry.yarnpkg.com/expo-splash-screen/-/expo-splash-screen-0.22.0.tgz#c6149ec73b25dfdbb069b6450a86d4645d94d5f3" + integrity sha512-+iKesrtp8s3IQDXPgCwI6PZzQwhSGR/LLND1wOux8HrCmtveJQpomKBIdvwTb26GNKZiN1EtiQbnBZhn3EiKaA== dependencies: - "@expo/configure-splash-screen" "^0.6.0" - "@expo/prebuild-config" "6.0.1" + "@expo/prebuild-config" "6.4.0" expo-yarn-workspaces@^2.1.0: version "2.2.1" @@ -7653,7 +7668,7 @@ glob@^6.0.1: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.1.7: +glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.7: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -13430,7 +13445,7 @@ safe-regex@^1.1.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sax@>=0.6.0, sax@^1.2.4, sax@~1.2.4: +sax@>=0.6.0, sax@~1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== @@ -15705,7 +15720,7 @@ ws@^8.12.1: resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== -xcode@^3.0.0, xcode@^3.0.1: +xcode@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/xcode/-/xcode-3.0.1.tgz#3efb62aac641ab2c702458f9a0302696146aa53c" integrity sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA== @@ -15723,26 +15738,11 @@ xhr@^2.0.1: parse-headers "^2.0.0" xtend "^4.0.0" -xml-js@^1.6.11: - version "1.6.11" - resolved "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" - integrity sha512-7rVi2KMfwfWFl+GpPg6m80IVMWXLRjO+PxTq7V2CDhoGak0wzYzFgUY2m4XJ47OGdXd8eLE8EmwfAmdjw7lC1g== - dependencies: - sax "^1.2.4" - xml-parse-from-string@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz#a9029e929d3dbcded169f3c6e28238d95a5d5a28" integrity sha512-ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g== -xml2js@0.4.23, xml2js@^0.4.5: - version "0.4.23" - resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" - integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== - dependencies: - sax ">=0.6.0" - xmlbuilder "~11.0.0" - xml2js@0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.6.0.tgz#07afc447a97d2bd6507a1f76eeadddb09f7a8282" @@ -15751,6 +15751,14 @@ xml2js@0.6.0: sax ">=0.6.0" xmlbuilder "~11.0.0" +xml2js@^0.4.5: + version "0.4.23" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.23.tgz#a0c69516752421eb2ac758ee4d4ccf58843eac66" + integrity sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug== + dependencies: + sax ">=0.6.0" + xmlbuilder "~11.0.0" + xmlbuilder@^14.0.0: version "14.0.0" resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-14.0.0.tgz#876b5aec4f05ffd5feb97b0a871c855d16fbeb8c" From 17b24210890e44d9e724cb9aef41c3c70914773c Mon Sep 17 00:00:00 2001 From: bogoslavskiy Date: Sat, 14 Oct 2023 18:23:03 +0400 Subject: [PATCH 09/24] fix(android): com.android.library version --- packages/mobile/android/build.gradle | 4 ++-- packages/mobile/android/devkit/build.gradle.kts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/mobile/android/build.gradle b/packages/mobile/android/build.gradle index d824cb9c5..fe305bfca 100644 --- a/packages/mobile/android/build.gradle +++ b/packages/mobile/android/build.gradle @@ -28,8 +28,8 @@ buildscript { } plugins { - id 'com.android.application' version '7.4.1' apply false - id 'com.android.library' version '7.4.1' apply false + id 'com.android.application' version '7.4.2' apply false + id 'com.android.library' version '7.4.2' apply false id 'org.jetbrains.kotlin.android' version '1.7.20' apply false id 'org.jetbrains.kotlin.jvm' version '1.7.20' apply false } diff --git a/packages/mobile/android/devkit/build.gradle.kts b/packages/mobile/android/devkit/build.gradle.kts index 5f99d6921..41b81eeb7 100644 --- a/packages/mobile/android/devkit/build.gradle.kts +++ b/packages/mobile/android/devkit/build.gradle.kts @@ -1,6 +1,6 @@ plugins { - id("com.android.application") version "7.4.1" apply false - id("com.android.library") version "7.4.1" apply false + id("com.android.application") version "7.4.2" apply false + id("com.android.library") version "7.4.2" apply false id("org.jetbrains.kotlin.android") version "1.7.20" apply false id("org.jetbrains.kotlin.jvm") version "1.7.20" apply false } From bdb6c7d59a46d791317a038a56ca7e78f5f184fa Mon Sep 17 00:00:00 2001 From: Max Voloshinskii Date: Tue, 17 Oct 2023 20:57:03 +0900 Subject: [PATCH 10/24] fix: green programmable button --- .../ProgrammableButtons.tsx | 4 ++-- .../shared/i18n/locales/tonkeeper/it.json | 1 - .../shared/i18n/locales/tonkeeper/tr-TR.json | 3 +++ .../i18n/locales/tonkeeper/zh-Hans-CN.json | 1 - packages/uikit/src/components/Button.tsx | 24 +++++++++++++++---- packages/uikit/src/components/Icon/Icon.tsx | 2 +- packages/uikit/src/components/Icon/index.ts | 2 +- packages/uikit/src/index.ts | 2 +- packages/uikit/src/styles/themes/dark.ts | 5 ++++ 9 files changed, 33 insertions(+), 11 deletions(-) diff --git a/packages/mobile/src/core/NFT/ProgrammableButtons/ProgrammableButtons.tsx b/packages/mobile/src/core/NFT/ProgrammableButtons/ProgrammableButtons.tsx index 9e3223b6d..92fc8b597 100644 --- a/packages/mobile/src/core/NFT/ProgrammableButtons/ProgrammableButtons.tsx +++ b/packages/mobile/src/core/NFT/ProgrammableButtons/ProgrammableButtons.tsx @@ -113,14 +113,14 @@ const ProgrammableButtonsComponent = (props: ProgrammableButtonsProps) => { return ( - {buttons.map((button) => ( + {buttons.map((button, idx) => (