Merge authors:
  David Siebörger (dsieborger)
Related merge proposals:
  https://code.launchpad.net/~dsieborger/mailman/recaptcha/+merge/336782
  proposed by: David Siebörger (dsieborger)
  review: Approve - Mark Sapiro (msapiro)
------------------------------------------------------------
revno: 1738 [merge]
committer: Mark Sapiro <m...@msapiro.net>
branch nick: 2.1
timestamp: Mon 2018-01-29 20:06:24 -0800
message:
  Added the ability to add reCAPTCHA to the listinfo subscribe form.
modified:
  Mailman/Cgi/listinfo.py
  Mailman/Cgi/subscribe.py
  Mailman/Defaults.py.in
  NEWS
  templates/ar/listinfo.html
  templates/ast/listinfo.html
  templates/ca/listinfo.html
  templates/cs/listinfo.html
  templates/da/listinfo.html
  templates/de/listinfo.html
  templates/el/listinfo.html
  templates/en/listinfo.html
  templates/es/listinfo.html
  templates/et/listinfo.html
  templates/eu/listinfo.html
  templates/fa/listinfo.html
  templates/fi/listinfo.html
  templates/fr/listinfo.html
  templates/gl/listinfo.html
  templates/he/listinfo.html
  templates/hr/listinfo.html
  templates/hu/listinfo.html
  templates/ia/listinfo.html
  templates/it/listinfo.html
  templates/ja/listinfo.html
  templates/ko/listinfo.html
  templates/lt/listinfo.html
  templates/nl/listinfo.html
  templates/no/listinfo.html
  templates/pl/listinfo.html
  templates/pt/listinfo.html
  templates/pt_BR/listinfo.html
  templates/ro/listinfo.html
  templates/ru/listinfo.html
  templates/sk/listinfo.html
  templates/sl/listinfo.html
  templates/sr/listinfo.html
  templates/sv/listinfo.html
  templates/tr/listinfo.html
  templates/uk/listinfo.html
  templates/vi/listinfo.html
  templates/zh_CN/listinfo.html
  templates/zh_TW/listinfo.html


--
lp:mailman/2.1
https://code.launchpad.net/~mailman-coders/mailman/2.1

Your team Mailman Checkins is subscribed to branch lp:mailman/2.1.
To unsubscribe from this branch go to 
https://code.launchpad.net/~mailman-coders/mailman/2.1/+edit-subscription
=== modified file 'Mailman/Cgi/listinfo.py'
--- Mailman/Cgi/listinfo.py	2017-06-06 05:47:05 +0000
+++ Mailman/Cgi/listinfo.py	2018-01-30 04:06:24 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2017 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2018 by the Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
@@ -21,6 +21,7 @@
 # No lock needed in this script, because we don't change data.
 
 import os
+import re
 import cgi
 import time
 
@@ -243,6 +244,18 @@
     replacements['<mm-displang-box>'] = displang
     replacements['<mm-lang-form-start>'] = mlist.FormatFormStart('listinfo')
     replacements['<mm-fullname-box>'] = mlist.FormatBox('fullname', size=30)
+    # If reCAPTCHA is enabled, display its user interface
+    if mm_cfg.RECAPTCHA_SITE_KEY:
+        rlang = re.sub('_', '-', lang)
+        replacements['<mm-recaptcha-ui>'] = (
+            """<tr><td>&nbsp;</td><td>
+            <script src="https://www.google.com/recaptcha/api.js?hl=%s";>
+            </script>
+            <div class="g-recaptcha" data-sitekey="%s"></div>
+            </td></tr>"""
+            % (rlang, mm_cfg.RECAPTCHA_SITE_KEY))
+    else:
+        replacements['<mm-recaptcha-ui>'] = ''
 
     # Do the expansion.
     doc.AddItem(mlist.ParseTags('listinfo.html', replacements, lang))

=== modified file 'Mailman/Cgi/subscribe.py'
--- Mailman/Cgi/subscribe.py	2017-06-06 05:47:05 +0000
+++ Mailman/Cgi/subscribe.py	2018-01-30 04:06:24 +0000
@@ -1,4 +1,4 @@
-# Copyright (C) 1998-2017 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2018 by the Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
@@ -22,6 +22,9 @@
 import cgi
 import time
 import signal
+import urllib
+import urllib2
+import json
 
 from Mailman import mm_cfg
 from Mailman import Utils
@@ -131,6 +134,25 @@
              os.environ.get('HTTP_X_FORWARDED_FOR',
              os.environ.get('REMOTE_ADDR',
                             'unidentified origin')))
+
+    # Check reCAPTCHA submission, if enabled
+    if mm_cfg.RECAPTCHA_SECRET_KEY:
+        request = urllib2.Request(
+            url = 'https://www.google.com/recaptcha/api/siteverify',
+            data = urllib.urlencode({
+                'secret': mm_cfg.RECAPTCHA_SECRET_KEY,
+                'response': cgidata.getvalue('g-recaptcha-response', ''),
+                'remoteip': remote}))
+        try:
+            httpresp = urllib2.urlopen(request)
+            captcha_response = json.load(httpresp)
+            httpresp.close()
+            if not captcha_response['success']:
+                results.append(_('reCAPTCHA validation failed: %s' %
+                    ', '.join(captcha_response['error-codes'])))
+        except urllib2.URLError as e:
+            results.append(_('reCAPTCHA could not be validated: %s' % e.reason))
+
     # Are we checking the hidden data?
     if mm_cfg.SUBSCRIBE_FORM_SECRET:
         now = int(time.time())

=== modified file 'Mailman/Defaults.py.in'
--- Mailman/Defaults.py.in	2017-11-06 11:23:01 +0000
+++ Mailman/Defaults.py.in	2018-01-30 04:06:24 +0000
@@ -1,6 +1,6 @@
 # -*- python -*-
 
-# Copyright (C) 1998-2017 by the Free Software Foundation, Inc.
+# Copyright (C) 1998-2018 by the Free Software Foundation, Inc.
 #
 # This program is free software; you can redistribute it and/or
 # modify it under the terms of the GNU General Public License
@@ -131,6 +131,12 @@
 # test.
 SUBSCRIBE_FORM_MIN_TIME = seconds(5)
 
+# Use Google reCAPTCHA to protect the subscription form from spam bots.  The
+# following must be set to a pair of keys issued by the reCAPTCHA service at
+# https://www.google.com/recaptcha/admin
+RECAPTCHA_SITE_KEY = None
+RECAPTCHA_SECRET_KEY = None
+
 # Installation wide ban list.  This is a list of email addresses and regexp
 # patterns (beginning with ^) which are not allowed to subscribe to any lists
 # in the installation.  This supplements the individual list's ban_list.

=== modified file 'NEWS'
--- NEWS	2018-01-28 01:45:22 +0000
+++ NEWS	2018-01-30 04:06:24 +0000
@@ -1,6 +1,6 @@
 -*- coding: iso-8859-1 -*-
 Mailman - The GNU Mailing List Management System
-Copyright (C) 1998-2017 by the Free Software Foundation, Inc.
+Copyright (C) 1998-2018 by the Free Software Foundation, Inc.
 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
 
 Here is a history of user visible changes to Mailman.
@@ -9,6 +9,13 @@
 
   New Features
 
+    - Thanks to David Siebrger who adapted an existing patch by Andrea
+      Veri to use Google reCAPTCHA v2 there is now the ability to add
+      reCAPTCHA to the listinfo subscribe form.  There are two new mm_cfg.py
+      settings for RECAPTCHA_SITE_KEY and RECAPTCHA_SECRET_KEY, the values
+      for which you obtain for your domain(s) from Google at
+      <https://www.google.com/recaptcha/admin>.
+
     - Thanks to Lindsay Haisley, there is a new bin/mailman-config command
       to display various information about this Mailman version and how it
       was configured.

=== modified file 'templates/ar/listinfo.html'
--- templates/ar/listinfo.html	2010-01-28 23:06:44 +0000
+++ templates/ar/listinfo.html	2018-01-29 12:58:42 +0000
@@ -111,6 +111,7 @@
 	</TD>
       </tr>
       <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/ast/listinfo.html'
--- templates/ast/listinfo.html	2009-12-08 23:25:52 +0000
+++ templates/ast/listinfo.html	2018-01-29 12:58:42 +0000
@@ -103,6 +103,7 @@
 	</TD>
       </tr>
       <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></P></center>

=== modified file 'templates/ca/listinfo.html'
--- templates/ca/listinfo.html	2010-01-28 23:06:44 +0000
+++ templates/ca/listinfo.html	2018-01-29 12:58:42 +0000
@@ -114,6 +114,7 @@
 	</TD>
       </tr>
       <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
               <td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/cs/listinfo.html'
--- templates/cs/listinfo.html	2016-11-14 07:13:01 +0000
+++ templates/cs/listinfo.html	2018-01-29 12:58:42 +0000
@@ -112,6 +112,7 @@
 	</TD>
       </tr>
       <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/da/listinfo.html'
--- templates/da/listinfo.html	2010-01-28 23:06:44 +0000
+++ templates/da/listinfo.html	2018-01-29 12:58:42 +0000
@@ -108,6 +108,7 @@
 	</TD>
       </tr>
       <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/de/listinfo.html'
--- templates/de/listinfo.html	2018-01-12 12:44:15 +0000
+++ templates/de/listinfo.html	2018-01-29 12:58:42 +0000
@@ -114,6 +114,7 @@
 	</TD>
       </tr>
       <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/el/listinfo.html'
--- templates/el/listinfo.html	2012-06-20 23:32:30 +0000
+++ templates/el/listinfo.html	2018-01-29 12:58:42 +0000
@@ -116,6 +116,7 @@
 	</TD>
       </tr>
       <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></P></center>

=== modified file 'templates/en/listinfo.html'
--- templates/en/listinfo.html	2010-01-28 23:06:44 +0000
+++ templates/en/listinfo.html	2018-01-29 12:58:42 +0000
@@ -115,6 +115,7 @@
 	</TD>
       </tr>
       <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/es/listinfo.html'
--- templates/es/listinfo.html	2010-01-28 23:06:44 +0000
+++ templates/es/listinfo.html	2018-01-30 04:06:24 +0000
@@ -107,6 +107,7 @@
 	<TD BGCOLOR="#dddddd">&iquest;En qu&eacute; idioma desea visualizar sus mensajes?</TD> 
 	<TD> <MM-list-langs></TD>
 	<TD>&nbsp; </TD></TR>
+      <mm-digest-question-start>
       <tr>
 	<td>&iquest;Desea recibir los mensaje de cada d&iacute;a reunidos
             en un &uacute;nico mensaje (digest)?
@@ -115,6 +116,8 @@
 	    <MM-Digest-Radio-Button>  S&iacute;
 	</TD>
       </tr>
+      <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/et/listinfo.html'
--- templates/et/listinfo.html	2016-11-14 07:13:01 +0000
+++ templates/et/listinfo.html	2018-01-30 04:06:24 +0000
@@ -98,6 +98,7 @@
         <TD BGCOLOR="#dddddd">Kasutajaliidese keel?</TD> 
         <TD> <MM-list-langs></TD>
         <TD>&nbsp; </TD></TR>
+      <mm-digest-question-start>
       <tr>
 	<td>Kirju saadetakse kokkuv&otilde;tetena
 	  </td>
@@ -105,6 +106,8 @@
 	    <MM-Digest-Radio-Button>  Jah
 	</TD>
       </tr>
+      <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/eu/listinfo.html'
--- templates/eu/listinfo.html	2010-01-28 23:06:44 +0000
+++ templates/eu/listinfo.html	2018-01-29 12:58:42 +0000
@@ -113,6 +113,7 @@
 	</TD>
       </tr>
       <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/fa/listinfo.html'
--- templates/fa/listinfo.html	2013-07-18 22:14:15 +0000
+++ templates/fa/listinfo.html	2018-01-29 12:58:42 +0000
@@ -105,6 +105,7 @@
 	</TD>
       </tr>
       <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/fi/listinfo.html'
--- templates/fi/listinfo.html	2016-11-14 07:13:01 +0000
+++ templates/fi/listinfo.html	2018-01-30 04:06:24 +0000
@@ -110,6 +110,7 @@
         <TD BGCOLOR="#dddddd">Mill&auml; kielell&auml; haluat ohjeet ja lomakkeet?</TD> 
         <TD> <MM-list-langs></TD>
         <TD>&nbsp; </TD></TR>
+      <mm-digest-question-start>
       <tr>
 	<td>Haluatko vastaanottaa listan viestit p&auml;ivitt&auml;isen&auml; kokoelmana yksitt&auml;isten
           viestien sijaan?
@@ -118,6 +119,8 @@
 	    <MM-Digest-Radio-Button>  Kyll&auml;
 	</TD>
       </tr>
+      <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/fr/listinfo.html'
--- templates/fr/listinfo.html	2014-02-04 01:01:49 +0000
+++ templates/fr/listinfo.html	2018-01-29 12:58:42 +0000
@@ -118,6 +118,7 @@
 	</td>
        </tr>
 	<mm-digest-question-end>
+       <mm-recaptcha-ui>
        <tr>
  	<td colspan="3"> 	  
               <center><MM-Subscribe-Button></center>

=== modified file 'templates/gl/listinfo.html'
--- templates/gl/listinfo.html	2016-01-10 03:33:25 +0000
+++ templates/gl/listinfo.html	2018-01-30 04:06:24 +0000
@@ -106,6 +106,7 @@
 	<TD BGCOLOR="#dddddd">En que idioma desexa ver as mensaxes?</TD> 
 	<TD> <MM-list-langs></TD>
 	<TD>&nbsp; </TD></TR>
+      <mm-digest-question-start>
       <tr>
 	<td>Desexa recibir as mensaxes diarias compiladas
             nunha &uacute;nica mensaxe?
@@ -114,6 +115,8 @@
 	    <MM-Digest-Radio-Button>  Si
 	</TD>
       </tr>
+      <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/he/listinfo.html'
--- templates/he/listinfo.html	2010-01-28 23:06:44 +0000
+++ templates/he/listinfo.html	2018-01-29 12:58:42 +0000
@@ -110,6 +110,7 @@
 	</TD>
       </tr>
       <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/hr/listinfo.html'
--- templates/hr/listinfo.html	2016-11-14 07:13:01 +0000
+++ templates/hr/listinfo.html	2018-01-29 12:58:42 +0000
@@ -112,6 +112,7 @@
 	</TD>
       </tr>
       <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/hu/listinfo.html'
--- templates/hu/listinfo.html	2016-11-14 07:13:01 +0000
+++ templates/hu/listinfo.html	2018-01-29 12:58:42 +0000
@@ -111,6 +111,7 @@
       </tr>
       <tr>
     <mm-digest-question-end>
+    <mm-recaptcha-ui>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>
     </td>

=== modified file 'templates/ia/listinfo.html'
--- templates/ia/listinfo.html	2015-02-18 21:30:11 +0000
+++ templates/ia/listinfo.html	2018-01-29 12:58:42 +0000
@@ -103,6 +103,7 @@
 	</TD>
       </tr>
       <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/it/listinfo.html'
--- templates/it/listinfo.html	2010-01-28 23:06:44 +0000
+++ templates/it/listinfo.html	2018-01-29 12:58:42 +0000
@@ -123,6 +123,7 @@
 	</TD>
 	</tr>
 	<mm-digest-question-end>
+	<mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/ja/listinfo.html'
--- templates/ja/listinfo.html	2010-01-28 23:06:44 +0000
+++ templates/ja/listinfo.html	2018-01-29 12:58:42 +0000
@@ -115,6 +115,7 @@
 	</TD>
       </tr>
       <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/ko/listinfo.html'
--- templates/ko/listinfo.html	2010-01-28 23:06:44 +0000
+++ templates/ko/listinfo.html	2018-01-30 04:06:24 +0000
@@ -103,6 +103,7 @@
         <TD BGCOLOR="#dddddd">  ϼ?</TD> 
         <TD> <MM-list-langs></TD>
         <TD>&nbsp; </TD></TR>
+      <mm-digest-question-start>
       <tr>
 	<td>޽ Ϸ翡     ޾ƺ Ͻðڽϱ?
 	  </td>
@@ -110,6 +111,8 @@
 	    <MM-Digest-Radio-Button>  
 	</TD>
       </tr>
+      <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/lt/listinfo.html'
--- templates/lt/listinfo.html	2016-11-14 07:13:01 +0000
+++ templates/lt/listinfo.html	2018-01-30 04:06:24 +0000
@@ -104,6 +104,7 @@
         <TD BGCOLOR="#dddddd">Pasirinkite kalb?</TD>
         <TD> <MM-list-langs></TD>
         <TD>&nbsp; </TD></TR>
+      <mm-digest-question-start>
       <tr>
 	<td>Ar norite gauti dienos lai&scaron;k rinkinius?
 	  </td>
@@ -111,6 +112,8 @@
 	    <MM-Digest-Radio-Button>  Taip
 	</TD>
       </tr>
+      <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/nl/listinfo.html'
--- templates/nl/listinfo.html	2010-01-28 23:06:44 +0000
+++ templates/nl/listinfo.html	2018-01-30 04:06:24 +0000
@@ -99,6 +99,7 @@
         <TD BGCOLOR="#dddddd">Wat is uw voorkeurstaal voor de berichten?</TD> 
         <TD> <MM-list-langs></TD>
         <TD>&nbsp; </TD></TR>
+      <mm-digest-question-start>
       <tr>
 	<td>Wilt u de berichten gebundeld ontvangen in een dagelijkse verzamelmail?
 	  </td>
@@ -106,6 +107,8 @@
 	    <MM-Digest-Radio-Button>  Ja
 	</TD>
       </tr>
+      <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/no/listinfo.html'
--- templates/no/listinfo.html	2010-01-28 23:06:44 +0000
+++ templates/no/listinfo.html	2018-01-29 12:58:42 +0000
@@ -108,6 +108,7 @@
 	</TD>
       </tr>
       <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/pl/listinfo.html'
--- templates/pl/listinfo.html	2017-01-18 06:49:29 +0000
+++ templates/pl/listinfo.html	2018-01-29 12:58:42 +0000
@@ -113,6 +113,7 @@
 	</TD>
       </tr>
       <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/pt/listinfo.html'
--- templates/pt/listinfo.html	2016-11-14 07:13:01 +0000
+++ templates/pt/listinfo.html	2018-01-29 12:58:42 +0000
@@ -114,6 +114,7 @@
 	</TD>
       </tr>
       <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/pt_BR/listinfo.html'
--- templates/pt_BR/listinfo.html	2010-01-28 23:06:44 +0000
+++ templates/pt_BR/listinfo.html	2018-01-30 04:06:24 +0000
@@ -105,6 +105,7 @@
         <TD BGCOLOR="#dddddd">Em que idioma prefere exibir suas mensagens?</TD> 
         <TD> <MM-list-langs></TD>
         <TD>&nbsp; </TD></TR>
+      <mm-digest-question-start>
       <tr>
 	<td>Deseja receber e-mails da lista enviados uma vez por dia em um &uacute;nico 
 	email (digest)?
@@ -113,6 +114,8 @@
 	    <MM-Digest-Radio-Button>  Sim
 	</TD>
       </tr>
+      <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/ro/listinfo.html'
--- templates/ro/listinfo.html	2016-11-14 07:13:01 +0000
+++ templates/ro/listinfo.html	2018-01-29 12:58:42 +0000
@@ -109,6 +109,7 @@
 	</TD>
       </tr>
       <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/ru/listinfo.html'
--- templates/ru/listinfo.html	2015-02-05 21:15:37 +0000
+++ templates/ru/listinfo.html	2018-01-29 12:58:42 +0000
@@ -100,6 +100,7 @@
         </TD>
       </tr>
       <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
         <td colspan="3">
           <center><MM-Subscribe-Button></center>

=== modified file 'templates/sk/listinfo.html'
--- templates/sk/listinfo.html	2016-11-14 07:13:01 +0000
+++ templates/sk/listinfo.html	2018-01-29 12:58:42 +0000
@@ -117,6 +117,7 @@
 	</TD>
       </tr>
       <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/sl/listinfo.html'
--- templates/sl/listinfo.html	2016-11-14 07:13:01 +0000
+++ templates/sl/listinfo.html	2018-01-29 12:58:42 +0000
@@ -112,6 +112,7 @@
 	</TD>
       </tr>
       <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/sr/listinfo.html'
--- templates/sr/listinfo.html	2010-01-28 23:06:44 +0000
+++ templates/sr/listinfo.html	2018-01-29 12:58:42 +0000
@@ -97,6 +97,7 @@
             <td><MM-Undigest-Radio-Button> Не<MM-Digest-Radio-Button> Да</TD>
           </tr>
           <mm-digest-question-end> 
+          <mm-recaptcha-ui>
           <tr> 
             <td colspan="3"> <center>
                 <MM-Subscribe-Button></center> 

=== modified file 'templates/sv/listinfo.html'
--- templates/sv/listinfo.html	2010-01-28 23:06:44 +0000
+++ templates/sv/listinfo.html	2018-01-29 12:58:42 +0000
@@ -94,6 +94,7 @@
 									<td><MM-Undigest-Radio-Button> Nej 	    <MM-Digest-Radio-Button> Ja	</TD>
 								</tr>
       <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/tr/listinfo.html'
--- templates/tr/listinfo.html	2016-11-14 07:13:01 +0000
+++ templates/tr/listinfo.html	2018-01-29 12:58:42 +0000
@@ -115,6 +115,7 @@
 	</TD>
       </tr>
       <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/uk/listinfo.html'
--- templates/uk/listinfo.html	2010-01-28 23:06:44 +0000
+++ templates/uk/listinfo.html	2018-01-29 12:58:42 +0000
@@ -111,6 +111,7 @@
 	</TD>
       </tr>
       <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/vi/listinfo.html'
--- templates/vi/listinfo.html	2010-01-28 23:06:44 +0000
+++ templates/vi/listinfo.html	2018-01-29 12:58:42 +0000
@@ -102,6 +102,7 @@
 	</TD>
       </tr>
       <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/zh_CN/listinfo.html'
--- templates/zh_CN/listinfo.html	2010-01-28 23:06:44 +0000
+++ templates/zh_CN/listinfo.html	2018-01-29 12:58:42 +0000
@@ -107,6 +107,7 @@
 	</TD>
       </tr>
       <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

=== modified file 'templates/zh_TW/listinfo.html'
--- templates/zh_TW/listinfo.html	2010-01-28 23:06:44 +0000
+++ templates/zh_TW/listinfo.html	2018-01-30 04:06:24 +0000
@@ -91,6 +91,7 @@
         <TD BGCOLOR="#dddddd"> 您適用的語言?</TD> 
         <TD> <MM-list-langs></TD>
         <TD>&nbsp; </TD></TR>
+      <mm-digest-question-start>
       <tr>
 	<td>你 想 以 每 日 摘 要 的 形 式 收 信 嗎 ? 
 	  </td>
@@ -98,6 +99,8 @@
 	    <MM-Digest-Radio-Button>  Yes
 	</TD>
       </tr>
+      <mm-digest-question-end>
+      <mm-recaptcha-ui>
       <tr>
 	<td colspan="3">
 	  <center><MM-Subscribe-Button></center>

_______________________________________________
Mailman-checkins mailing list
Mailman-checkins@python.org
Unsubscribe: 
https://mail.python.org/mailman/options/mailman-checkins/archive%40jab.org

Reply via email to