Index: src/wp-admin/includes/ajax-actions.php
===================================================================
--- src/wp-admin/includes/ajax-actions.php	(revision 43028)
+++ src/wp-admin/includes/ajax-actions.php	(working copy)
@@ -4353,7 +4353,7 @@
 	}
 
 	$email_address = $request->email;
-	if ( ! is_email( $email_address ) ) {
+	if ( ! is_email( strtolower( $email_address ) ) ) {
 		wp_send_json_error( __( 'Error: A valid email address must be given.' ) );
 	}
 
@@ -4368,49 +4368,77 @@
 	 *
 	 * @param array $args {
 	 *     An array of callable exporters of personal data. Default empty array.
-	 *     [
-	 *         callback               string  Callable exporter that accepts an email address and
-	 *                                        a page and returns an array of name => value
-	 *                                        pairs of personal data.
-	 *         exporter_friendly_name string  Translated user facing friendly name for the exporter.
-	 *     ]
+	 *
+	 *     @type array {
+	 *         Array of personal data exporters.
+	 *
+	 *         @type string $callback               Callable exporter function that accepts an
+	 *                                              email address and a page and returns an array
+	 *                                              of name => value pairs of personal data.
+	 *         @type string $exporter_friendly_name Translated user facing friendly name for the
+	 *                                              exporter.
+	 *     }
 	 * }
 	 */
 	$exporters = apply_filters( 'wp_privacy_personal_data_exporters', array() );
 
 	if ( ! is_array( $exporters ) ) {
-		wp_send_json_error( 'An exporter has improperly used the registration filter.' );
+		wp_send_json_error( __( 'An exporter has improperly used the registration filter.' ) );
 	}
 
 	// Do we have any registered exporters?
 	if ( 0 < count( $exporters ) ) {
 		if ( $exporter_index < 1 ) {
-			wp_send_json_error( 'Exporter index cannot be negative.' );
+			wp_send_json_error( __( 'Exporter index cannot be negative.' ) );
 		}
 
 		if ( $exporter_index > count( $exporters ) ) {
-			wp_send_json_error( 'Exporter index out of range.' );
+			wp_send_json_error( __( 'Exporter index out of range.' ) );
 		}
 
 		$index = $exporter_index - 1;
 
 		if ( $page < 1 ) {
-			wp_send_json_error( 'Page index cannot be less than one.' );
+			wp_send_json_error( __( 'Page index cannot be less than one.' ) );
 		}
 
 		$exporter = $exporters[ $index ];
 
 		if ( ! is_array( $exporter ) ) {
-			wp_send_json_error( "Expected an array describing the exporter at index {$exporter_index}." );
+			wp_send_json_error(
+				sprintf(
+					/* translators: %s: array index */
+					__( 'Expected an array describing the exporter at index %s.' ),
+					$exporter_index
+				)
+			);
 		}
 		if ( ! array_key_exists( 'exporter_friendly_name', $exporter ) ) {
-			wp_send_json_error( "Exporter array at index {$exporter_index} does not include a friendly name." );
+			wp_send_json_error(
+				sprintf(
+					/* translators: %s: array index */
+					__( 'Exporter array at index %s does not include a friendly name.' ),
+					$exporter_index
+				)
+			);
 		}
 		if ( ! array_key_exists( 'callback', $exporter ) ) {
-			wp_send_json_error( "Exporter does not include a callback: {$exporter['exporter_friendly_name']}." );
+			wp_send_json_error(
+				sprintf(
+					/* translators: %s: exporter friendly name */
+					__( 'Exporter does not include a callback: %s.' ),
+					$exporter['exporter_friendly_name']
+				)
+			);
 		}
 		if ( ! is_callable( $exporter['callback'] ) ) {
-			wp_send_json_error( "Exporter callback is not a valid callback: {$exporter['exporter_friendly_name']}." );
+			wp_send_json_error(
+				sprintf(
+					/* translators: %s: exporter friendly name */
+					__( 'Exporter callback is not a valid callback: %s.' ),
+					$exporter['exporter_friendly_name']
+				)
+			);
 		}
 
 		$callback = $exporters[ $index ]['callback'];
@@ -4422,16 +4450,40 @@
 		}
 
 		if ( ! is_array( $response ) ) {
-			wp_send_json_error( "Expected response as an array from exporter: {$exporter_friendly_name}." );
+			wp_send_json_error(
+				sprintf(
+					/* translators: %s: exporter friendly name */
+					__( 'Expected response as an array from exporter: %s.' ),
+					$exporter_friendly_name
+				)
+			);
 		}
 		if ( ! array_key_exists( 'data', $response ) ) {
-			wp_send_json_error( "Expected data in response array from exporter: {$exporter_friendly_name}." );
+			wp_send_json_error(
+				sprintf(
+					/* translators: %s: exporter friendly name */
+					__( 'Expected data in response array from exporter: %s.' ),
+					$exporter_friendly_name
+				)
+			);
 		}
 		if ( ! is_array( $response['data'] ) ) {
-			wp_send_json_error( "Expected data array in response array from exporter: {$exporter_friendly_name}." );
+			wp_send_json_error(
+				sprintf(
+					/* translators: %s: exporter friendly name */
+					__( 'Expected data array in response array from exporter: %s.' ),
+					$exporter_friendly_name
+				)
+			);
 		}
 		if ( ! array_key_exists( 'done', $response ) ) {
-			wp_send_json_error( "Expected done (boolean) in response array from exporter: {$exporter_friendly_name}." );
+			wp_send_json_error(
+				sprintf(
+					/* translators: %s: exporter friendly name */
+					__( 'Expected done (boolean) in response array from exporter: %s.' ),
+					$exporter_friendly_name
+				)
+			);
 		}
 	} else {
 		// No exporters, so we're done.
