diff --git a/core/lib/Drupal/Core/StringTranslation/PluralTranslatableString.php b/core/lib/Drupal/Core/StringTranslation/PluralTranslatableString.php
index f29d6e7..3dd2c67 100644
--- a/core/lib/Drupal/Core/StringTranslation/PluralTranslatableString.php
+++ b/core/lib/Drupal/Core/StringTranslation/PluralTranslatableString.php
@@ -40,13 +40,6 @@ class PluralTranslatableString extends TranslatableString {
   protected $translatedString;
 
   /**
-   * A bool that statically caches whether locale_get_plural() exists.
-   *
-   * @var bool
-   */
-  protected static $localeEnabled;
-
-  /**
    * Constructs a new PluralTranslatableString object.
    *
    * Parses values passed into this class through the format_plural() function
@@ -173,10 +166,7 @@ public function render() {
    * @return int
    */
   protected function getPluralIndex() {
-    if (!isset(static::$localeEnabled)) {
-      static::$localeEnabled = function_exists('locale_get_plural');
-    }
-    if (function_exists('locale_get_plural')) {
+    if ($this->getStringTranslation()->localeInstalled()) {
       return locale_get_plural($this->count, $this->getOption('langcode'));
     }
     return -1;
diff --git a/core/lib/Drupal/Core/StringTranslation/TranslationInterface.php b/core/lib/Drupal/Core/StringTranslation/TranslationInterface.php
index f9ff9ef..dbaaeb1 100644
--- a/core/lib/Drupal/Core/StringTranslation/TranslationInterface.php
+++ b/core/lib/Drupal/Core/StringTranslation/TranslationInterface.php
@@ -102,4 +102,12 @@ public function translateString(TranslatableString $translated_string);
    */
   public function formatPlural($count, $singular, $plural, array $args = array(), array $options = array());
 
+  /**
+   * Determines if the Locale module is installed.
+   *
+   * @return bool
+   *   TRUE if Locale installed, FALSE if not.
+   */
+  public function localeInstalled();
+
 }
diff --git a/core/lib/Drupal/Core/StringTranslation/TranslationManager.php b/core/lib/Drupal/Core/StringTranslation/TranslationManager.php
index c7bad70..5e8d716 100644
--- a/core/lib/Drupal/Core/StringTranslation/TranslationManager.php
+++ b/core/lib/Drupal/Core/StringTranslation/TranslationManager.php
@@ -8,6 +8,7 @@
 namespace Drupal\Core\StringTranslation;
 
 use Drupal\Component\Utility\SafeMarkup;
+use Drupal\Core\Extension\ModuleHandlerInterface;
 use Drupal\Core\Language\LanguageDefault;
 use Drupal\Core\StringTranslation\Translator\TranslatorInterface;
 
@@ -46,13 +47,21 @@ class TranslationManager implements TranslationInterface, TranslatorInterface {
   protected $defaultLangcode;
 
   /**
+   * The module handler.
+   *
+   * @var \Drupal\Core\Extension\ModuleHandlerInterface
+   */
+  protected $moduleHandler;
+
+  /**
    * Constructs a TranslationManager object.
    *
    * @param \Drupal\Core\Language\LanguageDefault $default_language
    *   The default language.
    */
-  public function __construct(LanguageDefault $default_language) {
+  public function __construct(LanguageDefault $default_language, ModuleHandlerInterface $module_handler) {
     $this->defaultLangcode = $default_language->get()->getId();
+    $this->moduleHandler = $module_handler;
   }
 
   /**
@@ -199,4 +208,11 @@ public function reset() {
     }
   }
 
+  /**
+   * @return bool
+   */
+  public function localeInstalled() {
+    return $this->moduleHandler->moduleExists('locale');
+  }
+
 }
