Index: src/wp-includes/category-template.php
===================================================================
--- src/wp-includes/category-template.php	(revision 27373)
+++ src/wp-includes/category-template.php	(working copy)
@@ -563,16 +563,6 @@
 }
 
 /**
- * Default text for tooltip for tag links
- *
- * @param integer $count number of posts with that tag
- * @return string text for the tooltip of a tag link.
- */
-function default_topic_count_text( $count ) {
-	return sprintf( _n('%s topic', '%s topics', $count), number_format_i18n( $count ) );
-}
-
-/**
  * Default topic count scaling for tag links
  *
  * @param integer $count number of posts with that tag
@@ -603,8 +593,11 @@
  * The 'number' argument is how many tags to return. By default, the limit will
  * be to return the entire tag cloud list.
  *
+ * The 'topic_count_text' argument is a nooped plural from _n_noop() to generate the
+ * text for the tooltip of the tag link.
+ *
  * The 'topic_count_text_callback' argument is a function, which given the count
- * of the posts  with that tag returns a text for the tooltip of the tag link.
+ * of the posts with that tag returns a text for the tooltip of the tag link.
  *
  * @todo Complete functionality.
  * @since 2.3.0
@@ -617,20 +610,35 @@
 	$defaults = array(
 		'smallest' => 8, 'largest' => 22, 'unit' => 'pt', 'number' => 0,
 		'format' => 'flat', 'separator' => "\n", 'orderby' => 'name', 'order' => 'ASC',
-		'topic_count_text_callback' => 'default_topic_count_text',
+		'topic_count_text' => null, 'topic_count_text_callback' => null,
 		'topic_count_scale_callback' => 'default_topic_count_scale', 'filter' => 1,
 	);
 
-	if ( !isset( $args['topic_count_text_callback'] ) && isset( $args['single_text'] ) && isset( $args['multiple_text'] ) ) {
-		$args['topic_count_text_callback'] = '_plugin_topic_count';
-	}
-
 	$args = wp_parse_args( $args, $defaults );
-	extract( $args );
+	extract( $args, EXTR_SKIP );
 
 	if ( empty( $tags ) )
 		return;
 
+	// Juggle topic count tooltips:
+	if ( isset( $args['topic_count_text'] ) ) {
+		// First look for nooped plural support via topic_count_text.
+		$translate_nooped_plural = $args['topic_count_text'];
+	} elseif ( ! empty( $args['topic_count_text_callback'] ) ) {
+		// Look for the alternative callback style. Ignore the previous default.
+		if ( $args['topic_count_text_callback'] === 'default_topic_count_text' ) {
+			$translate_nooped_plural = _n_noop( '%s topic', '%s topics' );
+		} else {
+			$translate_nooped_plural = false;
+		}
+	} elseif ( isset( $args['single_text'] ) && isset( $args['multiple_text'] ) ) {
+		// If no callback exists, look for the old-style single_text and multiple_text arguments.
+		$translate_nooped_plural = _n_noop( $args['single_text'], $args['multiple_text'] );
+	} else {
+		// This is the default for when no callback, plural, or argument is passed in.
+		$translate_nooped_plural = _n_noop( '%s topic', '%s topics' );
+	}
+
 	$tags_sorted = apply_filters( 'tag_cloud_sort', $tags, $args );
 	if ( $tags_sorted != $tags  ) { // the tags have been sorted by a plugin
 		$tags = $tags_sorted;
@@ -677,7 +685,14 @@
 		$tag_link = '#' != $tag->link ? esc_url( $tag->link ) : '#';
 		$tag_id = isset($tags[ $key ]->id) ? $tags[ $key ]->id : $key;
 		$tag_name = $tags[ $key ]->name;
-		$a[] = "<a href='$tag_link' class='tag-link-$tag_id' title='" . esc_attr( call_user_func( $topic_count_text_callback, $real_count, $tag, $args ) ) . "' style='font-size: " .
+
+		if ( $translate_nooped_plural ) {
+			$title_attribute = sprintf( translate_nooped_plural( $translate_nooped_plural, $real_count ), number_format_i18n( $real_count ) );
+		} else {
+			$title_attribute = call_user_func( $topic_count_text_callback, $real_count, $tag, $args );
+		}
+
+		$a[] = "<a href='$tag_link' class='tag-link-$tag_id' title='" . esc_attr( $title_attribute ) . "' style='font-size: " .
 			str_replace( ',', '.', ( $smallest + ( ( $count - $min_count ) * $font_step ) ) )
 			. "$unit;'>$tag_name</a>";
 	}
@@ -722,21 +737,6 @@
 	return ( $a->count > $b->count );
 }
 
-/**
- * Default text for tooltip for tag links
- *
- * @since 3.9.0
- * @access private
- *
- * @param integer $count Number of posts with that tag.
- * @param object  $tag   Tag object.
- * @param array   $args  Arguments for the tag cloud.
- * @return string Text for the tooltip of a tag link.
- */
-function _plugin_topic_count( $count, $tag, $args ) {
-	return sprintf( 1 == $count? $args['single_text'] : $args['multiple_text'], number_format_i18n( $count ) );
-}
-
 //
 // Helper functions
 //
Index: src/wp-includes/deprecated.php
===================================================================
--- src/wp-includes/deprecated.php	(revision 27373)
+++ src/wp-includes/deprecated.php	(working copy)
@@ -3417,4 +3417,16 @@
  * @since 2.6.0
  * @deprecated 3.9.0
  */
-function wp_style_loader_src() {}
\ No newline at end of file
+function wp_style_loader_src() {}
+
+
+/**
+ * Old callback for tag link tooltips.
+ *
+ * @since 2.7.0
+ * @deprecated 3.9.0
+ * @access private
+ */
+function default_topic_count_text( $count ) {
+	return $count;
+}
