Index: public_html/wp-content/plugins/theme-directory/class-wporg-themes-upload.php
===================================================================
--- public_html/wp-content/plugins/theme-directory/class-wporg-themes-upload.php	(revision 1632)
+++ public_html/wp-content/plugins/theme-directory/class-wporg-themes-upload.php	(working copy)
@@ -102,6 +102,7 @@
 		// Do we have a stylesheet? Life is kind of pointless without.
 		$style_css = $this->get_style_css( $theme_files );
 		if ( empty( $style_css ) ) {
+			/* translators: %s: style.css */
 			return sprintf( __( 'The zip file must include a file named %s.', 'wporg-themes' ), '<code>style.css</code>' );
 		}
 
@@ -110,6 +111,7 @@
 
 		// We need a screen shot. People love screen shots.
 		if ( ! $this->has_screenshot( $theme_files ) ) {
+			/* translators: 1: screenshot.png 2: screenshot.jpg */
 			return sprintf( __( 'The zip file must include a file named %1$s or %2$s.', 'wporg-themes' ), '<code>screenshot.png</code>', '<code>screenshot.jpg</code>' );
 		}
 
@@ -119,7 +121,8 @@
 		// Let's check some theme headers, shall we?
 
 		if ( ! $this->theme_name = $this->theme->get( 'Name' ) ) {
-			return __( "The theme has no name. Add it to style.css and upload the theme again. <a href='https://codex.wordpress.org/Theme_Development#Theme_Style_Sheet'>Theme Style Sheets</a>", 'wporg-themes' );
+			/* translators: 1: style.css 2: codex link */
+			return sprintf( __( 'The theme has no name. Add it to %1$s and upload the theme again. <a href="%2$s">Theme Style Sheets</a>', 'wporg-themes' ), '<code>style.css</code>', 'https://codex.wordpress.org/Theme_Development#Theme_Style_Sheet' );
 		}
 
 		// determine the theme slug based on the name of the theme in the stylesheet
@@ -129,7 +132,8 @@
 
 		// Make sure it doesn't use a slug deemed not to be used by the public.
 		if ( $this->has_reserved_slug() ) {
-			return sprintf( __( 'Sorry, the theme name %s is reserved for use by WordPress Core. Please change the name of your theme in <code>style.css</code> and upload it again.', 'wporg-themes' ), '<code>' . $this->theme_slug . '</code>' );
+			/* translators: 1: theme slug 2: style.css */
+			return sprintf( __( 'Sorry, the theme name %1$s is reserved for use by WordPress Core. Please change the name of your theme in %2$s and upload it again.', 'wporg-themes' ), '<code>' . $this->theme_slug . '</code>', '<code>style.css</code>' );
 		}
 
 		// populate the theme post and author
@@ -137,24 +141,29 @@
 
 		$theme_description = $this->strip_non_utf8( (string) $this->theme->get( 'Description' ) );
 		if ( empty( $theme_description ) ) {
-			return sprintf( __( 'The theme has no description. Add it to <code>style.css</code> and upload the theme again. <a href="%s">Theme Style Sheets</a>', 'wporg-themes' ), 'https://codex.wordpress.org/Theme_Development#Theme_Style_Sheet' );
+			/* translators: 1: style.css 2: codex link */
+			return sprintf( __( 'The theme has no description. Add it to %1$s and upload the theme again. <a href="%2$s">Theme Style Sheets</a>', 'wporg-themes' ), '<code>style.css</code>', 'https://codex.wordpress.org/Theme_Development#Theme_Style_Sheet' );
 		}
 
 		if ( ! $this->theme->get( 'Tags' ) ) {
-			return __( 'The stylesheet has no tags. Add a Tags: line to your <code>style.css</code> file and upload the zip file again.', 'wporg-themes' );
+			/* translators: 1: style.css 2: codex link */
+			return sprintf( __( 'The theme has no tags. Add it to %1$s and upload the theme again. <a href="%2$s">Theme Style Sheets</a>', 'wporg-themes' ), '<code>style.css</code>', 'https://codex.wordpress.org/Theme_Development#Theme_Style_Sheet' );
 		}
 
 		if ( ! $this->theme->get( 'Version' ) ) {
-			return __( 'The stylesheet has no version. Add a Version: line to your <code>style.css</code> file and upload the zip file again.', 'wporg-themes' );
+			/* translators: 1: style.css 2: codex link */
+			return sprintf( __( 'The theme has no version. Add it to %1$s and upload the theme again. <a href="%2$s">Theme Style Sheets</a>', 'wporg-themes' ), '<code>style.css</code>', 'https://codex.wordpress.org/Theme_Development#Theme_Style_Sheet' );
 		}
 
 		if ( preg_match( '|[^\d\.]|', $this->theme->get( 'Version' ) ) ) {
-			return __( 'Version strings can only contain numeric and period characters (like 1.2). Please fix your Version: line in <code>style.css</code> and upload your theme again.', 'wporg-themes' );
+			/* translators: %s: style.css */
+			return sprintf( __( 'Version strings can only contain numeric and period characters (like 1.2). Please fix your Version: line in %s and upload your theme again.', 'wporg-themes' ), '<code>style.css</code>' );
 		}
 
 		// Make sure we have version that is higher than any previously uploaded version of this theme.
 		if ( ! empty( $this->theme_post ) && ! version_compare( $this->theme->get( 'Version' ), $this->theme_post->max_version, '>' ) ) {
-			return sprintf( __( 'You need to upload a version of %1$s higher than %2$s. Increase the theme version number in <code>style.css</code>, then upload your zip file again.', 'wporg-themes' ), $this->theme->display( 'Name' ), '<code>' . $this->theme_post->max_version . '</code>' );
+			/* translators: 1: Theme display name 2: Theme max version 3: style.css */
+			return sprintf( __( 'You need to upload a version of %1$s higher than %2$s. Increase the theme version number in %3$s, then upload your zip file again.', 'wporg-themes' ), $this->theme->display( 'Name' ), '<code>' . $this->theme_post->max_version . '</code>', '<code>style.css</code>' );
 		}
 
 		// Prevent duplicate URLs.
@@ -166,16 +175,19 @@
 
 		// Check for child theme's parent in the directory (non-buddypress only)
 		if ( $this->theme->parent() && ! in_array( 'buddypress', $this->theme->get( 'Tags' ) ) && ! $this->is_parent_available() ) {
+			/* translators: %s: parent theme */
 			return sprintf( __( 'There is no theme called %s in the directory. For child themes, you must use a parent theme that already exists in the directory.', 'wporg-themes' ), '<code>' . $this->theme->parent() . '</code>' );
 		}
 
 		// Is there already a theme with the name name by a different author?
 		if ( ! empty( $this->theme_post ) && $this->theme_post->post_author != $this->author->ID ) {
-			return sprintf( __( 'There is already a theme called %s by a different author. Please change the name of your theme in <code>style.css</code> and upload it again.', 'wporg-themes' ), '<code>' . $this->theme_slug . '</code>' );
+			/* translators: 1: Theme slug 2: style.css */
+			return sprintf( __( 'There is already a theme called %1$s by a different author. Please change the name of your theme in %2$s and upload it again.', 'wporg-themes' ), '<code>' . $this->theme_slug . '</code>', '<code>style.css</code>' );
 		}
 
 		// We know it's the correct author, now we can check if it's suspended.
 		if ( ! empty( $this->theme_post ) && 'suspend' === $this->theme_post->post_status ) {
+			/* translators: %s: mailto link */
 			return sprintf( __( 'This theme is suspended from the Theme Repository and it can&rsquo;t be updated. If you have any questions about this please contact %s.', 'wporg-themes' ), '<a href="mailto:themes@wordpress.org">themes@wordpress.org</a>' );
 		}
 
@@ -185,6 +197,7 @@
 			$result = $this->check_theme( $theme_files );
 
 			if ( ! $result ) {
+				/* translators: %s: codex link */
 				return sprintf( __( 'Your theme has failed the theme check. Please correct the problems with it and upload it again. You can also use the <a href="%1$s">Theme Check Plugin</a> to test your theme before uploading. If you have any questions about this please post them to %2$s.', 'wporg-themes' ), '//wordpress.org/plugins/theme-check/', '<a href="https://make.wordpress.org/themes">https://make.wordpress.org/themes</a>' );
 			}
 		}
@@ -199,6 +212,7 @@
 		$ticket_id = $this->create_or_update_trac_ticket();
 
 		if ( ! $ticket_id  ) {
+			/* translators: %s: mailto link */
 			return sprintf( __( 'There was an error creating a Trac ticket for your theme, please report this error to %s', 'wporg-themes' ), '<a href="mailto:themes@wordpress.org">themes@wordpress.org</a>' );
 		}
 
@@ -214,6 +228,7 @@
 		do_action( 'theme_upload', $this->theme );
 
 		// Success!
+		/* translators: 1: theme display name 2: ticket link */
 		return sprintf( __( 'Thank you for uploading %1$s to the WordPress Theme Directory. We&rsquo;ve sent you an email verifying that we&rsquo;ve received it. Feedback will be provided at <a href="%2$s">%2$s</a>', 'wporg-themes' ), $this->theme->display( 'Name' ), esc_url( 'https://themes.trac.wordpress.org/ticket/' . $ticket_id ) );
 	}
 
@@ -411,6 +426,7 @@
 		$this->trac_ticket = new StdClass;
 
 		// todo - check trac xml-rpc, maybe data needs to be escaped before sending it there.
+		/* translators: 1: theme display name 2: theme version */
 		$this->trac_ticket->summary = sprintf( 'THEME: %1$s – %2$s', $this->theme->display( 'Name' ), $this->theme->display( 'Version' ) );
 
 		// Keywords
@@ -598,9 +614,11 @@
 	 */
 	public function send_email_notification( $ticket_id ) {
 		if ( ! empty( $this->theme_post ) ) {
+			/* translators: 1: theme display name 2: theme version */
 			$email_subject = sprintf( __( '[WordPress Themes] %1$s, new version %2$s', 'wporg-themes' ), $this->theme->display( 'Name' ), $this->theme->display( 'Version' ) );
 			$email_content = sprintf( __( "Thank you for uploading version %s of %s.\n\nFeedback will be provided at %s\n\n--\nThe WordPress.org Themes Team\nhttps://make.wordpress.org/themes", 'wporg-themes' ), $this->theme->display( 'Version' ), $this->theme->display( 'Name' ), 'https://themes.trac.wordpress.org/ticket/' . $ticket_id );
 		} else {
+			/* translators: %s: theme display name */
 			$email_subject = sprintf( __( '[WordPress Themes] New Theme - %s', 'wporg-themes' ), $this->theme->display( 'Name' ) );
 			$email_content = sprintf( __( "Thank you for uploading %s to the WordPress Theme Directory. If your theme is selected to be part of the directory we'll send a follow up email.\n\nFeedback will be provided at %s\n\n--\nThe WordPress.org Themes Team\nhttps://make.wordpress.org/themes", 'wporg-themes' ), $this->theme->display( 'Name' ), 'https://themes.trac.wordpress.org/ticket/' . $ticket_id );
 		}
