diff --git a/core/lib/Drupal/Core/Annotation/PluralTranslation.php b/core/lib/Drupal/Core/Annotation/PluralTranslation.php
new file mode 100644
index 0000000..d242ca4
--- /dev/null
+++ b/core/lib/Drupal/Core/Annotation/PluralTranslation.php
@@ -0,0 +1,67 @@
+<?php
+
+/**
+ * @file
+ * Definition of Drupal\Core\Annotation\PluralTranslation.
+ */
+
+namespace Drupal\Core\Annotation;
+
+use Drupal\Component\Annotation\AnnotationInterface;
+
+/**
+ * Defines an annotation object for strings that require plural forms. Note that
+ * this object does not perform the actual translation, so its output needs to
+ * be passed to format_plural().
+ *
+ * For example, the annotation needs to look like this:
+ * @code
+ *   count_labels = @ PluralTranslation(singular = "1 item", plural = "@count items"),
+ * @endcode
+ * Remove spaces after @ in your actual plugin - these are put into this sample
+ * code so that it is not recognized as annotation.
+ *
+ * An example of code that uses the annotation above can be:
+ * @code
+ *   format_plural($count, $info['count_labels']['singular'], $info['count_labels']['plural']);
+ * @endcode
+ *
+ * @Annotation
+ *
+ * @ingroup plugin_translatable
+ */
+class PluralTranslation implements AnnotationInterface {
+
+  /**
+   * The string for the singular case.
+   *
+   * @var string
+   */
+  public $singular;
+
+  /**
+   * The string for the plural case.
+   *
+   * @var string
+   */
+  public $plural;
+
+  /**
+   * Constructs a PluralTranslation object.
+   */
+  public function __construct($values) {
+    $this->singular = $values['singular'];
+    $this->plural = $values['plural'];
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function get() {
+    return array(
+      'singular' => $this->singular,
+      'plural' => $this->plural,
+    );
+  }
+
+}
diff --git a/core/lib/Drupal/Core/Entity/Entity.php b/core/lib/Drupal/Core/Entity/Entity.php
index 8af2040..f3f53e8 100644
--- a/core/lib/Drupal/Core/Entity/Entity.php
+++ b/core/lib/Drupal/Core/Entity/Entity.php
@@ -127,6 +127,21 @@ public function entityType() {
   }
 
   /**
+   * {@inheritdoc}
+   */
+  public function entityTypeLabel($count = NULL) {
+    $info = $this->entityInfo();
+    if (!$count) {
+      // We don't have to use t() here because the string is already translated
+      // by the Translation annotation class.
+      return $info['label'];
+    }
+    else {
+      return format_plural($count, $info['count_labels']['singular'], $info['count_labels']['plural']);
+    }
+  }
+
+  /**
    * Implements \Drupal\Core\Entity\EntityInterface::bundle().
    */
   public function bundle() {
diff --git a/core/lib/Drupal/Core/Entity/EntityInterface.php b/core/lib/Drupal/Core/Entity/EntityInterface.php
index b8fe82b..a099269 100644
--- a/core/lib/Drupal/Core/Entity/EntityInterface.php
+++ b/core/lib/Drupal/Core/Entity/EntityInterface.php
@@ -105,6 +105,18 @@ public function enforceIsNew($value = TRUE);
   public function entityType();
 
   /**
+   * Returns the translated label of the entity type. If the $count parameter is
+   * provided, the 'count_label' is returned.
+   *
+   * @param int $count
+   *   (optional) The item count to display.
+   *
+   * @return string
+   *   The translated label.
+   */
+  public function entityTypeLabel($count = NULL);
+
+  /**
    * Returns the bundle of the entity.
    *
    * @return
diff --git a/core/modules/node/lib/Drupal/node/Plugin/Core/Entity/Node.php b/core/modules/node/lib/Drupal/node/Plugin/Core/Entity/Node.php
index b8451b8..529594d 100644
--- a/core/modules/node/lib/Drupal/node/Plugin/Core/Entity/Node.php
+++ b/core/modules/node/lib/Drupal/node/Plugin/Core/Entity/Node.php
@@ -11,6 +11,7 @@
 use Drupal\Core\Entity\EntityStorageControllerInterface;
 use Drupal\Core\Entity\Annotation\EntityType;
 use Drupal\Core\Annotation\Translation;
+use Drupal\Core\Annotation\PluralTranslation;
 use Drupal\node\NodeInterface;
 use Drupal\node\NodeBCDecorator;
 
@@ -20,6 +21,7 @@
  * @EntityType(
  *   id = "node",
  *   label = @Translation("Content"),
+ *   count_labels = @PluralTranslation(singular = "1 content item", plural = "@count content items"),
  *   bundle_label = @Translation("Content type"),
  *   module = "node",
  *   controllers = {
