Updated on 2026-08-14

This commit is contained in:
Tangem 2026-07-01 10:26:52 +02:00
parent 43c7cbfc58
commit ca85fd3a6d
11 changed files with 72 additions and 16 deletions

View file

@ -106,6 +106,7 @@
<string name="address_book_contact">Kontakt</string>
<string name="address_book_contact_name">Name der Kontaktperson</string>
<string name="address_book_copy_address">Adresse kopieren</string>
<string name="address_book_create_success_message">Kontakt hinzugefügt</string>
<string name="address_book_creating_error">Es konnte kein Kontakt hergestellt werden. Bitte versuchen Sie es später erneut.</string>
<string name="address_book_delete_contact_description">Dieser Kontakt wird aus all Ihren Adressbüchern gelöscht.</string>
<string name="address_book_deleting_error">Der Kontakt konnte nicht gelöscht werden. Bitte versuchen Sie es später erneut.</string>
@ -115,10 +116,17 @@
<string name="address_book_enter_address">Adresse eingeben</string>
<string name="address_book_invalid_address_error">Ungültige Adresse</string>
<string name="address_book_keep_editing">Weiter bearbeiten</string>
<string name="address_book_max_networks_alert_description">Sie können maximal 20 Adressen erstellen. Löschen Sie eine, um eine neue hinzuzufügen.</string>
<string name="address_book_max_networks_alert_title">Neue Adresse kann nicht hinzugefügt werden</string>
<string name="address_book_name_empty_error">Der Name des Ansprechpartners ist erforderlich</string>
<string name="address_book_name_invalid_chars_error">Der Name des Ansprechpartners enthält ungültige Zeichen</string>
<string name="address_book_name_max_chars_error">Der Name des Ansprechpartners darf nicht länger als 50 Zeichen sein</string>
<string name="address_book_name_taken_error">Dieser Name ist bei dieser Wallet bereits vergeben.</string>
<string name="address_book_new_contact">Neuer Kontakt</string>
<string name="address_book_no_contacts">Noch keine Kontakte</string>
<string name="address_book_no_contacts_description">Die von Ihnen hinzugefügten Kontakte werden hier angezeigt</string>
<string name="address_book_remove_address">Adresse entfernen</string>
<string name="address_book_save_to_wallet_title">In Wallet speichern</string>
<string name="address_book_save_wallet_to_description">Dieser Kontakt wird mit dem Adressbuch dieser Wallet verknüpft.</string>
<string name="address_book_select_network">Netzwerk auswählen</string>
<string name="address_book_title">Adressbuch</string>
@ -348,10 +356,12 @@
<string name="common_from">Vom</string>
<string name="common_from_wallet_name">Von %s</string>
<string name="common_generate_addresses">Adressen synchronisieren</string>
<string name="common_get">Erhalten</string>
<string name="common_get_started">Erste Schritte</string>
<string name="common_get_token">Token erhalten</string>
<string name="common_go_to_provider">Zum Anbieter gehen</string>
<string name="common_go_to_token">Zum Token</string>
<string name="common_go_to_verification">Zur Verifizierung gehen</string>
<string name="common_got_it">Verstanden</string>
<string name="common_hide">Ausblenden</string>
<string name="common_hold_to">Halten bis %s</string>
@ -410,6 +420,7 @@
<string name="common_privacy_policy">Datenschutzrichtlinie</string>
<string name="common_range">%1$s-%2$s</string>
<string name="common_range_with_space">%1$s — %2$s</string>
<string name="common_rate">Zinssatz</string>
<string name="common_read_more">Weiterlesen</string>
<string name="common_receive">Empfangen</string>
<string name="common_received">Erhalten</string>
@ -471,6 +482,7 @@
<item quantity="other">%d Token</item>
</plurals>
<string name="common_transaction_failed">Transaktion fehlgeschlagen</string>
<string name="common_transaction_id">Transaktions-ID</string>
<string name="common_transaction_status">Transaktionsstatus</string>
<string name="common_transactions">Transaktionen</string>
<string name="common_transfer">Überweisung</string>
@ -566,7 +578,7 @@
<string name="dynamic_addresses_disable_main_button_title">Dynamische Adressen deaktivieren</string>
<string name="dynamic_addresses_disable_title">Dynamische Adressen deaktivieren</string>
<string name="dynamic_addresses_disabled_popup_title">Dynamische Adressen deaktiviert</string>
<string name="dynamic_addresses_enabled_toast_title">Einige Adressen fehlen</string>
<string name="dynamic_addresses_enabled_toast_title">Dynamische Adressen aktiviert</string>
<string name="dynamic_addresses_enter_features_privacy_description">Verwenden Sie für jede Transaktion eine neue Adresse, um die Rückverfolgbarkeit zu verringern und den Datenschutz in der Kette zu verbessern.</string>
<string name="dynamic_addresses_enter_features_privacy_title">Verbesserter Datenschutz</string>
<string name="dynamic_addresses_enter_features_receving_description">Einfacher Geldempfang in UTXO-basierten Netzwerken mit automatischer Adressgenerierung - keine manuelle Adressverwaltung erforderlich.</string>
@ -700,6 +712,8 @@
<string name="feedback_subject_support_tangem">Feedback zu Tangem</string>
<string name="feedback_subject_tx_failed">Eine Transaktion kann nicht gesendet werden</string>
<string name="feedback_token_description_error">Fehler in der Coinbeschreibung</string>
<string name="for_you_description">Portfolio prüfen und Verdienstmöglichkeiten erkunden</string>
<string name="for_you_title">Für dich</string>
<string name="force_update_action">Jetzt aktualisieren</string>
<string name="force_update_banner_message">Aktualisiere die Anwendung auf die neueste Version, um die ordnungsgemäße Funktionalität zu gewährleisten</string>
<string name="force_update_banner_title">Aktualisierung erforderlich</string>
@ -731,6 +745,8 @@
<string name="hardware_wallet_key_feature_title">Schlüsselgenerierung</string>
<string name="hardware_wallet_security_feature_description">Alle kryptografischen Vorgänge finden innerhalb des sicheren Chips statt, der gegen Klonen und physische Manipulation zertifiziert ist.</string>
<string name="hardware_wallet_security_feature_title">Sicherheit auf Hardwareebene</string>
<string name="high_fee_warning_description">Das Netzwerk ist derzeit stark ausgelastet. Sie können jetzt fortfahren oder es später erneut versuchen, wenn die Gebühren möglicherweise niedriger sind.</string>
<string name="high_fee_warning_title">Die Netzwerkgebühr ist höher als üblich</string>
<string name="home_button_add_existing_wallet">Vorhandene Wallet hinzufügen</string>
<string name="home_button_create_new_wallet">Neues Wallet erstellen</string>
<string name="home_button_order">Karte oder Ring bestellen</string>
@ -1215,6 +1231,7 @@
<string name="onramp_min_amount_restriction">Der zu kaufende Betrag muss mindestens %s betragen</string>
<string name="onramp_native_payment_cumulative_limit" formatted="false">Kumulierte Transaktionsbeträge über %1s können eine Identitätsüberprüfung mit %2s</string>
<string name="onramp_native_payment_cumulative_limit_equivalent" formatted="false">Kumulierte Transaktionsbeträge über dem Gegenwert von %1s können eine Identitätsprüfung mit %2s</string>
<string name="onramp_native_payment_identity_verification">Apple Pay-Transaktionen erfordern möglicherweise eine Identitätsprüfung mit %1s</string>
<string name="onramp_native_payment_legal_notice" formatted="false">Indem du auf \"Bezahlen\" klicken, stimmen Sie %1s\'s %2s und %3szu.</string>
<string name="onramp_no_available_providers">Keine verfügbaren Anbieter für diese Währung</string>
<string name="onramp_offer_type_fastet">Schnellste Bearbeitung</string>
@ -1401,6 +1418,7 @@
<string name="send_extras_hint_memo">Memo</string>
<string name="send_fee_unreachable_error_text">Überprüfe deine Netzwerkverbindung</string>
<string name="send_fee_unreachable_error_title">Informationen zur Netzwerkgebühr nicht erreichbar</string>
<string name="send_from_account_in_wallet_name">aus „ %1$s “ in %2$s</string>
<string name="send_from_title">Sie senden</string>
<string name="send_from_wallet_name">Von %s</string>
<string name="send_gas_limit">Grenzwert Gasgebühr</string>
@ -1551,6 +1569,7 @@
<string name="staking_error_no_validators_message">Zurzeit sind keine Validierer verfügbar. Bitte versuche es später noch einmal.</string>
<string name="staking_error_no_validators_title">Staking nicht verfügbar</string>
<string name="staking_error_unavailable_region">Staking ist in Ihrer Region nicht verfügbar.</string>
<string name="staking_error_unavailable_region_description">Staking ist in Ihrer Region derzeit nicht verfügbar. Falls Sie ein VPN aktiviert haben, deaktivieren Sie es bitte.</string>
<string name="staking_give_permission_fee_footer">Das Netzwerk erhebt eine Token-Genehmigungsgebühr, um zu überprüfen, ob Du die Verwendung Deines Tokens für das Staking genehmigst.</string>
<string name="staking_legal">Indem Du die Staking-Funktionalität nutzt, stimmst Du den %1$s und %2$s des Anbieters zu.</string>
<string name="staking_locked">Gesperrt</string>
@ -1846,6 +1865,10 @@
<string name="tangempay_change_pin_code">PIN-Code ändern</string>
<string name="tangempay_come_back_if_forget_pin">Kehren Sie zur App zurück, falls Sie ihn vergessen.</string>
<string name="tangempay_common_card">Karte</string>
<string name="tangempay_current_plan_change">Tarif wechseln</string>
<string name="tangempay_current_plan_section_card">Kartenbezogen</string>
<string name="tangempay_current_plan_section_plan">Planbezogen</string>
<string name="tangempay_current_plan_title">Aktueller Plan</string>
<string name="tangempay_daily_limit_hint" formatted="false">Limit von %s bis %s festlegen</string>
<string name="tangempay_daily_limit_set_button">Limits festlegen</string>
<string name="tangempay_declined_reason_1">Unzureichendes Guthaben</string>
@ -2059,6 +2082,7 @@
<string name="twins_scan_twin_with_number">Tippe auf die Doppelkarte oder Ring mit der Nummer %s und entferne sie erst am Ende des Vorgangs.</string>
<string name="tx_history_onramp_top_up">Aufladen</string>
<string name="tx_history_onramp_topped_up">Aufgeladen</string>
<string name="tx_history_you_paid">Du hast bezahlt</string>
<string name="unexpected_error_description">Bitte versuche es später noch einmal. Sollte das Problem weiterhin bestehen, wende Dich bitte an den Support.</string>
<string name="unexpected_error_title">Etwas ist schiefgelaufen!</string>
<string name="universal_error">Es ist ein Fehler aufgetreten. Fehlercode: %s. Bitte kontaktiere unseren Support.</string>

View file

@ -1208,6 +1208,7 @@
<string name="onramp_min_amount_restriction">La cantidad a comprar debe ser como mínimo %s</string>
<string name="onramp_native_payment_cumulative_limit" formatted="false">El importe acumulado de la transacción superior a %1s puede requerir la verificación de la identidad con %2s</string>
<string name="onramp_native_payment_cumulative_limit_equivalent" formatted="false">El importe acumulado de la transacción superior al equivalente de %1s puede requerir la verificación de la identidad con %2s</string>
<string name="onramp_native_payment_identity_verification">Las transacciones de Apple Pay pueden requerir verificación de identidad con %1s</string>
<string name="onramp_native_payment_legal_notice" formatted="false">Al hacer clic en Pagar, usted acepta %1s\'s %2s y %3s.</string>
<string name="onramp_no_available_providers">No hay proveedores disponibles para esta moneda</string>
<string name="onramp_offer_type_fastet">Procesamiento más rápido</string>

View file

@ -1112,6 +1112,7 @@
<string name="onramp_min_amount_restriction">Le montant à acheter doit être au moins %s</string>
<string name="onramp_native_payment_cumulative_limit" formatted="false">Si le montant cumulé des transactions dépasse %1s, une vérification d\'identité via %2s pourrait être requise</string>
<string name="onramp_native_payment_cumulative_limit_equivalent" formatted="false">Si le montant cumulé des transactions dépasse l\'équivalent de %1s, une vérification d\'identité via %2s pourrait être requise</string>
<string name="onramp_native_payment_identity_verification">Les transactions Apple Pay peuvent nécessiter une vérification d\'identité avec %1s</string>
<string name="onramp_native_payment_legal_notice" formatted="false">En appuyant sur Acheter, vous acceptez %1s %2s et %3s.</string>
<string name="onramp_no_available_providers">Aucun fournisseur disponible pour cette devise</string>
<string name="onramp_offer_type_fastet">Le plus rapide</string>

View file

@ -1191,6 +1191,7 @@
<string name="onramp_min_amount_restriction">買付金額は少なくとも%sである必要があります</string>
<string name="onramp_native_payment_cumulative_limit" formatted="false">累計取引額が%1sを超えると、%2sでの本人確認が必要になる場合があります。</string>
<string name="onramp_native_payment_cumulative_limit_equivalent" formatted="false">累計取引額が%1s相当額を超えると、%2sでの本人確認が必要になる場合があります。</string>
<string name="onramp_native_payment_identity_verification">Apple Payの取引では、%1sによる本人確認が必要になる場合があります</string>
<string name="onramp_native_payment_legal_notice" formatted="false">「支払う」をタップすると、%1sの%2sおよび%3sに同意したものとみなされます。</string>
<string name="onramp_no_available_providers">この通貨で利用可能なプロバイダーはありません</string>
<string name="onramp_offer_type_fastet">最短で処理</string>

View file

@ -1251,6 +1251,7 @@
<string name="onramp_min_amount_restriction">Сумма покупки должна составлять минимум %s</string>
<string name="onramp_native_payment_cumulative_limit" formatted="false">Общая сумма транзакций свыше %1s может потребовать верификации личности через %2s</string>
<string name="onramp_native_payment_cumulative_limit_equivalent" formatted="false">Общая сумма транзакций, превышающая эквивалент %1s, может потребовать верификации личности через %2s</string>
<string name="onramp_native_payment_identity_verification">Для транзакций через Apple Pay может потребоваться верификация личности в %1s</string>
<string name="onramp_native_payment_legal_notice" formatted="false">Нажимая «Оплатить», вы соглашаетесь с %1s\'s %2s и %3s.</string>
<string name="onramp_no_available_providers">Нет доступных провайдеров для выбранной валюты</string>
<string name="onramp_offer_type_fastet">Самый быстрый</string>

View file

@ -1251,6 +1251,7 @@
<string name="onramp_min_amount_restriction">Сума покупки повинна бути не менше %s</string>
<string name="onramp_native_payment_cumulative_limit" formatted="false">Загальна сума транзакцій понад %1s може вимагати верифікації особи через %2s</string>
<string name="onramp_native_payment_cumulative_limit_equivalent" formatted="false">Загальна сума транзакцій, що перевищує еквівалент %1s, може вимагати верифікації особи через %2s</string>
<string name="onramp_native_payment_identity_verification">Для транзакцій через Apple Pay може знадобитися верифікація особи в %1s</string>
<string name="onramp_native_payment_legal_notice" formatted="false">Натискаючи «Оплатити», ви погоджуєтеся з %1s\'s %2s і %3s.</string>
<string name="onramp_no_available_providers">Для данної валюти немає доступних провайдерів</string>
<string name="onramp_offer_type_fastet">Найшвидший</string>

View file

@ -1185,6 +1185,7 @@
<string name="onramp_min_amount_restriction">购买金额必须至少 %s</string>
<string name="onramp_native_payment_cumulative_limit" formatted="false">累计交易金额超过 %1s 时,可能需要通过 %2s进行身份验证</string>
<string name="onramp_native_payment_cumulative_limit_equivalent" formatted="false">累计交易金额超过等值金额 %1s 可能需要通过 %2s进行身份验证</string>
<string name="onramp_native_payment_identity_verification">Apple Pay 交易可能需要通过以下方式进行身份验证: %1s</string>
<string name="onramp_native_payment_legal_notice" formatted="false">点击“支付”即表示您同意 %1s的 %2s 和 %3s。</string>
<string name="onramp_no_available_providers">目前没有提供此货币的供应商</string>
<string name="onramp_offer_type_fastet">最快处理</string>

View file

@ -98,6 +98,7 @@
<string name="address_book_add_address">Add address</string>
<string name="address_book_add_address_description">Add address and select network</string>
<string name="address_book_add_contact">Add contact</string>
<string name="address_book_address_taken_error">This address is already saved as %1$s</string>
<plurals name="address_book_addresses">
<item quantity="one">%d address</item>
<item quantity="other">%d addresses</item>
@ -106,6 +107,7 @@
<string name="address_book_contact">Contact</string>
<string name="address_book_contact_name">Contact name</string>
<string name="address_book_copy_address">Copy address</string>
<string name="address_book_create_success_message">Contact added</string>
<string name="address_book_creating_error">Couldn\'t create contact. Please try again later.</string>
<string name="address_book_delete_contact_description">This contact will be deleted from all your address books</string>
<string name="address_book_deleting_error">Couldn\'t delete contact. Please try again later.</string>
@ -116,7 +118,8 @@
<string name="address_book_invalid_address_error">Invalid address</string>
<string name="address_book_keep_editing">Keep editing</string>
<string name="address_book_max_networks_alert_description">You can not create more than 20 addresses. Delete one to add new.</string>
<string name="address_book_max_networks_alert_title">Can\'t add new address </string>
<string name="address_book_max_networks_alert_title">Can\'t add new address</string>
<string name="address_book_memo_footer">Memo / Destination Tag is a code separating transactions to a shared recipient in a crypto network.\n**Caution: Missing a memo may lead to fund loss.**</string>
<string name="address_book_name_empty_error">Contact name is required</string>
<string name="address_book_name_invalid_chars_error">Contact name contains invalid characters</string>
<string name="address_book_name_max_chars_error">Contact name must not exceed 50 characters</string>
@ -125,8 +128,10 @@
<string name="address_book_no_contacts">No contacts yet</string>
<string name="address_book_no_contacts_description">Contacts added will appear here</string>
<string name="address_book_remove_address">Remove address</string>
<string name="address_book_save_contact">Save contact</string>
<string name="address_book_save_to_wallet_title">Save to Wallet</string>
<string name="address_book_save_wallet_to_description">This contact will be linked to this wallets address book.</string>
<string name="address_book_search_no_results">No results found.\nTry another name</string>
<string name="address_book_select_network">Select network</string>
<string name="address_book_title">Address book</string>
<string name="address_book_unsaved_changes">Unsaved changes</string>
@ -355,6 +360,7 @@
<string name="common_from">From</string>
<string name="common_from_wallet_name">From %s</string>
<string name="common_generate_addresses">Synchronize addresses</string>
<string name="common_get">Get</string>
<string name="common_get_started">Get started</string>
<string name="common_get_token">Get token</string>
<string name="common_go_to_provider">Go to provider</string>
@ -480,6 +486,7 @@
<item quantity="other">%d tokens</item>
</plurals>
<string name="common_transaction_failed">Transaction failed</string>
<string name="common_transaction_id">Transaction ID</string>
<string name="common_transaction_status">Transaction status</string>
<string name="common_transactions">Transactions</string>
<string name="common_transfer">Transfer</string>
@ -880,6 +887,15 @@
<string name="manage_tokens_unavailable_description">The selected token is currently unavailable for actions within the crypto wallet. But worry not, you can express your interest by upvoting it.</string>
<string name="manage_tokens_unavailable_vote">Upvote</string>
<string name="manage_tokens_wallet_support_only_one_network_title">The wallet doesn\'t support more than one network</string>
<string name="market_chart_ai_total">Al Total:</string>
<plurals name="market_chart_assets_android">
<item quantity="one">%d asset</item>
<item quantity="other">%d assets</item>
</plurals>
<string name="market_chart_buble_no_data">No data</string>
<string name="market_chart_buble_total_value">Total value</string>
<string name="market_chart_can_not_load_data">Cant load data</string>
<string name="market_chart_top_holding">Top holding %s%%</string>
<string name="markets_about_coin_header">About coin</string>
<string name="markets_add_to_my_portfolio_description">To buy, exchange, or receive this asset, add it to your portfolio</string>
<string name="markets_add_to_my_portfolio_unavailable_description">This asset is currently not supported in the wallet</string>
@ -1229,6 +1245,7 @@
<string name="onramp_min_amount_restriction">The amount to buy must be at least %s</string>
<string name="onramp_native_payment_cumulative_limit" formatted="false">Cumulative transaction amount over %1s may require identity verification with %2s</string>
<string name="onramp_native_payment_cumulative_limit_equivalent" formatted="false">Cumulative transaction amount over equivalent of %1s may require identity verification with %2s</string>
<string name="onramp_native_payment_identity_verification">Apple Pay transactions may require identity verification with %1s</string>
<string name="onramp_native_payment_legal_notice" formatted="false">By clicking Pay, you agree to %1s\'s %2s and %3s.</string>
<string name="onramp_no_available_providers">No available providers for this currency</string>
<string name="onramp_offer_type_fastet">Quickest processing</string>
@ -1566,6 +1583,7 @@
<string name="staking_error_no_validators_message">No available validators at the moment. Please try again later.</string>
<string name="staking_error_no_validators_title">Staking Unavailable</string>
<string name="staking_error_unavailable_region">Staking is unavailable in your region</string>
<string name="staking_error_unavailable_region_description">Staking is currently unavailable in your region. If you have VPN enabled try disabling it.</string>
<string name="staking_give_permission_fee_footer">The network will charge a token approval fee to verify that you are authorizing the use of your token for the staking.</string>
<string name="staking_legal">By using staking functionality, you agree with providers %1$s and %2$s</string>
<string name="staking_locked">Locked</string>
@ -1861,6 +1879,10 @@
<string name="tangempay_change_pin_code">Change PIN-code</string>
<string name="tangempay_come_back_if_forget_pin">Come back to the app if you forget it.</string>
<string name="tangempay_common_card">Card</string>
<string name="tangempay_current_plan_change">Change plan</string>
<string name="tangempay_current_plan_section_card">Card related</string>
<string name="tangempay_current_plan_section_plan">Plan related</string>
<string name="tangempay_current_plan_title">Current plan</string>
<string name="tangempay_daily_limit_hint" formatted="false">Set a limit from %s to %s</string>
<string name="tangempay_daily_limit_set_button">Set limits</string>
<string name="tangempay_declined_reason_1">insufficient funds</string>
@ -1951,10 +1973,6 @@
<string name="tangempay_pay_support">Pay Support</string>
<string name="tangempay_payment_account">Payment account</string>
<string name="tangempay_payment_account_sync_needed">Session expired</string>
<string name="tangempay_current_plan_title">Current plan</string>
<string name="tangempay_current_plan_section_card">Card related</string>
<string name="tangempay_current_plan_section_plan">Plan related</string>
<string name="tangempay_current_plan_change">Change plan</string>
<string name="tangempay_pin_validation_error_message">Invalid PIN: avoid sequences or repeats</string>
<string name="tangempay_reissue_card_confirm">Replace card</string>
<string name="tangempay_reissue_card_description">This generates a new set of card details. Your old details will stop working. You can\'t undo this.</string>
@ -2078,6 +2096,7 @@
<string name="twins_scan_twin_with_number">Tap the twin card with number %s and do not remove until the end of the operation</string>
<string name="tx_history_onramp_top_up">Top up</string>
<string name="tx_history_onramp_topped_up">Topped up</string>
<string name="tx_history_you_paid">You paid</string>
<string name="unexpected_error_description">Please try again later. If the issue persists, please contact support.</string>
<string name="unexpected_error_title">Something went wrong!</string>
<string name="universal_error">We\'ve encountered an error. Error code: %s. Please contact our support.</string>

View file

@ -38,10 +38,12 @@ import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.toSize
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import com.tangem.core.ui.extensions.stringResourceSafe
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreviewRedesign
import com.tangem.features.foryou.impl.components.state.DonutSegment
import kotlin.math.min
import com.tangem.features.foryou.impl.R
/**
* Ring (donut) chart drawn behind a center [content] slot.
@ -361,7 +363,7 @@ private fun PreviewDonutChart() {
style = TangemTheme.typography3.heading.medium,
)
Text(
text = "Total value",
text = stringResourceSafe(R.string.market_chart_buble_total_value),
color = TangemTheme.colors3.text.secondary,
style = TangemTheme.typography3.body.medium,
)
@ -387,7 +389,7 @@ private fun PreviewDonutChartEmpty() {
segments = emptyList(),
) {
Text(
text = "No data",
text = stringResourceSafe(R.string.market_chart_buble_no_data),
color = TangemTheme.colors3.text.primary,
style = TangemTheme.typography3.heading.medium,
)

View file

@ -158,7 +158,7 @@ private fun TooltipPill(
maxLines = 1,
)
Text(
text = "$percent",
text = "$percent%",
color = TangemTheme.colors3.text.tertiary,
style = TangemTheme.typography3.caption.medium,
maxLines = 1,

View file

@ -38,6 +38,7 @@ import androidx.compose.ui.input.pointer.pointerInput
import androidx.compose.ui.layout.boundsInWindow
import androidx.compose.ui.layout.onGloballyPositioned
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.SpanStyle
import androidx.compose.ui.text.buildAnnotatedString
import androidx.compose.ui.text.withStyle
@ -51,7 +52,9 @@ import com.tangem.core.ui.components.haze.hazeSourceTangem
import com.tangem.core.ui.ds.button.SecondaryTangemButton
import com.tangem.core.ui.ds.button.TangemButtonSize
import com.tangem.core.ui.ds2.surface.TangemSurface
import com.tangem.core.ui.extensions.pluralStringResourceSafe
import com.tangem.core.ui.extensions.stringReference
import com.tangem.core.ui.extensions.stringResourceSafe
import com.tangem.core.ui.res.LocalHazeState
import com.tangem.core.ui.res.TangemTheme
import com.tangem.core.ui.res.TangemThemePreviewRedesign
@ -62,6 +65,7 @@ import com.tangem.features.foryou.impl.components.state.MarketChartState
import kotlinx.coroutines.Job
import kotlinx.coroutines.launch
import kotlin.Int
import com.tangem.features.foryou.impl.R
@Composable
internal fun MarketChart(marketChartState: MarketChartState, modifier: Modifier = Modifier) {
@ -145,7 +149,7 @@ private fun ColumnScope.DonutChartBlock(donutChartState: DonutChartState, cardBo
),
)
Text(
text = "Total value",
text = stringResourceSafe(R.string.market_chart_buble_total_value),
color = TangemTheme.colors3.text.secondary,
style = TangemTheme.typography3.caption.medium,
maxLines = 1,
@ -155,7 +159,7 @@ private fun ColumnScope.DonutChartBlock(donutChartState: DonutChartState, cardBo
)
} else {
Text(
text = "No data",
text = stringResourceSafe(R.string.market_chart_buble_no_data),
color = TangemTheme.colors3.text.secondary,
style = TangemTheme.typography3.body.medium,
maxLines = 1,
@ -235,7 +239,7 @@ private fun DonutSegmentTooltipBlock(
@Suppress("MagicNumber")
private fun formatSegmentPercent(weight: Float): String {
val percent = weight.coerceIn(0f, 1f) * 100
return if (percent % 1f == 0f) "${percent.toInt()}%" else "%.2f%%".format(percent)
return if (percent % 1f == 0f) "${percent.toInt()}" else "%.2f%".format(percent)
}
private val DonutStrokeWidth = 28.dp
@ -245,14 +249,14 @@ private val DonutStartAngle = -90f
private fun ColumnScope.TopHoldingBlock(assetCount: Int, topHoldingPercent: Float) {
Text(
modifier = Modifier.padding(horizontal = 16.dp),
text = "$assetCount assets",
text = pluralStringResourceSafe(R.plurals.market_chart_assets_android, assetCount, assetCount),
color = TangemTheme.colors3.text.secondary,
style = TangemTheme.typography3.heading.small,
)
Text(
modifier = Modifier.padding(horizontal = 16.dp),
text = "Top holding: ${formatSegmentPercent(topHoldingPercent)}",
text = stringResourceSafe(R.string.market_chart_top_holding, formatSegmentPercent(topHoldingPercent)),
color = TangemTheme.colors3.text.primary,
style = TangemTheme.typography3.heading.small,
)
@ -262,7 +266,7 @@ private fun ColumnScope.TopHoldingBlock(assetCount: Int, topHoldingPercent: Floa
private fun ColumnScope.CantLoadDataBlock() {
Text(
modifier = Modifier.padding(horizontal = 16.dp),
text = "Can't load data",
text = stringResourceSafe(R.string.market_chart_can_not_load_data),
color = TangemTheme.colors3.text.secondary,
style = TangemTheme.typography3.heading.small,
)
@ -313,7 +317,8 @@ private fun AiInsightContent(aiInsightState: AiInsightState) {
),
alpha = 1f,
),
) { append("Al Total: ") } // TODO add localization
) { append(stringResourceSafe(R.string.market_chart_ai_total)) }
append(" ")
append(currentState.text)
},
color = TangemTheme.colors3.text.secondary,