diff --git a/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/ExpiredGiftSheetConfiguration.kt b/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/ExpiredGiftSheetConfiguration.kt index b179fa0eb..b0c78501d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/ExpiredGiftSheetConfiguration.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/ExpiredGiftSheetConfiguration.kt @@ -30,14 +30,14 @@ object ExpiredGiftSheetConfiguration { private fun DSLConfiguration.expiredSheet(onMakeAMonthlyDonation: () -> Unit, onNotNow: () -> Unit) { textPref( title = DSLSettingsText.from( - stringId = R.string.ExpiredGiftSheetConfiguration__your_gift_badge_has_expired, + stringId = R.string.ExpiredGiftSheetConfiguration__your_badge_has_expired, DSLSettingsText.CenterModifier, DSLSettingsText.TitleLargeModifier ) ) textPref( title = DSLSettingsText.from( - stringId = R.string.ExpiredGiftSheetConfiguration__your_gift_badge_has_expired_and_is, + stringId = R.string.ExpiredGiftSheetConfiguration__your_badge_has_expired_and_is, DSLSettingsText.CenterModifier ) ) diff --git a/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/GiftMessageView.kt b/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/GiftMessageView.kt index 9aa46b919..de4609ff3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/GiftMessageView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/GiftMessageView.kt @@ -16,6 +16,7 @@ import org.thoughtcrime.securesms.badges.BadgeImageView import org.thoughtcrime.securesms.badges.gifts.Gifts.formatExpiry import org.thoughtcrime.securesms.database.model.databaseprotos.GiftBadge import org.thoughtcrime.securesms.mms.GlideRequests +import org.thoughtcrime.securesms.recipients.Recipient /** * Displays a gift badge sent to or received from a user, and allows the user to @@ -49,8 +50,7 @@ class GiftMessageView @JvmOverloads constructor( } } - fun setGiftBadge(glideRequests: GlideRequests, giftBadge: GiftBadge, isOutgoing: Boolean, callback: Callback) { - titleView.setText(R.string.GiftMessageView__gift_badge) + fun setGiftBadge(glideRequests: GlideRequests, giftBadge: GiftBadge, isOutgoing: Boolean, callback: Callback, recipient: Recipient) { descriptionView.text = giftBadge.formatExpiry(context) actionView.icon = null actionView.setOnClickListener { callback.onViewGiftBadgeClicked() } @@ -58,7 +58,9 @@ class GiftMessageView @JvmOverloads constructor( if (isOutgoing) { actionView.setText(R.string.GiftMessageView__view) + titleView.text = context.getString(R.string.GiftMessageView__donation_to_s, recipient.getDisplayName(context)) } else { + titleView.text = context.getString(R.string.GiftMessageView__s_donated_to_signal_on, recipient.getShortDisplayName(context)) when (giftBadge.redemptionState) { GiftBadge.RedemptionState.REDEEMED -> { stopAnimationIfNeeded() diff --git a/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/flow/GiftFlowConfirmationFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/flow/GiftFlowConfirmationFragment.kt index d06417a31..8fc9ef700 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/flow/GiftFlowConfirmationFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/flow/GiftFlowConfirmationFragment.kt @@ -45,7 +45,7 @@ import org.thoughtcrime.securesms.util.navigation.safeNavigate */ class GiftFlowConfirmationFragment : DSLSettingsFragment( - titleId = R.string.GiftFlowConfirmationFragment__confirm_gift, + titleId = R.string.GiftFlowConfirmationFragment__confirm_donation, layoutId = R.layout.gift_flow_confirmation_fragment ), EmojiKeyboardPageFragment.Callback, @@ -221,7 +221,7 @@ class GiftFlowConfirmationFragment : ) textPref( - summary = DSLSettingsText.from(R.string.GiftFlowConfirmationFragment__your_gift_will_be_sent_in) + summary = DSLSettingsText.from(R.string.GiftFlowConfirmationFragment__the_recipient_will_be_notified) ) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/flow/GiftFlowStartFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/flow/GiftFlowStartFragment.kt index a4b7905b1..7c436ef6a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/flow/GiftFlowStartFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/flow/GiftFlowStartFragment.kt @@ -70,7 +70,7 @@ class GiftFlowStartFragment : DSLSettingsFragment( noPadTextPref( title = DSLSettingsText.from( - R.string.GiftFlowStartFragment__gift_a_badge, + R.string.GiftFlowStartFragment__donate_for_a_friend, DSLSettingsText.CenterModifier, DSLSettingsText.TextAppearanceModifier(R.style.Signal_Text_Headline) ) @@ -79,7 +79,7 @@ class GiftFlowStartFragment : DSLSettingsFragment( space(DimensionUnit.DP.toPixels(16f).toInt()) noPadTextPref( - title = DSLSettingsText.from(R.string.GiftFlowStartFragment__gift_someone_a_badge, DSLSettingsText.CenterModifier) + title = DSLSettingsText.from(resources.getQuantityString(R.plurals.GiftFlowStartFragment__support_signal_by, 30, 30), DSLSettingsText.CenterModifier) ) space(DimensionUnit.DP.toPixels(16f).toInt()) diff --git a/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/flow/GiftRowItem.kt b/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/flow/GiftRowItem.kt index d5f1bda12..540b46bb4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/flow/GiftRowItem.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/flow/GiftRowItem.kt @@ -34,7 +34,7 @@ object GiftRowItem { override fun bind(model: Model) { binding.check.visible = false binding.badge.setBadge(model.giftBadge) - binding.tagline.setText(R.string.GiftRowItem__send_a_gift_badge) + binding.tagline.visible = false val price = FiatMoneyUtil.format( context.resources, diff --git a/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/thanks/GiftThanksSheet.kt b/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/thanks/GiftThanksSheet.kt index ab11988cf..30a875d1d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/thanks/GiftThanksSheet.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/thanks/GiftThanksSheet.kt @@ -63,7 +63,7 @@ class GiftThanksSheet : DSLSettingsBottomSheetFragment() { noPadTextPref( title = DSLSettingsText.from( - getString(R.string.GiftThanksSheet__youve_gifted_a_badge_to_s, recipient.getDisplayName(requireContext())), + getString(R.string.GiftThanksSheet__youve_made_a_donation, recipient.getDisplayName(requireContext())), DSLSettingsText.CenterModifier ) ) diff --git a/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/viewgift/received/ViewReceivedGiftBottomSheet.kt b/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/viewgift/received/ViewReceivedGiftBottomSheet.kt index e0950a6b8..38161f46e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/viewgift/received/ViewReceivedGiftBottomSheet.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/viewgift/received/ViewReceivedGiftBottomSheet.kt @@ -157,7 +157,7 @@ class ViewReceivedGiftBottomSheet : DSLSettingsBottomSheetFragment() { if (state.recipient != null && !isGiftBadgeRedeemed(state.giftBadge)) { noPadTextPref( title = DSLSettingsText.from( - charSequence = requireContext().getString(R.string.ViewReceivedGiftBottomSheet__s_sent_you_a_gift, state.recipient.getShortDisplayName(requireContext())), + charSequence = requireContext().getString(R.string.ViewReceivedGiftBottomSheet__s_made_a_donation_for_you, state.recipient.getShortDisplayName(requireContext())), DSLSettingsText.CenterModifier, DSLSettingsText.TitleLargeModifier ) ) @@ -179,7 +179,7 @@ class ViewReceivedGiftBottomSheet : DSLSettingsBottomSheetFragment() { private fun DSLConfiguration.presentSubheading(recipient: Recipient) { noPadTextPref( title = DSLSettingsText.from( - charSequence = requireContext().getString(R.string.ViewReceivedGiftBottomSheet__youve_received_a_gift_badge, recipient.getDisplayName(requireContext())), + charSequence = requireContext().getString(R.string.ViewReceivedGiftBottomSheet__s_made_a_donation_to_signal, recipient.getShortDisplayName(requireContext())), DSLSettingsText.CenterModifier ) ) @@ -206,7 +206,8 @@ class ViewReceivedGiftBottomSheet : DSLSettingsBottomSheetFragment() { else -> { customPref( BadgeDisplay112.Model( - badge = badge + badge = badge, + withDisplayText = false ) ) diff --git a/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/viewgift/sent/ViewSentGiftBottomSheet.kt b/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/viewgift/sent/ViewSentGiftBottomSheet.kt index 4365596ba..6c850aa59 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/viewgift/sent/ViewSentGiftBottomSheet.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/badges/gifts/viewgift/sent/ViewSentGiftBottomSheet.kt @@ -75,7 +75,7 @@ class ViewSentGiftBottomSheet : DSLSettingsBottomSheetFragment() { if (state.recipient != null) { noPadTextPref( title = DSLSettingsText.from( - charSequence = getString(R.string.ViewSentGiftBottomSheet__youve_gifted_a_badge, state.recipient.getDisplayName(requireContext())), + charSequence = getString(R.string.ViewSentGiftBottomSheet__youve_made_a_donation_to_signal, state.recipient.getDisplayName(requireContext())), DSLSettingsText.CenterModifier ) ) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/QuoteView.java b/app/src/main/java/org/thoughtcrime/securesms/components/QuoteView.java index 0f3b5b956..f02949711 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/QuoteView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/QuoteView.java @@ -224,7 +224,7 @@ public class QuoteView extends FrameLayout implements RecipientForeverObserver { } private @Nullable CharSequence resolveBody(@Nullable CharSequence body, @NonNull QuoteModel.Type quoteType) { - return quoteType == QuoteModel.Type.GIFT_BADGE ? getContext().getString(R.string.QuoteView__gift) : body; + return quoteType == QuoteModel.Type.GIFT_BADGE ? getContext().getString(R.string.QuoteView__donation_for_a_friend) : body; } public void setTopCornerSizes(boolean topLeftLarge, boolean topRightLarge) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/gateway/GatewaySelectorBottomSheet.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/gateway/GatewaySelectorBottomSheet.kt index 86cc6dc98..4464556db 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/gateway/GatewaySelectorBottomSheet.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/gateway/GatewaySelectorBottomSheet.kt @@ -179,7 +179,7 @@ class GatewaySelectorBottomSheet : DSLSettingsBottomSheetFragment() { space(6.dp) noPadTextPref( title = DSLSettingsText.from( - R.string.GatewaySelectorBottomSheet__send_a_gift_badge, + R.string.GatewaySelectorBottomSheet__donate_for_a_friend, DSLSettingsText.CenterModifier, DSLSettingsText.BodyLargeModifier, DSLSettingsText.ColorModifier(ContextCompat.getColor(context, R.color.signal_colorOnSurfaceVariant)) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/errors/DonationErrorParams.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/errors/DonationErrorParams.kt index cc951f17e..e198d0820 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/errors/DonationErrorParams.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/errors/DonationErrorParams.kt @@ -57,8 +57,8 @@ class DonationErrorParams private constructor( private fun getGenericRedemptionError(context: Context, genericError: DonationError.BadgeRedemptionError.GenericError, callback: Callback): DonationErrorParams { return when (genericError.source) { DonationErrorSource.GIFT -> DonationErrorParams( - title = R.string.DonationsErrors__failed_to_send_gift_badge, - message = R.string.DonationsErrors__could_not_send_gift_badge, + title = R.string.DonationsErrors__donation_failed, + message = R.string.DonationsErrors__your_payment_was_processed_but, positiveAction = callback.onContactSupport(context), negativeAction = null ) @@ -74,14 +74,14 @@ class DonationErrorParams private constructor( private fun getVerificationErrorParams(context: Context, verificationError: DonationError.GiftRecipientVerificationError, callback: Callback): DonationErrorParams { return when (verificationError) { is DonationError.GiftRecipientVerificationError.FailedToFetchProfile -> DonationErrorParams( - title = R.string.DonationsErrors__couldnt_send_gift, - message = R.string.DonationsErrors__please_check_your_network_connection, + title = R.string.DonationsErrors__cannot_send_donation, + message = R.string.DonationsErrors__your_donation_could_not_be_sent, positiveAction = callback.onOk(context), negativeAction = null ) else -> DonationErrorParams( - title = R.string.DonationsErrors__cant_send_gift, - message = R.string.DonationsErrors__target_does_not_support_gifting, + title = R.string.DonationsErrors__cannot_send_donation, + message = R.string.DonationsErrors__this_user_cant_receive_donations_until, positiveAction = callback.onOk(context), negativeAction = null ) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/manage/ManageDonationsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/manage/ManageDonationsFragment.kt index a6977bae2..415a10813 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/manage/ManageDonationsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/manage/ManageDonationsFragment.kt @@ -247,7 +247,7 @@ class ManageDonationsFragment : if (FeatureFlags.giftBadgeSendSupport() && Recipient.self().giftBadgesCapability == Recipient.Capability.SUPPORTED) { clickPref( - title = DSLSettingsText.from(R.string.ManageDonationsFragment__gift_a_badge), + title = DSLSettingsText.from(R.string.ManageDonationsFragment__donate_for_a_friend), icon = DSLSettingsIcon.from(R.drawable.ic_gift_24), onClick = { startActivity(Intent(requireContext(), GiftFlowActivity::class.java)) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/detail/DonationReceiptDetailFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/detail/DonationReceiptDetailFragment.kt index 30e4cad39..9a29cc2cc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/detail/DonationReceiptDetailFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/detail/DonationReceiptDetailFragment.kt @@ -70,7 +70,7 @@ class DonationReceiptDetailFragment : DSLSettingsFragment(layoutId = R.layout.do val type: String = when (record.type) { DonationReceiptRecord.Type.RECURRING -> getString(R.string.DonationReceiptDetailsFragment__s_dash_s, subscriptionName, getString(R.string.DonationReceiptListFragment__recurring)) DonationReceiptRecord.Type.BOOST -> getString(R.string.DonationReceiptListFragment__one_time) - DonationReceiptRecord.Type.GIFT -> getString(R.string.DonationReceiptListFragment__gift) + DonationReceiptRecord.Type.GIFT -> getString(R.string.DonationReceiptListFragment__donation_for_a_friend) } val datePaid: String = DateUtils.formatDate(Locale.getDefault(), record.timestamp) @@ -142,7 +142,7 @@ class DonationReceiptDetailFragment : DSLSettingsFragment(layoutId = R.layout.do when (record.type) { DonationReceiptRecord.Type.RECURRING -> getString(R.string.DonationReceiptDetailsFragment__s_dash_s, subscriptionName, getString(R.string.DonationReceiptListFragment__recurring)) DonationReceiptRecord.Type.BOOST -> getString(R.string.DonationReceiptListFragment__one_time) - DonationReceiptRecord.Type.GIFT -> getString(R.string.DonationReceiptListFragment__gift) + DonationReceiptRecord.Type.GIFT -> getString(R.string.DonationReceiptListFragment__donation_for_a_friend) } ) ) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/list/DonationReceiptListFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/list/DonationReceiptListFragment.kt index fb9e21cd4..794e9ba29 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/list/DonationReceiptListFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/list/DonationReceiptListFragment.kt @@ -32,7 +32,7 @@ class DonationReceiptListFragment : Fragment(R.layout.donation_receipt_list_frag 0 -> R.string.DonationReceiptListFragment__all 1 -> R.string.DonationReceiptListFragment__recurring 2 -> R.string.DonationReceiptListFragment__one_time - 3 -> R.string.DonationReceiptListFragment__gift + 3 -> R.string.DonationReceiptListFragment__donation_for_a_friend else -> error("Unsupported index $position") } ) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/list/DonationReceiptListItem.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/list/DonationReceiptListItem.kt index 560098f6b..e241d8d75 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/list/DonationReceiptListItem.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/receipts/list/DonationReceiptListItem.kt @@ -44,7 +44,7 @@ object DonationReceiptListItem { when (model.record.type) { DonationReceiptRecord.Type.RECURRING -> R.string.DonationReceiptListFragment__recurring DonationReceiptRecord.Type.BOOST -> R.string.DonationReceiptListFragment__one_time - DonationReceiptRecord.Type.GIFT -> R.string.DonationReceiptListFragment__gift + DonationReceiptRecord.Type.GIFT -> R.string.DonationReceiptListFragment__donation_for_a_friend } ) moneyView.text = FiatMoneyUtil.format(context.resources, model.record.amount) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java index ef2a58bb1..590ca9795 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java @@ -1287,7 +1287,7 @@ public final class ConversationItem extends RelativeLayout implements BindableCo paymentViewStub.setVisibility(View.GONE); MmsMessageRecord mmsMessageRecord = (MmsMessageRecord) messageRecord; - giftViewStub.get().setGiftBadge(glideRequests, Objects.requireNonNull(mmsMessageRecord.getGiftBadge()), messageRecord.isOutgoing(), giftMessageViewCallback); + giftViewStub.get().setGiftBadge(glideRequests, Objects.requireNonNull(mmsMessageRecord.getGiftBadge()), messageRecord.isOutgoing(), giftMessageViewCallback, messageRecord.getRecipient()); giftViewStub.get().setVisibility(VISIBLE); footer.setVisibility(VISIBLE); diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/ThreadBodyUtil.java b/app/src/main/java/org/thoughtcrime/securesms/database/ThreadBodyUtil.java index 07aa7253f..ffb37da42 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/ThreadBodyUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/ThreadBodyUtil.java @@ -87,11 +87,11 @@ public final class ThreadBodyUtil { private static @NonNull String getGiftSummary(@NonNull Context context, @NonNull MessageRecord messageRecord) { if (messageRecord.isOutgoing()) { - return context.getString(R.string.ThreadRecord__you_sent_a_gift); + return context.getString(R.string.ThreadRecord__you_donated_for_s, messageRecord.getRecipient().getShortDisplayName(context)); } else if (messageRecord.getViewedReceiptCount() > 0) { - return context.getString(R.string.ThreadRecord__you_redeemed_a_gift_badge); + return context.getString(R.string.ThreadRecord__you_redeemed_a_badge); } else { - return context.getString(R.string.ThreadRecord__you_received_a_gift); + return context.getString(R.string.ThreadRecord__s_donated_for_you, messageRecord.getRecipient().getShortDisplayName(context)); } } diff --git a/app/src/main/res/layout/redeeming_gift_dialog.xml b/app/src/main/res/layout/redeeming_gift_dialog.xml index 81bd43718..808e5f431 100644 --- a/app/src/main/res/layout/redeeming_gift_dialog.xml +++ b/app/src/main/res/layout/redeeming_gift_dialog.xml @@ -36,7 +36,7 @@ android:layout_marginTop="20dp" android:layout_marginEnd="16dp" android:gravity="center" - android:text="@string/ViewReceivedGiftSheet__redeeming_gift" + android:text="@string/ViewReceivedGiftSheet__redeeming_badge" android:textAppearance="@style/Signal.Text.Body" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9ece6ad1b..d391d3d8b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1892,11 +1892,11 @@ Video Chat session refreshed - You received a gift + %1$s donated for you - You sent a gift + You donated for %1$s - You redeemed a gift badge + You redeemed a badge Reacted %1$s to your story @@ -2272,7 +2272,7 @@ No longer available - Gift + Donation for a friend Scroll to the bottom @@ -4360,7 +4360,7 @@ Other ways to give - Gift a badge + Donate for a Friend Enter Custom Amount One-time contribution @@ -4416,10 +4416,10 @@ Failed to validate badge Could not validate server response. Please contact support. - - Failed to send gift badge - - Could not send gift badge. Please contact support. + + Donation failed + + Your payment was processed but Signal could not send your donation message. Please contact support. Your badge could not be added to your account, but you may have been charged. Please contact support. Your payment is still being processed. This can take a few minutes depending on your connection. Failed to cancel subscription @@ -4428,16 +4428,16 @@ Network error. Check your connection and try again. Retry - Can\'t send gift + Cannot send donation - This recipient is using a version of Signal that can\'t receive gift badges. They\'ll be able to receive gifts when they update to the latest version. - - Couldn\'t send gift + This user can\'t receive donations until they upgrade Signal. - Your gift could not be sent because of a network error. Check your connection and try again. + Your donation could not be sent because of a network error. Check your connection and try again. - Gift badge + Donation to %1$s + + %1$s donated to Signal on your behalf Redeem @@ -4648,7 +4648,7 @@ One-time - Gift + Donation for a friend @@ -4998,22 +4998,23 @@ %1$s · %2$d day duration %1$s · %2$d day duration - - Send a gift badge - Gift a Badge + Donate for a Friend - Gift someone a badge by making a donation to Signal in their name. They\'ll get a badge to display on their profile photo. + + Support Signal by making a donation for a friend or family member who uses Signal. They\'ll receive a badge to display on their profile for %1$d day + Support Signal by making a donation for a friend or family member who uses Signal. They\'ll receive a badge to display on their profile for %1$d days + Next Choose recipient - Confirm gift + Confirm donation Send to - Your gift will be sent in a 1 on 1 message to the recipient. Add your own message below. + The recipient will be notified of the donation in a 1 on 1 message. Add your own message below. One-time donation @@ -5021,27 +5022,27 @@ Verifying recipient… - %1$s sent you a gift + %1$s made a donation for you Thanks for your support! - You\'ve received a gift badge from %1$s! Help Signal build awareness by displaying this badge on your profile. + %1$s made a donation to Signal on your behalf! Show your support for Signal on your profile. - You\'ve gifted a badge to %1$s. When they accept, they\'ll be given a choice to show or hide their badge. + You\'ve made a donation to Signal on behalf of %1$s. They\'ll be given the option to show their support on their profile. Redeem Not now - Redeeming gift… + Redeeming badge… You can redeem your badge later. - You\'ve gifted a badge to %1$s. When they accept, they\'ll be given a choice to show or hide their badge. + You’ve made a donation to Signal on behalf of %1$s. They’ll be given the option to show their support on their profile. - Your gift badge has expired + Your badge has expired - Your gift badge has expired, and is no longer visible to others on your profile. + Your badge has expired, and is no longer visible to others on your profile. To continue supporting technology that is built for you, please consider becoming a monthly Sustainer. @@ -5095,12 +5096,12 @@ Delete the custom story \"%1$s\"? Delete - + %1$d days remaining %1$d days remaining - + %1$d hours remaining %1$d hours remaining @@ -5110,7 +5111,7 @@ %1$d minute remaining %1$d minutes remaining - + Expired @@ -5413,8 +5414,8 @@ Credit or debit card - - Send a gift badge + + Donate for a friend Cancelling…