diff --git wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php
index d407c1295..7545b4df3 100644
--- wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php
+++ wordpress.org/public_html/wp-content/plugins/plugin-directory/cli/class-import.php
@@ -362,8 +362,8 @@ class Import {
 		$svn_assets_folder = SVN::ls( self::PLUGIN_SVN_BASE . "/{$plugin_slug}/assets/", true /* verbose */ );
 		if ( $svn_assets_folder ) { // /assets/ may not exist.
 			foreach ( $svn_assets_folder as $asset ) {
-				// screenshot-0(-rtl).(png|jpg|jpeg|gif)  ||  icon.svg
-				if ( ! preg_match( '!^(?P<type>screenshot|banner|icon)(-(?P<resolution>[\dx]+)(-rtl)?\.(png|jpg|jpeg|gif)|\.svg)$!i', $asset['filename'], $m ) ) {
+				// screenshot-0(-rtl)(-de_DE).(png|jpg|jpeg|gif)  ||  icon.svg
+				if ( ! preg_match( '!^(?P<type>screenshot|banner|icon)(-(?P<resolution>[\dx]+)(-rtl)?(-(?P<locale>[a-z]{2}\_[A-Z]{2}))?\.(png|jpg|jpeg|gif)|\.svg)$!i', $asset['filename'], $m ) ) {
 					continue;
 				}
 
@@ -372,8 +372,9 @@ class Import {
 				$revision   = $asset['revision'];
 				$location   = 'assets';
 				$resolution = isset( $m['resolution'] ) ? $m['resolution'] : false;
+				$locale     = isset( $m['locale'] ) ? $m['locale'] : false;
 
-				$assets[ $type ][ $asset['filename'] ] = compact( 'filename', 'revision', 'resolution', 'location' );
+				$assets[ $type ][ $asset['filename'] ] = compact( 'filename', 'revision', 'resolution', 'location', 'locale' );
 			}
 		}
 
diff --git wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-screenshots.php wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-screenshots.php
index 4bfe1400a..edda95b9d 100644
--- wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-screenshots.php
+++ wordpress.org/public_html/wp-content/plugins/plugin-directory/shortcodes/class-screenshots.php
@@ -28,11 +28,25 @@ class Screenshots {
 
 		ksort( $screen_shots, SORT_NATURAL );
 
+		$displayed_keys = array();
+
 		/*
 		 * Find the image that corresponds with the text.
 		 * The image numbers are stored within the 'resolution' key.
+		 * The same key can have more than one screenshot with different locales.
 		 */
 		foreach ( $screen_shots as $image ) {
+
+			if ( !empty($image['locale']) && $image['locale'] != get_locale() ){
+				continue;
+			}
+
+			if ( in_array( $image['resolution'], $displayed_keys ) ){
+				continue;
+			}
+
+			$displayed_keys[] = $image['resolution'];
+			
 			$screen_shot = sprintf(
 				'<a href="%1$s" rel="nofollow"><img class="screenshot" src="%1$s" alt="" /></a>',
 				esc_url( Template::get_asset_url( $plugin, $image ) )
