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 b179fa0ebd..b0c78501d5 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 9aa46b919e..de4609ff31 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 d06417a31b..8fc9ef7009 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 a4b7905b15..7c436ef6a2 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 d5f1bda129..540b46bb4d 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 ab11988cfd..30a875d1d5 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 e0950a6b81..38161f46ee 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 4365596baf..6c850aa597 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 0f3b5b9563..f02949711a 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 86cc6dc98b..4464556db7 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 cc951f17e8..e198d0820d 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 a6977bae29..415a108131 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 30e4cad399..9a29cc2cc9 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 fb9e21cd46..794e9ba299 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 560098f6b3..e241d8d750 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 ef2a58bb1c..590ca97955 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 07aa7253fa..ffb37da429 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 81bd43718b..808e5f431f 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 9ece6ad1b1..d391d3d8b3 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…