fix comma location in various places (GH-19233)

(cherry picked from commit c49016e67c3255b37599b354a8d7995d40663991)

Co-authored-by: Mathieu Dupuy <deronnax@users.noreply.github.com>
diff --git a/Doc/library/mailcap.rst b/Doc/library/mailcap.rst
index 896afd1..bf9639b 100644
--- a/Doc/library/mailcap.rst
+++ b/Doc/library/mailcap.rst
@@ -18,7 +18,7 @@
 automatically started to view the file.
 
 The mailcap format is documented in :rfc:`1524`, "A User Agent Configuration
-Mechanism For Multimedia Mail Format Information," but is not an Internet
+Mechanism For Multimedia Mail Format Information", but is not an Internet
 standard.  However, mailcap files are supported on most Unix systems.
 
 
diff --git a/Doc/library/pprint.rst b/Doc/library/pprint.rst
index 9abf286..b8b7f42 100644
--- a/Doc/library/pprint.rst
+++ b/Doc/library/pprint.rst
@@ -144,7 +144,7 @@
 
    .. index:: builtin: eval
 
-   Determine if the formatted representation of *object* is "readable," or can be
+   Determine if the formatted representation of *object* is "readable", or can be
    used to reconstruct the value using :func:`eval`.  This always returns ``False``
    for recursive objects.
 
diff --git a/Doc/library/ssl.rst b/Doc/library/ssl.rst
index bbb4c41..4142e41 100644
--- a/Doc/library/ssl.rst
+++ b/Doc/library/ssl.rst
@@ -42,7 +42,7 @@
 :class:`socket.socket` type, and provides a socket-like wrapper that also
 encrypts and decrypts the data going over the socket with SSL.  It supports
 additional methods such as :meth:`getpeercert`, which retrieves the
-certificate of the other side of the connection, and :meth:`cipher`,which
+certificate of the other side of the connection, and :meth:`cipher`, which
 retrieves the cipher being used for the secure connection.
 
 For more sophisticated applications, the :class:`ssl.SSLContext` class
@@ -2271,7 +2271,7 @@
                 (('postalCode', '03894-4801'),),
                 (('countryName', 'US'),),
                 (('stateOrProvinceName', 'NH'),),
-                (('localityName', 'Wolfeboro,'),),
+                (('localityName', 'Wolfeboro'),),
                 (('organizationName', 'Python Software Foundation'),),
                 (('commonName', 'www.python.org'),)),
     'subjectAltName': (('DNS', 'www.python.org'),
diff --git a/Doc/library/textwrap.rst b/Doc/library/textwrap.rst
index 0f11ef4..1683710 100644
--- a/Doc/library/textwrap.rst
+++ b/Doc/library/textwrap.rst
@@ -239,7 +239,7 @@
       :attr:`fix_sentence_endings` is false by default.
 
       Since the sentence detection algorithm relies on ``string.lowercase`` for
-      the definition of "lowercase letter," and a convention of using two spaces
+      the definition of "lowercase letter", and a convention of using two spaces
       after a period to separate sentences on the same line, it is specific to
       English-language texts.
 
diff --git a/Doc/library/tokenize.rst b/Doc/library/tokenize.rst
index 96778f2..11f569d 100644
--- a/Doc/library/tokenize.rst
+++ b/Doc/library/tokenize.rst
@@ -13,7 +13,7 @@
 
 The :mod:`tokenize` module provides a lexical scanner for Python source code,
 implemented in Python.  The scanner in this module returns comments as tokens
-as well, making it useful for implementing "pretty-printers," including
+as well, making it useful for implementing "pretty-printers", including
 colorizers for on-screen displays.
 
 To simplify token stream handling, all :ref:`operator <operators>` and