[tor-commits] [donate/master] Mozilla matching removal starting Jan 1 2019.

peterh at torproject.org peterh at torproject.org
Mon Dec 31 18:59:48 UTC 2018


commit 04b7fee635538abfcb839650740ab27ea90cfc22
Author: Stephanie Kirtiadi <skirtiadi at giantrabbit.com>
Date:   Mon Dec 24 13:41:16 2018 -0600

    Mozilla matching removal starting Jan 1 2019.
    
    Campaign is over in 2018. Stephanie of Tor pointed out that Mozilla
    matching indication should be removed from the site.
    "now" can be overriden now in /private/now_override.php for time-triggered
    switch testing instead of the code detecting the environment it
    lives in. README.md is updated to reflect this.
    require instead of require_once for "now" override in EnvironmentInfo class.
    So that it works multiple times within the same session.
    Make sure not in production for the "now" override.
    Generate updated .pot file.
    
    Issue #38098
---
 README.md                    |   6 +
 src/DonateController.php     |  33 +++--
 src/EnvironmentInfo.php      |  14 ++
 templates/h.twig             |  82 ++++++-----
 templates/index.twig         |  82 ++++++-----
 templates/thank-you.twig     |  15 +-
 translation/out/messages.pot | 320 ++++++++++++++++++++++---------------------
 7 files changed, 310 insertions(+), 242 deletions(-)

diff --git a/README.md b/README.md
index 211c2580..7548d436 100644
--- a/README.md
+++ b/README.md
@@ -18,6 +18,12 @@ It should have this in it:
 
 $hepdataSettings['licenseKey'] = 'Input-LicenseKey-here(Sylvanus)';
 
+For time-triggered switch testing (e.g: promo that starts and ends at a certain time, etc) in an environment, simulate "now" override by creating a file called `now_override.php` inside `/private` and paste the following inside that file and edit accordingly for your test. Reminder that UTC = EST + 5 hours, so the example below is for 12AM on Dec 30, 2018. This file should never exist in the production site.
+
+<?php
+
+$now_override = \DateTime::createFromFormat('Y-m-j-H:i:s', '2018-12-30-05:00:00', new \DateTimeZone('UTC'));
+
 You also need to have redis running locally or you'll get an error when you try and make a donation. If you don't need to make a donation, then you can skip Redis.
 
 For changes to javascript, you need node installed and you need to run 'npm install' before you can run any gulp commands.
diff --git a/src/DonateController.php b/src/DonateController.php
index 5801e2ba..9a13d953 100644
--- a/src/DonateController.php
+++ b/src/DonateController.php
@@ -14,16 +14,10 @@ class DonateController extends BaseController {
     $uri = $request->getUri();
     $baseUrl = $uri->getBaseUrl();
     $path = $uri->getPath();
+    $now = $this->environment_info->now();
 
     $templateToRender = 'index.twig';
-    if ($path == '/H' && !$this->environment_info->is_prod()) {
-      $templateToRender = 'h.twig';
-    }
-
-    $now = new \DateTime('now', new \DateTimeZone('UTC'));
-    $dec2018CampaignStartDate = \DateTime::createFromFormat('Y-m-j-H:i:s', '2018-12-26-05:00:00', new \DateTimeZone('UTC'));
-    $dec2018CampaignEndDate = \DateTime::createFromFormat('Y-m-j-H:i:s', '2018-12-30-04:59:59', new \DateTimeZone('UTC'));
-    if ($now < $dec2018CampaignEndDate && $now > $dec2018CampaignStartDate) {
+    if ($this->is_promo($now)) {
       $templateToRender = 'h.twig';
     }
 
@@ -32,6 +26,7 @@ class DonateController extends BaseController {
     $this->vars = array(
       'baseUrl' => $baseUrl,
       'environmentName' => $this->environment_info->name(),
+      'isMatchingDonation' => $this->is_matching_donation($now),
       'paypalMerchantId' => $config['acct1.MerchantID'],
       'stripePublishableKey' => $stripeConfig->publishableKey,
       'langcode' => $request->getAttribute('language'),
@@ -58,11 +53,31 @@ class DonateController extends BaseController {
   public function thank_you($request, $response, $args) {
     $uri = $request->getUri();
     $baseUrl = $uri->getBaseUrl();
+    $now = $this->environment_info->now();
     $this->vars = array(
       'baseUrl' => $baseUrl,
       'encodedBaseUrl' => urlencode($baseUrl),
-      'langcode' => $request->getAttribute('language')
+      'langcode' => $request->getAttribute('language'),
+      'isMatchingDonation' => $this->is_matching_donation($now),
     );
     return $this->renderer->render($response, 'thank-you.twig', $this->vars);
   }
+
+  function is_matching_donation($now) {
+    $donateMatchingEndDate = \DateTime::createFromFormat('Y-m-j-H:i:s', '2019-01-01-04:59:59', new \DateTimeZone('UTC'));
+
+    if ($now > $donateMatchingEndDate) {
+      return FALSE;
+    }
+    return TRUE;
+  }
+
+  function is_promo($now) {
+    $dec2018CampaignStartDate = \DateTime::createFromFormat('Y-m-j-H:i:s', '2018-12-26-05:00:00', new \DateTimeZone('UTC'));
+    $dec2018CampaignEndDate = \DateTime::createFromFormat('Y-m-j-H:i:s', '2018-12-30-04:59:59', new \DateTimeZone('UTC'));
+    if ($now < $dec2018CampaignEndDate && $now > $dec2018CampaignStartDate) {
+      return TRUE;
+    }
+    return FALSE;
+  }
 }
diff --git a/src/EnvironmentInfo.php b/src/EnvironmentInfo.php
index edb94f75..a0a73bce 100644
--- a/src/EnvironmentInfo.php
+++ b/src/EnvironmentInfo.php
@@ -26,4 +26,18 @@ class EnvironmentInfo {
     }
     return FALSE;
   }
+
+  function now() {
+    if (file_exists(__DIR__ . "/../private/now_override.php") && !$this->is_prod()) {
+      require(__DIR__ . "/../private/now_override.php");
+      $now = $now_override;
+      if (!is_a($now, 'DateTime')) {
+        throw new \Exception('$now_override in /private/now_override.php is not a properly created DateTime Object.');
+      }
+    }
+    else {
+      $now = new \DateTime('now', new \DateTimeZone('UTC'));
+    }
+    return $now;
+  }
 }
diff --git a/templates/h.twig b/templates/h.twig
index 8fdeb1a2..02f3da8b 100644
--- a/templates/h.twig
+++ b/templates/h.twig
@@ -22,7 +22,11 @@
   {% embed "header_with_image.twig" %}
     {% block header_text %}
       <h1>{% trans %}Tor: Strength in Numbers{% endtrans %}</h1>
-      <h4>{% trans %}Stand up for the universal human rights to privacy and freedom and help keep Tor robust and secure.{% endtrans %} <b>{% trans %}Mozilla will match your gift and double your impact.{% endtrans %}</b></h4>
+      {% if isMatchingDonation %}
+        <h4>{% trans %}Stand up for the universal human rights to privacy and freedom and help keep Tor robust and secure.{% endtrans %} <b>{% trans %}Mozilla will match your gift and double your impact.{% endtrans %}</b></h4>
+      {% else %}
+        <h4>{% trans %}Stand up for the universal human rights to privacy and freedom and help keep Tor robust and secure.{% endtrans %}</h4>
+      {% endif %}
     {% endblock %}
   {% endembed %}
 {% endblock %}
@@ -35,47 +39,49 @@
       {% trans %}If you wish to donate without enabling Javascript, please take a look at our <a href="https://www.torproject.org/donate/donate-options.html.en">other donations options page</a>.{% endtrans %}
     </div>
   </noscript>
-  <div class="campaign-totals-area">
-    <div class="supporters">
-      <div class="background-grey characters">
-        <div class="character"><div class="cover"></div>0</div>
-        <div class="character"><div class="cover"></div>1</div>
-        <div class="character"><div class="cover"></div>0</div>
-        <div class="character"><div class="cover"></div>1</div>
-        <div class="character"><div class="cover"></div>1</div>
-        <div class="character"><div class="cover"></div>0</div>
-      </div>
-      <div class="label">
-        {% trans %}Number of Donations{% endtrans %}
-      </div>
-    </div>
-    <div class="total-donated">
-      <div class="background-grey characters">
-        <div class="character"><div class="cover"></div>0</div>
-        <div class="character"><div class="cover"></div>0</div>
-        <div class="character"><div class="cover"></div>1</div>
-        <div class="character"><div class="cover"></div>1</div>
-        <div class="character"><div class="cover"></div>0</div>
-        <div class="character"><div class="cover"></div>0</div>
-      </div>
-      <div class="label">
-        {% trans %}Total Donated{% endtrans %}
+  {% if isMatchingDonation %}
+    <div class="campaign-totals-area">
+      <div class="supporters">
+        <div class="background-grey characters">
+          <div class="character"><div class="cover"></div>0</div>
+          <div class="character"><div class="cover"></div>1</div>
+          <div class="character"><div class="cover"></div>0</div>
+          <div class="character"><div class="cover"></div>1</div>
+          <div class="character"><div class="cover"></div>1</div>
+          <div class="character"><div class="cover"></div>0</div>
+        </div>
+        <div class="label">
+          {% trans %}Number of Donations{% endtrans %}
+        </div>
       </div>
-    </div>
-    <div class="total-matched">
-      <div class="background-grey characters">
-        <div class="character"><div class="cover"></div>0</div>
-        <div class="character"><div class="cover"></div>0</div>
-        <div class="character"><div class="cover"></div>1</div>
-        <div class="character"><div class="cover"></div>1</div>
-        <div class="character"><div class="cover"></div>0</div>
-        <div class="character"><div class="cover"></div>0</div>
+      <div class="total-donated">
+        <div class="background-grey characters">
+          <div class="character"><div class="cover"></div>0</div>
+          <div class="character"><div class="cover"></div>0</div>
+          <div class="character"><div class="cover"></div>1</div>
+          <div class="character"><div class="cover"></div>1</div>
+          <div class="character"><div class="cover"></div>0</div>
+          <div class="character"><div class="cover"></div>0</div>
+        </div>
+        <div class="label">
+          {% trans %}Total Donated{% endtrans %}
+        </div>
       </div>
-      <div class="label">
-        {% trans %}Total Raised with Mozilla's Match{% endtrans %}
+      <div class="total-matched">
+        <div class="background-grey characters">
+          <div class="character"><div class="cover"></div>0</div>
+          <div class="character"><div class="cover"></div>0</div>
+          <div class="character"><div class="cover"></div>1</div>
+          <div class="character"><div class="cover"></div>1</div>
+          <div class="character"><div class="cover"></div>0</div>
+          <div class="character"><div class="cover"></div>0</div>
+        </div>
+        <div class="label">
+          {% trans %}Total Raised with Mozilla's Match{% endtrans %}
+        </div>
       </div>
     </div>
-  </div>
+  {% endif %}
   <div class="donate-options">
     <a class="button once-button selected" data-recurring="once" href="#" id="donate-once-button">{% trans %}donate{% endtrans %} <span class="bold">{% trans %}once{% endtrans %}</span></a>
     <a class="button monthly-button" href="#" id="donate-monthly-button">{% trans %}donate{% endtrans %} <span class="bold" data-recurring="monthly">{% trans %}monthly{% endtrans %}</span>
diff --git a/templates/index.twig b/templates/index.twig
index 0a03c1d7..d25dd3d1 100644
--- a/templates/index.twig
+++ b/templates/index.twig
@@ -22,7 +22,11 @@
   {% embed "header_with_image.twig" %}
     {% block header_text %}
       <h1>{% trans %}Tor: Strength in Numbers{% endtrans %}</h1>
-      <h4>{% trans %}Stand up for the universal human rights to privacy and freedom and help keep Tor robust and secure.{% endtrans %} <b>{% trans %}Mozilla will match your gift and double your impact.{% endtrans %}</b></h4>
+      {% if isMatchingDonation %}
+        <h4>{% trans %}Stand up for the universal human rights to privacy and freedom and help keep Tor robust and secure.{% endtrans %} <b>{% trans %}Mozilla will match your gift and double your impact.{% endtrans %}</b></h4>
+      {% else %}
+        <h4>{% trans %}Stand up for the universal human rights to privacy and freedom and help keep Tor robust and secure.{% endtrans %}</h4>
+      {% endif %}
     {% endblock %}
   {% endembed %}
 {% endblock %}
@@ -35,47 +39,49 @@
       {% trans %}If you wish to donate without enabling Javascript, please take a look at our <a href="https://www.torproject.org/donate/donate-options.html.en">other donations options page</a>.{% endtrans %}
     </div>
   </noscript>
-  <div class="campaign-totals-area">
-    <div class="supporters">
-      <div class="background-grey characters">
-        <div class="character"><div class="cover"></div>0</div>
-        <div class="character"><div class="cover"></div>1</div>
-        <div class="character"><div class="cover"></div>0</div>
-        <div class="character"><div class="cover"></div>1</div>
-        <div class="character"><div class="cover"></div>1</div>
-        <div class="character"><div class="cover"></div>0</div>
-      </div>
-      <div class="label">
-        {% trans %}Number of Donations{% endtrans %}
-      </div>
-    </div>
-    <div class="total-donated">
-      <div class="background-grey characters">
-        <div class="character"><div class="cover"></div>0</div>
-        <div class="character"><div class="cover"></div>0</div>
-        <div class="character"><div class="cover"></div>1</div>
-        <div class="character"><div class="cover"></div>1</div>
-        <div class="character"><div class="cover"></div>0</div>
-        <div class="character"><div class="cover"></div>0</div>
-      </div>
-      <div class="label">
-        {% trans %}Total Donated{% endtrans %}
+  {% if isMatchingDonation %}
+    <div class="campaign-totals-area">
+      <div class="supporters">
+        <div class="background-grey characters">
+          <div class="character"><div class="cover"></div>0</div>
+          <div class="character"><div class="cover"></div>1</div>
+          <div class="character"><div class="cover"></div>0</div>
+          <div class="character"><div class="cover"></div>1</div>
+          <div class="character"><div class="cover"></div>1</div>
+          <div class="character"><div class="cover"></div>0</div>
+        </div>
+        <div class="label">
+          {% trans %}Number of Donations{% endtrans %}
+        </div>
       </div>
-    </div>
-    <div class="total-matched">
-      <div class="background-grey characters">
-        <div class="character"><div class="cover"></div>0</div>
-        <div class="character"><div class="cover"></div>0</div>
-        <div class="character"><div class="cover"></div>1</div>
-        <div class="character"><div class="cover"></div>1</div>
-        <div class="character"><div class="cover"></div>0</div>
-        <div class="character"><div class="cover"></div>0</div>
+      <div class="total-donated">
+        <div class="background-grey characters">
+          <div class="character"><div class="cover"></div>0</div>
+          <div class="character"><div class="cover"></div>0</div>
+          <div class="character"><div class="cover"></div>1</div>
+          <div class="character"><div class="cover"></div>1</div>
+          <div class="character"><div class="cover"></div>0</div>
+          <div class="character"><div class="cover"></div>0</div>
+        </div>
+        <div class="label">
+          {% trans %}Total Donated{% endtrans %}
+        </div>
       </div>
-      <div class="label">
-        {% trans %}Total Raised with Mozilla's Match{% endtrans %}
+      <div class="total-matched">
+        <div class="background-grey characters">
+          <div class="character"><div class="cover"></div>0</div>
+          <div class="character"><div class="cover"></div>0</div>
+          <div class="character"><div class="cover"></div>1</div>
+          <div class="character"><div class="cover"></div>1</div>
+          <div class="character"><div class="cover"></div>0</div>
+          <div class="character"><div class="cover"></div>0</div>
+        </div>
+        <div class="label">
+          {% trans %}Total Raised with Mozilla's Match{% endtrans %}
+        </div>
       </div>
     </div>
-  </div>
+  {% endif %}
   <div class="donate-options">
     <a class="button once-button selected" data-recurring="once" href="#" id="donate-once-button">{% trans %}donate{% endtrans %} <span class="bold">{% trans %}once{% endtrans %}</span></a>
     <a class="button monthly-button" href="#" id="donate-monthly-button">{% trans %}donate{% endtrans %} <span class="bold" data-recurring="monthly">{% trans %}monthly{% endtrans %}</span>
diff --git a/templates/thank-you.twig b/templates/thank-you.twig
index 707350c2..97af6a82 100644
--- a/templates/thank-you.twig
+++ b/templates/thank-you.twig
@@ -7,14 +7,23 @@
 {% block header %}
   <div class="thank-you">
     <h1>{% trans %}Thank you!{% endtrans %}</h1>
-    <p>{% trans %}Thank you for supporting Tor's Strength in Numbers campaign.{% endtrans %} {% trans %}You should receive an email receipt shortly.{% endtrans %} {% trans %}With your support and the generous matching funds from Mozilla, we'll be able to tackle ambitious projects, such as developing a more secure, privacy-enhancing browser for mobile devices and making it easier for third-party developers to integrate Tor into their applications.{% endtrans %}</p>
+    {% if isMatchingDonation %}
+      <p>{% trans %}Thank you for supporting Tor's Strength in Numbers campaign.{% endtrans %} {% trans %}You should receive an email receipt shortly.{% endtrans %} {% trans %}With your support and the generous matching funds from Mozilla, we'll be able to tackle ambitious projects, such as developing a more secure, privacy-enhancing browser for mobile devices and making it easier for third-party developers to integrate Tor into their applications.{% endtrans %}</p>
+    {% else %}
+      <p>{% trans %}Thank you for supporting Tor's Strength in Numbers campaign.{% endtrans %} {% trans %}You should receive an email receipt shortly.{% endtrans %} {% trans %}With your support, we'll be able to tackle ambitious projects, such as developing a more secure, privacy-enhancing browser for mobile devices and making it easier for third-party developers to integrate Tor into their applications.{% endtrans %}</p>
+    {% endif %}
     <p>{% trans %}It's an incredible time to stand up for world-leading security and privacy software.{% endtrans %} {% trans %}Tell family, friends, and colleagues that you're supporting privacy and security with Tor!{% endtrans %}</p>
     <h5>{% trans %}SHARE THE TOR PROJECT{% endtrans %}</h5>
     <div class="share-icons">
       <a class="facebook-icon w-inline-block" href="http://www.facebook.com/sharer.php?u={{ baseUrl }}"><img class="share-icons" src="/images/FB-f-Logo__blue_114.png">
       </a>
-      <a class="twitter-icon w-inline-block" href="https://twitter.com/intent/tweet?text=I%27m+taking+a+stand+against+tracking%2C+surveillance%2C+and+censorship+online.+Join+me+by+donating+to+%40torproject%2C+and+%40Mozilla+will+match+your+donation%3A+https%3A%2F%2Ftorproject.org%2Fdonate%2Fdonate-sin-twitter-en"><img class="share-icons" src="/images/Twitter_Logo_White_On_Blue.png">
-      </a>
+      {% if isMatchingDonation %}
+        <a class="twitter-icon w-inline-block" href="https://twitter.com/intent/tweet?text=I%27m+taking+a+stand+against+tracking%2C+surveillance%2C+and+censorship+online.+Join+me+by+donating+to+%40torproject%2C+and+%40Mozilla+will+match+your+donation%3A+https%3A%2F%2Ftorproject.org%2Fdonate%2Fdonate-sin-twitter-en"><img class="share-icons" src="/images/Twitter_Logo_White_On_Blue.png">
+        </a>
+      {% else %}
+        <a class="twitter-icon w-inline-block" href="https://twitter.com/intent/tweet?text=I%27m+taking+a+stand+against+tracking%2C+surveillance%2C+and+censorship+online.+Join+me+by+donating+to+%40torproject%3A+https%3A%2F%2Ftorproject.org%2Fdonate%2Fdonate-sin-twitter-en"><img class="share-icons" src="/images/Twitter_Logo_White_On_Blue.png">
+        </a>
+      {% endif %}
     </div>
   </div>
 {% endblock %}
diff --git a/translation/out/messages.pot b/translation/out/messages.pot
index c5acc1c1..5afbda47 100644
--- a/translation/out/messages.pot
+++ b/translation/out/messages.pot
@@ -128,10 +128,10 @@ msgstr ""
 
 #: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:48
 #: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:71
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:640
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:647
 #: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:48
 #: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:71
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:634
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:641
 msgid "Tor: Strength in Numbers"
 msgstr ""
 
@@ -174,354 +174,356 @@ msgid ""
 "donations options page</a>."
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:123
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:123
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:127
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:127
 msgid "Number of Donations"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:139
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:139
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:143
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:143
 msgid "Total Donated"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:155
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:155
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:159
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:159
 msgid "Total Raised with Mozilla's Match"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:163
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:169
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:163
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:169
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:170
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:176
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:170
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:176
 msgid "donate"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:165
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:165
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:172
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:172
 msgid "once"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:171
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:171
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:178
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:178
 msgid "monthly"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:178
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:338
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:178
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:332
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:185
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:345
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:185
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:339
 msgid "Want to donate Bitcoin, Stock, or via snail mail?"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:194
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:194
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:201
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:201
 msgid "invalid amount"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:198
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:198
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:205
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:205
 msgid "$2 minimum donation"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:202
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:202
-msgid "$ other"
-msgstr ""
-
 #: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:209
 #: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:209
-msgid "Choose your gift as a token of our thanks."
+msgid "$ other"
 msgstr ""
 
 #: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:216
 #: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:216
+msgid "Choose your gift as a token of our thanks."
+msgstr ""
+
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:223
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:223
 msgid "No thanks, I don't want a gift."
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:218
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:218
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:225
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:225
 #, php-format
 msgid "I would prefer 100% of my donation to go to the Tor Project's work."
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:229
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:229
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:236
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:236
 msgid "sticker Pack"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:236
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:236
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:243
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:243
 msgid ""
 "A collection of our favorite logo stickers for decorating your stuff and "
 "covering your cams."
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:246
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:246
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:253
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:253
 msgid "t-shirt"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:252
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:259
 msgid "$15"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:254
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:261
 msgid "OFF"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:260
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:254
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:267
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:261
 msgid "Get our limited edition Tor: Strength in Numbers shirt."
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:271
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:265
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:278
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:272
 msgid "t-shirt pack"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:281
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:275
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:288
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:282
 msgid ""
 "Our Tor: Strength in Numbers t-shirt, plus one of either our Tor: Powering "
 "the Digital Resistance, Open Observatory of Network Interference (OONI), or "
 "Tor at the Heart of Internet Freedom t-shirts."
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:287
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:281
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:294
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:288
 msgid "Tor at the Heart of Internet Freedom"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:291
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:285
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:298
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:292
 msgid "Powering the Digital Resistance"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:295
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:289
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:302
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:296
 msgid "Open Observatory of Network Interference"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:306
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:300
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:313
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:307
 msgid "sweatshirt"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:313
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:307
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:320
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:314
 msgid "Your generous support of Tor gets you this high-quality zip hoodie."
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:323
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:317
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:330
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:324
 msgid "how do you want to <span class=\"green\">DONATE</span>?"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:329
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:323
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:336
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:330
 msgid "Credit Card"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:345
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:339
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:352
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:346
 msgid "Your Info"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:349
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:343
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:356
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:350
 msgid "* required fields"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:354
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:348
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:361
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:355
 msgid "First Name"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:358
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:352
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:365
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:359
 msgid "Last Name"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:364
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:358
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:371
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:365
 msgid "Street Address"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:368
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:362
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:375
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:369
 msgid "Apt."
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:378
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:372
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:385
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:379
 msgid "City"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:382
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:376
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:389
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:383
 msgid "State"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:387
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:381
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:394
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:388
 msgid "Zip"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:393
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:387
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:400
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:394
 msgid "Enter email"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:397
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:391
-msgid "We‘ll email you your receipt"
-msgstr ""
-
 #: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:404
 #: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:398
-msgid "Start sending me email updates about the Tor Project!"
+msgid "We‘ll email you your receipt"
 msgstr ""
 
 #: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:411
 #: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:405
-msgid "Card Number"
+msgid "Start sending me email updates about the Tor Project!"
 msgstr ""
 
 #: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:418
 #: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:412
+msgid "Card Number"
+msgstr ""
+
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:425
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:419
 msgid "MM"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:422
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:416
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:429
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:423
 msgid "YY"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:426
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:420
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:433
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:427
 msgid "CVC"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:434
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:486
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:428
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:480
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:441
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:493
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:435
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:487
 msgid "Choose your size and fit."
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:439
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:447
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:433
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:441
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:446
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:454
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:440
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:448
 msgid "T-shirt:"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:457
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:461
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:463
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:451
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:455
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:457
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:464
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:468
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:470
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:458
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:462
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:464
 msgid "Comments"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:469
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:463
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:476
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:470
 msgid "Donating:"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:476
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:470
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:483
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:477
 msgid "Donate"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:490
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:484
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:497
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:491
 msgid "T-Shirt"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:494
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:488
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:501
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:495
 msgid "Choose your size and fit for each shirt."
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:498
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:492
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:505
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:499
 msgid ""
 "Tor at the Heart of Internet, Powering Digital Resistance or Open "
 "Observvatory of Network Interference (OONI) T-Shirt"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:502
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:496
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:509
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:503
 msgid "Strength in Numbers T-Shirt"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:506
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:500
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:513
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:507
 msgid "Choose your size."
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:510
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:504
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:517
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:511
 msgid "Sweatshirt"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:514
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:508
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:521
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:515
 msgid "A required field is missing from the form."
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:516
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:510
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:523
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:517
 msgid "Please reload the page and try again."
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:520
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:514
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:527
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:521
 msgid "There was a problem submitting your request to the server:<br>"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:524
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:518
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:531
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:525
 msgid "validation failed"
 msgstr ""
 
 #. notes: __field_name__ will be replaced with the field name in the javascript.
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:530
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:524
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:537
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:531
 msgid "__field_name__ must be filled out."
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:535
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:529
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:542
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:536
 msgid "This field is required"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:539
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:533
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:546
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:540
 msgid "Invalid email address."
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:543
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:537
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:550
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:544
 msgid "per month"
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:557
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:551
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:564
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:558
 msgid "One moment while we shovel coal into our servers."
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:644
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:638
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:654
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:662
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:648
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:656
 msgid ""
 "Stand up for the universal human rights to privacy and freedom and help keep "
 "Tor robust and secure."
 msgstr ""
 
-#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:646
-#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:640
+#: tmp/cache_locale/93/936f5ca9f26662b60293a725343573df95cb28c99d7c3f12b1c94ed37a453012.php:656
+#: tmp/cache_locale/04/0421bb9119a5b92b0e2e4a49c25d718283ccfa1495534b2a08ff967a0f4fd06a.php:650
 msgid "Mozilla will match your gift and double your impact."
 msgstr ""
 
@@ -557,15 +559,17 @@ msgstr ""
 msgid "Thank you!"
 msgstr ""
 
-#: tmp/cache_locale/54/5420828d7720daccac45a05e74a0bdde5ef138020bd4901a7e81ad8817d3f8e8.php:48
+#: tmp/cache_locale/54/5420828d7720daccac45a05e74a0bdde5ef138020bd4901a7e81ad8817d3f8e8.php:51
+#: tmp/cache_locale/54/5420828d7720daccac45a05e74a0bdde5ef138020bd4901a7e81ad8817d3f8e8.php:61
 msgid "Thank you for supporting Tor's Strength in Numbers campaign."
 msgstr ""
 
-#: tmp/cache_locale/54/5420828d7720daccac45a05e74a0bdde5ef138020bd4901a7e81ad8817d3f8e8.php:50
+#: tmp/cache_locale/54/5420828d7720daccac45a05e74a0bdde5ef138020bd4901a7e81ad8817d3f8e8.php:53
+#: tmp/cache_locale/54/5420828d7720daccac45a05e74a0bdde5ef138020bd4901a7e81ad8817d3f8e8.php:63
 msgid "You should receive an email receipt shortly."
 msgstr ""
 
-#: tmp/cache_locale/54/5420828d7720daccac45a05e74a0bdde5ef138020bd4901a7e81ad8817d3f8e8.php:52
+#: tmp/cache_locale/54/5420828d7720daccac45a05e74a0bdde5ef138020bd4901a7e81ad8817d3f8e8.php:55
 msgid ""
 "With your support and the generous matching funds from Mozilla, we'll be "
 "able to tackle ambitious projects, such as developing a more secure, privacy-"
@@ -573,41 +577,49 @@ msgid ""
 "developers to integrate Tor into their applications."
 msgstr ""
 
-#: tmp/cache_locale/54/5420828d7720daccac45a05e74a0bdde5ef138020bd4901a7e81ad8817d3f8e8.php:56
+#: tmp/cache_locale/54/5420828d7720daccac45a05e74a0bdde5ef138020bd4901a7e81ad8817d3f8e8.php:65
+msgid ""
+"With your support, we'll be able to tackle ambitious projects, such as "
+"developing a more secure, privacy-enhancing browser for mobile devices and "
+"making it easier for third-party developers to integrate Tor into their "
+"applications."
+msgstr ""
+
+#: tmp/cache_locale/54/5420828d7720daccac45a05e74a0bdde5ef138020bd4901a7e81ad8817d3f8e8.php:71
 msgid ""
 "It's an incredible time to stand up for world-leading security and privacy "
 "software."
 msgstr ""
 
-#: tmp/cache_locale/54/5420828d7720daccac45a05e74a0bdde5ef138020bd4901a7e81ad8817d3f8e8.php:58
+#: tmp/cache_locale/54/5420828d7720daccac45a05e74a0bdde5ef138020bd4901a7e81ad8817d3f8e8.php:73
 msgid ""
 "Tell family, friends, and colleagues that you're supporting privacy and "
 "security with Tor!"
 msgstr ""
 
-#: tmp/cache_locale/54/5420828d7720daccac45a05e74a0bdde5ef138020bd4901a7e81ad8817d3f8e8.php:62
+#: tmp/cache_locale/54/5420828d7720daccac45a05e74a0bdde5ef138020bd4901a7e81ad8817d3f8e8.php:77
 msgid "SHARE THE TOR PROJECT"
 msgstr ""
 
-#: tmp/cache_locale/54/5420828d7720daccac45a05e74a0bdde5ef138020bd4901a7e81ad8817d3f8e8.php:88
+#: tmp/cache_locale/54/5420828d7720daccac45a05e74a0bdde5ef138020bd4901a7e81ad8817d3f8e8.php:115
 msgid "Got Skills?"
 msgstr ""
 
-#: tmp/cache_locale/54/5420828d7720daccac45a05e74a0bdde5ef138020bd4901a7e81ad8817d3f8e8.php:94
+#: tmp/cache_locale/54/5420828d7720daccac45a05e74a0bdde5ef138020bd4901a7e81ad8817d3f8e8.php:121
 msgid "The Tor network depends on volunteers."
 msgstr ""
 
-#: tmp/cache_locale/54/5420828d7720daccac45a05e74a0bdde5ef138020bd4901a7e81ad8817d3f8e8.php:100
+#: tmp/cache_locale/54/5420828d7720daccac45a05e74a0bdde5ef138020bd4901a7e81ad8817d3f8e8.php:127
 msgid ""
 "We need people to run relays, write code, organize the community and spread "
 "the word about our good work."
 msgstr ""
 
-#: tmp/cache_locale/54/5420828d7720daccac45a05e74a0bdde5ef138020bd4901a7e81ad8817d3f8e8.php:102
+#: tmp/cache_locale/54/5420828d7720daccac45a05e74a0bdde5ef138020bd4901a7e81ad8817d3f8e8.php:129
 msgid "Learn how you can help."
 msgstr ""
 
-#: tmp/cache_locale/54/5420828d7720daccac45a05e74a0bdde5ef138020bd4901a7e81ad8817d3f8e8.php:110
+#: tmp/cache_locale/54/5420828d7720daccac45a05e74a0bdde5ef138020bd4901a7e81ad8817d3f8e8.php:137
 msgid "I Want To Volunteer"
 msgstr ""
 



More information about the tor-commits mailing list