diff --git a/core/modules/locale/src/PluralFormula.php b/core/modules/locale/src/PluralFormula.php
index 638d60fac8..78d08f04cf 100644
--- a/core/modules/locale/src/PluralFormula.php
+++ b/core/modules/locale/src/PluralFormula.php
@@ -41,6 +41,13 @@ class PluralFormula implements PluralFormulaInterface {
   protected $formulae;
 
   /**
+   * The string representation of the plural formula, keyed by langcode.
+   *
+   * @var string[]
+   */
+  protected $formulaStrings;
+
+  /**
    * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager
    * @param \Drupal\Core\State\StateInterface $state
    */
@@ -67,6 +74,18 @@ public function setPluralFormula($langcode, $plural_count, array $formula) {
   /**
    * {@inheritdoc}
    */
+  public function setPluralFormulaString($langcode, $formula_string) {
+    // Ensure that the formula strings are loaded.
+    $this->loadFormulaStrings();
+
+    $this->formulaStrings[$langcode] = $formula_string;
+    $this->state->set('locale.translation.formula_strings', $this->formulaStrings);
+    return $this;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
   public function getNumberOfPlurals($langcode = NULL) {
     // Ensure that the formulae are loaded.
     $this->loadFormulae();
@@ -90,6 +109,14 @@ public function getFormula($langcode) {
   }
 
   /**
+   * {@inheritdoc}
+   */
+  public function getFormulaString($langcode) {
+    $this->loadFormulaStrings();
+    return isset($this->formulaStrings[$langcode]) ? $this->formulaStrings[$langcode] : '';
+  }
+
+  /**
    * Loads the formulae and stores them on the PluralFormula object if not set.
    *
    * @return array
@@ -101,10 +128,20 @@ protected function loadFormulae() {
   }
 
   /**
+   * Loads the formula strings and stores them on the object.
+   */
+  protected function loadFormulaStrings() {
+    if (!isset($this->formulaStrings)) {
+      $this->formulaStrings = $this->state->get('locale.translation.formula_strings', []);
+    }
+  }
+
+  /**
    * {@inheritdoc}
    */
   public function reset() {
     $this->formulae = NULL;
+    $this->formulaStrings = NULL;
     return $this;
   }
 
diff --git a/core/modules/locale/src/PluralFormulaInterface.php b/core/modules/locale/src/PluralFormulaInterface.php
index eadb1a9764..75b3085cf5 100644
--- a/core/modules/locale/src/PluralFormulaInterface.php
+++ b/core/modules/locale/src/PluralFormulaInterface.php
@@ -21,6 +21,17 @@
   public function setPluralFormula($langcode, $plural_count, array $formula);
 
   /**
+   * @param string $langcode
+   *   The language code of the formula string.
+   * @param string $formula_string
+   *   The plural formula string.
+   *
+   * @return self
+   *   The PluralFormula object.
+   */
+  public function setPluralFormulaString($langcode, $formula_string);
+
+  /**
    * Returns the number of plurals supported by a given language.
    *
    * @param null|string $langcode
@@ -44,6 +55,17 @@ public function getNumberOfPlurals($langcode = NULL);
   public function getFormula($langcode);
 
   /**
+   * Gets the plural formula string for a langcode.
+   *
+   * @param string $langcode
+   *   The language code to get the formula for.
+   *
+   * @return string
+   *   Plural formula.
+   */
+  public function getFormulaString($langcode);
+
+  /**
    * Resets the static formulae cache.
    *
    * @return self
diff --git a/core/modules/locale/src/PoDatabaseWriter.php b/core/modules/locale/src/PoDatabaseWriter.php
index 988f7f3be1..680fce3cd8 100644
--- a/core/modules/locale/src/PoDatabaseWriter.php
+++ b/core/modules/locale/src/PoDatabaseWriter.php
@@ -168,7 +168,9 @@ public function setHeader(PoHeader $header) {
       $plural = $header->getPluralForms();
       if (isset($plural) && $p = $header->parsePluralForms($plural)) {
         list($nplurals, $formula) = $p;
-        \Drupal::service('locale.plural.formula')->setPluralFormula($langcode, $nplurals, $formula);
+        \Drupal::service('locale.plural.formula')
+          ->setPluralFormula($langcode, $nplurals, $formula)
+          ->setPluralFormulaString($langcode, $plural);
       }
     }
   }
