From 029179c14253bfab0e5bc15673f48675d75c5463 Mon Sep 17 00:00:00 2001 From: Christos Bacharakis Date: Mon, 15 Jun 2026 13:39:07 +0300 Subject: [PATCH] Make reviewer/decision email copy more empathetic and constructive Update developer-, user-, and reporter-facing email templates to use a warmer, more respectful and constructive tone while keeping the required actions clear and the policy/legal/appeal content intact. Copy sourced from the "addons-server emails" review doc. Changes are scoped to the specific wording that needed updating to keep diffs easy to review. Note: templates wrapping copy in {% blocktrans %} will need re-localization in Pontoon. Co-Authored-By: Claude Opus 4.8 --- .../emails/ContentActionApproveInitialDecision.txt | 12 ++++++------ .../emails/ContentActionApproveListingContent.txt | 10 +++++----- .../abuse/emails/ContentActionBanUser.txt | 4 ++-- .../ContentActionChangePendingRejectionDate.txt | 4 ++-- .../abuse/emails/ContentActionDeleteCollection.txt | 6 +++--- .../abuse/emails/ContentActionDeleteRating.txt | 6 +++--- .../abuse/emails/ContentActionDisableAddon.txt | 9 ++++++--- .../emails/ContentActionRejectListingContent.txt | 8 ++++---- .../abuse/emails/ContentActionRejectVersion.txt | 2 +- .../emails/ContentActionRejectVersionDelayed.txt | 2 +- .../emails/ContentActionTargetAppealApprove.txt | 14 +++++++------- ...ContentActionTargetAppealRemovalAffirmation.txt | 8 ++++---- src/olympia/abuse/templates/abuse/emails/base.txt | 6 +++--- .../templates/abuse/emails/includes/policies.txt | 2 +- .../abuse/emails/reporter_appeal_approve.txt | 6 +++--- .../abuse/emails/reporter_appeal_takedown.txt | 4 ++-- .../abuse/emails/reporter_content_approve.txt | 6 +++--- .../abuse/emails/reporter_invalid_ignore.txt | 4 ++-- .../abuse/emails/reporter_moderated_ignore.txt | 6 +++--- .../abuse/emails/reporter_takedown_addon.txt | 4 ++-- .../emails/reporter_takedown_addon_delayed.txt | 4 ++-- .../activity/templates/activity/emails/bounce.txt | 6 ++++-- .../templates/activity/emails/developer.txt | 4 ++-- .../templates/activity/emails/from_reviewer.txt | 10 +++++----- .../devhub/emails/api_key_confirmation.ltxt | 7 ++++--- .../templates/devhub/emails/new-key-email.ltxt | 13 +++++++++---- .../templates/devhub/emails/revoked-key-email.ltxt | 13 +++++++++---- .../emails/submission_api_key_revocation.txt | 8 +++++--- .../devhub/emails/verify-email-completed.ltxt | 4 ++-- .../devhub/emails/verify-email-requested.ltxt | 7 ++++--- .../templates/ratings/emails/new_rating.txt | 6 ++++-- .../templates/ratings/emails/reply_review.ltxt | 8 +++++--- .../users/templates/users/emails/author_added.ltxt | 11 +++++++++-- .../users/emails/author_added_confirmation.ltxt | 10 ++++++---- .../users/templates/users/emails/user_deleted.ltxt | 8 +++++--- 35 files changed, 138 insertions(+), 104 deletions(-) diff --git a/src/olympia/abuse/templates/abuse/emails/ContentActionApproveInitialDecision.txt b/src/olympia/abuse/templates/abuse/emails/ContentActionApproveInitialDecision.txt index 3d9e8b593737..a7f847385b80 100644 --- a/src/olympia/abuse/templates/abuse/emails/ContentActionApproveInitialDecision.txt +++ b/src/olympia/abuse/templates/abuse/emails/ContentActionApproveInitialDecision.txt @@ -1,23 +1,23 @@ Hello, {% if is_listing_rejected %} -Your {{ type }} has been approved for distribution, but the listing on Mozilla Add-ons remains unavailable until you address the violations and request a further review. You can edit it at {{ target_url }}. +Good news, your {{ type }} has been approved for distribution. Its listing on Mozilla Add-ons will stay unavailable until the outstanding issue(s) are resolved; once you've made the updates, request a further review and we'll take another look. You can edit it at {{ target_url }}. {% elif not auto_approval %} -Your {{ type }} has been approved on Mozilla Add-ons and it is now available at {{ target_url }}. +Good news, your {{ type }} has been approved on Mozilla Add-ons and is now available at {{ target_url }}. {% else %} -Your {{ type }} has been automatically screened and tentatively approved. It is now available at {{ target_url }}. +Thanks for your submission. Your {{ type }} has passed our automated screening and is tentatively approved. It's now available at {{ target_url }}. -Your add-on can be subject to human review at any time. Reviewers may determine that it requires changes or should be removed. If that occurs, you will receive a separate notification with details and next steps. +Add-ons may be reviewed by a person at any time, and a reviewer may ask for changes or determine that an add-on should be removed. If that happens, we'll send you a separate message with the details and clear next steps. {% endif %} {% if version_list %}Approved versions: {{ version_list }} {% endif %} {% if manual_reasoning_text %}Comments: {{ manual_reasoning_text }}.{% endif %} {% if has_attachment %} -An attachment was provided. {% if dev_url %}To respond or view the file, visit {{ dev_url }}.{% endif %} +A reviewer has attached a file. {% if dev_url %}You can view it or reply by visiting {{ dev_url }}.{% endif %} {% endif %} -Thank you. +Thank you, and thanks for building for Firefox. More information about Mozilla's add-on policies can be found at {{ policy_document_url }}. diff --git a/src/olympia/abuse/templates/abuse/emails/ContentActionApproveListingContent.txt b/src/olympia/abuse/templates/abuse/emails/ContentActionApproveListingContent.txt index 5458573292b1..696ca807e0d6 100644 --- a/src/olympia/abuse/templates/abuse/emails/ContentActionApproveListingContent.txt +++ b/src/olympia/abuse/templates/abuse/emails/ContentActionApproveListingContent.txt @@ -1,19 +1,19 @@ Hello, -Previously, your {{ type }} was suspended/removed from Mozilla Add-ons, based on a finding that you had violated Mozilla's policies. +Your {{ type }} had previously been suspended or removed from Mozilla Add-ons following a review of our policies. {% if is_public %} -We have now determined that your content is within policy, and based on that determination, we have restored your {{ type }}. It is now available at {{ target_url }}. +We've taken another look and determined that your content is within policy. We've restored your {{ type }}, and it's now available again at {{ target_url }}. {% else %} -We have now determined that your content is within policy, and based on that determination, we have re-enabled your {{ type }}. See {{ target_url }} for more information on its availability. +We've taken another look and determined that your content is within policy. We've re-enabled your {{ type }}; see {{ target_url }} for more on its availability. {% endif %} {% if manual_reasoning_text %}{{ manual_reasoning_text }}. {% endif %} {% if has_attachment %} -An attachment was provided. {% if dev_url %}To respond or view the file, visit {{ dev_url }}.{% endif %} +A reviewer has attached a file. {% if dev_url %}You can view it or reply by visiting {{ dev_url }}.{% endif %} {% endif %} -Thank you. +Thank you for your patience. More information about Mozilla's add-on policies can be found at {{ policy_document_url }}. diff --git a/src/olympia/abuse/templates/abuse/emails/ContentActionBanUser.txt b/src/olympia/abuse/templates/abuse/emails/ContentActionBanUser.txt index c8b313c182fe..a800cf9d121a 100644 --- a/src/olympia/abuse/templates/abuse/emails/ContentActionBanUser.txt +++ b/src/olympia/abuse/templates/abuse/emails/ContentActionBanUser.txt @@ -1,8 +1,8 @@ {% extends "abuse/emails/base.txt" %}{% block content %} -Your account on {{ SITE_URL }} was manually reviewed by the Mozilla Add-ons team, {% if is_third_party_initiated %}based on a report we received from a third party{% else %}in an assessment of your account activity that we performed on our own initiative{% endif %}. +Your account on {{ SITE_URL }} was manually reviewed by the Mozilla Add-ons team, {% if is_third_party_initiated %}after a report we received from a third party{% else %}as part of an assessment of your account activity that we carried out on our own initiative{% endif %}. Our review found that your user profile violates the following Mozilla policy or policies: {% include 'abuse/emails/includes/policies.txt' %} -Based on that finding, your account on Mozilla Add-ons has been suspended. You will not be able to log in, and any content you previously submitted will no longer be displayed. This suspension applies globally, and is permanent. Users who have previously installed your add-ons will be able to continue using them. +As a result, your account on Mozilla Add-ons has been suspended. You won't be able to log in, and content you previously submitted will no longer be displayed. This suspension is permanent and applies worldwide. Users who already installed your add-ons can continue using them. {% endblock %} diff --git a/src/olympia/abuse/templates/abuse/emails/ContentActionChangePendingRejectionDate.txt b/src/olympia/abuse/templates/abuse/emails/ContentActionChangePendingRejectionDate.txt index faf6246de370..50b34fb79b1b 100644 --- a/src/olympia/abuse/templates/abuse/emails/ContentActionChangePendingRejectionDate.txt +++ b/src/olympia/abuse/templates/abuse/emails/ContentActionChangePendingRejectionDate.txt @@ -1,6 +1,6 @@ {% extends "abuse/emails/base.txt" %}{% block content %} -As you are aware, your {{ type }} {{ name }} was manually reviewed by the Mozilla Add-ons team, at which point we found a violation of one or more Mozilla add-on policies. +We're writing about your {{ type }} {{ name }}, which our team reviewed and found to conflict with one or more Mozilla add-on policies. -Our previous correspondence indicated that you would be required to correct the violation(s) by {{ details.old_deadline }}. However, after further assessing the circumstances - including the violation itself, the risks it presents, and the steps required to resolve it - we have determined that an alternative timeline is appropriate. Based on that determination, we have updated the deadline, and will now require you to correct your add-on violations no later than {{ details.new_deadline }}. +Our earlier message asked you to resolve the issue(s) by {{ details.old_deadline }}. After taking another look at the circumstances, including the issue itself, the risks it presents, and the steps needed to resolve it, we've decided a different timeline is appropriate. Your new deadline to bring your add-on into compliance is {{ details.new_deadline }}. {% endblock %} diff --git a/src/olympia/abuse/templates/abuse/emails/ContentActionDeleteCollection.txt b/src/olympia/abuse/templates/abuse/emails/ContentActionDeleteCollection.txt index 89d05691ffde..a62281f15634 100644 --- a/src/olympia/abuse/templates/abuse/emails/ContentActionDeleteCollection.txt +++ b/src/olympia/abuse/templates/abuse/emails/ContentActionDeleteCollection.txt @@ -1,8 +1,8 @@ {% extends "abuse/emails/base.txt" %}{% block content %} -Your collection {{ name }} was manually reviewed by the Mozilla Add-ons team, {% if is_third_party_initiated %}based on a report we received from a third party{% else %}in an assessment performed on our own initiative{% endif %}. +Your collection {{ name }} was manually reviewed by the Mozilla Add-ons team, {% if is_third_party_initiated %}after a report we received from a third party{% else %}as part of an assessment we carried out on our own initiative{% endif %}. -Our review found that your content violates the following Mozilla policy or policies: +Our review found that your content conflicts with the following Mozilla policy or policies: {% include 'abuse/emails/includes/policies.txt' %} -Based on that finding, your collection has been permanently removed from {{ SITE_URL }}, and is no longer visible anywhere in the world. +As a result, your collection has been permanently removed from {{ SITE_URL }} and is no longer visible anywhere in the world. {% endblock %} diff --git a/src/olympia/abuse/templates/abuse/emails/ContentActionDeleteRating.txt b/src/olympia/abuse/templates/abuse/emails/ContentActionDeleteRating.txt index 56edfba7047b..5c9769af9a0d 100644 --- a/src/olympia/abuse/templates/abuse/emails/ContentActionDeleteRating.txt +++ b/src/olympia/abuse/templates/abuse/emails/ContentActionDeleteRating.txt @@ -1,8 +1,8 @@ {% extends "abuse/emails/base.txt" %}{% block content %} -Your rating {{ name }}, was manually reviewed by the Mozilla Add-ons team, {% if is_third_party_initiated %}based on a report we received from a third party{% else %}in an assessment performed on our own initiative{% endif %}. +Your rating {{ name }} was manually reviewed by the Mozilla Add-ons team, {% if is_third_party_initiated %}after a report we received from a third party{% else %}as part of an assessment we carried out on our own initiative{% endif %}. -Our review found that the text contained in your rating violates the following Mozilla policy or policies: +Our review found that the text in your rating conflicts with the following Mozilla policy or policies: {% include 'abuse/emails/includes/policies.txt' %} -Based on that finding, your rating has been permanently removed from {{ SITE_URL }}, and is no longer visible anywhere in the world. +As a result, your rating has been permanently removed from {{ SITE_URL }} and is no longer visible anywhere in the world. {% endblock %} diff --git a/src/olympia/abuse/templates/abuse/emails/ContentActionDisableAddon.txt b/src/olympia/abuse/templates/abuse/emails/ContentActionDisableAddon.txt index a9b70fd66a01..a9a677235eb7 100644 --- a/src/olympia/abuse/templates/abuse/emails/ContentActionDisableAddon.txt +++ b/src/olympia/abuse/templates/abuse/emails/ContentActionDisableAddon.txt @@ -1,8 +1,11 @@ {% extends "abuse/emails/base.txt" %}{% block content %} -Your {{ type }} {{ name }} was manually reviewed by the Mozilla Add-ons team {% if is_third_party_initiated %}based on a report we received from a third party{% else %}in an assessment performed on our own initiative of content that was submitted to Mozilla Add-ons{% endif %}. +Thank you for submitting {{ type }} {{ name }} to Mozilla Add-ons. Our team carried out a manual review {% if is_third_party_initiated %}— prompted by a report we received from a third party —{% else %}— on our own initiative, on content submitted to Mozilla Add-ons —{% endif %}and found that some of your content doesn't meet our policies. -Our review found that your content violates the following Mozilla policy or policies: +Specifically, your content conflicts with the following Mozilla policy or policies: {% include 'abuse/emails/includes/policies.txt' %} -Based on that finding, your {{ type }} has been permanently disabled on {{ target_url }} and is no longer available for download from Mozilla Add-ons, anywhere in the world. {% if is_addon_being_blocked %}In addition, in some cases, users who have previously installed the add-on won't be able to continue using it.{% else %}Users who have previously installed your add-on will be able to continue using it.{% endif %} +As a result, your {{ type }} has been disabled on {{ target_url }} and is no longer available for download from Mozilla Add-ons anywhere in the world. {% if is_addon_being_blocked %}In some cases, users who already installed the add-on may no longer be able to use it.{% else %}Users who already installed your add-on can continue using it.{% endif %} {% endblock %} + +NOTES: Softened framing; disablement kept as a clear factual outcome. (Consider keeping +the word "permanently" if Policy/Legal prefers it explicit.) diff --git a/src/olympia/abuse/templates/abuse/emails/ContentActionRejectListingContent.txt b/src/olympia/abuse/templates/abuse/emails/ContentActionRejectListingContent.txt index dc2956791b03..2b5a87a8ab79 100644 --- a/src/olympia/abuse/templates/abuse/emails/ContentActionRejectListingContent.txt +++ b/src/olympia/abuse/templates/abuse/emails/ContentActionRejectListingContent.txt @@ -1,10 +1,10 @@ {% extends "abuse/emails/base.txt" %}{% block content %} -Your {{ type }} {{ name }} was manually reviewed by the Mozilla Add-ons team {% if is_third_party_initiated %}based on a report we received from a third party{% else %}in an assessment performed on our own initiative of content that was submitted to Mozilla Add-ons{% endif %}. +Thank you for submitting {{ type }} {{ name }} to Mozilla Add-ons. Our team carried out a manual review {% if is_third_party_initiated %}— prompted by a report we received from a third party —{% else %}— on our own initiative, on content submitted to Mozilla Add-ons —{% endif %}and found that some of your listing content doesn't meet our policies. -Our review found that your listing content violates the following Mozilla policy or policies: +Specifically, your listing content conflicts with the following Mozilla policy or policies: {% include 'abuse/emails/includes/policies.txt' %} -Based on that finding, your {{ type }} listing has been removed on {{ target_url }}, so your {{ type }} is no longer available for download from Mozilla Add-ons, anywhere in the world, until you address the violations and request a further review. +As a result, your {{ type }} listing has been removed on {{ target_url }}, so your {{ type }} is not available for download from Mozilla Add-ons anywhere in the world until the issue is resolved. Once you've updated the listing, please request a further review and we'll take another look. -The approval status of any versions are unchanged, and users who have previously installed your add-on will be able to continue using it. +The approval status of your versions is unchanged, and users who already installed your add-on can continue using it. {% endblock %} diff --git a/src/olympia/abuse/templates/abuse/emails/ContentActionRejectVersion.txt b/src/olympia/abuse/templates/abuse/emails/ContentActionRejectVersion.txt index 9f1c58d33634..89b71f2c28ff 100644 --- a/src/olympia/abuse/templates/abuse/emails/ContentActionRejectVersion.txt +++ b/src/olympia/abuse/templates/abuse/emails/ContentActionRejectVersion.txt @@ -8,5 +8,5 @@ Affected versions: {{ version_list }} Based on that finding, those versions of your {{ type }} have been disabled on {{ target_url }} and any public version affected will no longer be available for download from Mozilla Add-ons, anywhere in the world. {% if is_addon_being_blocked %}In addition, in some cases, users who have previously installed those versions won't be able to continue using them.{% else %}Users who have previously installed those versions will be able to continue using them.{% endif %} -{% if is_addon_enabled %}You may upload a new version which addresses the policy violation(s).{% endif %} +{% if is_addon_enabled %}We'd be glad to see {{ name }} back on Mozilla Add-ons. Once you've addressed the policy issue(s) above, you can upload a new version, and we'll take another look.{% endif %} {% endblock %} diff --git a/src/olympia/abuse/templates/abuse/emails/ContentActionRejectVersionDelayed.txt b/src/olympia/abuse/templates/abuse/emails/ContentActionRejectVersionDelayed.txt index 46e5e6c4fb30..f575ef204544 100644 --- a/src/olympia/abuse/templates/abuse/emails/ContentActionRejectVersionDelayed.txt +++ b/src/olympia/abuse/templates/abuse/emails/ContentActionRejectVersionDelayed.txt @@ -6,5 +6,5 @@ Our review found that your content violates the following Mozilla policy or poli Affected versions: {{ version_list }} -Based on that finding, those versions of your {{ type }} will be disabled on {{ target_url }} in {{ delayed_rejection_days }} day(s). Once disabled, any public version affected will no longer be available for download from Mozilla Add-ons, anywhere in the world, but any compliant versions will remain in place, and you may choose to upload a new version that addresses the policy violation. Users who have previously installed the disabled versions will be able to continue using them. +To give you time to resolve this, those versions of your {{ type }} will be disabled on {{ target_url }} in {{ delayed_rejection_days }} day(s). Once disabled, any affected public version will no longer be available for download from Mozilla Add-ons anywhere in the world. Any compliant versions will stay in place, and you're welcome to upload a new version that addresses the policy issue(s) before the deadline. Users who already installed the disabled versions can continue using them. {% endblock %} diff --git a/src/olympia/abuse/templates/abuse/emails/ContentActionTargetAppealApprove.txt b/src/olympia/abuse/templates/abuse/emails/ContentActionTargetAppealApprove.txt index cb38bc8c1e92..95300f732904 100644 --- a/src/olympia/abuse/templates/abuse/emails/ContentActionTargetAppealApprove.txt +++ b/src/olympia/abuse/templates/abuse/emails/ContentActionTargetAppealApprove.txt @@ -1,22 +1,22 @@ Hello, -Previously, your {{ type }} was suspended/removed from Mozilla Add-ons, based on a finding that you had violated Mozilla's policies. +Your {{ type }} had previously been suspended or removed from Mozilla Add-ons following a review of our policies. {% if is_public %} - {% if not is_override %}After reviewing your appeal, we{% else %}We have now{% endif %} determined that the previous decision was incorrect, and based on that determination, we have restored your {{ type }}. It is now available at {{ target_url }}. + {% if not is_override %}Thank you for appealing. After taking another look, we've{% else %}We've taken another look and{% endif %} determined that the earlier decision was incorrect. We've restored your {{ type }}, and it's now available again at {{ target_url }}. {% elif is_listing_rejected %} - {% if not is_override %}After reviewing your appeal, we{% else %}We have now{% endif %} determined that the previous decision was incorrect, and based on that determination, we have re-enabled your {{ type }}. The listing on Mozilla Add-ons remains unavailable however, until you address the violations and request a further review. You can edit it at {{ target_url }}. + {% if not is_override %}Thank you for appealing. After taking another look, we've{% else %}We've taken another look and{% endif %} determined that the earlier decision was incorrect, and we've re-enabled your {{ type }}. Its listing on Mozilla Add-ons will stay unavailable until the outstanding issue(s) are resolved; once you've made the updates, request a further review and we'll take another look. You can edit it at {{ target_url }}. {% else %} - {% if not is_override %}After reviewing your appeal, we{% else %}We have now{% endif %} determined that the previous decision was incorrect, and based on that determination, we have re-enabled your {{ type }}. See {{ target_url }} for more information on its availability. + {% if not is_override %}Thank you for appealing. After taking another look, we've{% else %}We've taken another look and{% endif %} determined that the earlier decision was incorrect, and we've re-enabled your {{ type }}. See {{ target_url }} for more on its availability. {% endif %} {% if manual_reasoning_text %}{{ manual_reasoning_text }}. {% endif %} {% if version_list %} -The following versions were reinstated: {{ version_list }}. -Please note that these versions may be removed again in the future, if additional policy violations are discovered. {% endif %} +The following versions have been reinstated: {{ version_list }}. +Please note these versions could be reviewed again in the future if further policy issues come to light. {% endif %} {% if has_attachment %} -An attachment was provided. {% if dev_url %}To respond or view the file, visit {{ dev_url }}.{% endif %} +A reviewer has attached a file. {% if dev_url %}You can view it or reply by visiting {{ dev_url }}.{% endif %} {% endif %} Thank you. diff --git a/src/olympia/abuse/templates/abuse/emails/ContentActionTargetAppealRemovalAffirmation.txt b/src/olympia/abuse/templates/abuse/emails/ContentActionTargetAppealRemovalAffirmation.txt index d9f2aacdf02e..3dedd29a9be8 100644 --- a/src/olympia/abuse/templates/abuse/emails/ContentActionTargetAppealRemovalAffirmation.txt +++ b/src/olympia/abuse/templates/abuse/emails/ContentActionTargetAppealRemovalAffirmation.txt @@ -1,12 +1,12 @@ Hello, -Previously, your {{ type }} was suspended/removed from Mozilla Add-ons, based on a finding that you had violated Mozilla's policies. +Your {{ type }} had previously been suspended or removed from Mozilla Add-ons following a finding that it did not meet Mozilla's policies. -After reviewing your appeal, we determined that it did not provide sufficient basis to overturn our earlier finding that your {{ type }} violates Mozilla's policies. {% if manual_reasoning_text %}{{ manual_reasoning_text }}. {% endif %}Based on that determination, we have denied your appeal, and will not reinstate your {{ type }}. -{% if is_addon_enabled %}If you submit a new version of this add-on (or have already done so), that version will be evaluated separately.{% endif %} +Thank you for appealing. After carefully reviewing your appeal, we found that it did not provide a sufficient basis to overturn our earlier finding, and the original decision stands. {% if manual_reasoning_text %}{{ manual_reasoning_text }}. {% endif %}For that reason, we are unable to reinstate your {{ type }}. +{% if is_addon_enabled %}If you submit a new version of this add-on (or have already done so), that version will be reviewed separately on its own merits.{% endif %} {% if has_attachment %} -An attachment was provided. {% if dev_url %}To respond or view the file, visit {{ dev_url }}.{% endif %} +A reviewer has attached a file. {% if dev_url %}You can view it or reply by visiting {{ dev_url }}.{% endif %} {% endif %} More information about Mozilla's add-on policies can be found at {{ policy_document_url }}. diff --git a/src/olympia/abuse/templates/abuse/emails/base.txt b/src/olympia/abuse/templates/abuse/emails/base.txt index df2513a01c2e..8060706029fb 100644 --- a/src/olympia/abuse/templates/abuse/emails/base.txt +++ b/src/olympia/abuse/templates/abuse/emails/base.txt @@ -2,10 +2,10 @@ Hello, {% block content %}{% endblock %} -More information about Mozilla's add-on policies can be found at {{ policy_document_url }}. -{% if appeal_url %}If you believe that you did not violate Mozilla's policies, or that this decision was otherwise made in error, you have the right to appeal this decision within 6 months from the date of this email. See {{ appeal_url }} for details on the appeal process, including how to file an appeal for this specific decision. You may also choose to have this decision reviewed by a third party neutral arbiter, or to seek judicial redress in a court of law.{% endif %} +You can find more information about Mozilla's add-on policies at {{ policy_document_url }}. +{% if appeal_url %}If you believe this content is within Mozilla's policies, or that this decision was made in error, you have the right to appeal within 6 months from the date of this email. See {{ appeal_url }} for details on the appeal process, including how to file an appeal for this specific decision. You may also choose to have this decision reviewed by a third-party neutral arbiter, or to seek judicial redress in a court of law.{% endif %} -Thank you for your attention. +Thank you, and we're happy to help if anything is unclear. [{{ reference_id }}] -- diff --git a/src/olympia/abuse/templates/abuse/emails/includes/policies.txt b/src/olympia/abuse/templates/abuse/emails/includes/policies.txt index 0c73508d2fd3..47fca9765468 100644 --- a/src/olympia/abuse/templates/abuse/emails/includes/policies.txt +++ b/src/olympia/abuse/templates/abuse/emails/includes/policies.txt @@ -5,6 +5,6 @@ {% if manual_reasoning_text %}{{ manual_reasoning_text|safe }}. {% endif %} {% if has_attachment %} -An attachment was provided. {% if dev_url %}To respond or view the file, visit {{ dev_url }}.{% endif %} +A reviewer has attached a file. {% if dev_url %}You can view it or reply by visiting {{ dev_url }}.{% endif %} {% endif %} \ No newline at end of file diff --git a/src/olympia/abuse/templates/abuse/emails/reporter_appeal_approve.txt b/src/olympia/abuse/templates/abuse/emails/reporter_appeal_approve.txt index 54127ccc707d..91e816b1fd90 100644 --- a/src/olympia/abuse/templates/abuse/emails/reporter_appeal_approve.txt +++ b/src/olympia/abuse/templates/abuse/emails/reporter_appeal_approve.txt @@ -1,8 +1,8 @@ {% extends "abuse/emails/base_reporter.txt" %}{% load i18n %}{% block content %}{# L10n: This is an email. Whitespace matters #}{% blocktranslate %} -Thank you for your report about {{ name }} on Mozilla Add-ons, and for providing more information about your concerns. +Thank you for your report about {{ name }} on Mozilla Add-ons, and for taking the time to share more about your concerns. -After reviewing your appeal, we determined that the previous decision, that this content does not violate Mozilla’s policies ({{ policy_document_url }}), was correct. Based on that determination, we have denied your appeal, and will not take any action against the account or the content. +After carefully reviewing your appeal, we found that the earlier decision, that this content is within Mozilla’s policies ({{ policy_document_url }}) was correct. For that reason we won't be taking action against the account or the content. {{ manual_reasoning_text }}. -Thank you for your attention. +Thank you again for helping us keep Mozilla Add-ons safe. {% endblocktranslate %}{% endblock %} diff --git a/src/olympia/abuse/templates/abuse/emails/reporter_appeal_takedown.txt b/src/olympia/abuse/templates/abuse/emails/reporter_appeal_takedown.txt index 276c88634ce1..1aeba5237ae9 100644 --- a/src/olympia/abuse/templates/abuse/emails/reporter_appeal_takedown.txt +++ b/src/olympia/abuse/templates/abuse/emails/reporter_appeal_takedown.txt @@ -1,5 +1,5 @@ {% extends "abuse/emails/base_reporter.txt" %}{% load i18n %}{% block content %}{# L10n: This is an email. Whitespace matters #}{% blocktranslate %} -Thank you for your report about {{ name }} on Mozilla Add-ons, and for providing more information about your concerns. +Thank you for your report about {{ name }} on Mozilla Add-ons, and for taking the time to share more about your concerns. -After reviewing your appeal, we have determined that our prior decision, that this content does not violate Mozilla's policies ({{ policy_document_url }}), was incorrect. Based on that determination, we have removed the content, and notified the user of our action. +After reviewing your appeal, we found that our earlier decision, that this content was within Mozilla's policies ({{ policy_document_url }}) was incorrect. We've now removed the content and notified the user. Thank you for helping us get this right. {% endblocktranslate %}{% endblock %} \ No newline at end of file diff --git a/src/olympia/abuse/templates/abuse/emails/reporter_content_approve.txt b/src/olympia/abuse/templates/abuse/emails/reporter_content_approve.txt index 20d2d29718ec..3814e769bdb6 100644 --- a/src/olympia/abuse/templates/abuse/emails/reporter_content_approve.txt +++ b/src/olympia/abuse/templates/abuse/emails/reporter_content_approve.txt @@ -1,8 +1,8 @@ {% extends "abuse/emails/base_reporter.txt" %}{% load i18n %}{% block content %}{# L10n: This is an email. Whitespace matters #}{% blocktranslate %} -Thank you for your report about {{ name }}, at {{ target_url }}. +Thank you for taking the time to report {{ name }}, at {{ target_url }}. -We reviewed your report and the content in question, and found that it does not violate Mozilla's policies ({{ policy_document_url }}). It will therefore not be subject to any moderation action. +We reviewed your report and the content in question and found that it is within Mozilla's policies ({{ policy_document_url }}), so it won't be subject to any moderation action. We appreciate you flagging it for us. {% endblocktranslate %} -{% if appeal_url %}{% blocktranslate %}You have the right to appeal this decision within 6 months from the date of this email. See {{ appeal_url }} for details on the appeal process, including how to file an appeal for this specific decision.{% endblocktranslate %}{% endif %} +{% if appeal_url %}{% blocktranslate %}If you disagree, you have the right to appeal this decision within 6 months from the date of this email. See {{ appeal_url }} for details on the appeal process, including how to file an appeal for this specific decision.{% endblocktranslate %}{% endif %} {% endblock %} diff --git a/src/olympia/abuse/templates/abuse/emails/reporter_invalid_ignore.txt b/src/olympia/abuse/templates/abuse/emails/reporter_invalid_ignore.txt index ce2dbf0f21cb..d66d4da4e5fb 100644 --- a/src/olympia/abuse/templates/abuse/emails/reporter_invalid_ignore.txt +++ b/src/olympia/abuse/templates/abuse/emails/reporter_invalid_ignore.txt @@ -1,8 +1,8 @@ Hello, -Thank you for your report about {{ name }}, at {{ target_url }}. +Thank you for taking the time to report {{ name }}, at {{ target_url }}. -Based on the information you submitted, we were unable to identify a violation of Mozilla’s policies ({{ policy_document_url }}). The {{ type }} will therefore not be subject to any moderation action. +Based on the information provided, we weren't able to identify a violation of our policies ({{ policy_document_url }}), so the {{ type }} won't be subject to any moderation action. We still appreciate you bringing it to our attention. {% with policy=policies|first %}{{ policy.text }}{% endwith %} [{{ reference_id }}] diff --git a/src/olympia/abuse/templates/abuse/emails/reporter_moderated_ignore.txt b/src/olympia/abuse/templates/abuse/emails/reporter_moderated_ignore.txt index 81523caeef80..c629bef7981d 100644 --- a/src/olympia/abuse/templates/abuse/emails/reporter_moderated_ignore.txt +++ b/src/olympia/abuse/templates/abuse/emails/reporter_moderated_ignore.txt @@ -1,10 +1,10 @@ Hello, -Thank you for your report about {{ name }}, at {{ target_url }}. +Thank you for taking the time to report {{ name }}, at {{ target_url }}. -This content was already assessed in a prior review, and any violations that were found have either been addressed, or are currently being resolved. Because our moderation team has already reviewed this content, your report will not be processed. +Our moderation team had already reviewed this content in an earlier assessment, and any issues found have either been addressed or are being resolved. Because it's already been handled, we won't process this report separately but we appreciate you flagging it. -Thank you for your attention. +Thank you. [{{ reference_id }}] -- diff --git a/src/olympia/abuse/templates/abuse/emails/reporter_takedown_addon.txt b/src/olympia/abuse/templates/abuse/emails/reporter_takedown_addon.txt index 1b19275f81c7..3c4d3728635c 100644 --- a/src/olympia/abuse/templates/abuse/emails/reporter_takedown_addon.txt +++ b/src/olympia/abuse/templates/abuse/emails/reporter_takedown_addon.txt @@ -1,5 +1,5 @@ {% extends "abuse/emails/base_reporter.txt" %}{% load i18n %}{% block content %}{# L10n: This is an email. Whitespace matters #}{% blocktranslate %} -Thank you for your report about the following add-on on Mozilla Add-ons: {{ name }}. +Thank you for taking the time to report the following add-on on Mozilla Add-ons: {{ name }}. -We reviewed your report and the content in question, and found that it violates Mozilla's policies ({{ policy_document_url }}), and have therefore removed the content. +We reviewed your report and the content in question and found that it does not meet Mozilla's policies ({{ policy_document_url }}). We've removed the content as a result. We appreciate you helping keep Mozilla Add-ons safe. {% endblocktranslate %}{% endblock %} \ No newline at end of file diff --git a/src/olympia/abuse/templates/abuse/emails/reporter_takedown_addon_delayed.txt b/src/olympia/abuse/templates/abuse/emails/reporter_takedown_addon_delayed.txt index a1dde5ac588c..3769bfb63211 100644 --- a/src/olympia/abuse/templates/abuse/emails/reporter_takedown_addon_delayed.txt +++ b/src/olympia/abuse/templates/abuse/emails/reporter_takedown_addon_delayed.txt @@ -1,5 +1,5 @@ {% extends "abuse/emails/base_reporter.txt" %}{% load i18n %}{% block content %}{# L10n: This is an email. Whitespace matters #}{% blocktranslate %} -Thank you for your report about the following add-on on Mozilla Add-ons: {{ name }}. +Thank you for taking the time to report the following add-on on Mozilla Add-ons: {{ name }}. -We reviewed your report and the content in question, and found that it violates Mozilla's policies ({{ policy_document_url }}), and have therefore requested the developer make changes. If they do not update their content to correct the violation, we will remove it. +We reviewed your report and the content in question and found that it does not meet Mozilla's policies ({{ policy_document_url }}). We've asked the developer to make changes, and if they don't resolve the issue, we'll remove the content. Thank you for helping keep Mozilla Add-ons safe. {% endblocktranslate %}{% endblock %} \ No newline at end of file diff --git a/src/olympia/activity/templates/activity/emails/bounce.txt b/src/olympia/activity/templates/activity/emails/bounce.txt index 1fc81a7759f6..8cc140a6df08 100644 --- a/src/olympia/activity/templates/activity/emails/bounce.txt +++ b/src/olympia/activity/templates/activity/emails/bounce.txt @@ -1,9 +1,11 @@ Hello, -An email was received, apparently from you. Unfortunately we couldn't process it because of: +Thanks for getting in touch. We received an email that looks like it came from you, but unfortunately we weren't able to process it: {{ reason }} -Please visit {{ SITE_URL }} to leave a reply instead. +You can still leave your reply directly on our site. Just visit {{ SITE_URL }} and we'll make sure it reaches the right place. + +If you continue to run into trouble, please don't hesitate to reach out. -- Mozilla Add-ons {{ SITE_URL }} diff --git a/src/olympia/activity/templates/activity/emails/developer.txt b/src/olympia/activity/templates/activity/emails/developer.txt index 149afd1f3e7a..b5b696c31a8c 100644 --- a/src/olympia/activity/templates/activity/emails/developer.txt +++ b/src/olympia/activity/templates/activity/emails/developer.txt @@ -1,12 +1,12 @@ Hello, -A reply has been added to the review of version {{ number }} of add-on {{ name }}. +There's a new reply in the review conversation for version {{ number }} of your add-on, {{ name }}. {{ author }} wrote: {{ comments|safe }} -If you want to respond please reply to this email or visit {{ url }} +We'd love to hear back from you, simply reply to this email or visit {{ url }} to continue the conversation. You are receiving this email because {{ email_reason }}. -- diff --git a/src/olympia/activity/templates/activity/emails/from_reviewer.txt b/src/olympia/activity/templates/activity/emails/from_reviewer.txt index 2f4d566b3821..aee836631c46 100644 --- a/src/olympia/activity/templates/activity/emails/from_reviewer.txt +++ b/src/olympia/activity/templates/activity/emails/from_reviewer.txt @@ -1,18 +1,18 @@ Hello, -A reviewer at addons.mozilla.org is contacting you regarding version {{ number }} of the add-on {{ name }}. You are receiving this email because {{ email_reason }}. +Thanks for your work on {{ name }}. A reviewer from the addons.mozilla.org team has taken a look at version {{ number }} and would like to share some feedback with you. You're receiving this email because {{ email_reason }}. -{{ author }} wrote: +Here's what {{ author }} shared: {{ comments|safe }} {% if has_attachment %} -An attachment was provided. To respond or view the file, visit {{ url }}. +They've also attached a file. You can review it and reply by visiting {{ url }}. {% else %} -To respond, please reply to this email or visit {{ url }}. +When you're ready, simply reply to this email or visit {{ url }} to respond. {% endif %} -Thank you for your attention. +We're grateful for the time and care you put into your add-on, and we're here to help if anything is unclear. -- Mozilla Add-ons diff --git a/src/olympia/devhub/templates/devhub/emails/api_key_confirmation.ltxt b/src/olympia/devhub/templates/devhub/emails/api_key_confirmation.ltxt index b41ffe64587c..c16e0d34dd6a 100644 --- a/src/olympia/devhub/templates/devhub/emails/api_key_confirmation.ltxt +++ b/src/olympia/devhub/templates/devhub/emails/api_key_confirmation.ltxt @@ -1,10 +1,11 @@ {% load i18n %}{# L10n: This is an email. Whitespace matters #}{% blocktrans %}Hello, -You're receiving this message because you requested new developer API keys for -{{ domain }}. To finish this process, please click on the link below: +Thanks for building for Firefox! You're receiving this message because you requested new developer API keys for {{ domain }}. To finish setting them up, just click the link below: {{ api_key_confirmation_link }} -Regards, +If you didn't request these keys, you can safely ignore this email and no keys will be created. + +We're here if you need anything, The Mozilla Add-ons Team{% endblocktrans %} diff --git a/src/olympia/devhub/templates/devhub/emails/new-key-email.ltxt b/src/olympia/devhub/templates/devhub/emails/new-key-email.ltxt index d5a09f16d19c..deb346e4cdea 100644 --- a/src/olympia/devhub/templates/devhub/emails/new-key-email.ltxt +++ b/src/olympia/devhub/templates/devhub/emails/new-key-email.ltxt @@ -1,8 +1,13 @@ -{% load i18n %}{# L10n: This is an email. Whitespace matters #}{% blocktrans %}The following API Key was added to your account: +{% load i18n %}{# L10n: This is an email. Whitespace matters #}{% blocktrans %}Hello, + +A new API key was just added to your account: {{ key }} -If you believe this key was created in error, you can remove the key and -disable access at the following location: +If this was you, there's nothing more to do. If you don't recognize this key, please remove it and disable access right away here: + +{{ url }} + +Thanks for building for Firefox, -{{ url }}{% endblocktrans %} +The Mozilla Add-ons Team{% endblocktrans %} diff --git a/src/olympia/devhub/templates/devhub/emails/revoked-key-email.ltxt b/src/olympia/devhub/templates/devhub/emails/revoked-key-email.ltxt index 78ec82e44cb8..050ad872fbaf 100644 --- a/src/olympia/devhub/templates/devhub/emails/revoked-key-email.ltxt +++ b/src/olympia/devhub/templates/devhub/emails/revoked-key-email.ltxt @@ -1,8 +1,13 @@ -{% load i18n %}{# L10n: This is an email. Whitespace matters #}{% blocktrans %}The API Key was revoked from your account: +{% load i18n %}{# L10n: This is an email. Whitespace matters #}{% blocktrans %}Hello, + +The following API key was revoked from your account and can no longer be used: {{ key }} -If you believe this key was revoked in error, you can create a new one -at the following location: +If you expected this, no action is needed. If this wasn't you or you still need API access, you can create a new key here: + +{{ url }} + +We're here to help if anything looks off, -{{ url }}{% endblocktrans %} +The Mozilla Add-ons Team{% endblocktrans %} diff --git a/src/olympia/devhub/templates/devhub/emails/submission_api_key_revocation.txt b/src/olympia/devhub/templates/devhub/emails/submission_api_key_revocation.txt index ad736006298e..4c5298f63ef2 100644 --- a/src/olympia/devhub/templates/devhub/emails/submission_api_key_revocation.txt +++ b/src/olympia/devhub/templates/devhub/emails/submission_api_key_revocation.txt @@ -1,9 +1,11 @@ {% load i18n %}{# L10n: This is an email. Whitespace matters #}{% blocktrans %}Dear add-on developer, -We noticed that your secret AMO API credentials were included in an add-on submitted to addons.mozilla.org. In order to protect your account and your add-on(s), we revoked the leaked credentials. -You can generate new API credentials at {{ api_keys_url }} +We wanted to let you know right away: we noticed that your secret AMO API credentials were included in an add-on submitted to addons.mozilla.org. To keep your account and your add-on(s) safe, we've gone ahead and revoked the affected credentials. There's nothing wrong on your end — this just happens sometimes, and we're here to help you get back on track. +You can generate fresh API credentials any time at {{ api_keys_url }} -Please make sure you never share your credentials with anyone. Never include them in a public repository, add-on or any other public place. We encourage you to review your code repositories and your extensions to remove any references to your AMO credentials. +To help keep your credentials secure going forward, it's best to keep them private and avoid including them in any public repository, add-on, or other public place. Whenever you have a moment, it's worth reviewing your code repositories and extensions to remove any references to your AMO credentials. + +If you have any questions, we're happy to help. Thank you, The Mozilla Add-ons team{% endblocktrans %} diff --git a/src/olympia/devhub/templates/devhub/emails/verify-email-completed.ltxt b/src/olympia/devhub/templates/devhub/emails/verify-email-completed.ltxt index 7712f761c17d..b1902bde653c 100644 --- a/src/olympia/devhub/templates/devhub/emails/verify-email-completed.ltxt +++ b/src/olympia/devhub/templates/devhub/emails/verify-email-completed.ltxt @@ -1,7 +1,7 @@ {% load i18n %}{# L10n: This is an email. Whitespace matters #}{% blocktrans %}Hello, -Your email was successfully verified. +Your email address has been verified, you're all set. Thanks for building for Firefox! -Regards, +We're here if you ever need anything, The Mozilla Add-ons Team{% endblocktrans %} diff --git a/src/olympia/devhub/templates/devhub/emails/verify-email-requested.ltxt b/src/olympia/devhub/templates/devhub/emails/verify-email-requested.ltxt index a40fe9c44832..72a3e294c955 100644 --- a/src/olympia/devhub/templates/devhub/emails/verify-email-requested.ltxt +++ b/src/olympia/devhub/templates/devhub/emails/verify-email-requested.ltxt @@ -1,10 +1,11 @@ {% load i18n %}{# L10n: This is an email. Whitespace matters #}{% blocktrans %}Hello, -You're receiving this message because you requested to verify your email. -To finish this process, please click on the link below: +Thanks for building for Firefox! You're receiving this message because you asked to verify your email address. To finish up, just click the link below: {{ confirmation_link }} -Regards, +If you didn't request this, you can safely ignore this email. + +We're here if you need anything, The Mozilla Add-ons Team{% endblocktrans %} diff --git a/src/olympia/ratings/templates/ratings/emails/new_rating.txt b/src/olympia/ratings/templates/ratings/emails/new_rating.txt index 1d99efb09e16..fb9a08109aa0 100644 --- a/src/olympia/ratings/templates/ratings/emails/new_rating.txt +++ b/src/olympia/ratings/templates/ratings/emails/new_rating.txt @@ -1,9 +1,11 @@ {% block content %} -A user has rated your add-on, {{ name }}. +Good news, someone just rated your add-on, {{ name }}! Rating: {{ rating.rating }} out of 5 stars. -You can view the rating here: +You can read the full rating here: {{ rating_url }} + +Thanks for everything you build for the add-ons community. {% endblock %} diff --git a/src/olympia/ratings/templates/ratings/emails/reply_review.ltxt b/src/olympia/ratings/templates/ratings/emails/reply_review.ltxt index 92b633e91781..8247a2d47a89 100644 --- a/src/olympia/ratings/templates/ratings/emails/reply_review.ltxt +++ b/src/olympia/ratings/templates/ratings/emails/reply_review.ltxt @@ -1,10 +1,12 @@ {% block content %} -A developer has replied to your review of add-on {{ name }}. +Good news, a developer has replied to your review of {{ name }}. -Reply: +Their reply: {% if reply_title %}{{ reply_title }} {% endif %}{{ reply }} -You can read the review below: +You can read the full review here: {{ rating_url }} + +Thanks for sharing your feedback and helping make Firefox add-ons better! {% endblock %} diff --git a/src/olympia/users/templates/users/emails/author_added.ltxt b/src/olympia/users/templates/users/emails/author_added.ltxt index bb1d71ef0e6e..d3129e9058e2 100644 --- a/src/olympia/users/templates/users/emails/author_added.ltxt +++ b/src/olympia/users/templates/users/emails/author_added.ltxt @@ -1,3 +1,10 @@ -{% load i18n %}{# L10n: This is an email. Whitespace matters! #}{% blocktrans with addon_url=addon.get_absolute_url addon_name=addon.name author_url=author.user.get_absolute_url author_name=author.user.name author_role=author.get_role_display %}The following author has been added to your add-on {{ addon_name }} ( {{ addon_url }} ): +{% load i18n %}{# L10n: This is an email. Whitespace matters! #}{% blocktrans with addon_url=addon.get_absolute_url addon_name=addon.name author_url=author.user.get_absolute_url author_name=author.user.name author_role=author.get_role_display %}Hello, -{{ author_name }} ( {{ author_url }} ): {{ author_role }}{% endblocktrans %} +A new author has been added to your add-on {{ addon_name }} ( {{ addon_url }} ): + +{{ author_name }} ( {{ author_url }} ): {{ author_role }} + +If you weren't expecting this change, please review your add-on's author settings on the page above. + +Thanks for building for Firefox, +The Mozilla Add-ons Team{% endblocktrans %} diff --git a/src/olympia/users/templates/users/emails/author_added_confirmation.ltxt b/src/olympia/users/templates/users/emails/author_added_confirmation.ltxt index ead8ba6acb30..a5a067be45d2 100644 --- a/src/olympia/users/templates/users/emails/author_added_confirmation.ltxt +++ b/src/olympia/users/templates/users/emails/author_added_confirmation.ltxt @@ -1,10 +1,12 @@ -{% load i18n %}{# L10n: This is an email. Whitespace matters! #}{% blocktrans with addon_name=addon.name author_name=author.user.name domain=DOMAIN %}Greetings {{ author_name }}, +{% load i18n %}{# L10n: This is an email. Whitespace matters! #}{% blocktrans with addon_name=addon.name author_name=author.user.name domain=DOMAIN %}Hello {{ author_name }}, -You have been invited to become an author of {{ addon_name }} on {{ domain }}. Accepting the invitation will give you access to edit the add-on, and may show your name in the authors list on the website. +Great news, you've been invited to become an author of {{ addon_name }} on {{ domain }}. Accepting will let you help edit the add-on, and your name may appear in the authors list on the website. -Click on the link below to respond if you want to be added as an author for {{ addon_name }}. +If you'd like to join, just click the link below to accept the invitation: {{ author_confirmation_link }} -Kind regards, +If you weren't expecting this invitation, you can safely ignore this email. + +We're glad to have you building for Firefox, The Mozilla Add-ons Team{% endblocktrans %} diff --git a/src/olympia/users/templates/users/emails/user_deleted.ltxt b/src/olympia/users/templates/users/emails/user_deleted.ltxt index c373a30a9315..9434bb784854 100644 --- a/src/olympia/users/templates/users/emails/user_deleted.ltxt +++ b/src/olympia/users/templates/users/emails/user_deleted.ltxt @@ -1,7 +1,9 @@ {% load i18n %}{# L10n: This is an email. Whitespace matters! #}{% blocktrans %}Hello, -You’re receiving this message because your user account {{ name }} on {{ site_url }} has been deleted. This could have been done automatically if you recently deleted your Mozilla account. +You’re receiving this message to let you know that your user account {{ name }} on {{ site_url }} has been deleted. If you recently deleted your Mozilla account, this may have happened automatically as part of that process. -Regards, +Thank you for having been part of the Firefox add-ons community. If you believe this was a mistake or have any questions, please get in touch with us. -Mozilla Add-ons Team{% endblocktrans %} +Warm regards, + +The Mozilla Add-ons Team{% endblocktrans %}