diff --git a/core/CHANGELOG.txt b/core/CHANGELOG.txt
index 98f9108..724ea7a 100644
--- a/core/CHANGELOG.txt
+++ b/core/CHANGELOG.txt
@@ -115,7 +115,7 @@ Drupal 8.0, xxxx-xx-xx (development version)
         forms for any configuration.
       * Reworked Gettext PO support to use pluggable read/write handlers.
       * Added language select form element in the Form API.
-- Added E-mail field type to core.
+- Added Email field type to core.
 - Added Link field type to core.
 - Added Phone number field type to core.
 - Added local image input filter, to enable secure image posting.
@@ -223,7 +223,7 @@ Drupal 7.0, 2011-01-05
       user roles and permissions.
     * Refactored the "access rules" component of user module: The user module
       now provides a simple interface for blocking single IP addresses. The
-      previous functionality in the user module for restricting certain e-mail
+      previous functionality in the user module for restricting certain email
       addresses and usernames is now available as a contributed module. Further,
       IP address range blocking is no longer supported and should be implemented
       at the operating system level.
@@ -359,7 +359,7 @@ Drupal 6.0, 2008-02-13
      default in the default installation profile.
    * Extended the database log module so log messages can be filtered.
    * Added syslog module: useful for monitoring large Drupal installations.
-- Added optional e-mail notifications when users are approved, blocked, or
+- Added optional email notifications when users are approved, blocked, or
   deleted.
 - Drupal works with error reporting set to E_ALL.
 - Added scripts/drupal.sh to execute Drupal code from the command line. Useful
@@ -541,7 +541,7 @@ Drupal 5.0, 2007-01-15
     * 'Blogapi new' and 'blogapi edit' nodeapi operations.
 - User module:
     * Added hook_profile_alter().
-    * E-mail verification is made optional.
+    * Email verification is made optional.
     * Added mass editing and filtering on admin/user/user.
 - PHP Template engine:
     * Add the ability to look for a series of suggested templates.
@@ -766,7 +766,7 @@ Drupal 4.6.0, 2005-04-15
     * Introduced forum configuration pages.
     * Added a 'add child page' link to book pages.
 - Contact module:
-    * Added a simple contact module that allows users to contact each other using e-mail.
+    * Added a simple contact module that allows users to contact each other using email.
 - Multi-site configuration:
     * Made it possible to run multiple sites from a single code base.
 - Added an image API: enables better image handling.
@@ -1113,7 +1113,7 @@ Drupal 3.0.0, 2001-09-15
     * Improved scheduler:
         + Content can be scheduled to be 'posted', 'queued' and 'hidden'.
     * Improved account module:
-        + Added "access control" to allow/deny certain usernames/e-mail addresses/hostnames.
+        + Added "access control" to allow/deny certain usernames/email addresses/hostnames.
     * Improved locale module:
         + Added new overview to easy the translation process.
     * Improved comment module:
diff --git a/core/INSTALL.txt b/core/INSTALL.txt
index 72a3dd1..1880473 100644
--- a/core/INSTALL.txt
+++ b/core/INSTALL.txt
@@ -406,7 +406,7 @@ MORE INFORMATION
 
 - For a list of security announcements, see the "Security advisories" page at
   http://drupal.org/security (available as an RSS feed). This page also
-  describes how to subscribe to these announcements via e-mail.
+  describes how to subscribe to these announcements via email.
 
 - For information about the Drupal security process, or to find out how to
   report a potential security issue to the Drupal security team, see the
diff --git a/core/MAINTAINERS.txt b/core/MAINTAINERS.txt
index 6dee819..3316ad3 100644
--- a/core/MAINTAINERS.txt
+++ b/core/MAINTAINERS.txt
@@ -280,7 +280,7 @@ Database Logging module
 DateTime module
 - ?
 
-E-mail module
+Email module
 - Nils Destoop 'zuuperman' https://drupal.org/user/361625
 
 Editor module
diff --git a/core/includes/common.inc b/core/includes/common.inc
index f30bcdf..5cc70c2 100644
--- a/core/includes/common.inc
+++ b/core/includes/common.inc
@@ -348,13 +348,13 @@ function drupal_get_destination() {
  */
 
 /**
- * Verifies the syntax of the given e-mail address.
+ * Verifies the syntax of the given email address.
  *
  * This uses the
- * @link http://php.net/manual/filter.filters.validate.php PHP e-mail validation filter. @endlink
+ * @link http://php.net/manual/filter.filters.validate.php PHP email validation filter. @endlink
  *
  * @param $mail
- *   A string containing an e-mail address.
+ *   A string containing an email address.
  *
  * @return
  *   TRUE if the address is in a valid format.
diff --git a/core/includes/form.inc b/core/includes/form.inc
index 42206a4..0aec757 100644
--- a/core/includes/form.inc
+++ b/core/includes/form.inc
@@ -2484,7 +2484,7 @@ function form_validate_email(&$element, &$form_state) {
   form_set_value($element, $value, $form_state);
 
   if ($value !== '' && !valid_email_address($value)) {
-    form_error($element, $form_state, t('The e-mail address %mail is not valid.', array('%mail' => $value)));
+    form_error($element, $form_state, t('The email address %mail is not valid.', array('%mail' => $value)));
   }
 }
 
diff --git a/core/includes/mail.inc b/core/includes/mail.inc
index 68091fb..09b8819 100644
--- a/core/includes/mail.inc
+++ b/core/includes/mail.inc
@@ -2,7 +2,7 @@
 
 /**
  * @file
- * API functions for processing and sending e-mail.
+ * API functions for processing and sending email.
  */
 
 use Drupal\Component\Utility\Html;
@@ -10,32 +10,32 @@
 use Drupal\Core\Site\Settings;
 
 /**
- * Composes and optionally sends an e-mail message.
+ * Composes and optionally sends an email message.
  *
- * Sending an e-mail works with defining an e-mail template (subject, text
- * and possibly e-mail headers) and the replacement values to use in the
- * appropriate places in the template. Processed e-mail templates are
- * requested from hook_mail() from the module sending the e-mail. Any module
- * can modify the composed e-mail message array using hook_mail_alter().
- * Finally drupal_mail_system()->mail() sends the e-mail, which can
- * be reused if the exact same composed e-mail is to be sent to multiple
+ * Sending an email works with defining an email template (subject, text
+ * and possibly email headers) and the replacement values to use in the
+ * appropriate places in the template. Processed email templates are
+ * requested from hook_mail() from the module sending the email. Any module
+ * can modify the composed email message array using hook_mail_alter().
+ * Finally drupal_mail_system()->mail() sends the email, which can
+ * be reused if the exact same composed email is to be sent to multiple
  * recipients.
  *
- * Finding out what language to send the e-mail with needs some consideration.
- * If you send e-mail to a user, her preferred language should be fine, so
+ * Finding out what language to send the email with needs some consideration.
+ * If you send email to a user, her preferred language should be fine, so
  * use user_preferred_langcode(). If you send email based on form values
  * filled on the page, there are two additional choices if you are not
- * sending the e-mail to a user on the site. You can either use the language
+ * sending the email to a user on the site. You can either use the language
  * used to generate the page or the site default language. See
- * language_default(). The former is good if sending e-mail to the person
- * filling the form, the later is good if you send e-mail to an address
+ * language_default(). The former is good if sending email to the person
+ * filling the form, the later is good if you send email to an address
  * previously set up (like contact addresses in a contact form).
  *
  * Taking care of always using the proper language is even more important
- * when sending e-mails in a row to multiple users. Hook_mail() abstracts
+ * when sending emails in a row to multiple users. Hook_mail() abstracts
  * whether the mail text comes from an administrator setting or is
  * static in the source code. It should also deal with common mail tokens,
- * only receiving $params which are unique to the actual e-mail at hand.
+ * only receiving $params which are unique to the actual email at hand.
  *
  * An example:
  *
@@ -85,23 +85,23 @@
  *   called to complete the $message structure which will already contain common
  *   defaults.
  * @param string $key
- *   A key to identify the e-mail sent. The final message ID for e-mail altering
+ *   A key to identify the email sent. The final message ID for email altering
  *   will be {$module}_{$key}.
  * @param string $to
- *   The e-mail address or addresses where the message will be sent to. The
+ *   The email address or addresses where the message will be sent to. The
  *   formatting of this string will be validated with the
- *   @link http://php.net/manual/filter.filters.validate.php PHP e-mail validation filter. @endlink
+ *   @link http://php.net/manual/filter.filters.validate.php PHP email validation filter. @endlink
  *   Some examples are:
  *   - user@example.com
  *   - user@example.com, anotheruser@example.com
  *   - User <user@example.com>
  *   - User <user@example.com>, Another User <anotheruser@example.com>
  * @param string $langcode
- *   Language code to use to compose the e-mail.
+ *   Language code to use to compose the email.
  * @param array $params
- *   (optional) Parameters to build the e-mail.
+ *   (optional) Parameters to build the email.
  * @param string|null $reply
- *   Optional e-mail address to be used to answer.
+ *   Optional email address to be used to answer.
  * @param bool $send
  *   If TRUE, drupal_mail() will call drupal_mail_system()->mail() to deliver
  *   the message, and store the result in $message['result']. Modules
@@ -111,7 +111,7 @@
  * @return
  *   The $message array structure containing all details of the
  *   message. If already sent ($send = TRUE), then the 'result' element
- *   will contain the success indicator of the e-mail, failure being already
+ *   will contain the success indicator of the email, failure being already
  *   written to the watchdog. (Success means nothing more than the message being
  *   accepted at php-level, which still doesn't guarantee it to be delivered.)
  */
@@ -144,7 +144,7 @@ function drupal_mail($module, $key, $to, $langcode, $params = array(), $reply =
     'Content-Transfer-Encoding' => '8Bit',
     'X-Mailer'                  => 'Drupal'
   );
-  // To prevent e-mail from looking like spam, the addresses in the Sender and
+  // To prevent email from looking like spam, the addresses in the Sender and
   // Return-Path headers should have a domain authorized to use the
   // originating SMTP server.
   $headers['Sender'] = $headers['Return-Path'] = $site_mail;
@@ -154,7 +154,7 @@ function drupal_mail($module, $key, $to, $langcode, $params = array(), $reply =
   }
   $message['headers'] = $headers;
 
-  // Build the e-mail (get subject and body, allow additional headers) by
+  // Build the email (get subject and body, allow additional headers) by
   // invoking hook_mail() on this module. We cannot use
   // moduleHandler()->invoke() as we need to have $message by reference in
   // hook_mail().
@@ -162,7 +162,7 @@ function drupal_mail($module, $key, $to, $langcode, $params = array(), $reply =
     $function($key, $message, $params);
   }
 
-  // Invoke hook_mail_alter() to allow all modules to alter the resulting e-mail.
+  // Invoke hook_mail_alter() to allow all modules to alter the resulting email.
   \Drupal::moduleHandler()->alter('mail', $message);
 
   // Retrieve the responsible implementation for this message.
@@ -171,7 +171,7 @@ function drupal_mail($module, $key, $to, $langcode, $params = array(), $reply =
   // Format the message body.
   $message = $system->format($message);
 
-  // Optionally send e-mail.
+  // Optionally send email.
   if ($send) {
     // The original caller requested sending. Sending was canceled by one or
     // more hook_mail_alter() implementations. We set 'result' to NULL, because
@@ -184,8 +184,8 @@ function drupal_mail($module, $key, $to, $langcode, $params = array(), $reply =
       $message['result'] = $system->mail($message);
       // Log errors.
       if (!$message['result']) {
-        watchdog('mail', 'Error sending e-mail (from %from to %to with reply-to %reply).', array('%from' => $message['from'], '%to' => $message['to'], '%reply' => $message['reply-to'] ? $message['reply-to'] : t('not set')), WATCHDOG_ERROR);
-        drupal_set_message(t('Unable to send e-mail. Contact the site administrator if the problem persists.'), 'error');
+        watchdog('mail', 'Error sending email (from %from to %to with reply-to %reply).', array('%from' => $message['from'], '%to' => $message['to'], '%reply' => $message['reply-to'] ? $message['reply-to'] : t('not set')), WATCHDOG_ERROR);
+        drupal_set_message(t('Unable to send email. Contact the site administrator if the problem persists.'), 'error');
       }
     }
   }
@@ -199,7 +199,7 @@ function drupal_mail($module, $key, $to, $langcode, $params = array(), $reply =
  * @param string $module
  *   The module name which was used by drupal_mail() to invoke hook_mail().
  * @param string $key
- *   A key to identify the e-mail sent. The final message ID for the e-mail
+ *   A key to identify the email sent. The final message ID for the email
  *   alter hook in drupal_mail() would have been {$module}_{$key}.
  *
  * @return \Drupal\Core\Mail\MailInterface
@@ -448,7 +448,7 @@ function drupal_html_to_text($string, $allowed_tags = NULL) {
  * Note that we are skipping MIME content header lines, because attached files,
  * especially applications, could have long MIME types or long filenames which
  * result in line length longer than the 77 characters limit and wrapping that
- * line will break the e-mail format. E.g., the attached file hello_drupal.docx
+ * line will break the email format. E.g., the attached file hello_drupal.docx
  * will produce the following Content-Type:
  * Content-Type:
  * application/vnd.openxmlformats-officedocument.wordprocessingml.document;
diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/EmailItem.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/EmailItem.php
index 6e84507..09c36b4 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/EmailItem.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldType/EmailItem.php
@@ -16,8 +16,8 @@
  *
  * @FieldType(
  *   id = "email",
- *   label = @Translation("E-mail"),
- *   description = @Translation("An entity field containing an e-mail value."),
+ *   label = @Translation("Email"),
+ *   description = @Translation("An entity field containing an email value."),
  *   default_widget = "email_default",
  *   default_formatter = "string"
  * )
@@ -29,7 +29,7 @@ class EmailItem extends FieldItemBase {
    */
   public static function propertyDefinitions(FieldStorageDefinitionInterface $field_definition) {
     $properties['value'] = DataDefinition::create('email')
-      ->setLabel(t('E-mail value'));
+      ->setLabel(t('Email value'));
 
     return $properties;
   }
@@ -60,7 +60,7 @@ public function getConstraints() {
       'value' => array(
         'Length' => array(
           'max' => EMAIL_MAX_LENGTH,
-          'maxMessage' => t('%name: the e-mail address can not be longer than @max characters.', array('%name' => $this->getFieldDefinition()->getLabel(), '@max' => EMAIL_MAX_LENGTH)),
+          'maxMessage' => t('%name: the email address can not be longer than @max characters.', array('%name' => $this->getFieldDefinition()->getLabel(), '@max' => EMAIL_MAX_LENGTH)),
         )
       ),
     ));
diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/EmailDefaultWidget.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/EmailDefaultWidget.php
index 889fbab..15bc2cc 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/EmailDefaultWidget.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldWidget/EmailDefaultWidget.php
@@ -15,7 +15,7 @@
  *
  * @FieldWidget(
  *   id = "email_default",
- *   label = @Translation("E-mail"),
+ *   label = @Translation("Email"),
  *   field_types = {
  *     "email"
  *   }
diff --git a/core/lib/Drupal/Core/Installer/Form/SiteConfigureForm.php b/core/lib/Drupal/Core/Installer/Form/SiteConfigureForm.php
index 188dbbd..c2a6492 100644
--- a/core/lib/Drupal/Core/Installer/Form/SiteConfigureForm.php
+++ b/core/lib/Drupal/Core/Installer/Form/SiteConfigureForm.php
@@ -135,9 +135,9 @@ public function buildForm(array $form, array &$form_state) {
     );
     $form['site_information']['site_mail'] = array(
       '#type' => 'email',
-      '#title' => $this->t('Site e-mail address'),
+      '#title' => $this->t('Site email address'),
       '#default_value' => ini_get('sendmail_from'),
-      '#description' => $this->t("Automated e-mails, such as registration information, will be sent from this address. Use an address ending in your site's domain to help prevent these e-mails from being flagged as spam."),
+      '#description' => $this->t("Automated emails, such as registration information, will be sent from this address. Use an address ending in your site's domain to help prevent these emails from being flagged as spam."),
       '#required' => TRUE,
       '#weight' => -15,
     );
@@ -149,7 +149,7 @@ public function buildForm(array $form, array &$form_state) {
     $form['admin_account']['account']['#tree'] = TRUE;
     $form['admin_account']['account']['mail'] = array(
       '#type' => 'email',
-      '#title' => $this->t('E-mail address'),
+      '#title' => $this->t('Email address'),
       '#required' => TRUE,
     );
     $form['admin_account']['account']['name'] = array(
@@ -160,6 +160,12 @@ public function buildForm(array $form, array &$form_state) {
       '#required' => TRUE,
       '#attributes' => array('class' => array('username')),
     );
+    $form['admin_account']['account']['mail'] = array(
+      '#type' => 'email',
+      '#title' => $this->t('Email address'),
+      '#required' => TRUE,
+      '#weight' => -5,
+    );
     $form['admin_account']['account']['pass'] = array(
       '#type' => 'password_confirm',
       '#required' => TRUE,
@@ -199,7 +205,7 @@ public function buildForm(array $form, array &$form_state) {
       '#title' => $this->t('Update notifications'),
       '#options' => array(
         1 => $this->t('Check for updates automatically'),
-        2 => $this->t('Receive e-mail notifications'),
+        2 => $this->t('Receive email notifications'),
       ),
       '#default_value' => array(1, 2),
       '#description' => $this->t('The system will notify you when updates and important security releases are available for installed components. Anonymous information about your site is sent to <a href="@drupal">Drupal.org</a>.', array('@drupal' => 'http://drupal.org')),
diff --git a/core/lib/Drupal/Core/Mail/MailInterface.php b/core/lib/Drupal/Core/Mail/MailInterface.php
index 62a6319..f78c312 100644
--- a/core/lib/Drupal/Core/Mail/MailInterface.php
+++ b/core/lib/Drupal/Core/Mail/MailInterface.php
@@ -36,20 +36,20 @@ public function format(array $message);
    *
    * @param array $message
    *   Message array with at least the following elements:
-   *   - id: A unique identifier of the e-mail type. Examples: 'contact_user_copy',
+   *   - id: A unique identifier of the email type. Examples: 'contact_user_copy',
    *     'user_password_reset'.
    *   - to: The mail address or addresses where the message will be sent to.
    *     The formatting of this string will be validated with the
-   *     @link http://php.net/manual/filter.filters.validate.php PHP e-mail validation filter. @endlink
+   *     @link http://php.net/manual/filter.filters.validate.php PHP email validation filter. @endlink
    *     Some examples:
    *     - user@example.com
    *     - user@example.com, anotheruser@example.com
    *     - User <user@example.com>
    *     - User <user@example.com>, Another User <anotheruser@example.com>
-   *   - subject: Subject of the e-mail to be sent. This must not contain any
+   *   - subject: Subject of the email to be sent. This must not contain any
    *     newline characters, or the mail may not be sent properly.
    *   - body: Message to be sent. Accepts both CRLF and LF line-endings.
-   *     E-mail bodies must be wrapped. You can use drupal_wrap_mail() for
+   *     Email bodies must be wrapped. You can use drupal_wrap_mail() for
    *     smart plain text wrapping.
    *   - headers: Associative array containing all additional mail headers not
    *     defined by one of the other parameters.  PHP's mail() looks for Cc and
diff --git a/core/lib/Drupal/Core/Mail/Plugin/Mail/PhpMail.php b/core/lib/Drupal/Core/Mail/Plugin/Mail/PhpMail.php
index 8662d0f..f3d7aaf 100644
--- a/core/lib/Drupal/Core/Mail/Plugin/Mail/PhpMail.php
+++ b/core/lib/Drupal/Core/Mail/Plugin/Mail/PhpMail.php
@@ -22,7 +22,7 @@
 class PhpMail implements MailInterface {
 
   /**
-   * Concatenates and wraps the e-mail body for plain-text mails.
+   * Concatenates and wraps the email body for plain-text mails.
    *
    * @param array $message
    *   A message array, as described in hook_mail_alter().
@@ -42,7 +42,7 @@ public function format(array $message) {
   }
 
   /**
-   * Sends an e-mail message.
+   * Sends an email message.
    *
    * @param array $message
    *   A message array, as described in hook_mail_alter().
@@ -70,7 +70,7 @@ public function mail(array $message) {
     $line_endings = Settings::get('mail_line_endings', PHP_EOL);
     // Prepare mail commands.
     $mail_subject = mime_header_encode($message['subject']);
-    // Note: e-mail uses CRLF for line-endings. PHP's API requires LF
+    // Note: email uses CRLF for line-endings. PHP's API requires LF
     // on Unix and CRLF on Windows. Drupal automatically guesses the
     // line-ending format appropriate for your system. If you need to
     // override this, adjust $settings['mail_line_endings'] in settings.php.
diff --git a/core/lib/Drupal/Core/Session/AccountInterface.php b/core/lib/Drupal/Core/Session/AccountInterface.php
index b56fe9b..93d5969 100644
--- a/core/lib/Drupal/Core/Session/AccountInterface.php
+++ b/core/lib/Drupal/Core/Session/AccountInterface.php
@@ -130,10 +130,10 @@ public function getPreferredAdminLangcode($default = NULL);
   public function getUsername();
 
   /**
-   * Returns the e-mail address of this account.
+   * Returns the email address of this account.
    *
    * @return string
-   *   The e-mail address.
+   *   The email address.
    */
   public function getEmail();
 
diff --git a/core/lib/Drupal/Core/Session/UserSession.php b/core/lib/Drupal/Core/Session/UserSession.php
index 704fc79..792f2ad 100644
--- a/core/lib/Drupal/Core/Session/UserSession.php
+++ b/core/lib/Drupal/Core/Session/UserSession.php
@@ -80,7 +80,7 @@ class UserSession implements AccountInterface {
   protected $preferred_admin_langcode;
 
   /**
-   * The e-mail address of this account.
+   * The email address of this account.
    *
    * @var string
    */
diff --git a/core/lib/Drupal/Core/Validation/ConstraintManager.php b/core/lib/Drupal/Core/Validation/ConstraintManager.php
index 54d2b4f..612070c 100644
--- a/core/lib/Drupal/Core/Validation/ConstraintManager.php
+++ b/core/lib/Drupal/Core/Validation/ConstraintManager.php
@@ -102,7 +102,7 @@ public function registerDefinitions() {
       'type' => FALSE,
     ));
     $this->discovery->setDefinition('Email', array(
-      'label' => t('E-mail'),
+      'label' => t('Email'),
       'class' => '\Symfony\Component\Validator\Constraints\Email',
       'type' => array('string'),
     ));
diff --git a/core/modules/action/action.module b/core/modules/action/action.module
index 80c513b..35a91b2 100644
--- a/core/modules/action/action.module
+++ b/core/modules/action/action.module
@@ -15,18 +15,18 @@ function action_help($route_name, Request $request) {
     case 'help.page.action':
       $output = '';
       $output .= '<h3>' . t('About') . '</h3>';
-      $output .= '<p>' . t('The Action module provides tasks that can be executed by the site such as unpublishing content, sending e-mail messages, or blocking a user. Other modules can trigger these actions when specific system events happen; for example, when new content is posted or when a user logs in. Modules can also provide additional actions. For more information, see the <a href="!documentation">online documentation for the Action module</a>.', array('!documentation' => 'https://drupal.org/documentation/modules/action')) . '</p>';
+      $output .= '<p>' . t('The Action module provides tasks that can be executed by the site such as unpublishing content, sending email messages, or blocking a user. Other modules can trigger these actions when specific system events happen; for example, when new content is posted or when a user logs in. Modules can also provide additional actions. For more information, see the <a href="!documentation">online documentation for the Action module</a>.', array('!documentation' => 'https://drupal.org/documentation/modules/action')) . '</p>';
       $output .= '<h3>' . t('Uses') . '</h3>';
       $output .= '<dl>';
       $output .= '<dt>' . t('Using simple actions') . '</dt>';
       $output .= '<dd>' . t('<em>Simple actions</em> do not require configuration and are listed automatically as available on the <a href="!actions">Actions page</a>.', array('!actions' => \Drupal::url('action.admin'))) . '</dd>';
       $output .= '<dt>' . t('Creating and configuring advanced actions') . '</dt>';
-      $output .= '<dd>' . t('<em>Advanced actions</em> are user-created and have to be configured individually. Create an advanced action on the <a href="!actions">Actions page</a> by selecting an action type from the drop-down list. Then configure your action, for example by specifying the recipient of an automated e-mail message.', array('!actions' => \Drupal::url('action.admin'))) . '</dd>';
+      $output .= '<dd>' . t('<em>Advanced actions</em> are user-created and have to be configured individually. Create an advanced action on the <a href="!actions">Actions page</a> by selecting an action type from the drop-down list. Then configure your action, for example by specifying the recipient of an automated email message.', array('!actions' => \Drupal::url('action.admin'))) . '</dd>';
       $output .= '</dl>';
       return $output;
 
     case 'action.admin':
-      $output = '<p>' . t('There are two types of actions: simple and advanced. Simple actions do not require any additional configuration and are listed here automatically. Advanced actions need to be created and configured before they can be used because they have options that need to be specified; for example, sending an e-mail to a specified address or unpublishing content containing certain words. To create an advanced action, select the action from the drop-down list in the advanced action section below and click the <em>Create</em> button.') . '</p>';
+      $output = '<p>' . t('There are two types of actions: simple and advanced. Simple actions do not require any additional configuration and are listed here automatically. Advanced actions need to be created and configured before they can be used because they have options that need to be specified; for example, sending an email to a specified address or unpublishing content containing certain words. To create an advanced action, select the action from the drop-down list in the advanced action section below and click the <em>Create</em> button.') . '</p>';
       return $output;
 
     case 'action.admin_configure':
diff --git a/core/modules/action/config/schema/action.schema.yml b/core/modules/action/config/schema/action.schema.yml
index 04cec7e..cd4e02c 100644
--- a/core/modules/action/config/schema/action.schema.yml
+++ b/core/modules/action/config/schema/action.schema.yml
@@ -11,7 +11,7 @@ action.settings:
 
 action.configuration.action_send_email_action:
   type: mapping
-  label: 'Send e-mail configuration'
+  label: 'Send email configuration'
   mapping:
     recipient:
       type: string
diff --git a/core/modules/action/lib/Drupal/action/Plugin/Action/EmailAction.php b/core/modules/action/lib/Drupal/action/Plugin/Action/EmailAction.php
index 3342fc3..c6589a6 100644
--- a/core/modules/action/lib/Drupal/action/Plugin/Action/EmailAction.php
+++ b/core/modules/action/lib/Drupal/action/Plugin/Action/EmailAction.php
@@ -14,11 +14,11 @@
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
- * Sends an e-mail message.
+ * Sends an email message.
  *
  * @Action(
  *   id = "action_send_email_action",
- *   label = @Translation("Send e-mail"),
+ *   label = @Translation("Send email"),
  *   type = "system"
  * )
  */
@@ -120,7 +120,7 @@ public function buildConfigurationForm(array $form, array &$form_state) {
       '#title' => t('Recipient'),
       '#default_value' => $this->configuration['recipient'],
       '#maxlength' => '254',
-      '#description' => t('The e-mail address to which the message should be sent OR enter [node:author:mail], [comment:author:mail], etc. if you would like to send an e-mail to the author of the original post.'),
+      '#description' => t('The email address to which the message should be sent OR enter [node:author:mail], [comment:author:mail], etc. if you would like to send an email to the author of the original post.'),
     );
     $form['subject'] = array(
       '#type' => 'textfield',
@@ -146,7 +146,7 @@ public function buildConfigurationForm(array $form, array &$form_state) {
   public function validateConfigurationForm(array &$form, array &$form_state) {
     if (!valid_email_address($form_state['values']['recipient']) && strpos($form_state['values']['recipient'], ':mail') === FALSE) {
       // We want the literal %author placeholder to be emphasized in the error message.
-      form_set_error('recipient', $form_state, t('Enter a valid email address or use a token e-mail address such as %author.', array('%author' => '[node:author:mail]')));
+      form_set_error('recipient', $form_state, t('Enter a valid email address or use a token email address such as %author.', array('%author' => '[node:author:mail]')));
     }
   }
 
diff --git a/core/modules/ckeditor/js/plugins/drupallink/plugin.js b/core/modules/ckeditor/js/plugins/drupallink/plugin.js
index 142d74a..541aaf9 100644
--- a/core/modules/ckeditor/js/plugins/drupallink/plugin.js
+++ b/core/modules/ckeditor/js/plugins/drupallink/plugin.js
@@ -52,7 +52,7 @@
 
               // Use link URL as text with a collapsed cursor.
               if (range.collapsed) {
-                // Shorten mailto URLs to just the e-mail address.
+                // Shorten mailto URLs to just the email address.
                 var text = new CKEDITOR.dom.text(returnValues.attributes.href.replace(/^mailto:/, ''), editor.document);
                 range.insertNode(text);
                 range.selectNodeContents(text);
diff --git a/core/modules/comment/comment.install b/core/modules/comment/comment.install
index 40fb1a0..f0bd70b 100644
--- a/core/modules/comment/comment.install
+++ b/core/modules/comment/comment.install
@@ -131,7 +131,7 @@ function comment_schema() {
         'type' => 'varchar',
         'length' => 64,
         'not null' => FALSE,
-        'description' => "The comment author's e-mail address from the comment form, if user is anonymous, and the 'Anonymous users may/must leave their contact information' setting is turned on.",
+        'description' => "The comment author's email address from the comment form, if user is anonymous, and the 'Anonymous users may/must leave their contact information' setting is turned on.",
       ),
       'homepage' => array(
         'type' => 'varchar',
diff --git a/core/modules/comment/comment.views.inc b/core/modules/comment/comment.views.inc
index 6429f28..dddf7ef 100644
--- a/core/modules/comment/comment.views.inc
+++ b/core/modules/comment/comment.views.inc
@@ -109,8 +109,8 @@ function comment_views_data() {
   );
 
   $data['comment']['mail'] = array(
-    'title' => t('E-mail'),
-    'help' => t('E-mail of user that posted the comment. Will be empty if the author is a registered user.'),
+    'title' => t('Email'),
+    'help' => t('Email of user that posted the comment. Will be empty if the author is a registered user.'),
     'field' => array(
       'id' => 'standard',
     ),
diff --git a/core/modules/comment/lib/Drupal/comment/CommentForm.php b/core/modules/comment/lib/Drupal/comment/CommentForm.php
index 6fd7ff6..48a968e 100644
--- a/core/modules/comment/lib/Drupal/comment/CommentForm.php
+++ b/core/modules/comment/lib/Drupal/comment/CommentForm.php
@@ -158,10 +158,10 @@ public function form(array $form, array &$form_state) {
       $form['author']['name']['#account'] = $this->currentUser;
     }
 
-    // Add author e-mail and homepage fields depending on the current user.
+    // Add author email and homepage fields depending on the current user.
     $form['author']['mail'] = array(
       '#type' => 'email',
-      '#title' => $this->t('E-mail'),
+      '#title' => $this->t('Email'),
       '#default_value' => $comment->getAuthorEmail(),
       '#required' => ($this->currentUser->isAnonymous() && $anonymous_contact == COMMENT_ANONYMOUS_MUST_CONTACT),
       '#maxlength' => 64,
diff --git a/core/modules/comment/lib/Drupal/comment/CommentInterface.php b/core/modules/comment/lib/Drupal/comment/CommentInterface.php
index 48af294..347b1f6 100644
--- a/core/modules/comment/lib/Drupal/comment/CommentInterface.php
+++ b/core/modules/comment/lib/Drupal/comment/CommentInterface.php
@@ -135,12 +135,12 @@ public function getAuthorName();
   public function setAuthorName($name);
 
   /**
-   * Returns the comment author's e-mail address.
+   * Returns the comment author's email address.
    *
    * For anonymous authors, this is the value as typed in the comment form.
    *
    * @return string
-   *   The e-mail address of the author of the comment.
+   *   The email address of the author of the comment.
    */
   public function getAuthorEmail();
 
diff --git a/core/modules/comment/lib/Drupal/comment/Entity/Comment.php b/core/modules/comment/lib/Drupal/comment/Entity/Comment.php
index de10346..3e52c15 100644
--- a/core/modules/comment/lib/Drupal/comment/Entity/Comment.php
+++ b/core/modules/comment/lib/Drupal/comment/Entity/Comment.php
@@ -249,7 +249,7 @@ public static function baseFieldDefinitions(EntityTypeInterface $entity_type) {
 
     $fields['mail'] = FieldDefinition::create('email')
       ->setLabel(t('Email'))
-      ->setDescription(t("The comment author's e-mail address."));
+      ->setDescription(t("The comment author's email address."));
 
     $fields['homepage'] = FieldDefinition::create('uri')
       ->setLabel(t('Homepage'))
diff --git a/core/modules/comment/lib/Drupal/comment/Tests/CommentAnonymousTest.php b/core/modules/comment/lib/Drupal/comment/Tests/CommentAnonymousTest.php
index f71619b..03b88db 100644
--- a/core/modules/comment/lib/Drupal/comment/Tests/CommentAnonymousTest.php
+++ b/core/modules/comment/lib/Drupal/comment/Tests/CommentAnonymousTest.php
@@ -86,7 +86,7 @@ function testAnonymous() {
 
     $anonymous_comment3 = $this->postComment($this->node, $this->randomName(), $this->randomName(), TRUE);
     // Name should have 'Anonymous' for value by default.
-    $this->assertText(t('E-mail field is required.'), 'E-mail required.');
+    $this->assertText(t('Email field is required.'), 'Email required.');
     $this->assertFalse($this->commentExists($anonymous_comment3), 'Anonymous comment with contact info (required) not found.');
 
     // Post comment with contact info (required).
@@ -99,7 +99,7 @@ function testAnonymous() {
     $this->drupalLogin($this->admin_user);
     $this->drupalGet('comment/' . $anonymous_comment3->id() . '/edit');
     $this->assertRaw($author_name, "The anonymous user's name is correct when editing the comment.");
-    $this->assertRaw($author_mail, "The anonymous user's e-mail address is correct when editing the comment.");
+    $this->assertRaw($author_mail, "The anonymous user's email address is correct when editing the comment.");
 
     // Unpublish comment.
     $this->performCommentOperation($anonymous_comment3, 'unpublish');
diff --git a/core/modules/contact/config/schema/contact.schema.yml b/core/modules/contact/config/schema/contact.schema.yml
index c853697..9d64f94 100644
--- a/core/modules/contact/config/schema/contact.schema.yml
+++ b/core/modules/contact/config/schema/contact.schema.yml
@@ -18,7 +18,7 @@ contact.category.*:
       label: 'Recipients'
       sequence:
         - type: email
-          label: 'E-mail address'
+          label: 'Email address'
     reply:
       type: text
       label: 'Auto-reply'
diff --git a/core/modules/contact/contact.module b/core/modules/contact/contact.module
index 4f4edae..812c6df 100644
--- a/core/modules/contact/contact.module
+++ b/core/modules/contact/contact.module
@@ -14,13 +14,13 @@ function contact_help($route_name, Request $request) {
     case 'help.page.contact':
       $output = '';
       $output .= '<h3>' . t('About') . '</h3>';
-      $output .= '<p>' . t('The Contact module allows visitors to contact site administrators and other users. Users specify a subject, write their message, and can have a copy of their message sent to their own e-mail address. For more information, see the online handbook entry for <a href="@contact">Contact module</a>.', array('@contact' => 'http://drupal.org/documentation/modules/contact')) . '</p>';
+      $output .= '<p>' . t('The Contact module allows visitors to contact site administrators and other users. Users specify a subject, write their message, and can have a copy of their message sent to their own email address. For more information, see the online handbook entry for <a href="@contact">Contact module</a>.', array('@contact' => 'http://drupal.org/documentation/modules/contact')) . '</p>';
       $output .= '<h3>' . t('Uses') . '</h3>';
       $output .= '<dl>';
       $output .= '<dt>' . t('User contact forms') . '</dt>';
-      $output .= '<dd>' . t('Site users can be contacted with a user contact form that keeps their e-mail address private. Users may enable or disable their personal contact forms by editing their <em>My account</em> page. If enabled, a <em>Contact</em> tab leads to a personal contact form displayed on their user profile. Site administrators are still able to use the contact form, even if has been disabled. The <em>Contact</em> tab is not shown when you view your own profile.') . '</dd>';
+      $output .= '<dd>' . t('Site users can be contacted with a user contact form that keeps their email address private. Users may enable or disable their personal contact forms by editing their <em>My account</em> page. If enabled, a <em>Contact</em> tab leads to a personal contact form displayed on their user profile. Site administrators are still able to use the contact form, even if has been disabled. The <em>Contact</em> tab is not shown when you view your own profile.') . '</dd>';
       $output .= '<dt>' . t('Site-wide contact forms') . '</dt>';
-      $output .= '<dd>' . t('The <a href="@contact">Contact page</a> provides a simple form for users with the <em>Use the site-wide contact form</em> permission to send comments, feedback, or other requests. You can create categories for directing the contact form messages to a set of defined recipients. Common categories for a business site, for example, might include "Website feedback" (messages are forwarded to website administrators) and "Product information" (messages are forwarded to members of the sales department). E-mail addresses defined within a category are not displayed publicly.', array('@contact' => url('contact'))) . '</p>';
+      $output .= '<dd>' . t('The <a href="@contact">Contact page</a> provides a simple form for users with the <em>Use the site-wide contact form</em> permission to send comments, feedback, or other requests. You can create categories for directing the contact form messages to a set of defined recipients. Common categories for a business site, for example, might include "Website feedback" (messages are forwarded to website administrators) and "Product information" (messages are forwarded to members of the sales department). Email addresses defined within a category are not displayed publicly.', array('@contact' => url('contact'))) . '</p>';
       $output .= '<dt>' . t('Navigation') . '</dt>';
       $output .= '<dd>' . t('When the site-wide contact form is enabled, a link in the <em>Footer</em> menu is created, which you can modify on the <a href="@menu">Menus administration page</a>.', array('@menu' => url('admin/structure/menu'))) . '</dd>';
       $output .= '<dt>' . t('Customization') . '</dt>';
@@ -73,8 +73,8 @@ function contact_entity_extra_field_info() {
       'weight' => -50,
     );
     $fields['contact_message'][$bundle]['form']['mail'] = array(
-      'label' => t('Sender e-mail'),
-      'description' => t('E-mail'),
+      'label' => t('Sender email'),
+      'description' => t('Email'),
       'weight' => -40,
     );
     if ($bundle == 'personal') {
@@ -163,7 +163,7 @@ function contact_mail($key, &$message, $params) {
       $message['subject'] .= t('[!site-name] !subject', $variables, $options);
       $message['body'][] = t('Hello !recipient-name,', $variables, $options);
       $message['body'][] = t("!sender-name (!sender-url) has sent you a message via your contact form at !site-name.", $variables, $options);
-      $message['body'][] = t("If you don't want to receive such e-mails, you can change your settings at !recipient-edit-url.", $variables, $options);
+      $message['body'][] = t("If you don't want to receive such emails, you can change your settings at !recipient-edit-url.", $variables, $options);
       $build = entity_view($contact_message, 'mail', $language->id);
       $message['body'][] = drupal_render($build);
       break;
@@ -192,7 +192,7 @@ function contact_form_user_form_alter(&$form, &$form_state) {
     '#type' => 'checkbox',
     '#title' => t('Personal contact form'),
     '#default_value' => isset($account_data) ? $account_data : \Drupal::config('contact.settings')->get('user_default_enabled'),
-    '#description' => t('Allow other users to contact you via a personal contact form which keeps your e-mail address hidden. Note that some privileged users such as site administrators are still able to contact you even if you choose to disable this feature.'),
+    '#description' => t('Allow other users to contact you via a personal contact form which keeps your email address hidden. Note that some privileged users such as site administrators are still able to contact you even if you choose to disable this feature.'),
   );
   $form['actions']['submit']['#submit'][] = 'contact_user_profile_form_submit';
 }
diff --git a/core/modules/contact/lib/Drupal/contact/CategoryForm.php b/core/modules/contact/lib/Drupal/contact/CategoryForm.php
index 14c893d..2147698 100644
--- a/core/modules/contact/lib/Drupal/contact/CategoryForm.php
+++ b/core/modules/contact/lib/Drupal/contact/CategoryForm.php
@@ -45,7 +45,7 @@ public function form(array $form, array &$form_state) {
       '#type' => 'textarea',
       '#title' => t('Recipients'),
       '#default_value' => implode(', ', $category->recipients),
-      '#description' => t("Example: 'webmaster@example.com' or 'sales@example.com,support@example.com' . To specify multiple recipients, separate each e-mail address with a comma."),
+      '#description' => t("Example: 'webmaster@example.com' or 'sales@example.com,support@example.com' . To specify multiple recipients, separate each email address with a comma."),
       '#required' => TRUE,
     );
     $form['reply'] = array(
@@ -80,13 +80,13 @@ public function form(array $form, array &$form_state) {
   public function validate(array $form, array &$form_state) {
     parent::validate($form, $form_state);
 
-    // Validate and each e-mail recipient.
+    // Validate and each email recipient.
     $recipients = explode(',', $form_state['values']['recipients']);
 
     foreach ($recipients as &$recipient) {
       $recipient = trim($recipient);
       if (!valid_email_address($recipient)) {
-        $this->setFormError('recipients', $form_state, $this->t('%recipient is an invalid e-mail address.', array('%recipient' => $recipient)));
+        $this->setFormError('recipients', $form_state, $this->t('%recipient is an invalid email address.', array('%recipient' => $recipient)));
       }
     }
     $form_state['values']['recipients'] = $recipients;
diff --git a/core/modules/contact/lib/Drupal/contact/Controller/ContactController.php b/core/modules/contact/lib/Drupal/contact/Controller/ContactController.php
index 4c7a58e..d5db7e3 100644
--- a/core/modules/contact/lib/Drupal/contact/Controller/ContactController.php
+++ b/core/modules/contact/lib/Drupal/contact/Controller/ContactController.php
@@ -61,7 +61,7 @@ public static function create(ContainerInterface $container) {
    *   contact category form.
    */
   public function contactSitePage(CategoryInterface $contact_category = NULL) {
-    // Check if flood control has been activated for sending e-mails.
+    // Check if flood control has been activated for sending emails.
     if (!$this->currentUser()->hasPermission('administer contact forms')) {
       $this->contactFloodControl();
     }
@@ -105,7 +105,7 @@ public function contactSitePage(CategoryInterface $contact_category = NULL) {
    *   The personal contact form as render array as expected by drupal_render().
    */
   public function contactPersonalPage(UserInterface $user) {
-    // Check if flood control has been activated for sending e-mails.
+    // Check if flood control has been activated for sending emails.
     if (!$this->currentUser()->hasPermission('administer contact forms') && !$this->currentUser()->hasPermission('administer users')) {
       $this->contactFloodControl();
     }
diff --git a/core/modules/contact/lib/Drupal/contact/Entity/Category.php b/core/modules/contact/lib/Drupal/contact/Entity/Category.php
index 83c2963..cc0e6d8 100644
--- a/core/modules/contact/lib/Drupal/contact/Entity/Category.php
+++ b/core/modules/contact/lib/Drupal/contact/Entity/Category.php
@@ -57,7 +57,7 @@ class Category extends ConfigEntityBundleBase implements CategoryInterface {
   public $label;
 
   /**
-   * List of recipient e-mail addresses.
+   * List of recipient email addresses.
    *
    * @var array
    */
diff --git a/core/modules/contact/lib/Drupal/contact/MessageForm.php b/core/modules/contact/lib/Drupal/contact/MessageForm.php
index 401291e..37ca42e 100644
--- a/core/modules/contact/lib/Drupal/contact/MessageForm.php
+++ b/core/modules/contact/lib/Drupal/contact/MessageForm.php
@@ -83,14 +83,14 @@ public function form(array $form, array &$form_state) {
     );
     $form['mail'] = array(
       '#type' => 'email',
-      '#title' => t('Your e-mail address'),
+      '#title' => t('Your email address'),
       '#required' => TRUE,
     );
     if ($user->isAnonymous()) {
       $form['#attached']['library'][] = 'core/jquery.cookie';
       $form['#attributes']['class'][] = 'user-info-from-cookie';
     }
-    // Do not allow authenticated users to alter the name or e-mail values to
+    // Do not allow authenticated users to alter the name or email values to
     // prevent the impersonation of other users.
     else {
       $form['name']['#type'] = 'item';
@@ -185,12 +185,12 @@ public function save(array $form, array &$form_state) {
       $sender->mail = $message->getSenderMail();
       // Save the anonymous user information to a cookie for reuse.
       user_cookie_save(array('name' => $message->getSenderName(), 'mail' => $message->getSenderMail()));
-      // For the e-mail message, clarify that the sender name is not verified; it
+      // For the email message, clarify that the sender name is not verified; it
       // could potentially clash with a username on this site.
       $sender->name = t('!name (not verified)', array('!name' => $message->getSenderName()));
     }
 
-    // Build e-mail parameters.
+    // Build email parameters.
     $params['contact_message'] = $message;
     $params['sender'] = $sender;
 
@@ -212,7 +212,7 @@ public function save(array $form, array &$form_state) {
       throw new \RuntimeException(t('Unable to determine message recipient.'));
     }
 
-    // Send e-mail to the recipient(s).
+    // Send email to the recipient(s).
     $key_prefix = $message->isPersonal() ? 'user' : 'page';
     drupal_mail('contact', $key_prefix . '_mail', $to, $recipient_langcode, $params, $sender->getEmail());
 
@@ -231,14 +231,14 @@ public function save(array $form, array &$form_state) {
     $config = $this->config('contact.settings');
     $this->flood->register('contact', $config->get('flood.interval'));
     if (!$message->isPersonal()) {
-      watchdog('contact', '%sender-name (@sender-from) sent an e-mail regarding %category.', array(
+      watchdog('contact', '%sender-name (@sender-from) sent an email regarding %category.', array(
         '%sender-name' => $sender->getUsername(),
         '@sender-from' => $sender->getEmail(),
         '%category' => $category->label(),
       ));
     }
     else {
-      watchdog('contact', '%sender-name (@sender-from) sent %recipient-name an e-mail.', array(
+      watchdog('contact', '%sender-name (@sender-from) sent %recipient-name an email.', array(
         '%sender-name' => $sender->getUsername(),
         '@sender-from' => $sender->getEmail(),
         '%recipient-name' => $message->getPersonalRecipient()->getUsername(),
diff --git a/core/modules/contact/lib/Drupal/contact/MessageInterface.php b/core/modules/contact/lib/Drupal/contact/MessageInterface.php
index f4efb1c..b73bd2d 100644
--- a/core/modules/contact/lib/Drupal/contact/MessageInterface.php
+++ b/core/modules/contact/lib/Drupal/contact/MessageInterface.php
@@ -39,18 +39,18 @@ public function getSenderName();
   public function setSenderName($sender_name);
 
   /**
-   * Returns the e-mail address of the sender.
+   * Returns the email address of the sender.
    *
    * @return string
-   *   The e-mail address of the message sender.
+   *   The email address of the message sender.
    */
   public function getSenderMail();
 
   /**
-   * Sets the e-mail address of the sender.
+   * Sets the email address of the sender.
    *
    * @param string $sender_mail
-   *   The e-mail address of the message sender.
+   *   The email address of the message sender.
    */
   public function setSenderMail($sender_mail);
 
@@ -63,7 +63,7 @@ public function setSenderMail($sender_mail);
   public function getSubject();
 
   /**
-   * Sets the subject for the e-mail.
+   * Sets the subject for the email.
    *
    * @param string $subject
    *   The message subject.
@@ -79,7 +79,7 @@ public function setSubject($subject);
   public function getMessage();
 
   /**
-   * Sets the e-mail message to send.
+   * Sets the email message to send.
    *
    * @param string $message
    *   The message body.
@@ -95,7 +95,7 @@ public function setMessage($message);
   public function copySender();
 
   /**
-   * Sets if the sender should receive a copy of this e-mail or not.
+   * Sets if the sender should receive a copy of this email or not.
    *
    * @param bool $inform
    *   TRUE if a copy should be sent, FALSE if not.
diff --git a/core/modules/contact/lib/Drupal/contact/Tests/ContactPersonalTest.php b/core/modules/contact/lib/Drupal/contact/Tests/ContactPersonalTest.php
index f1df078..dd6c35f 100644
--- a/core/modules/contact/lib/Drupal/contact/Tests/ContactPersonalTest.php
+++ b/core/modules/contact/lib/Drupal/contact/Tests/ContactPersonalTest.php
@@ -97,7 +97,7 @@ function testSendPersonalContactMessage() {
       '@sender_email' => $this->web_user->getEmail(),
       '@recipient_name' => $this->contact_user->getUsername()
     );
-    $this->assertText(String::format('@sender_name (@sender_email) sent @recipient_name an e-mail.', $placeholders));
+    $this->assertText(String::format('@sender_name (@sender_email) sent @recipient_name an email.', $placeholders));
   }
 
   /**
diff --git a/core/modules/contact/lib/Drupal/contact/Tests/ContactSitewideTest.php b/core/modules/contact/lib/Drupal/contact/Tests/ContactSitewideTest.php
index 7813678..17c3f3e 100644
--- a/core/modules/contact/lib/Drupal/contact/Tests/ContactSitewideTest.php
+++ b/core/modules/contact/lib/Drupal/contact/Tests/ContactSitewideTest.php
@@ -100,7 +100,7 @@ function testSiteWideContact() {
     $invalid_recipients = array('invalid', 'invalid@', 'invalid@site.', '@site.', '@site.com');
     foreach ($invalid_recipients as $invalid_recipient) {
       $this->addCategory($this->randomName(16), $this->randomName(16), $invalid_recipient, '', FALSE);
-      $this->assertRaw(t('%recipient is an invalid e-mail address.', array('%recipient' => $invalid_recipient)));
+      $this->assertRaw(t('%recipient is an invalid email address.', array('%recipient' => $invalid_recipient)));
     }
 
     // Test validation of empty category and recipients fields.
@@ -149,7 +149,7 @@ function testSiteWideContact() {
     user_role_grant_permissions(DRUPAL_ANONYMOUS_RID, array('access site-wide contact form'));
     $this->drupalLogout();
     $this->drupalGet('contact');
-    $this->assertText(t('Your e-mail address'));
+    $this->assertText(t('Your email address'));
     $this->assertNoText(t('Category'));
     $this->drupalLogin($admin_user);
 
@@ -186,10 +186,10 @@ function testSiteWideContact() {
     $this->assertText(t('Your name field is required.'));
 
     $this->submitContact($this->randomName(16), '', $this->randomName(16), $id, $this->randomName(64));
-    $this->assertText(t('Your e-mail address field is required.'));
+    $this->assertText(t('Your email address field is required.'));
 
     $this->submitContact($this->randomName(16), $invalid_recipients[0], $this->randomName(16), $id, $this->randomName(64));
-    $this->assertRaw(t('The e-mail address %mail is not valid.', array('%mail' => 'invalid')));
+    $this->assertRaw(t('The email address %mail is not valid.', array('%mail' => 'invalid')));
 
     $this->submitContact($this->randomName(16), $recipients[0], '', $id, $this->randomName(64));
     $this->assertText(t('Subject field is required.'));
@@ -293,7 +293,7 @@ function testAutoReply() {
     $this->addCategory('bar', 'bar', 'bar@example.com', $bar_autoreply, FALSE);
     $this->addCategory('no_autoreply', 'no_autoreply', 'bar@example.com', '', FALSE);
 
-    // Log the current user out in order to test the name and e-mail fields.
+    // Log the current user out in order to test the name and email fields.
     $this->drupalLogout();
     user_role_grant_permissions(DRUPAL_ANONYMOUS_RID, array('access site-wide contact form'));
 
@@ -302,7 +302,7 @@ function testAutoReply() {
     $subject = $this->randomName(64);
     $this->submitContact($this->randomName(16), $email, $subject, 'foo', $this->randomString(128));
 
-    // We are testing the auto-reply, so there should be one e-mail going to the sender.
+    // We are testing the auto-reply, so there should be one email going to the sender.
     $captured_emails = $this->drupalGetMails(array('id' => 'contact_page_autoreply', 'to' => $email));
     $this->assertEqual(count($captured_emails), 1);
     $this->assertEqual(trim($captured_emails[0]['body']), trim(drupal_html_to_text($foo_autoreply)));
@@ -311,7 +311,7 @@ function testAutoReply() {
     $email = $this->randomName(32) . '@example.com';
     $this->submitContact($this->randomName(16), $email, $this->randomString(64), 'bar', $this->randomString(128));
 
-    // Auto-reply for category 'bar' should result in one auto-reply e-mail to the sender.
+    // Auto-reply for category 'bar' should result in one auto-reply email to the sender.
     $captured_emails = $this->drupalGetMails(array('id' => 'contact_page_autoreply', 'to' => $email));
     $this->assertEqual(count($captured_emails), 1);
     $this->assertEqual(trim($captured_emails[0]['body']), trim(drupal_html_to_text($bar_autoreply)));
@@ -331,7 +331,7 @@ function testAutoReply() {
    * @param string $label
    *   The category label.
    * @param string $recipients
-   *   The list of recipient e-mail addresses.
+   *   The list of recipient email addresses.
    * @param string $reply
    *   The auto-reply text that is sent to a user upon completing the contact
    *   form.
@@ -356,7 +356,7 @@ function addCategory($id, $label, $recipients, $reply, $selected) {
    * @param string $label
    *   The category label.
    * @param string $recipients
-   *   The list of recipient e-mail addresses.
+   *   The list of recipient email addresses.
    * @param string $reply
    *   The auto-reply text that is sent to a user upon completing the contact
    *   form.
@@ -378,7 +378,7 @@ function updateCategory($id, $label, $recipients, $reply, $selected) {
    * @param string $name
    *   The name of the sender.
    * @param string $mail
-   *   The e-mail address of the sender.
+   *   The email address of the sender.
    * @param string $subject
    *   The subject of the message.
    * @param string $id
diff --git a/core/modules/field/config/schema/field.schema.yml b/core/modules/field/config/schema/field.schema.yml
index 3871ee2..a6891f0 100644
--- a/core/modules/field/config/schema/field.schema.yml
+++ b/core/modules/field/config/schema/field.schema.yml
@@ -125,13 +125,13 @@ entity_form_display.field.hidden:
 
 field.email.settings:
   type: sequence
-  label: 'E-mail settings'
+  label: 'Email settings'
   sequence:
     - type: string
 
 field.email.instance_settings:
   type: sequence
-  label: 'E-mail settings'
+  label: 'Email settings'
   sequence:
     - type: string
       label: 'Setting'
diff --git a/core/modules/field/lib/Drupal/field/Tests/Email/EmailFieldTest.php b/core/modules/field/lib/Drupal/field/Tests/Email/EmailFieldTest.php
index 4197798..4e16ac0 100644
--- a/core/modules/field/lib/Drupal/field/Tests/Email/EmailFieldTest.php
+++ b/core/modules/field/lib/Drupal/field/Tests/Email/EmailFieldTest.php
@@ -10,7 +10,7 @@
 use Drupal\simpletest\WebTestBase;
 
 /**
- * Tests e-mail field functionality.
+ * Tests email field functionality.
  */
 class EmailFieldTest extends WebTestBase {
 
@@ -37,8 +37,8 @@ class EmailFieldTest extends WebTestBase {
 
   public static function getInfo() {
     return array(
-      'name'  => 'E-mail field',
-      'description'  => 'Tests e-mail field functionality.',
+      'name'  => 'Email field',
+      'description'  => 'Tests email field functionality.',
       'group' => 'Field types',
     );
   }
@@ -55,7 +55,7 @@ function setUp() {
   }
 
   /**
-   * Tests e-mail field.
+   * Tests email field.
    */
   function testEmailField() {
     // Create a field with settings to validate.
@@ -94,7 +94,7 @@ function testEmailField() {
     $this->assertFieldByName("{$field_name}[0][value]", '', 'Widget found.');
     $this->assertRaw('placeholder="example@example.com"');
 
-    // Submit a valid e-mail address and ensure it is accepted.
+    // Submit a valid email address and ensure it is accepted.
     $value = 'test@example.com';
     $edit = array(
       'user_id' => 1,
diff --git a/core/modules/field/lib/Drupal/field/Tests/Email/EmailItemTest.php b/core/modules/field/lib/Drupal/field/Tests/Email/EmailItemTest.php
index 8aa560b..dfeab31 100644
--- a/core/modules/field/lib/Drupal/field/Tests/Email/EmailItemTest.php
+++ b/core/modules/field/lib/Drupal/field/Tests/Email/EmailItemTest.php
@@ -25,7 +25,7 @@ class EmailItemTest extends FieldUnitTestBase {
 
   public static function getInfo() {
     return array(
-      'name' => 'E-mail field item',
+      'name' => 'Email field item',
       'description' => 'Tests the new entity API for the email field type.',
       'group' => 'Field types',
     );
diff --git a/core/modules/field/lib/Drupal/field/Tests/FieldHelpTest.php b/core/modules/field/lib/Drupal/field/Tests/FieldHelpTest.php
index 0f976e0..6eb630e 100644
--- a/core/modules/field/lib/Drupal/field/Tests/FieldHelpTest.php
+++ b/core/modules/field/lib/Drupal/field/Tests/FieldHelpTest.php
@@ -54,7 +54,7 @@ public function testFieldHelp() {
     // Visit the Help page and make sure no warnings or notices are thrown.
     $this->drupalGet('admin/help/field');
 
-    // Enable the Options, E-mail and Field API Test modules.
+    // Enable the Options, Email and Field API Test modules.
     \Drupal::moduleHandler()->install(array('options', 'field_test'));
     \Drupal::service('plugin.manager.field.widget')->clearCachedDefinitions();
     \Drupal::service('plugin.manager.field.field_type')->clearCachedDefinitions();
diff --git a/core/modules/filter/filter.module b/core/modules/filter/filter.module
index 3efe9ad..77c335d 100644
--- a/core/modules/filter/filter.module
+++ b/core/modules/filter/filter.module
@@ -701,7 +701,7 @@ function template_preprocess_text_format_wrapper(&$variables) {
  *       array(
  *         'Full HTML' => array(
  *           0 => array(
- *             'tip' => 'Web page addresses and e-mail addresses turn into links automatically.',
+ *             'tip' => 'Web page addresses and email addresses turn into links automatically.',
  *             'id' => 'filter/2',
  *           ),
  *         ),
@@ -771,7 +771,7 @@ function _filter_html($text, $filter) {
  *
  * This filter identifies and makes clickable three types of "links".
  * - URLs like http://example.com.
- * - E-mail addresses like name@example.com.
+ * - Email addresses like name@example.com.
  * - Web addresses without the "http://" protocol defined, like
  *   www.example.com.
  * Each type must be processed separately, as there is no one regular
@@ -832,7 +832,7 @@ function _filter_url($text, $filter) {
   $pattern = "`((?:$protocols)(?:$url_pattern))`u";
   $tasks['_filter_url_parse_full_links'] = $pattern;
 
-  // Match e-mail addresses.
+  // Match email addresses.
   $url_pattern = "[\p{L}\p{M}\p{N}._-]{1,254}@(?:$domain)";
   $pattern = "`($url_pattern)`u";
   $tasks['_filter_url_parse_email_links'] = $pattern;
@@ -918,7 +918,7 @@ function _filter_url_parse_full_links($match) {
 }
 
 /**
- * Makes links out of e-mail addresses.
+ * Makes links out of email addresses.
  *
  * Callback for preg_replace_callback() within _filter_url().
  */
diff --git a/core/modules/filter/lib/Drupal/filter/Plugin/Filter/FilterUrl.php b/core/modules/filter/lib/Drupal/filter/Plugin/Filter/FilterUrl.php
index 0918b19..ffbfb7b 100644
--- a/core/modules/filter/lib/Drupal/filter/Plugin/Filter/FilterUrl.php
+++ b/core/modules/filter/lib/Drupal/filter/Plugin/Filter/FilterUrl.php
@@ -49,7 +49,7 @@ public function process($text, $langcode, $cache, $cache_id) {
    * {@inheritdoc}
    */
   public function tips($long = FALSE) {
-    return $this->t('Web page addresses and e-mail addresses turn into links automatically.');
+    return $this->t('Web page addresses and email addresses turn into links automatically.');
   }
 
 }
diff --git a/core/modules/filter/lib/Drupal/filter/Tests/FilterUnitTest.php b/core/modules/filter/lib/Drupal/filter/Tests/FilterUnitTest.php
index a51d6b9..d12060d 100644
--- a/core/modules/filter/lib/Drupal/filter/Tests/FilterUnitTest.php
+++ b/core/modules/filter/lib/Drupal/filter/Tests/FilterUnitTest.php
@@ -358,7 +358,7 @@ function testUrlFilter() {
     // - absolute, mail, partial
     // - characters/encoding, surrounding markup, security
 
-    // Create a e-mail that is too long.
+    // Create a email that is too long.
     $long_email = str_repeat('a', 254) . '@example.com';
     $too_long_email = str_repeat('b', 255) . '@example.com';
 
@@ -471,11 +471,11 @@ function testUrlFilter() {
     $tests = array(
       '
 Partial URL with trailing period www.partial.com.
-E-mail with trailing comma person@example.com,
+Email with trailing comma person@example.com,
 Absolute URL with trailing question http://www.absolute.com?
 Query string with trailing exclamation www.query.com/index.php?a=!
 Partial URL with 3 trailing www.partial.periods...
-E-mail with 3 trailing exclamations@example.com!!!
+Email with 3 trailing exclamations@example.com!!!
 Absolute URL and query string with 2 different punctuation characters (http://www.example.com/q=abc).
 Partial URL with brackets in the URL as well as surrounded brackets (www.foo.com/more_(than)_one_(parens)).
 Absolute URL with square brackets in the URL as well as surrounded brackets [http://www.drupal.org/?class[]=1]
@@ -717,7 +717,7 @@ function assertFilteredString($filter, $tests) {
    * - Mix of several HTML tags, invalid non-HTML tags, tags to ignore and HTML
    *   comments.
    * - Empty HTML tags (BR, IMG).
-   * - Mix of absolute and partial URLs, and e-mail addresses in one content.
+   * - Mix of absolute and partial URLs, and email addresses in one content.
    */
   function testUrlFilterContent() {
     // Get FilterUrl object.
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/Comment.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/Comment.php
index 96b3802..7ae2aa8 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/Comment.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/Comment.php
@@ -59,7 +59,7 @@ public function fields() {
       'format' => $this->t('The {filter_formats}.format of the comment body.'),
       'thread' => $this->t("The vancode representation of the comment's place in a thread."),
       'name' => $this->t("The comment author's name. Uses {users}.name if the user is logged in, otherwise uses the value typed into the comment form."),
-      'mail' => $this->t("The comment author's e-mail address from the comment form, if user is anonymous, and the 'Anonymous users may/must leave their contact information' setting is turned on."),
+      'mail' => $this->t("The comment author's email address from the comment form, if user is anonymous, and the 'Anonymous users may/must leave their contact information' setting is turned on."),
       'homepage' => $this->t("The comment author's home page address from the comment form, if user is anonymous, and the 'Anonymous users may/must leave their contact information' setting is turned on."),
       'type' => $this->t("The {node}.type to which this comment is a reply.")
     );
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/ContactCategory.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/ContactCategory.php
index 74b7834..97ecdc3 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/ContactCategory.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Plugin/migrate/source/d6/ContactCategory.php
@@ -52,7 +52,7 @@ public function fields() {
     return array(
       'cid' => $this->t('Primary Key: Unique category ID.'),
       'category' => $this->t('Category name.'),
-      'recipients' => $this->t('Comma-separated list of recipient e-mail addresses.'),
+      'recipients' => $this->t('Comma-separated list of recipient email addresses.'),
       'reply' => $this->t('Text of the auto-reply message.'),
       'weight' => $this->t("The category's weight."),
       'selected' => $this->t('Flag to indicate whether or not category is selected by default. (1 = Yes, 0 = No)'),
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/Dump/Drupal6Comment.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/Dump/Drupal6Comment.php
index 0a938a0..ef7358f 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/Dump/Drupal6Comment.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/Dump/Drupal6Comment.php
@@ -96,7 +96,7 @@ public function load() {
           'type' => 'varchar',
           'length' => 64,
           'not null' => FALSE,
-          'description' => "The comment author's e-mail address from the comment form, if user is anonymous, and the 'Anonymous users may/must leave their contact information' setting is turned on.",
+          'description' => "The comment author's email address from the comment form, if user is anonymous, and the 'Anonymous users may/must leave their contact information' setting is turned on.",
         ),
         'homepage' => array(
           'type' => 'varchar',
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/Dump/Drupal6ContactCategory.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/Dump/Drupal6ContactCategory.php
index d9db247..9cdedf6 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/Dump/Drupal6ContactCategory.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/Dump/Drupal6ContactCategory.php
@@ -36,7 +36,7 @@ public function load() {
           'type' => 'text',
           'not null' => TRUE,
           'size' => 'big',
-          'description' => 'Comma-separated list of recipient e-mail addresses.',
+          'description' => 'Comma-separated list of recipient email addresses.',
         ),
         'reply' => array(
           'type' => 'text',
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/Dump/Drupal6UserMail.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/Dump/Drupal6UserMail.php
index 114b482..4796e66 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/Dump/Drupal6UserMail.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/Dump/Drupal6UserMail.php
@@ -67,7 +67,7 @@ public function load() {
     ))
     ->values(array(
       'name' => 'user_mail_user_mail_register_pending_approval_body',
-      'value' => "s:268:\"!username,\n\nThank you for registering at !site. Your application for an account is currently pending approval. Once it has been approved, you will receive another e-mail containing information about how to log in, set your password, and other details.\n\n\n--  !site team\";",
+      'value' => "s:267:\"!username,\n\nThank you for registering at !site. Your application for an account is currently pending approval. Once it has been approved, you will receive another email containing information about how to log in, set your password, and other details.\n\n\n--  !site team\";",
     ))
     ->values(array(
       'name' => 'user_mail_status_blocked_subject',
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/Dump/Drupal6UserProfileFields.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/Dump/Drupal6UserProfileFields.php
index b1d4e73..3df09a0 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/Dump/Drupal6UserProfileFields.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/Dump/Drupal6UserProfileFields.php
@@ -160,7 +160,7 @@ public static function getData($table) {
         ),
         array(
           'fid' => '10',
-          'title' => 'Sell your e-mail address?',
+          'title' => 'Sell your email address?',
           'name' => 'profile_sell_address',
           'explanation' => "If you check this box, we'll sell your address to spammers to help line the pockets of our shareholders. Thanks!",
           'category' => 'Communication preferences',
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateUserConfigsTest.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateUserConfigsTest.php
index ac5c9d3..7a2a8e7 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateUserConfigsTest.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateUserConfigsTest.php
@@ -56,7 +56,7 @@ public function testUserMail() {
     $this->assertIdentical($config->get('register_no_approval_required.subject'), 'Account details for !username at !site');
     $this->assertIdentical($config->get('register_no_approval_required.body'), "!username,\n\nThank you for registering at !site. You may now log in to !login_uri using the following username and password:\n\nusername: !username\npassword: !password\n\nYou may also log in by clicking on this link or copying and pasting it in your browser:\n\n!login_url\n\nThis is a one-time login, so it can be used only once.\n\nAfter logging in, you will be redirected to !edit_uri so you can change your password.\n\n\n--  !site team");
     $this->assertIdentical($config->get('register_pending_approval.subject'), 'Account details for !username at !site (pending admin approval)');
-    $this->assertIdentical($config->get('register_pending_approval.body'), "!username,\n\nThank you for registering at !site. Your application for an account is currently pending approval. Once it has been approved, you will receive another e-mail containing information about how to log in, set your password, and other details.\n\n\n--  !site team");
+    $this->assertIdentical($config->get('register_pending_approval.body'), "!username,\n\nThank you for registering at !site. Your application for an account is currently pending approval. Once it has been approved, you will receive another email containing information about how to log in, set your password, and other details.\n\n\n--  !site team");
     $this->assertIdentical($config->get('status_blocked.subject'), 'Account details for !username at !site (blocked)');
     $this->assertIdentical($config->get('status_blocked.body'), "!username,\n\nYour account on !site has been blocked.");
   }
diff --git a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateUserProfileFieldInstanceTest.php b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateUserProfileFieldInstanceTest.php
index db8ac08..b866689 100644
--- a/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateUserProfileFieldInstanceTest.php
+++ b/core/modules/migrate_drupal/lib/Drupal/migrate_drupal/Tests/d6/MigrateUserProfileFieldInstanceTest.php
@@ -68,7 +68,7 @@ public function testUserProfileFields() {
 
     // Migrated checkbox field.
     $field = entity_load('field_instance_config', 'user.user.profile_sell_address');
-    $this->assertEqual($field->label(), 'Sell your e-mail address?');
+    $this->assertEqual($field->label(), 'Sell your email address?');
     $this->assertEqual($field->getDescription(), "If you check this box, we'll sell your address to spammers to help line the pockets of our shareholders. Thanks!");
 
     // Migrated selection field.
diff --git a/core/modules/search/search.module b/core/modules/search/search.module
index bbfed7d..9bf25b7 100644
--- a/core/modules/search/search.module
+++ b/core/modules/search/search.module
@@ -71,7 +71,7 @@ function search_help($route_name, Request $request) {
     case 'help.page.search':
       $output = '';
       $output .= '<h3>' . t('About') . '</h3>';
-      $output .= '<p>' . t('The Search module provides the ability to index and search for content by exact keywords, and for users by username or e-mail. For more information, see the online handbook entry for <a href="@search-module">Search module</a>.', array('@search-module' => 'http://drupal.org/documentation/modules/search', '@search' => url('search'))) . '</p>';
+      $output .= '<p>' . t('The Search module provides the ability to index and search for content by exact keywords, and for users by username or email. For more information, see the online handbook entry for <a href="@search-module">Search module</a>.', array('@search-module' => 'http://drupal.org/documentation/modules/search', '@search' => url('search'))) . '</p>';
       $output .= '<h3>' . t('Uses') . '</h3>';
       $output .= '<dl>';
       $output .= '<dt>' . t('Searching content and users') . '</dt>';
diff --git a/core/modules/simpletest/lib/Drupal/simpletest/InstallerTestBase.php b/core/modules/simpletest/lib/Drupal/simpletest/InstallerTestBase.php
index e735ce3..a8305b4 100644
--- a/core/modules/simpletest/lib/Drupal/simpletest/InstallerTestBase.php
+++ b/core/modules/simpletest/lib/Drupal/simpletest/InstallerTestBase.php
@@ -125,7 +125,7 @@ protected function setUp() {
     $this->rebuildContainer();
 
     // Manually configure the test mail collector implementation to prevent
-    // tests from sending out e-mails and collect them in state instead.
+    // tests from sending out emails and collect them in state instead.
     \Drupal::config('system.mail')
       ->set('interface.default', 'test_mail_collector')
       ->save();
diff --git a/core/modules/simpletest/lib/Drupal/simpletest/TestBase.php b/core/modules/simpletest/lib/Drupal/simpletest/TestBase.php
index fe9b62e..2a5db5f 100644
--- a/core/modules/simpletest/lib/Drupal/simpletest/TestBase.php
+++ b/core/modules/simpletest/lib/Drupal/simpletest/TestBase.php
@@ -1180,8 +1180,8 @@ private function restoreEnvironment() {
       $captured_emails = $state->get('system.test_mail_collector') ?: array();
       $emailCount = count($captured_emails);
       if ($emailCount) {
-        $message = $emailCount == 1 ? '1 e-mail was sent during this test.' : $emailCount . ' e-mails were sent during this test.';
-        $this->pass($message, 'E-mail');
+        $message = $emailCount == 1 ? '1 email was sent during this test.' : $emailCount . ' emails were sent during this test.';
+        $this->pass($message, 'Email');
       }
     }
 
diff --git a/core/modules/simpletest/lib/Drupal/simpletest/Tests/MailCaptureTest.php b/core/modules/simpletest/lib/Drupal/simpletest/Tests/MailCaptureTest.php
index a05e12f..6b4b304 100644
--- a/core/modules/simpletest/lib/Drupal/simpletest/Tests/MailCaptureTest.php
+++ b/core/modules/simpletest/lib/Drupal/simpletest/Tests/MailCaptureTest.php
@@ -18,8 +18,8 @@ class MailCaptureTest extends WebTestBase {
    */
   public static function getInfo() {
     return array(
-      'name' => 'SimpleTest e-mail capturing',
-      'description' => 'Test the SimpleTest e-mail capturing logic, the assertMail assertion and the drupalGetMails function.',
+      'name' => 'SimpleTest email capturing',
+      'description' => 'Test the SimpleTest email capturing logic, the assertMail assertion and the drupalGetMails function.',
       'group' => 'SimpleTest',
     );
   }
@@ -28,7 +28,7 @@ public static function getInfo() {
    * Test to see if the wrapper function is executed correctly.
    */
   function testMailSend() {
-    // Create an e-mail.
+    // Create an email.
     $subject = $this->randomString(64);
     $body = $this->randomString(128);
     $message = array(
@@ -39,24 +39,24 @@ function testMailSend() {
       'body' => $body,
     );
 
-    // Before we send the e-mail, drupalGetMails should return an empty array.
+    // Before we send the email, drupalGetMails should return an empty array.
     $captured_emails = $this->drupalGetMails();
-    $this->assertEqual(count($captured_emails), 0, 'The captured e-mails queue is empty.', 'E-mail');
+    $this->assertEqual(count($captured_emails), 0, 'The captured emails queue is empty.', 'Email');
 
-    // Send the e-mail.
+    // Send the email.
     drupal_mail_system('simpletest', 'drupal_mail_test')->mail($message);
 
-    // Ensure that there is one e-mail in the captured e-mails array.
+    // Ensure that there is one email in the captured emails array.
     $captured_emails = $this->drupalGetMails();
-    $this->assertEqual(count($captured_emails), 1, 'One e-mail was captured.', 'E-mail');
+    $this->assertEqual(count($captured_emails), 1, 'One email was captured.', 'Email');
 
-    // Assert that the e-mail was sent by iterating over the message properties
+    // Assert that the email was sent by iterating over the message properties
     // and ensuring that they are captured intact.
     foreach ($message as $field => $value) {
-      $this->assertMail($field, $value, format_string('The e-mail was sent and the value for property @field is intact.', array('@field' => $field)), 'E-mail');
+      $this->assertMail($field, $value, format_string('The email was sent and the value for property @field is intact.', array('@field' => $field)), 'Email');
     }
 
-    // Send additional e-mails so more than one e-mail is captured.
+    // Send additional emails so more than one email is captured.
     for ($index = 0; $index < 5; $index++) {
       $message = array(
         'id' => 'drupal_mail_test_' . $index,
@@ -68,23 +68,23 @@ function testMailSend() {
       drupal_mail_system('drupal_mail_test', $index)->mail($message);
     }
 
-    // There should now be 6 e-mails captured.
+    // There should now be 6 emails captured.
     $captured_emails = $this->drupalGetMails();
-    $this->assertEqual(count($captured_emails), 6, 'All e-mails were captured.', 'E-mail');
+    $this->assertEqual(count($captured_emails), 6, 'All emails were captured.', 'Email');
 
-    // Test different ways of getting filtered e-mails via drupalGetMails().
+    // Test different ways of getting filtered emails via drupalGetMails().
     $captured_emails = $this->drupalGetMails(array('id' => 'drupal_mail_test'));
-    $this->assertEqual(count($captured_emails), 1, 'Only one e-mail is returned when filtering by id.', 'E-mail');
+    $this->assertEqual(count($captured_emails), 1, 'Only one email is returned when filtering by id.', 'Email');
     $captured_emails = $this->drupalGetMails(array('id' => 'drupal_mail_test', 'subject' => $subject));
-    $this->assertEqual(count($captured_emails), 1, 'Only one e-mail is returned when filtering by id and subject.', 'E-mail');
+    $this->assertEqual(count($captured_emails), 1, 'Only one email is returned when filtering by id and subject.', 'Email');
     $captured_emails = $this->drupalGetMails(array('id' => 'drupal_mail_test', 'subject' => $subject, 'from' => 'this_was_not_used@example.com'));
-    $this->assertEqual(count($captured_emails), 0, 'No e-mails are returned when querying with an unused from address.', 'E-mail');
+    $this->assertEqual(count($captured_emails), 0, 'No emails are returned when querying with an unused from address.', 'Email');
 
-    // Send the last e-mail again, so we can confirm that the
-    // drupalGetMails-filter correctly returns all e-mails with a given
+    // Send the last email again, so we can confirm that the
+    // drupalGetMails-filter correctly returns all emails with a given
     // property/value.
     drupal_mail_system('drupal_mail_test', $index)->mail($message);
     $captured_emails = $this->drupalGetMails(array('id' => 'drupal_mail_test_4'));
-    $this->assertEqual(count($captured_emails), 2, 'All e-mails with the same id are returned when filtering by id.', 'E-mail');
+    $this->assertEqual(count($captured_emails), 2, 'All emails with the same id are returned when filtering by id.', 'Email');
   }
 }
diff --git a/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php b/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php
index 82e37e4..40d2a57 100644
--- a/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php
+++ b/core/modules/simpletest/lib/Drupal/simpletest/WebTestBase.php
@@ -896,7 +896,7 @@ protected function setUp() {
       ->save();
 
     // Manually configure the test mail collector implementation to prevent
-    // tests from sending out e-mails and collect them in state instead.
+    // tests from sending out emails and collect them in state instead.
     // While this should be enforced via settings.php prior to installation,
     // some tests expect to be able to test mail system implementations.
     \Drupal::config('system.mail')
@@ -2658,14 +2658,14 @@ protected function drupalGetSettings() {
   }
 
   /**
-   * Gets an array containing all e-mails sent during this test case.
+   * Gets an array containing all emails sent during this test case.
    *
    * @param $filter
-   *   An array containing key/value pairs used to filter the e-mails that are
+   *   An array containing key/value pairs used to filter the emails that are
    *   returned.
    *
    * @return
-   *   An array containing e-mail messages captured during the current test.
+   *   An array containing email messages captured during the current test.
    */
   protected function drupalGetMails($filter = array()) {
     $captured_emails = \Drupal::state()->get('system.test_mail_collector') ?: array();
@@ -3643,7 +3643,7 @@ protected function assertNoResponse($code, $message = '', $group = 'Browser') {
   }
 
   /**
-   * Asserts that the most recently sent e-mail message has the given value.
+   * Asserts that the most recently sent email message has the given value.
    *
    * The field in $name must have the content described in $value.
    *
@@ -3659,20 +3659,20 @@ protected function assertNoResponse($code, $message = '', $group = 'Browser') {
    * @param $group
    *   (optional) The group this message is in, which is displayed in a column
    *   in test output. Use 'Debug' to indicate this is debugging output. Do not
-   *   translate this string. Defaults to 'E-mail'; most tests do not override
+   *   translate this string. Defaults to 'Email'; most tests do not override
    *   this default.
    *
    * @return
    *   TRUE on pass, FALSE on fail.
    */
-  protected function assertMail($name, $value = '', $message = '', $group = 'E-mail') {
+  protected function assertMail($name, $value = '', $message = '', $group = 'Email') {
     $captured_emails = \Drupal::state()->get('system.test_mail_collector') ?: array();
     $email = end($captured_emails);
     return $this->assertTrue($email && isset($email[$name]) && $email[$name] == $value, $message, $group);
   }
 
   /**
-   * Asserts that the most recently sent e-mail message has the string in it.
+   * Asserts that the most recently sent email message has the string in it.
    *
    * @param $field_name
    *   Name of field or message property to assert: subject, body, id, ...
@@ -3714,7 +3714,7 @@ protected function assertMailString($field_name, $string, $email_depth, $message
   }
 
   /**
-   * Asserts that the most recently sent e-mail message has the pattern in it.
+   * Asserts that the most recently sent email message has the pattern in it.
    *
    * @param $field_name
    *   Name of field or message property to assert: subject, body, id, ...
diff --git a/core/modules/system/config/schema/system.schema.yml b/core/modules/system/config/schema/system.schema.yml
index 690a3ec..fc6a80a 100644
--- a/core/modules/system/config/schema/system.schema.yml
+++ b/core/modules/system/config/schema/system.schema.yml
@@ -12,7 +12,7 @@ system.site:
       label: 'Site name'
     mail:
       type: email
-      label: 'E-mail address'
+      label: 'Email address'
     slogan:
       type: label
       label: 'Slogan'
diff --git a/core/modules/system/core.api.php b/core/modules/system/core.api.php
index 6637657..5576e82 100644
--- a/core/modules/system/core.api.php
+++ b/core/modules/system/core.api.php
@@ -721,7 +721,7 @@
  *   of content or configuration in Drupal. See the
  *   @link entity_api Entity API topic @endlink for more information.
  * - Services: Classes that perform basic operations within Drupal, such as
- *   accessing the database and sending e-mail. See the
+ *   accessing the database and sending email. See the
  *   @link container Dependency Injection Container and Services topic @endlink
  *   for more information.
  * - Routing: Providing or altering "routes", which are URLs that Drupal
diff --git a/core/modules/system/lib/Drupal/system/Form/SiteInformationForm.php b/core/modules/system/lib/Drupal/system/Form/SiteInformationForm.php
index 01e0d14..c2b9c67 100644
--- a/core/modules/system/lib/Drupal/system/Form/SiteInformationForm.php
+++ b/core/modules/system/lib/Drupal/system/Form/SiteInformationForm.php
@@ -84,9 +84,9 @@ public function buildForm(array $form, array &$form_state) {
     );
     $form['site_information']['site_mail'] = array(
       '#type' => 'email',
-      '#title' => t('E-mail address'),
+      '#title' => t('Email address'),
       '#default_value' => $site_mail,
-      '#description' => t("The <em>From</em> address in automated e-mails sent during registration and new password requests, and other notifications. (Use an address ending in your site's domain to help prevent this e-mail being flagged as spam.)"),
+      '#description' => t("The <em>From</em> address in automated emails sent during registration and new password requests, and other notifications. (Use an address ending in your site's domain to help prevent this email being flagged as spam.)"),
       '#required' => TRUE,
     );
     $form['front_page'] = array(
diff --git a/core/modules/system/lib/Drupal/system/Tests/Form/EmailTest.php b/core/modules/system/lib/Drupal/system/Tests/Form/EmailTest.php
index 633d4d6..2efd00b 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Form/EmailTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Form/EmailTest.php
@@ -40,7 +40,7 @@ function testFormEmail() {
     $edit['email'] = 'invalid';
     $edit['email_required'] = ' ';
     $this->drupalPostForm('form-test/email', $edit, 'Submit');
-    $this->assertRaw(t('The e-mail address %mail is not valid.', array('%mail' => 'invalid')));
+    $this->assertRaw(t('The email address %mail is not valid.', array('%mail' => 'invalid')));
     $this->assertRaw(t('!name field is required.', array('!name' => 'Address')));
 
     $edit = array();
diff --git a/core/modules/system/lib/Drupal/system/Tests/Mail/MailTest.php b/core/modules/system/lib/Drupal/system/Tests/Mail/MailTest.php
index 56aef7f..a9eacad 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Mail/MailTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Mail/MailTest.php
@@ -86,19 +86,19 @@ public function testFromAndReplyToHeader() {
     \Drupal::config('system.mail')->set('interface.default', 'test_mail_collector')->save();
     // Reset the state variable that holds sent messages.
     \Drupal::state()->set('system.test_mail_collector', array());
-    // Send an e-mail with a reply-to address specified.
+    // Send an email with a reply-to address specified.
     $from_email = 'Drupal <simpletest@example.com>';
     $reply_email = 'someone_else@example.com';
     drupal_mail('simpletest', 'from_test', 'from_test@example.com', $language, array(), $reply_email);
-    // Test that the reply-to e-mail is just the e-mail and not the site name
-    // and default sender e-mail.
+    // Test that the reply-to email is just the email and not the site name
+    // and default sender email.
     $captured_emails = \Drupal::state()->get('system.test_mail_collector');
     $sent_message = end($captured_emails);
     $this->assertEqual($from_email, $sent_message['headers']['From'], 'Message is sent from the site email account.');
     $this->assertEqual($reply_email, $sent_message['headers']['Reply-to'], 'Message reply-to headers are set.');
     $this->assertFalse(isset($sent_message['headers']['Errors-To']), 'Errors-to header must not be set, it is deprecated.');
 
-    // Send an e-mail and check that the From-header contains the site name.
+    // Send an email and check that the From-header contains the site name.
     drupal_mail('simpletest', 'from_test', 'from_test@example.com', $language);
     $captured_emails = \Drupal::state()->get('system.test_mail_collector');
     $sent_message = end($captured_emails);
diff --git a/core/modules/system/lib/Drupal/system/Tests/System/SiteMaintenanceTest.php b/core/modules/system/lib/Drupal/system/Tests/System/SiteMaintenanceTest.php
index 1cb582a..9c291f1 100644
--- a/core/modules/system/lib/Drupal/system/Tests/System/SiteMaintenanceTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/System/SiteMaintenanceTest.php
@@ -104,13 +104,13 @@ function testSiteMaintenance() {
 
     // Verify that custom site offline message is not displayed on user/password.
     $this->drupalGet('user/password');
-    $this->assertText(t('Username or e-mail address'), 'Anonymous users can access user/password');
+    $this->assertText(t('Username or email address'), 'Anonymous users can access user/password');
 
     // Submit password reset form.
     $edit = array(
       'name' => $this->user->getUsername(),
     );
-    $this->drupalPostForm('user/password', $edit, t('E-mail new password'));
+    $this->drupalPostForm('user/password', $edit, t('Email new password'));
     $mails = $this->drupalGetMails();
     $start = strpos($mails[0]['body'], 'user/reset/'. $this->user->id());
     $path = substr($mails[0]['body'], $start, 66 + strlen($this->user->id()));
diff --git a/core/modules/system/lib/Drupal/system/Tests/TypedData/TypedDataTest.php b/core/modules/system/lib/Drupal/system/Tests/TypedData/TypedDataTest.php
index 5893f7b..410ea41 100644
--- a/core/modules/system/lib/Drupal/system/Tests/TypedData/TypedDataTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/TypedData/TypedDataTest.php
@@ -260,14 +260,14 @@ public function testGetAndSet() {
     $value = $this->randomString();
     $typed_data = $this->createTypedData(array('type' => 'email'), $value);
     $this->assertTrue($typed_data instanceof \Drupal\Core\TypedData\Type\StringInterface, 'Typed data object is an instance of StringInterface.');
-    $this->assertIdentical($typed_data->getValue(), $value, 'E-mail value was fetched.');
+    $this->assertIdentical($typed_data->getValue(), $value, 'Email value was fetched.');
     $new_value = 'test@example.com';
     $typed_data->setValue($new_value);
-    $this->assertIdentical($typed_data->getValue(), $new_value, 'E-mail value was changed.');
-    $this->assertTrue(is_string($typed_data->getString()), 'E-mail value was converted to string');
+    $this->assertIdentical($typed_data->getValue(), $new_value, 'Email value was changed.');
+    $this->assertTrue(is_string($typed_data->getString()), 'Email value was converted to string');
     $this->assertEqual($typed_data->validate()->count(), 0);
     $typed_data->setValue(NULL);
-    $this->assertNull($typed_data->getValue(), 'E-mail wrapper is null-able.');
+    $this->assertNull($typed_data->getValue(), 'Email wrapper is null-able.');
     $this->assertEqual($typed_data->validate()->count(), 0);
     $typed_data->setValue('invalidATexample.com');
     $this->assertEqual($typed_data->validate()->count(), 1, 'Validation detected invalid value.');
diff --git a/core/modules/system/system.api.php b/core/modules/system/system.api.php
index 7574ed9..462daea 100644
--- a/core/modules/system/system.api.php
+++ b/core/modules/system/system.api.php
@@ -1192,7 +1192,7 @@ function hook_template_preprocess_default_variables_alter(&$variables) {
  *     or drupal_mail() for possible id values.
  *   - to: The address or addresses the message will be sent to. The
  *     formatting of this string must comply with RFC 2822.
- *   - subject: Subject of the e-mail to be sent. This must not contain any
+ *   - subject: Subject of the email to be sent. This must not contain any
  *     newline characters, or the mail may not be sent properly. drupal_mail()
  *     sets this to an empty string when the hook is invoked.
  *   - body: An array of lines containing the message to be sent. Drupal will
diff --git a/core/modules/system/system.js b/core/modules/system/system.js
index bd9cd7d..31096f9 100644
--- a/core/modules/system/system.js
+++ b/core/modules/system/system.js
@@ -8,7 +8,7 @@
   /**
    * When a field is filled out, apply its value to other fields that will likely
    * use the same value. In the installer this is used to populate the
-   * administrator e-mail address with the same value as the site e-mail address.
+   * administrator email address with the same value as the site email address.
    */
   Drupal.behaviors.copyFieldValue = {
     attach: function (context) {
diff --git a/core/modules/system/system.menu_links.yml b/core/modules/system/system.menu_links.yml
index 4d883a7..778499f 100644
--- a/core/modules/system/system.menu_links.yml
+++ b/core/modules/system/system.menu_links.yml
@@ -109,7 +109,7 @@ system.admin_config_system:
 system.site_information_settings:
   title: 'Site information'
   parent: system.admin_config_system
-  description: 'Change site name, e-mail address, slogan, default front page, and number of posts per page, error pages.'
+  description: 'Change site name, email address, slogan, default front page, and number of posts per page, error pages.'
   route_name: system.site_information_settings
   weight: -20
 system.cron_settings:
diff --git a/core/modules/system/system.module b/core/modules/system/system.module
index 8feb47b..c5418f5 100644
--- a/core/modules/system/system.module
+++ b/core/modules/system/system.module
@@ -62,7 +62,7 @@
 /**
  * Defines the max length for an email address
  *
- * The maximum length of an e-mail address is 254 characters. RFC 3696
+ * The maximum length of an email address is 254 characters. RFC 3696
  * specifies a total length of 320 characters, but mentions that
  * addresses longer than 256 characters are not normally useful. Erratum
  * 1690 was then released which corrected this value to 254 characters.
diff --git a/core/modules/system/tests/modules/form_test/form_test.module b/core/modules/system/tests/modules/form_test/form_test.module
index 42ef667..a98cd4f 100644
--- a/core/modules/system/tests/modules/form_test/form_test.module
+++ b/core/modules/system/tests/modules/form_test/form_test.module
@@ -1338,14 +1338,14 @@ function form_test_email($form, &$form_state) {
   $form['#submit'] = array('_form_test_submit_values_json');
   $form['email'] = array(
     '#type' => 'email',
-    '#title' => 'E-Mail address',
-    '#description' => 'An e-mail address.',
+    '#title' => 'Email address',
+    '#description' => 'An email address.',
   );
   $form['email_required'] = array(
     '#type' => 'email',
     '#title' => 'Address',
     '#required' => TRUE,
-    '#description' => 'A required e-mail address field.',
+    '#description' => 'A required email address field.',
   );
   $form['submit'] = array(
     '#type' => 'submit',
diff --git a/core/modules/system/tests/modules/form_test/form_test.routing.yml b/core/modules/system/tests/modules/form_test/form_test.routing.yml
index 3540177..513d29a 100644
--- a/core/modules/system/tests/modules/form_test/form_test.routing.yml
+++ b/core/modules/system/tests/modules/form_test/form_test.routing.yml
@@ -281,7 +281,7 @@ form_test.email:
   path: '/form-test/email'
   defaults:
     _content: '\Drupal\form_test\Form\FormTestForm::testEmail'
-    _title: 'E-Mail fields'
+    _title: 'Email fields'
   requirements:
     _access: 'TRUE'
 
diff --git a/core/modules/update/config/schema/update.schema.yml b/core/modules/update/config/schema/update.schema.yml
index c9d80a3..43421ec 100644
--- a/core/modules/update/config/schema/update.schema.yml
+++ b/core/modules/update/config/schema/update.schema.yml
@@ -33,10 +33,10 @@ update.settings:
       mapping:
         emails:
           type: sequence
-          label: 'E-mail addresses to notify when updates are available'
+          label: 'Email addresses to notify when updates are available'
           sequence:
             - type: email
-              label: 'E-mail'
+              label: 'Email'
         threshold:
           type: string
-          label: 'E-mail notification threshold'
+          label: 'Email notification threshold'
diff --git a/core/modules/update/lib/Drupal/update/UpdateSettingsForm.php b/core/modules/update/lib/Drupal/update/UpdateSettingsForm.php
index 7fd77d2..600eaa2 100644
--- a/core/modules/update/lib/Drupal/update/UpdateSettingsForm.php
+++ b/core/modules/update/lib/Drupal/update/UpdateSettingsForm.php
@@ -47,21 +47,21 @@ public function buildForm(array $form, array &$form_state) {
     $notification_emails = $config->get('notification.emails');
     $form['update_notify_emails'] = array(
       '#type' => 'textarea',
-      '#title' => t('E-mail addresses to notify when updates are available'),
+      '#title' => t('Email addresses to notify when updates are available'),
       '#rows' => 4,
       '#default_value' => implode("\n", $notification_emails),
-      '#description' => t('Whenever your site checks for available updates and finds new releases, it can notify a list of users via e-mail. Put each address on a separate line. If blank, no e-mails will be sent.'),
+      '#description' => t('Whenever your site checks for available updates and finds new releases, it can notify a list of users via email. Put each address on a separate line. If blank, no emails will be sent.'),
     );
 
     $form['update_notification_threshold'] = array(
       '#type' => 'radios',
-      '#title' => t('E-mail notification threshold'),
+      '#title' => t('Email notification threshold'),
       '#default_value' => $config->get('notification.threshold'),
       '#options' => array(
         'all' => t('All newer versions'),
         'security' => t('Only security updates'),
       ),
-      '#description' => t('You can choose to send e-mail only if a security update is available, or to be notified about all newer versions. If there are updates available of Drupal core or any of your installed modules and themes, your site will always print a message on the <a href="@status_report">status report</a> page, and will also display an error message on administration pages if there is a security update.', array('@status_report' => url('admin/reports/status')))
+      '#description' => t('You can choose to send email only if a security update is available, or to be notified about all newer versions. If there are updates available of Drupal core or any of your installed modules and themes, your site will always print a message on the <a href="@status_report">status report</a> page, and will also display an error message on administration pages if there is a security update.', array('@status_report' => url('admin/reports/status')))
     );
 
     return parent::buildForm($form, $form_state);
@@ -90,10 +90,10 @@ public function validateForm(array &$form, array &$form_state) {
         $form_state['notify_emails'] = $valid;
       }
       elseif (count($invalid) == 1) {
-        $this->setFormError('update_notify_emails', $form_state, $this->t('%email is not a valid e-mail address.', array('%email' => reset($invalid))));
+        $this->setFormError('update_notify_emails', $form_state, $this->t('%email is not a valid email address.', array('%email' => reset($invalid))));
       }
       else {
-        $this->setFormError('update_notify_emails', $form_state, $this->t('%emails are not valid e-mail addresses.', array('%emails' => implode(', ', $invalid))));
+        $this->setFormError('update_notify_emails', $form_state, $this->t('%emails are not valid email addresses.', array('%emails' => implode(', ', $invalid))));
       }
     }
 
diff --git a/core/modules/update/update.fetch.inc b/core/modules/update/update.fetch.inc
index d456801..4995d8e 100644
--- a/core/modules/update/update.fetch.inc
+++ b/core/modules/update/update.fetch.inc
@@ -89,7 +89,7 @@ function _update_create_fetch_task($project) {
  * Performs any notifications that should be done once cron fetches new data.
  *
  * This method checks the status of the site using the new data and, depending
- * on the configuration of the site, notifies administrators via e-mail if there
+ * on the configuration of the site, notifies administrators via email if there
  * are new releases or missing security updates.
  *
  * @see update_requirements()
@@ -120,7 +120,7 @@ function _update_cron_notify() {
         }
         $message = drupal_mail('update', 'status_notify', $target, $target_langcode, $params);
         // Track when the last mail was successfully sent to avoid sending
-        // too many e-mails.
+        // too many emails.
         if ($message['result']) {
           \Drupal::state()->set('update.last_email_notification', REQUEST_TIME);
         }
diff --git a/core/modules/update/update.install b/core/modules/update/update.install
index 568d179..7997ec8 100644
--- a/core/modules/update/update.install
+++ b/core/modules/update/update.install
@@ -18,7 +18,7 @@
  *   optionally 'description'), this array will contain a 'reason' attribute,
  *   which is an integer constant to indicate why the given status is being
  *   returned (UPDATE_NOT_SECURE, UPDATE_NOT_CURRENT, or UPDATE_UNKNOWN). This
- *   is used for generating the appropriate e-mail notification messages during
+ *   is used for generating the appropriate email notification messages during
  *   update_cron(), and might be useful for other modules that invoke
  *   update_requirements() to find out if the site is up to date or not.
  *
diff --git a/core/modules/update/update.module b/core/modules/update/update.module
index 6341857..9e369dd 100644
--- a/core/modules/update/update.module
+++ b/core/modules/update/update.module
@@ -7,7 +7,7 @@
  * The module checks for available updates of Drupal core and any installed
  * contributed modules and themes. It warns site administrators if newer
  * releases are available via the system status report (admin/reports/status),
- * the module and theme pages, and optionally via e-mail. It also provides the
+ * the module and theme pages, and optionally via email. It also provides the
  * ability to install contributed modules and themes via an user interface.
  */
 
@@ -77,7 +77,7 @@ function update_help($route_name, Request $request) {
       $output .= '<h3>' . t('Uses') . '</h3>';
       $output .= '<dl>';
       $output .= '<dt>' . t('Checking for available updates') . '</dt>';
-      $output .= '<dd>' . t('A report of <a href="@update-report">available updates</a> will alert you when new releases are available for download. You may configure options for the frequency for checking updates (which are performed during <a href="@cron">cron</a> runs) and e-mail notifications at the <a href="@update-settings">Update Manager settings</a>  page.', array('@update-report' => url('admin/reports/updates'), '@cron' => 'http://drupal.org/cron', '@update-settings' => url('admin/reports/updates/settings'))) . '</dd>';
+      $output .= '<dd>' . t('A report of <a href="@update-report">available updates</a> will alert you when new releases are available for download. You may configure options for the frequency for checking updates (which are performed during <a href="@cron">cron</a> runs) and email notifications at the <a href="@update-settings">Update Manager settings</a>  page.', array('@update-report' => url('admin/reports/updates'), '@cron' => 'http://drupal.org/cron', '@update-settings' => url('admin/reports/updates/settings'))) . '</dd>';
       // Only explain the Update manager if it has not been disabled.
       if (update_manager_access()) {
         $output .= '<dt>' . t('Performing updates through the user interface') . '</dt>';
@@ -409,7 +409,7 @@ function update_fetch_data_finished($success, $results) {
 /**
  * Implements hook_mail().
  *
- * Constructs the e-mail notification message when the site is out of date.
+ * Constructs the email notification message when the site is out of date.
  *
  * @param $key
  *   Unique key to indicate what message to build, always 'status_notify'.
@@ -450,7 +450,7 @@ function update_mail($key, &$message, $params) {
  *
  * These error messages are shared by both update_requirements() for the
  * site-wide status report at admin/reports/status and in the body of the
- * notification e-mail messages generated by update_cron().
+ * notification email messages generated by update_cron().
  *
  * @param $msg_type
  *   String to indicate what kind of message to generate. Can be either 'core'
diff --git a/core/modules/user/config/install/user.mail.yml b/core/modules/user/config/install/user.mail.yml
index ea33738..436ff53 100644
--- a/core/modules/user/config/install/user.mail.yml
+++ b/core/modules/user/config/install/user.mail.yml
@@ -11,7 +11,7 @@ register_no_approval_required:
   body: "[user:name],\n\nThank you for registering at [site:name]. You may now log in by clicking this link or copying and pasting it to your browser:\n\n[user:one-time-login-url]\n\nThis link can only be used once to log in and will lead you to a page where you can set your password.\n\nAfter setting your password, you will be able to log in at [site:login-url] in the future using:\n\nusername: [user:name]\npassword: Your password\n\n--  [site:name] team"
   subject: 'Account details for [user:name] at [site:name]'
 register_pending_approval:
-  body: "[user:name],\n\nThank you for registering at [site:name]. Your application for an account is currently pending approval. Once it has been approved, you will receive another e-mail containing information about how to log in, set your password, and other details.\n\n\n--  [site:name] team"
+  body: "[user:name],\n\nThank you for registering at [site:name]. Your application for an account is currently pending approval. Once it has been approved, you will receive another email containing information about how to log in, set your password, and other details.\n\n\n--  [site:name] team"
   subject: 'Account details for [user:name] at [site:name] (pending admin approval)'
 register_pending_approval_admin:
   body: "[user:name] has applied for an account.\n\n[user:edit-url]"
diff --git a/core/modules/user/config/install/views.view.user_admin_people.yml b/core/modules/user/config/install/views.view.user_admin_people.yml
index 6ab676d..4a0be67 100644
--- a/core/modules/user/config/install/views.view.user_admin_people.yml
+++ b/core/modules/user/config/install/views.view.user_admin_people.yml
@@ -686,7 +686,7 @@ display:
           exposed: true
           expose:
             operator_id: combine_op
-            label: 'Name or e-mail contains'
+            label: 'Name or email contains'
             description: ''
             use_operator: false
             operator: combine_op
diff --git a/core/modules/user/config/schema/user.schema.yml b/core/modules/user/config/schema/user.schema.yml
index 7361704..48c0b04 100644
--- a/core/modules/user/config/schema/user.schema.yml
+++ b/core/modules/user/config/schema/user.schema.yml
@@ -12,7 +12,7 @@ user.settings:
       label: 'Name'
     verify_mail:
       type: boolean
-      label: 'Require e-mail verification when a visitor creates an account.'
+      label: 'Require email verification when a visitor creates an account.'
     notify:
       type: mapping
       label: 'Notify user'
@@ -62,7 +62,7 @@ user.settings:
 
 user.mail:
  type: mapping
- label: 'E-mail settings'
+ label: 'Email settings'
  mapping:
   cancel_confirm:
     type: mail
diff --git a/core/modules/user/lib/Drupal/user/AccountForm.php b/core/modules/user/lib/Drupal/user/AccountForm.php
index 42a2292..b5fe67e 100644
--- a/core/modules/user/lib/Drupal/user/AccountForm.php
+++ b/core/modules/user/lib/Drupal/user/AccountForm.php
@@ -84,11 +84,11 @@ public function form(array $form, array &$form_state) {
 
     // The mail field is NOT required if account originally had no mail set
     // and the user performing the edit has 'administer users' permission.
-    // This allows users without e-mail address to be edited and deleted.
+    // This allows users without email address to be edited and deleted.
     $form['account']['mail'] = array(
       '#type' => 'email',
-      '#title' => $this->t('E-mail address'),
-      '#description' => $this->t('A valid e-mail address. All e-mails from the system will be sent to this address. The e-mail address is not made public and will only be used if you wish to receive a new password or wish to receive certain news or notifications by e-mail.'),
+      '#title' => $this->t('Email address'),
+      '#description' => $this->t('A valid email address. All emails from the system will be sent to this address. The email address is not made public and will only be used if you wish to receive a new password or wish to receive certain news or notifications by email.'),
       '#required' => !(!$account->getEmail() && $user->hasPermission('administer users')),
       '#default_value' => (!$register ? $account->getEmail() : ''),
     );
@@ -131,7 +131,7 @@ public function form(array $form, array &$form_state) {
       if (!$pass_reset) {
         $protected_values['mail'] = $form['account']['mail']['#title'];
         $protected_values['pass'] = $this->t('Password');
-        $request_new = l($this->t('Request new password'), 'user/password', array('attributes' => array('title' => $this->t('Request new password via e-mail.'))));
+        $request_new = l($this->t('Request new password'), 'user/password', array('attributes' => array('title' => $this->t('Request new password via email.'))));
         $current_pass_description = $this->t('Required if you want to change the %mail or %pass below. !request_new.', array('%mail' => $protected_values['mail'], '%pass' => $protected_values['pass'], '!request_new' => $request_new));
       }
 
@@ -269,7 +269,7 @@ public function form(array $form, array &$form_state) {
       '#title' => $this->t('Site language'),
       '#languages' => Language::STATE_CONFIGURABLE,
       '#default_value' => $user_preferred_langcode,
-      '#description' => $user_language_added ? $this->t("This account's preferred language for e-mails and site presentation.") : $this->t("This account's preferred language for e-mails."),
+      '#description' => $user_language_enabled ? $this->t("This account's preferred language for emails and site presentation.") : $this->t("This account's preferred language for emails."),
     );
 
     // Only show the account setting for Administration pages language to users
@@ -362,10 +362,10 @@ public function validate(array $form, array &$form_state) {
       if ($mail_taken) {
         // Format error message dependent on whether the user is logged in or not.
         if (\Drupal::currentUser()->isAuthenticated()) {
-          $this->setFormError('mail', $form_state, $this->t('The e-mail address %email is already taken.', array('%email' => $mail)));
+          $this->setFormError('mail', $form_state, $this->t('The email address %email is already taken.', array('%email' => $mail)));
         }
         else {
-          $this->setFormError('mail', $form_state, $this->t('The e-mail address %email is already registered. <a href="@password">Have you forgotten your password?</a>', array('%email' => $mail, '@password' => url('user/password'))));
+          $this->setFormError('mail', $form_state, $this->t('The email address %email is already registered. <a href="@password">Have you forgotten your password?</a>', array('%email' => $mail, '@password' => url('user/password'))));
         }
       }
     }
diff --git a/core/modules/user/lib/Drupal/user/AccountSettingsForm.php b/core/modules/user/lib/Drupal/user/AccountSettingsForm.php
index e29bc26..94c4bae 100644
--- a/core/modules/user/lib/Drupal/user/AccountSettingsForm.php
+++ b/core/modules/user/lib/Drupal/user/AccountSettingsForm.php
@@ -126,9 +126,9 @@ public function buildForm(array $form, array &$form_state) {
     );
     $form['registration_cancellation']['user_email_verification'] = array(
       '#type' => 'checkbox',
-      '#title' => $this->t('Require e-mail verification when a visitor creates an account.'),
+      '#title' => $this->t('Require email verification when a visitor creates an account.'),
       '#default_value' => $config->get('verify_mail'),
-      '#description' => $this->t('New users will be required to validate their e-mail address prior to logging into the site, and will be assigned a system-generated password. With this setting disabled, users will be logged in immediately upon registering, and may select their own passwords during registration.')
+      '#description' => $this->t('New users will be required to validate their email address prior to logging into the site, and will be assigned a system-generated password. With this setting disabled, users will be logged in immediately upon registering, and may select their own passwords during registration.')
     );
     $form['registration_cancellation']['user_password_strength'] = array(
       '#type' => 'checkbox',
@@ -169,15 +169,15 @@ public function buildForm(array $form, array &$form_state) {
     // Default notifications address.
     $form['mail_notification_address'] = array(
       '#type' => 'email',
-      '#title' => $this->t('Notification e-mail address'),
+      '#title' => $this->t('Notification email address'),
       '#default_value' => $site_config->get('mail_notification'),
-      '#description' => $this->t("The e-mail address to be used as the 'from' address for all account notifications listed below. If <em>'Visitors, but administrator approval is required'</em> is selected above, a notification email will also be sent to this address for any new registrations. Leave empty to use the default system e-mail address <em>(%site-email).</em>", array('%site-email' => $site_config->get('mail'))),
+      '#description' => $this->t("The email address to be used as the 'from' address for all account notifications listed below. If <em>'Visitors, but administrator approval is required'</em> is selected above, a notification email will also be sent to this address for any new registrations. Leave empty to use the default system email address <em>(%site-email).</em>", array('%site-email' => $site_config->get('mail'))),
       '#maxlength' => 180,
     );
 
     $form['email'] = array(
       '#type' => 'vertical_tabs',
-      '#title' => $this->t('E-mails'),
+      '#title' => $this->t('Emails'),
     );
     // These email tokens are shared for all settings, so just define
     // the list once to help ensure they stay in sync.
@@ -187,7 +187,7 @@ public function buildForm(array $form, array &$form_state) {
       '#type' => 'details',
       '#title' => $this->t('Welcome (new user created by administrator)'),
       '#open' => $config->get('register') == USER_REGISTER_ADMINISTRATORS_ONLY,
-      '#description' => $this->t('Edit the welcome e-mail messages sent to new member accounts created by an administrator.') . ' ' . $email_token_help,
+      '#description' => $this->t('Edit the welcome email messages sent to new member accounts created by an administrator.') . ' ' . $email_token_help,
       '#group' => 'email',
     );
     $form['email_admin_created']['user_mail_register_admin_created_subject'] = array(
@@ -207,7 +207,7 @@ public function buildForm(array $form, array &$form_state) {
       '#type' => 'details',
       '#title' => $this->t('Welcome (awaiting approval)'),
       '#open' => $config->get('register') == USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL,
-      '#description' => $this->t('Edit the welcome e-mail messages sent to new members upon registering, when administrative approval is required.') . ' ' . $email_token_help,
+      '#description' => $this->t('Edit the welcome email messages sent to new members upon registering, when administrative approval is required.') . ' ' . $email_token_help,
       '#group' => 'email',
     );
     $form['email_pending_approval']['user_mail_register_pending_approval_subject'] = array(
@@ -227,7 +227,7 @@ public function buildForm(array $form, array &$form_state) {
       '#type' => 'details',
       '#title' => $this->t('Admin (user awaiting approval)'),
       '#open' => $config->get('register') == USER_REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL,
-      '#description' => $this->t('Edit the e-mail notifying the site administrator that there are new members awaiting administrative approval.') . ' ' . $email_token_help,
+      '#description' => $this->t('Edit the email notifying the site administrator that there are new members awaiting administrative approval.') . ' ' . $email_token_help,
       '#group' => 'email',
     );
     $form['email_pending_approval_admin']['register_pending_approval_admin_subject'] = array(
@@ -247,7 +247,7 @@ public function buildForm(array $form, array &$form_state) {
       '#type' => 'details',
       '#title' => $this->t('Welcome (no approval required)'),
       '#open' => $config->get('register') == USER_REGISTER_VISITORS,
-      '#description' => $this->t('Edit the welcome e-mail messages sent to new members upon registering, when no administrator approval is required.') . ' ' . $email_token_help,
+      '#description' => $this->t('Edit the welcome email messages sent to new members upon registering, when no administrator approval is required.') . ' ' . $email_token_help,
       '#group' => 'email',
     );
     $form['email_no_approval_required']['user_mail_register_no_approval_required_subject'] = array(
@@ -266,7 +266,7 @@ public function buildForm(array $form, array &$form_state) {
     $form['email_password_reset'] = array(
       '#type' => 'details',
       '#title' => $this->t('Password recovery'),
-      '#description' => $this->t('Edit the e-mail messages sent to users who request a new password.') . ' ' . $email_token_help,
+      '#description' => $this->t('Edit the email messages sent to users who request a new password.') . ' ' . $email_token_help,
       '#group' => 'email',
       '#weight' => 10,
     );
@@ -286,7 +286,7 @@ public function buildForm(array $form, array &$form_state) {
     $form['email_activated'] = array(
       '#type' => 'details',
       '#title' => $this->t('Account activation'),
-      '#description' => $this->t('Enable and edit e-mail messages sent to users upon account activation (when an administrator activates an account of a user who has already registered, on a site where administrative approval is required).') . ' ' . $email_token_help,
+      '#description' => $this->t('Enable and edit email messages sent to users upon account activation (when an administrator activates an account of a user who has already registered, on a site where administrative approval is required).') . ' ' . $email_token_help,
       '#group' => 'email',
     );
     $form['email_activated']['user_mail_status_activated_notify'] = array(
@@ -319,7 +319,7 @@ public function buildForm(array $form, array &$form_state) {
     $form['email_blocked'] = array(
       '#type' => 'details',
       '#title' => $this->t('Account blocked'),
-      '#description' => $this->t('Enable and edit e-mail messages sent to users when their accounts are blocked.') . ' ' . $email_token_help,
+      '#description' => $this->t('Enable and edit email messages sent to users when their accounts are blocked.') . ' ' . $email_token_help,
       '#group' => 'email',
     );
     $form['email_blocked']['user_mail_status_blocked_notify'] = array(
@@ -352,7 +352,7 @@ public function buildForm(array $form, array &$form_state) {
     $form['email_cancel_confirm'] = array(
       '#type' => 'details',
       '#title' => $this->t('Account cancellation confirmation'),
-      '#description' => $this->t('Edit the e-mail messages sent to users when they attempt to cancel their accounts.') . ' ' . $email_token_help,
+      '#description' => $this->t('Edit the email messages sent to users when they attempt to cancel their accounts.') . ' ' . $email_token_help,
       '#group' => 'email',
     );
     $form['email_cancel_confirm']['user_mail_cancel_confirm_subject'] = array(
@@ -371,7 +371,7 @@ public function buildForm(array $form, array &$form_state) {
     $form['email_canceled'] = array(
       '#type' => 'details',
       '#title' => $this->t('Account canceled'),
-      '#description' => $this->t('Enable and edit e-mail messages sent to users when their accounts are canceled.') . ' ' . $email_token_help,
+      '#description' => $this->t('Enable and edit email messages sent to users when their accounts are canceled.') . ' ' . $email_token_help,
       '#group' => 'email',
     );
     $form['email_canceled']['user_mail_status_canceled_notify'] = array(
diff --git a/core/modules/user/lib/Drupal/user/Form/UserCancelForm.php b/core/modules/user/lib/Drupal/user/Form/UserCancelForm.php
index c453c76..16ba065 100644
--- a/core/modules/user/lib/Drupal/user/Form/UserCancelForm.php
+++ b/core/modules/user/lib/Drupal/user/Form/UserCancelForm.php
@@ -90,10 +90,10 @@ public function buildForm(array $form, array &$form_state) {
     $override_access = $admin_access && ($this->entity->id() != $user->id());
     $form['user_cancel_confirm'] = array(
       '#type' => 'checkbox',
-      '#title' => $this->t('Require e-mail confirmation to cancel account.'),
+      '#title' => $this->t('Require email confirmation to cancel account.'),
       '#default_value' => !$override_access,
       '#access' => $override_access,
-      '#description' => $this->t('When enabled, the user must confirm the account cancellation via e-mail.'),
+      '#description' => $this->t('When enabled, the user must confirm the account cancellation via email.'),
     );
     // Also allow to send account canceled notification mail, if enabled.
     $default_notify = $this->config('user.settings')->get('notify.status_canceled');
@@ -102,7 +102,7 @@ public function buildForm(array $form, array &$form_state) {
       '#title' => $this->t('Notify user when account is canceled.'),
       '#default_value' => ($override_access ? FALSE : $default_notify),
       '#access' => $override_access && $default_notify,
-      '#description' => $this->t('When enabled, the user will receive an e-mail notification after the account has been canceled.'),
+      '#description' => $this->t('When enabled, the user will receive an email notification after the account has been canceled.'),
     );
 
     // Always provide entity id in the same form key as in the entity edit form.
@@ -134,7 +134,7 @@ public function submit(array $form, array &$form_state) {
       $this->entity->user_cancel_notify = $form_state['values']['user_cancel_notify'];
       $this->entity->save();
       _user_mail_notify('cancel_confirm', $this->entity);
-      drupal_set_message($this->t('A confirmation request to cancel your account has been sent to your e-mail address.'));
+      drupal_set_message($this->t('A confirmation request to cancel your account has been sent to your email address.'));
       watchdog('user', 'Sent account cancellation request to %name %email.', array('%name' => $this->entity->label(), '%email' => '<' . $this->entity->getEmail() . '>'), WATCHDOG_NOTICE);
 
       $form_state['redirect_route'] = array(
diff --git a/core/modules/user/lib/Drupal/user/Form/UserMultipleCancelConfirm.php b/core/modules/user/lib/Drupal/user/Form/UserMultipleCancelConfirm.php
index b0dd621..129152a 100644
--- a/core/modules/user/lib/Drupal/user/Form/UserMultipleCancelConfirm.php
+++ b/core/modules/user/lib/Drupal/user/Form/UserMultipleCancelConfirm.php
@@ -145,9 +145,9 @@ public function buildForm(array $form, array &$form_state) {
     // Allow to send the account cancellation confirmation mail.
     $form['user_cancel_confirm'] = array(
       '#type' => 'checkbox',
-      '#title' => $this->t('Require e-mail confirmation to cancel account.'),
+      '#title' => $this->t('Require email confirmation to cancel account.'),
       '#default_value' => FALSE,
-      '#description' => $this->t('When enabled, the user must confirm the account cancellation via e-mail.'),
+      '#description' => $this->t('When enabled, the user must confirm the account cancellation via email.'),
     );
     // Also allow to send account canceled notification mail, if enabled.
     $form['user_cancel_notify'] = array(
@@ -155,7 +155,7 @@ public function buildForm(array $form, array &$form_state) {
       '#title' => $this->t('Notify user when account is canceled.'),
       '#default_value' => FALSE,
       '#access' => $this->config('user.settings')->get('notify.status_canceled'),
-      '#description' => $this->t('When enabled, the user will receive an e-mail notification after the account has been canceled.'),
+      '#description' => $this->t('When enabled, the user will receive an email notification after the account has been canceled.'),
     );
 
     $form = parent::buildForm($form, $form_state);
diff --git a/core/modules/user/lib/Drupal/user/Form/UserPasswordForm.php b/core/modules/user/lib/Drupal/user/Form/UserPasswordForm.php
index 15d48c8..dbb3b2c 100644
--- a/core/modules/user/lib/Drupal/user/Form/UserPasswordForm.php
+++ b/core/modules/user/lib/Drupal/user/Form/UserPasswordForm.php
@@ -73,7 +73,7 @@ public function getFormId() {
   public function buildForm(array $form, array &$form_state) {
     $form['name'] = array(
       '#type' => 'textfield',
-      '#title' => $this->t('Username or e-mail address'),
+      '#title' => $this->t('Username or email address'),
       '#size' => 60,
       '#maxlength' => max(USERNAME_MAX_LENGTH, EMAIL_MAX_LENGTH),
       '#required' => TRUE,
@@ -91,7 +91,7 @@ public function buildForm(array $form, array &$form_state) {
       $form['name']['#value'] = $user->getEmail();
       $form['mail'] = array(
         '#prefix' => '<p>',
-        '#markup' =>  $this->t('Password reset instructions will be mailed to %email. You must log out to use the password reset link in the e-mail.', array('%email' => $user->getEmail())),
+        '#markup' =>  $this->t('Password reset instructions will be mailed to %email. You must log out to use the password reset link in the email.', array('%email' => $user->getEmail())),
         '#suffix' => '</p>',
       );
     }
@@ -99,7 +99,7 @@ public function buildForm(array $form, array &$form_state) {
       $form['name']['#default_value'] = $this->getRequest()->query->get('name');
     }
     $form['actions'] = array('#type' => 'actions');
-    $form['actions']['submit'] = array('#type' => 'submit', '#value' => $this->t('E-mail new password'));
+    $form['actions']['submit'] = array('#type' => 'submit', '#value' => $this->t('Email new password'));
 
     return $form;
   }
@@ -120,7 +120,7 @@ public function validateForm(array &$form, array &$form_state) {
       form_set_value(array('#parents' => array('account')), $account, $form_state);
     }
     else {
-      $this->setFormError('name', $form_state, $this->t('Sorry, %name is not recognized as a username or an e-mail address.', array('%name' => $name)));
+      $this->setFormError('name', $form_state, $this->t('Sorry, %name is not recognized as a username or an email address.', array('%name' => $name)));
     }
   }
 
@@ -135,7 +135,7 @@ public function submitForm(array &$form, array &$form_state) {
     $mail = _user_mail_notify('password_reset', $account, $langcode);
     if (!empty($mail)) {
       watchdog('user', 'Password reset instructions mailed to %name at %email.', array('%name' => $account->getUsername(), '%email' => $account->getEmail()));
-      drupal_set_message($this->t('Further instructions have been sent to your e-mail address.'));
+      drupal_set_message($this->t('Further instructions have been sent to your email address.'));
     }
 
     $form_state['redirect_route']['route_name'] = 'user.page';
diff --git a/core/modules/user/lib/Drupal/user/Plugin/Block/UserLoginBlock.php b/core/modules/user/lib/Drupal/user/Plugin/Block/UserLoginBlock.php
index b2cff4c..700f826 100644
--- a/core/modules/user/lib/Drupal/user/Plugin/Block/UserLoginBlock.php
+++ b/core/modules/user/lib/Drupal/user/Plugin/Block/UserLoginBlock.php
@@ -51,7 +51,7 @@ public function build() {
     }
     $items['request_password'] = l(t('Request new password'), 'user/password', array(
       'attributes' => array(
-        'title' => t('Request new password via e-mail.'),
+        'title' => t('Request new password via email.'),
         'class' => array('request-password-link'),
       ),
     ));
diff --git a/core/modules/user/lib/Drupal/user/Plugin/Validation/Constraint/UserMailUnique.php b/core/modules/user/lib/Drupal/user/Plugin/Validation/Constraint/UserMailUnique.php
index e3b8b0b..e9190ae 100644
--- a/core/modules/user/lib/Drupal/user/Plugin/Validation/Constraint/UserMailUnique.php
+++ b/core/modules/user/lib/Drupal/user/Plugin/Validation/Constraint/UserMailUnique.php
@@ -10,16 +10,16 @@
 use Symfony\Component\Validator\Constraint;
 
 /**
- * Checks if a user's e-mail address is unique on the site.
+ * Checks if a user's email address is unique on the site.
  *
  * @Plugin(
  *   id = "UserMailUnique",
- *   label = @Translation("User e-mail unique", context = "Validation")
+ *   label = @Translation("User email unique", context = "Validation")
  * )
  */
 class UserMailUnique extends Constraint {
 
-  public $message = 'The e-mail address %value is already taken.';
+  public $message = 'The email address %value is already taken.';
 
   /**
    * {@inheritdoc}
diff --git a/core/modules/user/lib/Drupal/user/Plugin/Validation/Constraint/UserUniqueValidator.php b/core/modules/user/lib/Drupal/user/Plugin/Validation/Constraint/UserUniqueValidator.php
index f169cae..b98408a 100644
--- a/core/modules/user/lib/Drupal/user/Plugin/Validation/Constraint/UserUniqueValidator.php
+++ b/core/modules/user/lib/Drupal/user/Plugin/Validation/Constraint/UserUniqueValidator.php
@@ -11,7 +11,7 @@
 use Symfony\Component\Validator\ConstraintValidator;
 
 /**
- * Validates the unique user property constraint, such as name and e-mail.
+ * Validates the unique user property constraint, such as name and email.
  */
 class UserUniqueValidator extends ConstraintValidator {
 
diff --git a/core/modules/user/lib/Drupal/user/RegisterForm.php b/core/modules/user/lib/Drupal/user/RegisterForm.php
index 30f3018..1e1d932 100644
--- a/core/modules/user/lib/Drupal/user/RegisterForm.php
+++ b/core/modules/user/lib/Drupal/user/RegisterForm.php
@@ -113,9 +113,9 @@ public function save(array $form, array &$form_state) {
 
     // New administrative account without notification.
     if ($admin && !$notify) {
-      drupal_set_message($this->t('Created a new user account for <a href="@url">%name</a>. No e-mail has been sent.', array('@url' => $account->url(), '%name' => $account->getUsername())));
+      drupal_set_message($this->t('Created a new user account for <a href="@url">%name</a>. No email has been sent.', array('@url' => $account->url(), '%name' => $account->getUsername())));
     }
-    // No e-mail verification required; log in user immediately.
+    // No email verification required; log in user immediately.
     elseif (!$admin && !\Drupal::config('user.settings')->get('verify_mail') && $account->isActive()) {
       _user_mail_notify('register_no_approval_required', $account);
       user_login_finalize($account);
@@ -131,10 +131,10 @@ public function save(array $form, array &$form_state) {
         $op = $notify ? 'register_admin_created' : 'register_no_approval_required';
         if (_user_mail_notify($op, $account)) {
           if ($notify) {
-            drupal_set_message($this->t('A welcome message with further instructions has been e-mailed to the new user <a href="@url">%name</a>.', array('@url' => $account->url(), '%name' => $account->getUsername())));
+            drupal_set_message($this->t('A welcome message with further instructions has been emailed to the new user <a href="@url">%name</a>.', array('@url' => $account->url(), '%name' => $account->getUsername())));
           }
           else {
-            drupal_set_message($this->t('A welcome message with further instructions has been sent to your e-mail address.'));
+            drupal_set_message($this->t('A welcome message with further instructions has been sent to your email address.'));
             $form_state['redirect_route']['route_name'] = '<front>';
           }
         }
@@ -143,7 +143,7 @@ public function save(array $form, array &$form_state) {
     // Administrator approval required.
     else {
       _user_mail_notify('register_pending_approval', $account);
-      drupal_set_message($this->t('Thank you for applying for an account. Your account is currently pending approval by the site administrator.<br />In the meantime, a welcome message with further instructions has been sent to your e-mail address.'));
+      drupal_set_message($this->t('Thank you for applying for an account. Your account is currently pending approval by the site administrator.<br />In the meantime, a welcome message with further instructions has been sent to your email address.'));
       $form_state['redirect_route']['route_name'] = '<front>';
     }
   }
diff --git a/core/modules/user/lib/Drupal/user/Tests/UserAdminTest.php b/core/modules/user/lib/Drupal/user/Tests/UserAdminTest.php
index d8d384d..6c4c026 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserAdminTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserAdminTest.php
@@ -52,7 +52,7 @@ function testUserAdmin() {
     $link = l(t('Edit'), "user/" . $user_a->id() . "/edit", array('query' => array('destination' => 'admin/people')));
     $this->assertRaw($link, 'Found user A edit link on admin users page');
 
-    // Filter the users by name/e-mail.
+    // Filter the users by name/email.
     $this->drupalGet('admin/people', array('query' => array('user' => $user_a->getUsername())));
     $result = $this->xpath('//table/tbody/tr');
     $this->assertEqual(1, count($result), 'Filter by username returned the right amount.');
@@ -119,14 +119,14 @@ function testUserAdmin() {
   }
 
   /**
-   * Tests the alternate notification e-mail address for user mails.
+   * Tests the alternate notification email address for user mails.
    */
   function testNotificationEmailAddress() {
-    // Test that the Notification E-mail address field is on the config page.
+    // Test that the Notification Email address field is on the config page.
     $admin_user = $this->drupalCreateUser(array('administer users', 'administer account settings'));
     $this->drupalLogin($admin_user);
     $this->drupalGet('admin/config/people/accounts');
-    $this->assertRaw('id="edit-mail-notification-address"', 'Notification E-mail address field exists');
+    $this->assertRaw('id="edit-mail-notification-address"', 'Notification Email address field exists');
     $this->drupalLogout();
 
     // Test custom user registration approval email address(es).
@@ -151,21 +151,21 @@ function testNotificationEmailAddress() {
     $this->drupalPostForm('user/register', $edit, t('Create new account'));
     $subject = 'Account details for ' . $edit['name'] . ' at ' . $system->get('name') . ' (pending admin approval)';
     // Ensure that admin notification mail is sent to the configured
-    // Notification E-mail address.
+    // Notification Email address.
     $admin_mail = $this->drupalGetMails(array(
       'to' => $notify_address,
       'from' => $server_address,
       'subject' => $subject,
     ));
-    $this->assertTrue(count($admin_mail), 'New user mail to admin is sent to configured Notification E-mail address');
+    $this->assertTrue(count($admin_mail), 'New user mail to admin is sent to configured Notification Email address');
     // Ensure that user notification mail is sent from the configured
-    // Notification E-mail address.
+    // Notification Email address.
     $user_mail = $this->drupalGetMails(array(
       'to' => $edit['mail'],
       'from' => $server_address,
       'reply-to' => $notify_address,
       'subject' => $subject,
     ));
-    $this->assertTrue(count($user_mail), 'New user mail to user is sent from configured Notification E-mail address');
+    $this->assertTrue(count($user_mail), 'New user mail to user is sent from configured Notification Email address');
   }
 }
diff --git a/core/modules/user/lib/Drupal/user/Tests/UserCancelTest.php b/core/modules/user/lib/Drupal/user/Tests/UserCancelTest.php
index edd4ea1..66c66af 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserCancelTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserCancelTest.php
@@ -127,7 +127,7 @@ function testUserCancelInvalid() {
     // Confirm account cancellation.
     $timestamp = time();
     $this->drupalPostForm(NULL, NULL, t('Cancel account'));
-    $this->assertText(t('A confirmation request to cancel your account has been sent to your e-mail address.'), 'Account cancellation request mailed message displayed.');
+    $this->assertText(t('A confirmation request to cancel your account has been sent to your email address.'), 'Account cancellation request mailed message displayed.');
 
     // Attempt bogus account cancellation request confirmation.
     $bogus_timestamp = $timestamp + 60;
@@ -172,7 +172,7 @@ function testUserBlock() {
     $timestamp = time();
 
     $this->drupalPostForm(NULL, NULL, t('Cancel account'));
-    $this->assertText(t('A confirmation request to cancel your account has been sent to your e-mail address.'), 'Account cancellation request mailed message displayed.');
+    $this->assertText(t('A confirmation request to cancel your account has been sent to your email address.'), 'Account cancellation request mailed message displayed.');
 
     // Confirm account cancellation request.
     $this->drupalGet("user/" . $account->id() . "/cancel/confirm/$timestamp/" . user_pass_rehash($account->getPassword(), $timestamp, $account->getLastLoginTime()));
@@ -226,7 +226,7 @@ function testUserBlockUnpublish() {
     // Confirm account cancellation.
     $timestamp = time();
     $this->drupalPostForm(NULL, NULL, t('Cancel account'));
-    $this->assertText(t('A confirmation request to cancel your account has been sent to your e-mail address.'), 'Account cancellation request mailed message displayed.');
+    $this->assertText(t('A confirmation request to cancel your account has been sent to your email address.'), 'Account cancellation request mailed message displayed.');
 
     // Confirm account cancellation request.
     $this->drupalGet("user/" . $account->id() . "/cancel/confirm/$timestamp/" . user_pass_rehash($account->getPassword(), $timestamp, $account->getLastLoginTime()));
@@ -281,7 +281,7 @@ function testUserAnonymize() {
     // Confirm account cancellation.
     $timestamp = time();
     $this->drupalPostForm(NULL, NULL, t('Cancel account'));
-    $this->assertText(t('A confirmation request to cancel your account has been sent to your e-mail address.'), 'Account cancellation request mailed message displayed.');
+    $this->assertText(t('A confirmation request to cancel your account has been sent to your email address.'), 'Account cancellation request mailed message displayed.');
 
     // Confirm account cancellation request.
     $this->drupalGet("user/" . $account->id() . "/cancel/confirm/$timestamp/" . user_pass_rehash($account->getPassword(), $timestamp, $account->getLastLoginTime()));
@@ -347,7 +347,7 @@ function testUserDelete() {
     // Confirm account cancellation.
     $timestamp = time();
     $this->drupalPostForm(NULL, NULL, t('Cancel account'));
-    $this->assertText(t('A confirmation request to cancel your account has been sent to your e-mail address.'), 'Account cancellation request mailed message displayed.');
+    $this->assertText(t('A confirmation request to cancel your account has been sent to your email address.'), 'Account cancellation request mailed message displayed.');
 
     // Confirm account cancellation request.
     $this->drupalGet("user/" . $account->id() . "/cancel/confirm/$timestamp/" . user_pass_rehash($account->getPassword(), $timestamp, $account->getLastLoginTime()));
@@ -389,14 +389,14 @@ function testUserCancelByAdmin() {
   }
 
   /**
-   * Tests deletion of a user account without an e-mail address.
+   * Tests deletion of a user account without an email address.
    */
   function testUserWithoutEmailCancelByAdmin() {
     \Drupal::config('user.settings')->set('cancel_method', 'user_cancel_reassign')->save();
 
     // Create a regular user.
     $account = $this->drupalCreateUser(array());
-    // This user has no e-mail address.
+    // This user has no email address.
     $account->mail = '';
     $account->save();
 
@@ -404,7 +404,7 @@ function testUserWithoutEmailCancelByAdmin() {
     $admin_user = $this->drupalCreateUser(array('administer users'));
     $this->drupalLogin($admin_user);
 
-    // Delete regular user without e-mail address.
+    // Delete regular user without email address.
     $this->drupalGet('user/' . $account->id() . '/edit');
     $this->drupalPostForm(NULL, NULL, t('Cancel account'));
     $this->assertRaw(t('Are you sure you want to cancel the account %name?', array('%name' => $account->getUsername())), 'Confirmation form to cancel account displayed.');
@@ -445,7 +445,7 @@ function testMassUserCancelByAdmin() {
     $this->drupalPostForm('admin/people', $edit, t('Apply'));
     $this->assertText(t('Are you sure you want to cancel these user accounts?'), 'Confirmation form to cancel accounts displayed.');
     $this->assertText(t('When cancelling these accounts'), 'Allows to select account cancellation method.');
-    $this->assertText(t('Require e-mail confirmation to cancel account.'), 'Allows to send confirmation mail.');
+    $this->assertText(t('Require email confirmation to cancel account.'), 'Allows to send confirmation mail.');
     $this->assertText(t('Notify user when account is canceled.'), 'Allows to send notification mail.');
 
     // Confirm deletion.
@@ -458,7 +458,7 @@ function testMassUserCancelByAdmin() {
     $this->assertTrue($status, 'Users deleted and not found in the database.');
 
     // Ensure that admin account was not cancelled.
-    $this->assertText(t('A confirmation request to cancel your account has been sent to your e-mail address.'), 'Account cancellation request mailed message displayed.');
+    $this->assertText(t('A confirmation request to cancel your account has been sent to your email address.'), 'Account cancellation request mailed message displayed.');
     $admin_user = user_load($admin_user->id());
     $this->assertTrue($admin_user->isActive(), 'Administrative user is found in the database and enabled.');
 
diff --git a/core/modules/user/lib/Drupal/user/Tests/UserCreateFailMailTest.php b/core/modules/user/lib/Drupal/user/Tests/UserCreateFailMailTest.php
index 5a7dabe..055f595 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserCreateFailMailTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserCreateFailMailTest.php
@@ -49,7 +49,7 @@ protected function testUserAdd() {
     );
     $this->drupalPostForm('admin/people/create', $edit, t('Create new account'));
 
-    $this->assertText(t('Unable to send e-mail. Contact the site administrator if the problem persists.'));
-    $this->assertNoText(t('A welcome message with further instructions has been e-mailed to the new user @name.', array('@name' => $edit['name'])));
+    $this->assertText(t('Unable to send email. Contact the site administrator if the problem persists.'));
+    $this->assertNoText(t('A welcome message with further instructions has been emailed to the new user @name.', array('@name' => $edit['name'])));
   }
 }
diff --git a/core/modules/user/lib/Drupal/user/Tests/UserCreateTest.php b/core/modules/user/lib/Drupal/user/Tests/UserCreateTest.php
index d08beb1..104f314 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserCreateTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserCreateTest.php
@@ -103,12 +103,12 @@ protected function testUserAdd() {
       $this->drupalPostForm('admin/people/create', $edit, t('Create new account'));
 
       if ($notify) {
-        $this->assertText(t('A welcome message with further instructions has been e-mailed to the new user @name.', array('@name' => $edit['name'])), 'User created');
-        $this->assertEqual(count($this->drupalGetMails()), 1, 'Notification e-mail sent');
+        $this->assertText(t('A welcome message with further instructions has been emailed to the new user @name.', array('@name' => $edit['name'])), 'User created');
+        $this->assertEqual(count($this->drupalGetMails()), 1, 'Notification email sent');
       }
       else {
-        $this->assertText(t('Created a new user account for @name. No e-mail has been sent.', array('@name' => $edit['name'])), 'User created');
-        $this->assertEqual(count($this->drupalGetMails()), 0, 'Notification e-mail not sent');
+        $this->assertText(t('Created a new user account for @name. No email has been sent.', array('@name' => $edit['name'])), 'User created');
+        $this->assertEqual(count($this->drupalGetMails()), 0, 'Notification email not sent');
       }
 
       $this->drupalGet('admin/people');
diff --git a/core/modules/user/lib/Drupal/user/Tests/UserEditTest.php b/core/modules/user/lib/Drupal/user/Tests/UserEditTest.php
index 105fdea..4a2bb47 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserEditTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserEditTest.php
@@ -53,7 +53,7 @@ function testUserEdit() {
     $edit = array();
     $edit['mail'] = $this->randomName() . '@new.example.com';
     $this->drupalPostForm("user/" . $user1->id() . "/edit", $edit, t('Save'));
-    $this->assertRaw(t("Your current password is missing or incorrect; it's required to change the %name.", array('%name' => t('E-mail address'))));
+    $this->assertRaw(t("Your current password is missing or incorrect; it's required to change the %name.", array('%name' => t('Email address'))));
 
     $edit['current_pass'] = $user1->pass_raw;
     $this->drupalPostForm("user/" . $user1->id() . "/edit", $edit, t('Save'));
@@ -91,15 +91,15 @@ function testUserEdit() {
   }
 
   /**
-   * Tests editing of a user account without an e-mail address.
+   * Tests editing of a user account without an email address.
    */
   function testUserWithoutEmailEdit() {
-    // Test that an admin can edit users without an e-mail address.
+    // Test that an admin can edit users without an email address.
     $admin = $this->drupalCreateUser(array('administer users'));
     $this->drupalLogin($admin);
     // Create a regular user.
     $user1 = $this->drupalCreateUser(array());
-    // This user has no e-mail address.
+    // This user has no email address.
     $user1->mail = '';
     $user1->save();
     $this->drupalPostForm("user/" . $user1->id() . "/edit", array('mail' => ''), t('Save'));
diff --git a/core/modules/user/lib/Drupal/user/Tests/UserPasswordResetTest.php b/core/modules/user/lib/Drupal/user/Tests/UserPasswordResetTest.php
index bda0d97..4e4d492 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserPasswordResetTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserPasswordResetTest.php
@@ -57,19 +57,19 @@ function testUserPasswordReset() {
     $this->drupalGet('user/password');
 
     $edit = array('name' => $this->randomName(32));
-    $this->drupalPostForm(NULL, $edit, t('E-mail new password'));
+    $this->drupalPostForm(NULL, $edit, t('Email new password'));
 
-    $this->assertText(t('Sorry, @name is not recognized as a username or an e-mail address.', array('@name' => $edit['name'])), 'Validation error message shown when trying to request password for invalid account.');
-    $this->assertEqual(count($this->drupalGetMails(array('id' => 'user_password_reset'))), 0, 'No e-mail was sent when requesting a password for an invalid account.');
+    $this->assertText(t('Sorry, @name is not recognized as a username or an email address.', array('@name' => $edit['name'])), 'Validation error message shown when trying to request password for invalid account.');
+    $this->assertEqual(count($this->drupalGetMails(array('id' => 'user_password_reset'))), 0, 'No email was sent when requesting a password for an invalid account.');
 
     // Reset the password by username via the password reset page.
     $edit['name'] = $this->account->getUsername();
-    $this->drupalPostForm(NULL, $edit, t('E-mail new password'));
+    $this->drupalPostForm(NULL, $edit, t('Email new password'));
 
-     // Verify that the user was sent an e-mail.
-    $this->assertMail('to', $this->account->getEmail(), 'Password e-mail sent to user.');
+     // Verify that the user was sent an email.
+    $this->assertMail('to', $this->account->getEmail(), 'Password email sent to user.');
     $subject = t('Replacement login information for @username at @site', array('@username' => $this->account->getUsername(), '@site' => \Drupal::config('system.site')->get('name')));
-    $this->assertMail('subject', $subject, 'Password reset e-mail subject is correct.');
+    $this->assertMail('subject', $subject, 'Password reset email subject is correct.');
 
     $resetURL = $this->getResetURL();
     $this->drupalGet($resetURL);
@@ -98,13 +98,13 @@ function testUserPasswordReset() {
     $this->drupalGet($resetURL);
     $this->assertText(t('You have tried to use a one-time login link that has either been used or is no longer valid. Please request a new one using the form below.'), 'One-time link is no longer valid.');
 
-    // Request a new password again, this time using the e-mail address.
+    // Request a new password again, this time using the email address.
     $this->drupalGet('user/password');
     // Count email messages before to compare with after.
     $before = count($this->drupalGetMails(array('id' => 'user_password_reset')));
     $edit = array('name' => $this->account->getEmail());
-    $this->drupalPostForm(NULL, $edit, t('E-mail new password'));
-    $this->assertTrue( count($this->drupalGetMails(array('id' => 'user_password_reset'))) === $before + 1, 'E-mail sent when requesting password reset using e-mail address.');
+    $this->drupalPostForm(NULL, $edit, t('Email new password'));
+    $this->assertTrue( count($this->drupalGetMails(array('id' => 'user_password_reset'))) === $before + 1, 'Email sent when requesting password reset using email address.');
 
     // Create a password reset link as if the request time was 60 seconds older than the allowed limit.
     $timeout = \Drupal::config('user.settings')->get('password_reset_timeout');
@@ -115,7 +115,7 @@ function testUserPasswordReset() {
   }
 
   /**
-   * Retrieves password reset e-mail and extracts the login link.
+   * Retrieves password reset email and extracts the login link.
    */
   public function getResetURL() {
     // Assume the most recent email.
diff --git a/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php b/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php
index a0b205c..b80da0d 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php
@@ -33,7 +33,7 @@ public static function getInfo() {
 
   function testRegistrationWithEmailVerification() {
     $config = \Drupal::config('user.settings');
-    // Require e-mail verification.
+    // Require email verification.
     $config->set('verify_mail', TRUE)->save();
 
     // Set registration to administrator only.
@@ -47,7 +47,7 @@ function testRegistrationWithEmailVerification() {
     $edit['name'] = $name = $this->randomName();
     $edit['mail'] = $mail = $edit['name'] . '@example.com';
     $this->drupalPostForm('user/register', $edit, t('Create new account'));
-    $this->assertText(t('A welcome message with further instructions has been sent to your e-mail address.'), 'User registered successfully.');
+    $this->assertText(t('A welcome message with further instructions has been sent to your email address.'), 'User registered successfully.');
     $accounts = entity_load_multiple_by_properties('user', array('name' => $name, 'mail' => $mail));
     $new_user = reset($accounts);
     $this->assertTrue($new_user->isActive(), 'New account is active after registration.');
@@ -66,7 +66,7 @@ function testRegistrationWithEmailVerification() {
 
   function testRegistrationWithoutEmailVerification() {
     $config = \Drupal::config('user.settings');
-    // Don't require e-mail verification and allow registration by site visitors
+    // Don't require email verification and allow registration by site visitors
     // without administrator approval.
     $config
       ->set('verify_mail', FALSE)
@@ -129,7 +129,7 @@ function testRegistrationWithoutEmailVerification() {
   }
 
   function testRegistrationEmailDuplicates() {
-    // Don't require e-mail verification and allow registration by site visitors
+    // Don't require email verification and allow registration by site visitors
     // without administrator approval.
     \Drupal::config('user.settings')
       ->set('verify_mail', FALSE)
@@ -143,19 +143,19 @@ function testRegistrationEmailDuplicates() {
     $edit['name'] = $this->randomName();
     $edit['mail'] = $duplicate_user->getEmail();
 
-    // Attempt to create a new account using an existing e-mail address.
+    // Attempt to create a new account using an existing email address.
     $this->drupalPostForm('user/register', $edit, t('Create new account'));
-    $this->assertText(t('The e-mail address @email is already registered.', array('@email' => $duplicate_user->getEmail())), 'Supplying an exact duplicate email address displays an error message');
+    $this->assertText(t('The email address @email is already registered.', array('@email' => $duplicate_user->getEmail())), 'Supplying an exact duplicate email address displays an error message');
 
     // Attempt to bypass duplicate email registration validation by adding spaces.
     $edit['mail'] = '   ' . $duplicate_user->getEmail() . '   ';
 
     $this->drupalPostForm('user/register', $edit, t('Create new account'));
-    $this->assertText(t('The e-mail address @email is already registered.', array('@email' => $duplicate_user->getEmail())), 'Supplying a duplicate email address with added whitespace displays an error message');
+    $this->assertText(t('The email address @email is already registered.', array('@email' => $duplicate_user->getEmail())), 'Supplying a duplicate email address with added whitespace displays an error message');
   }
 
   function testRegistrationDefaultValues() {
-    // Don't require e-mail verification and allow registration by site visitors
+    // Don't require email verification and allow registration by site visitors
     // without administrator approval.
     $config_user_settings = \Drupal::config('user.settings')
       ->set('verify_mail', FALSE)
@@ -184,7 +184,7 @@ function testRegistrationDefaultValues() {
     $accounts = entity_load_multiple_by_properties('user', array('name' => $name, 'mail' => $mail));
     $new_user = reset($accounts);
     $this->assertEqual($new_user->getUsername(), $name, 'Username matches.');
-    $this->assertEqual($new_user->getEmail(), $mail, 'E-mail address matches.');
+    $this->assertEqual($new_user->getEmail(), $mail, 'Email address matches.');
     $this->assertEqual($new_user->getSignature(), '', 'Correct signature field.');
     $this->assertTrue(($new_user->getCreatedTime() > REQUEST_TIME - 20 ), 'Correct creation time.');
     $this->assertEqual($new_user->isActive(), $config_user_settings->get('register') == USER_REGISTER_VISITORS ? 1 : 0, 'Correct status field.');
diff --git a/core/modules/user/lib/Drupal/user/Tests/UserValidationTest.php b/core/modules/user/lib/Drupal/user/Tests/UserValidationTest.php
index 499877e..be356bd 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserValidationTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserValidationTest.php
@@ -116,16 +116,16 @@ function testValidation() {
     //   https://drupal.org/node/2023465.
     $this->assertEqual(count($violations), 2, 'Violations found when email is too long');
     $this->assertEqual($violations[0]->getPropertyPath(), 'mail.0.value');
-    $this->assertEqual($violations[0]->getMessage(), t('%name: the e-mail address can not be longer than @max characters.', array('%name' => $user->get('mail')->getFieldDefinition()->getLabel(), '@max' => EMAIL_MAX_LENGTH)));
+    $this->assertEqual($violations[0]->getMessage(), t('%name: the email address can not be longer than @max characters.', array('%name' => $user->get('mail')->getFieldDefinition()->getLabel(), '@max' => EMAIL_MAX_LENGTH)));
     $this->assertEqual($violations[1]->getPropertyPath(), 'mail.0.value');
     $this->assertEqual($violations[1]->getMessage(), t('This value is not a valid email address.'));
 
-    // Provoke a e-mail collision with an exsiting user.
+    // Provoke a email collision with an exsiting user.
     $user->set('mail', 'existing@example.com');
     $violations = $user->validate();
-    $this->assertEqual(count($violations), 1, 'Violation found when e-mail already exists.');
+    $this->assertEqual(count($violations), 1, 'Violation found when email already exists.');
     $this->assertEqual($violations[0]->getPropertyPath(), 'mail.0.value');
-    $this->assertEqual($violations[0]->getMessage(), t('The e-mail address %mail is already taken.', array('%mail' => 'existing@example.com')));
+    $this->assertEqual($violations[0]->getMessage(), t('The email address %mail is already taken.', array('%mail' => 'existing@example.com')));
     $user->set('mail', NULL);
 
     $user->set('signature', $this->randomString(256));
diff --git a/core/modules/user/lib/Drupal/user/UserInterface.php b/core/modules/user/lib/Drupal/user/UserInterface.php
index 4022179..8ea02e3 100644
--- a/core/modules/user/lib/Drupal/user/UserInterface.php
+++ b/core/modules/user/lib/Drupal/user/UserInterface.php
@@ -73,10 +73,10 @@ public function getPassword();
   public function setPassword($password);
 
   /**
-   * Sets the e-mail address of the user.
+   * Sets the email address of the user.
    *
    * @param string $mail
-   *   The new e-mail address of the user.
+   *   The new email address of the user.
    *
    * @return \Drupal\user\UserInterface
    *   The called user entity.
@@ -172,10 +172,10 @@ public function activate();
   public function block();
 
   /**
-   * Returns the e-mail that was used when the user was registered.
+   * Returns the email that was used when the user was registered.
    *
    * @return string
-   *   Initial e-mail address of the user.
+   *   Initial email address of the user.
    */
   public function getInitialEmail();
 
diff --git a/core/modules/user/user.install b/core/modules/user/user.install
index 086a5a0..d8556a9 100644
--- a/core/modules/user/user.install
+++ b/core/modules/user/user.install
@@ -53,7 +53,7 @@ function user_schema() {
         'length' => 254,
         'not null' => FALSE,
         'default' => '',
-        'description' => "User's e-mail address.",
+        'description' => "User's email address.",
       ),
       'signature' => array(
         'type' => 'varchar',
@@ -118,7 +118,7 @@ function user_schema() {
         'length' => 254,
         'not null' => FALSE,
         'default' => '',
-        'description' => 'E-mail address used for initial account creation.',
+        'description' => 'Email address used for initial account creation.',
       ),
     ),
     'indexes' => array(
diff --git a/core/modules/user/user.menu_links.yml b/core/modules/user/user.menu_links.yml
index 3455485..bc421f0 100644
--- a/core/modules/user/user.menu_links.yml
+++ b/core/modules/user/user.menu_links.yml
@@ -24,6 +24,6 @@ user.admin_index:
 user.account_settings:
   title: 'Account settings'
   parent: user.admin_index
-  description: 'Configure default behavior of users, including registration requirements, e-mails, and fields.'
+  description: 'Configure default behavior of users, including registration requirements, emails, and fields.'
   weight: -10
   route_name: user.account_settings
diff --git a/core/modules/user/user.module b/core/modules/user/user.module
index 4b28c81..4de8b99 100644
--- a/core/modules/user/user.module
+++ b/core/modules/user/user.module
@@ -48,31 +48,29 @@
 /**
  * Implement hook_help().
  */
-function user_help($route_name, Request $request) {
-  switch ($route_name) {
-    case 'help.page.user':
+function user_help($path, $arg) {
+  switch ($path) {
+    case 'admin/help#user':
       $output = '';
       $output .= '<h3>' . t('About') . '</h3>';
       $output .= '<p>' . t('The User module allows users to register, log in, and log out. It also allows users with proper permissions to manage user roles and permissions. For more information, see the <a href="!user_docs">online documentation for the User module</a>.', array('!user_docs' => 'https://drupal.org/documentation/modules/user')) . '</p>';
       $output .= '<h3>' . t('Uses') . '</h3>';
       $output .= '<dl>';
       $output .= '<dt>' . t('Creating and managing users') . '</dt>';
-      $output .= '<dd>' . t('Through the <a href="!people">People administration page</a> you can create and cancel user accounts and assign users to roles. By editing one particular user you change the username, e-mail address, and password.', array('!people' => \Drupal::url('user.admin_account'))) . '</dd>';
+      $output .= '<dd>' . t('Through the <a href="!people">People administration page</a> you can create and cancel user accounts and assign users to roles. By editing one particular user you change the username, email address, and password.', array('!people' => \Drupal::url('user.admin_account'))) . '</dd>';
       $output .= '<dt>' . t('User roles') . '</dt>';
       $output .= '<dd>' . t('<em>User roles</em> are used to group and classify users; each user can be assigned one or more roles. Typically there are three pre-defined roles: <em>Anonymous user</em> (users that are not logged in), <em>Authenticated user</em> (users that are registered and logged in), and <em>Administrator</em> (users that are registered, logged in as administrator). You can create additional roles on the <a href="!roles">Roles page</a>.', array('!roles' => \Drupal::url('user.role_list'))) . '</dd>';
       $output .= '<dt>' . t('Permissions') . '</dt>';
       $output .= '<dd>' . t('After creating roles, you can set permissions for each role on the <a href="!permissions_user">Permissions page</a>. Granting a permission allows users who have been assigned a particular role to perform an action on the site, such as viewing a particular type of content, editing or creating content, administering settings for a particular module, or using a particular function of the site (such as search).', array('!permissions_user' => \Drupal::url('user.admin_permissions'))) . '</dd>';
       $output .= '<dt>' . t('Account settings') . '</dt>';
-      $output .= '<dd>' . t('The <a href="!accounts">Account settings page</a> allows you to manage settings for the displayed name of the anonymous user role, default administrator role (this role will be automatically assigned new permissions whenever a module is enabled), personal contact forms, user registration, and account cancellation. On this page you can also manage settings for account personalization (including signatures), and adapt the text for the e-mail messages that users receive when they register or request a password recovery.', array('!accounts'  => \Drupal::url('user.account_settings'))) . '</dd>';
+      $output .= '<dd>' . t('The <a href="!accounts">Account settings page</a> allows you to manage settings for the displayed name of the anonymous user role, default administrator role (this role will be automatically assigned new permissions whenever a module is enabled), personal contact forms, user registration, and account cancellation. On this page you can also manage settings for account personalization (including signatures), and adapt the text for the email messages that users receive when they register or request a password recovery.', array('!accounts'  => \Drupal::url('user.account_settings'))) . '</dd>';
       $output .= '<dt>' . t('Managing user account fields') . '</dt>';
       $output .= '<dd>' . t('Because User accounts are an <a href="!entity_help">entity type</a>, you can extend them by adding <a href="!field_help">fields</a> through the Manage fields tab on the <a href="!accounts">Account settings page</a>. By adding fields for e.g., a picture, a biography, or address, you can a create a custom profile for the users of the website.', array('!entity_help' => \Drupal::url('help.page', array('name' => 'entity')),'!field_help'=>\Drupal::url('help.page', array('name' => 'field')), '!accounts' => \Drupal::url('user.account_settings'))) . '</dd>';
       $output .= '</dl>';
       return $output;
-
-    case 'user.admin_create':
-      return '<p>' . t("This web page allows administrators to register new users. Users' e-mail addresses and usernames must be unique.") . '</p>';
-
-    case 'user.admin_permissions':
+    case 'admin/people/create':
+      return '<p>' . t("This web page allows administrators to register new users. Users' email addresses and usernames must be unique.") . '</p>';
+    case 'admin/people/permissions':
       return '<p>' . t('Permissions let you control what users can do and see on your site. You can define a specific set of permissions for each role. (See the <a href="@role">Roles</a> page to create a role). Two important roles to consider are Authenticated Users and Administrators. Any permissions granted to the Authenticated Users role will be given to any user who can log into your site. You can make any role the Administrator role for the site, meaning this will be granted all new permissions automatically. You can do this on the <a href="@settings">User Settings</a> page. You should be careful to ensure that only trusted users are given this access and level of control of your site.', array('@role' => url('admin/people/roles'), '@settings' => url('admin/config/people/accounts'))) . '</p>';
 
     case 'user.role_list':
@@ -152,6 +150,14 @@ function user_js_alter(&$javascript) {
 }
 
 /**
+ * Implements hook_entity_bundle_info().
+ */
+function user_entity_bundle_info() {
+  $bundles['user']['user']['label'] = t('User');
+  return $bundles;
+}
+
+/**
  * Entity URI callback.
  */
 function user_uri($user) {
@@ -163,15 +169,13 @@ function user_uri($user) {
 /**
  * Populates $entity->account for each prepared entity.
  *
- * Called by Drupal\Core\Entity\EntityViewBuilderInterface::buildComponents()
+ * Called by Drupal\Core\Entity\EntityViewBuilderInterface::buildContent()
  * implementations.
  *
- * @param array &$build
- *   A renderable array representing the entity content.
  * @param \Drupal\user\EntityOwnerInterface[] $entities
  *   The entities keyed by entity ID.
  */
-function user_attach_accounts(array &$build, array $entities) {
+function user_attach_accounts(array $entities) {
   $uids = array();
   foreach ($entities as $entity) {
     $uids[] = $entity->getOwnerId();
@@ -199,8 +203,7 @@ function user_attach_accounts(array &$build, array $entities) {
  * preprocess stage.
  */
 function user_picture_enabled() {
-  $field_definitions = \Drupal::entityManager()->getFieldDefinitions('user', 'user');
-  return isset($field_definitions['user_picture']);
+  return (bool) field_info_instance('user', 'user_picture', 'user');
 }
 
 /**
@@ -262,15 +265,9 @@ function user_entity_extra_field_info() {
  * @see user_load_by_mail()
  * @see user_load_by_name()
  * @see \Drupal\Core\Entity\Query\QueryInterface
- *
- * @deprecated in Drupal 8.x, will be removed before Drupal 9.0.
- *   Use \Drupal\user\Entity\User::loadMultiple().
  */
 function user_load_multiple(array $uids = NULL, $reset = FALSE) {
-  if ($reset) {
-    \Drupal::entityManager()->getStorage('user')->resetCache($uids);
-  }
-  return User::loadMultiple($uids);
+  return entity_load_multiple('user', $uids, $reset);
 }
 
 /**
@@ -295,23 +292,17 @@ function user_load_multiple(array $uids = NULL, $reset = FALSE) {
  *   A fully-loaded user object upon successful user load, or NULL if the user
  *   cannot be loaded.
  *
- * @deprecated in Drupal 8.x, will be removed before Drupal 9.0.
- *   Use \Drupal\user\Entity\User::load().
- *
  * @see user_load_multiple()
  */
 function user_load($uid, $reset = FALSE) {
-  if ($reset) {
-    \Drupal::entityManager()->getStorage('user')->resetCache(array($uid));
-  }
-  return User::load($uid);
+  return entity_load('user', $uid, $reset);
 }
 
 /**
  * Fetches a user object by email address.
  *
  * @param string $mail
- *   String with the account's e-mail address.
+ *   String with the account's email address.
  * @return object|bool
  *   A fully-loaded $user object upon successful user load or FALSE if user
  *   cannot be loaded.
@@ -516,9 +507,9 @@ function user_permission() {
 /**
  * Implements hook_user_view().
  */
-function user_user_view(array &$build, UserInterface $account, EntityViewDisplayInterface $display) {
+function user_user_view(UserInterface $account, EntityViewDisplayInterface $display) {
   if ($display->getComponent('member_for')) {
-    $build['member_for'] = array(
+    $account->content['member_for'] = array(
       '#type' => 'item',
       '#title' => t('Member for'),
       '#markup' => format_interval(REQUEST_TIME - $account->getCreatedTime()),
@@ -1143,7 +1134,7 @@ function user_mail($key, &$message, $params) {
   $mail_config = \Drupal::config('user.mail');
 
    // We do not sanitize the token replacement, since the output of this
-   // replacement is intended for an e-mail message, not a web browser.
+   // replacement is intended for an email message, not a web browser.
   $token_options = array('langcode' => $langcode, 'callback' => 'user_mail_tokens', 'sanitize' => FALSE, 'clear' => TRUE);
   $message['subject'] .= $token_service->replace($mail_config->get($key . '.subject'), $variables, $token_options);
   $message['body'][] = $token_service->replace($mail_config->get($key . '.body'), $variables, $token_options);
@@ -1306,12 +1297,9 @@ function user_roles($membersonly = FALSE, $permission = NULL) {
  * @return
  *   A fully-loaded role object if a role with the given ID exists, or NULL
  *   otherwise.
- *
- * @deprecated in Drupal 8.x, will be removed before Drupal 9.0.
- *   Use \Drupal\user\Entity\Role::load().
  */
 function user_role_load($rid) {
-  return Role::load($rid);
+  return entity_load('user_role', $rid);
 }
 
 /**
diff --git a/core/modules/user/user.pages.inc b/core/modules/user/user.pages.inc
index 964323c..ff51b0f 100644
--- a/core/modules/user/user.pages.inc
+++ b/core/modules/user/user.pages.inc
@@ -120,7 +120,7 @@ function template_preprocess_user(&$variables) {
 }
 
 /**
- * Menu callback; Cancel a user account via e-mail confirmation link.
+ * Menu callback; Cancel a user account via email confirmation link.
  *
  * @see user_cancel_confirm_form()
  * @see user_cancel_url()
diff --git a/core/modules/user/user.views.inc b/core/modules/user/user.views.inc
index 44c1cb3..b2e2773 100644
--- a/core/modules/user/user.views.inc
+++ b/core/modules/user/user.views.inc
@@ -110,8 +110,8 @@ function user_views_data() {
 
   // Note that this field implements field level access control.
   $data['users']['mail'] = array(
-    'title' => t('E-mail'),
-    'help' => t('E-mail address for a given user. This field is normally not shown to users, so be cautious when using it.'),
+    'title' => t('Email'),
+    'help' => t('Email address for a given user. This field is normally not shown to users, so be cautious when using it.'),
     'field' => array(
       'id' => 'user_mail',
     ),
diff --git a/sites/default/default.settings.php b/sites/default/default.settings.php
index 587a9cc..430a9b7 100644
--- a/sites/default/default.settings.php
+++ b/sites/default/default.settings.php
@@ -616,7 +616,7 @@
  *
  * Use settings.local.php to override variables on secondary (staging,
  * development, etc) installations of this site. Typically used to disable
- * caching, JavaScript/CSS compression, re-routing of outgoing e-mails, and
+ * caching, JavaScript/CSS compression, re-routing of outgoing emails, and
  * other things that should not happen on development and testing sites.
  *
  * Keep this code block at the end of this file to take full effect.
