Index: src/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php
===================================================================
--- src/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php	(revision 39004)
+++ src/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php	(working copy)
@@ -596,6 +596,10 @@
 			$data['link'] = get_author_posts_url( $user->ID, $user->user_nicename );
 		}
 
+		if ( ! empty( $schema['properties']['locale'] ) ) {
+			$data['locale'] = get_user_locale( $user );
+		}
+
 		if ( ! empty( $schema['properties']['nickname'] ) ) {
 			$data['nickname'] = $user->nickname;
 		}
@@ -847,6 +851,14 @@
 					'context'     => array( 'embed', 'view', 'edit' ),
 					'readonly'    => true,
 				),
+				'locale'    => array(
+					'description' => __( 'Locale for the resource.' ),
+					'type'        => 'string',
+					'context'     => array( 'edit' ),
+					'arg_options' => array(
+						'sanitize_callback' => array( $this, 'sanitize_locale' ),
+					),
+				),
 				'nickname'    => array(
 					'description' => __( 'The nickname for the resource.' ),
 					'type'        => 'string',
@@ -987,4 +999,21 @@
 		);
 		return $query_params;
 	}
+
+	/**
+	 * Sanitizes the locale value.
+	 *
+	 * @since 4.7.0
+	 *
+	 * @param string $locale Locale value passed in request.
+	 * @return string Sanitized value for the locale.
+	 */
+	public function sanitize_locale( $locale ) {
+		$locale = sanitize_text_field( $locale );
+		if ( ! in_array( $locale, get_available_languages(), true ) ) {
+			$locale = '';
+		}
+
+		return ( '' === $locale ) ? 'en_US' : $locale;
+	}
 }
Index: tests/phpunit/tests/rest-api/rest-users-controller.php
===================================================================
--- tests/phpunit/tests/rest-api/rest-users-controller.php	(revision 39004)
+++ tests/phpunit/tests/rest-api/rest-users-controller.php	(working copy)
@@ -1116,7 +1116,7 @@
 		$data = $response->get_data();
 		$properties = $data['schema']['properties'];
 
-		$this->assertEquals( 18, count( $properties ) );
+		$this->assertEquals( 19, count( $properties ) );
 		$this->assertArrayHasKey( 'avatar_urls', $properties );
 		$this->assertArrayHasKey( 'capabilities', $properties );
 		$this->assertArrayHasKey( 'description', $properties );
@@ -1126,6 +1126,7 @@
 		$this->assertArrayHasKey( 'id', $properties );
 		$this->assertArrayHasKey( 'last_name', $properties );
 		$this->assertArrayHasKey( 'link', $properties );
+		$this->assertArrayHasKey( 'locale', $properties );
 		$this->assertArrayHasKey( 'meta', $properties );
 		$this->assertArrayHasKey( 'name', $properties );
 		$this->assertArrayHasKey( 'nickname', $properties );
@@ -1261,6 +1262,7 @@
 		$this->assertEquals( $user->user_url, $data['url'] );
 		$this->assertEquals( $user->description, $data['description'] );
 		$this->assertEquals( get_author_posts_url( $user->ID ), $data['link'] );
+		$this->assertEquals( get_user_locale( $user ), $data['locale'] );
 		$this->assertArrayHasKey( 'avatar_urls', $data );
 		$this->assertEquals( $user->user_nicename, $data['slug'] );
 
