diff --git a/.eslintignore b/.eslintignore
index 4690c5a..a43f4ca 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -1,7 +1,5 @@
 core/assets/vendor/**/*
 core/modules/locale/tests/locale_test.js
+core/modules/tour/js/jquery.joyride-2.0.3.js
 core/vendor/**/*
 sites/**/files/**/*
-libraries/**/*
-sites/**/libraries/**/*
-profiles/**/libraries/**/*
diff --git a/.eslintrc b/.eslintrc
index 4f1f608..97ff862 100644
--- a/.eslintrc
+++ b/.eslintrc
@@ -14,40 +14,21 @@
     "CKEDITOR": true
   },
   "rules": {
-    // Errors.
-    "block-scoped-var": 2,
-    "brace-style": [2, "stroustrup", {"allowSingleLine": true}],
-    "comma-style": [2, "last"],
     "eqeqeq": [2, "smart"],
     "guard-for-in": 2,
-    "key-spacing": [2, {"beforeColon": false, "afterColon": true}],
-    "no-implied-eval": 2,
     "no-mixed-spaces-and-tabs": 2,
-    "no-nested-ternary": 2,
-    "no-reserved-keys": 2,
     "no-trailing-spaces": 2,
     "no-undef": 2,
-    "no-undefined": 2,
     "no-unused-vars": [2, {"vars": "local", "args": "none"}],
-    "semi": [2, "always"],
-    "space-after-keywords": [2, "always", {"checkFunctionKeyword": true}],
-    "space-before-blocks": [2, "always"],
-    "space-in-brackets": [2, "never"],
-    "space-in-parens": [2, "never"],
-    "spaced-line-comment": [2, "always"],
     "strict": 2,
-    // Warnings.
-    "max-nested-callbacks": [1, 3],
-    // Disabled.
-    "camelcase": 0,
-    "consistent-return": 0,
-    "dot-notation": 0,
     "new-cap": 0,
-    "no-alert": 0,
-    "no-new": 0,
-    "no-shadow": 0,
+    "quotes": 0,
+    "camelcase": 0,
     "no-underscore-dangle": 0,
+    "no-new": 0,
+    "no-alert": 0,
     "no-use-before-define": 0,
-    "quotes": 0
+    "consistent-return": 0,
+    "no-constant-condition": 0
   }
 }
diff --git a/core/includes/common.inc b/core/includes/common.inc
index 6d1b013..11f8a9d 100644
--- a/core/includes/common.inc
+++ b/core/includes/common.inc
@@ -393,12 +393,12 @@ function format_xml_elements($array) {
  *
  * For example:
  * @code
- *   $output = \Drupal::translation()->formatPlural($node->comment_count, '1 comment', '@count comments');
+ *   $output = format_plural($node->comment_count, '1 comment', '@count comments');
  * @endcode
  *
  * Example with additional replacements:
  * @code
- *   $output = \Drupal::translation()->formatPlural($update_count,
+ *   $output = format_plural($update_count,
  *     'Changed the content type of 1 post from %old-type to %new-type.',
  *     'Changed the content type of @count posts from %old-type to %new-type.',
  *     array('%old-type' => $info->old_type, '%new-type' => $info->new_type));
@@ -451,7 +451,7 @@ function format_plural($count, $singular, $plural, array $args = array(), array
  */
 function format_size($size, $langcode = NULL) {
   if ($size < Bytes::KILOBYTE) {
-    return \Drupal::translation()->formatPlural($size, '1 byte', '@count bytes', array(), array('langcode' => $langcode));
+    return format_plural($size, '1 byte', '@count bytes', array(), array('langcode' => $langcode));
   }
   else {
     $size = $size / Bytes::KILOBYTE; // Convert bytes to kilobytes.
diff --git a/core/includes/form.inc b/core/includes/form.inc
index 659ef5f..69c970f 100644
--- a/core/includes/form.inc
+++ b/core/includes/form.inc
@@ -617,7 +617,7 @@ function template_preprocess_form_element_label(&$variables) {
  *   // The 'success' parameter means no fatal PHP errors were detected. All
  *   // other error management should be handled using 'results'.
  *   if ($success) {
- *     $message = \Drupal::translation()->formatPlural(count($results), 'One post processed.', '@count posts processed.');
+ *     $message = format_plural(count($results), 'One post processed.', '@count posts processed.');
  *   }
  *   else {
  *     $message = t('Finished with an error.');
diff --git a/core/lib/Drupal/Core/EventSubscriber/FinishResponseSubscriber.php b/core/lib/Drupal/Core/EventSubscriber/FinishResponseSubscriber.php
index 9634161..963795e 100644
--- a/core/lib/Drupal/Core/EventSubscriber/FinishResponseSubscriber.php
+++ b/core/lib/Drupal/Core/EventSubscriber/FinishResponseSubscriber.php
@@ -90,8 +90,8 @@ public function onRespond(FilterResponseEvent $event) {
     $response = $event->getResponse();
 
     // Set the X-UA-Compatible HTTP header to force IE to use the most recent
-    // rendering engine.
-    $response->headers->set('X-UA-Compatible', 'IE=edge', FALSE);
+    // rendering engine or use Chrome's frame rendering engine if available.
+    $response->headers->set('X-UA-Compatible', 'IE=edge,chrome=1', FALSE);
 
     // Set the Content-language header.
     $response->headers->set('Content-language', $this->languageManager->getCurrentLanguage()->getId());
diff --git a/core/lib/Drupal/Core/Extension/InfoParser.php b/core/lib/Drupal/Core/Extension/InfoParser.php
index 38ac624..de1b24a 100644
--- a/core/lib/Drupal/Core/Extension/InfoParser.php
+++ b/core/lib/Drupal/Core/Extension/InfoParser.php
@@ -41,7 +41,7 @@ public function parse($filename) {
         }
         $missing_keys = array_diff($this->getRequiredKeys(), array_keys(static::$parsedInfos[$filename]));
         if (!empty($missing_keys)) {
-          $message = String::format('Missing required keys (!missing_keys) in !file.', array('!missing_keys' => implode(', ', $missing_keys), '!file' => $filename));
+          $message = format_plural(count($missing_keys), 'Missing required key (!missing_keys) in !file.', 'Missing required keys (!missing_keys) in !file.', array('!missing_keys' => implode(', ', $missing_keys), '!file' => $filename));
           throw new InfoParserException($message);
         }
         if (isset(static::$parsedInfos[$filename]['version']) && static::$parsedInfos[$filename]['version'] === 'VERSION') {
diff --git a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/NumericFormatterBase.php b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/NumericFormatterBase.php
index c30a9d2..d261ded 100644
--- a/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/NumericFormatterBase.php
+++ b/core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/NumericFormatterBase.php
@@ -77,8 +77,8 @@ public function viewElements(FieldItemListInterface $items) {
       if ($this->getSetting('prefix_suffix')) {
         $prefixes = isset($settings['prefix']) ? array_map(array($this, 'fieldFilterXss'), explode('|', $settings['prefix'])) : array('');
         $suffixes = isset($settings['suffix']) ? array_map(array($this, 'fieldFilterXss'), explode('|', $settings['suffix'])) : array('');
-        $prefix = (count($prefixes) > 1) ? $this->formatPlural($item->value, $prefixes[0], $prefixes[1]) : $prefixes[0];
-        $suffix = (count($suffixes) > 1) ? $this->formatPlural($item->value, $suffixes[0], $suffixes[1]) : $suffixes[0];
+        $prefix = (count($prefixes) > 1) ? format_plural($item->value, $prefixes[0], $prefixes[1]) : $prefixes[0];
+        $suffix = (count($suffixes) > 1) ? format_plural($item->value, $suffixes[0], $suffixes[1]) : $suffixes[0];
         $output = $prefix . $output . $suffix;
       }
       // Output the raw value in a content attribute if the text of the HTML
diff --git a/core/lib/Drupal/Core/StringTranslation/StringTranslationTrait.php b/core/lib/Drupal/Core/StringTranslation/StringTranslationTrait.php
index 85a6e3f..efb6030 100644
--- a/core/lib/Drupal/Core/StringTranslation/StringTranslationTrait.php
+++ b/core/lib/Drupal/Core/StringTranslation/StringTranslationTrait.php
@@ -12,8 +12,8 @@
  *
  * Using this trait will add t() and formatPlural() methods to the class. These
  * must be used for every translatable string, similar to how procedural code
- * must use the global functions t() and \Drupal::translation()->formatPlural().
- * This allows string extractor tools to find translatable strings.
+ * must use the global functions t() and format_plural(). This allows string
+ * extractor tools to find translatable strings.
  *
  * If the class is capable of injecting services from the container, it should
  * inject the 'string_translation' service and assign it to
diff --git a/core/lib/Drupal/Core/Template/TwigNodeTrans.php b/core/lib/Drupal/Core/Template/TwigNodeTrans.php
index c4fd4ef..ea51846 100644
--- a/core/lib/Drupal/Core/Template/TwigNodeTrans.php
+++ b/core/lib/Drupal/Core/Template/TwigNodeTrans.php
@@ -51,7 +51,7 @@ public function compile(\Twig_Compiler $compiler) {
     }
 
     // Start writing with the function to be called.
-    $compiler->write('echo ' . (empty($plural) ? 't' : '\Drupal::translation()->formatPlural') . '(');
+    $compiler->write('echo ' . (empty($plural) ? 't' : 'format_plural') . '(');
 
     // Move the count to the beginning of the parameters list.
     if (!empty($plural)) {
diff --git a/core/lib/Drupal/Core/Validation/DrupalTranslator.php b/core/lib/Drupal/Core/Validation/DrupalTranslator.php
index b14c7d2..84847a5 100644
--- a/core/lib/Drupal/Core/Validation/DrupalTranslator.php
+++ b/core/lib/Drupal/Core/Validation/DrupalTranslator.php
@@ -41,7 +41,7 @@ public function transChoice($id, $number, array $parameters = array(), $domain =
     if (!isset($ids[1])) {
       throw new \InvalidArgumentException(sprintf('The message "%s" cannot be pluralized, because it is missing a plural (e.g. "There is one apple|There are @count apples").', $id));
     }
-    return \Drupal::translation()->formatPlural($number, $ids[0], $ids[1], $this->processParameters($parameters), $this->getOptions($domain, $locale));
+    return format_plural($number, $ids[0], $ids[1], $this->processParameters($parameters), $this->getOptions($domain, $locale));
   }
 
   /**
diff --git a/core/misc/ajax.js b/core/misc/ajax.js
index 40ab702..82d6044 100644
--- a/core/misc/ajax.js
+++ b/core/misc/ajax.js
@@ -44,7 +44,7 @@
       $('.use-ajax').once('ajax', function () {
         var element_settings = {};
         // Clicked links look better with the throbber than the progress bar.
-        element_settings.progress = {'type': 'throbber'};
+        element_settings.progress = { 'type': 'throbber' };
 
         // For anchor tags, these will go to the target of the anchor rather
         // than the usual location.
@@ -54,8 +54,8 @@
         }
         element_settings.accepts = $(this).data('accepts');
         element_settings.dialog = $(this).data('dialog-options');
-        var baseUseAjax = $(this).attr('id');
-        Drupal.ajax[baseUseAjax] = new Drupal.ajax(baseUseAjax, this, element_settings);
+        var base = $(this).attr('id');
+        Drupal.ajax[base] = new Drupal.ajax(base, this, element_settings);
       });
 
       // This class means to submit the form to the action using Ajax.
@@ -71,10 +71,10 @@
         // Form buttons use the 'click' event rather than mousedown.
         element_settings.event = 'click';
         // Clicked form buttons look better with the throbber than the progress bar.
-        element_settings.progress = {'type': 'throbber'};
+        element_settings.progress = { 'type': 'throbber' };
 
-        var baseUseAjaxSubmit = $(this).attr('id');
-        Drupal.ajax[baseUseAjaxSubmit] = new Drupal.ajax(baseUseAjaxSubmit, this, element_settings);
+        var base = $(this).attr('id');
+        Drupal.ajax[base] = new Drupal.ajax(base, this, element_settings);
       });
     }
   };
@@ -106,7 +106,7 @@
     // Again, we don't have a way to know for sure whether accessing
     // xmlhttp.responseText is going to throw an exception. So we'll catch it.
     try {
-      responseText = "\n" + Drupal.t("ResponseText: !responseText", {'!responseText': $.trim(xmlhttp.responseText)});
+      responseText = "\n" + Drupal.t("ResponseText: !responseText", {'!responseText': $.trim(xmlhttp.responseText) });
     }
     catch (e) {}
 
@@ -721,7 +721,7 @@
     /**
      * Command to update a form's build ID.
      */
-    update_build_id: function (ajax, response, status) {
+    update_build_id: function(ajax, response, status) {
       $('input[name="form_build_id"][value="' + response.old + '"]').val(response.new);
     },
 
diff --git a/core/misc/autocomplete.js b/core/misc/autocomplete.js
index 70ccf0b..af64521 100644
--- a/core/misc/autocomplete.js
+++ b/core/misc/autocomplete.js
@@ -71,6 +71,7 @@
    * @param {Function} response
    */
   function sourceData(request, response) {
+    /*jshint validthis:true */
     var elementId = this.element.attr('id');
 
     if (!(elementId in autocomplete.cache)) {
@@ -114,7 +115,8 @@
       showSuggestions(autocomplete.cache[elementId][term]);
     }
     else {
-      var options = $.extend({success: sourceCallbackHandler, data: {q: term}}, autocomplete.ajax);
+      var options = $.extend({ success: sourceCallbackHandler, data: { q: term } }, autocomplete.ajax);
+      /*jshint validthis:true */
       $.ajax(this.element.attr('data-autocomplete-path'), options);
     }
   }
diff --git a/core/misc/dialog/dialog.jquery-ui.js b/core/misc/dialog/dialog.jquery-ui.js
index 59f9073..ed3fbc2 100644
--- a/core/misc/dialog/dialog.jquery-ui.js
+++ b/core/misc/dialog/dialog.jquery-ui.js
@@ -15,8 +15,7 @@
       var opts = this.options;
       var primaryIndex;
       var $buttons;
-      var index, il;
-      for (index = 0, il = opts.buttons.length; index < il; index += 1) {
+      for (var index = 0, il = opts.buttons.length; index < il; index += 1) {
         if (opts.buttons[index].primary && opts.buttons[index].primary === true) {
           primaryIndex = index;
           delete opts.buttons[index].primary;
diff --git a/core/misc/dialog/dialog.position.js b/core/misc/dialog/dialog.position.js
index 084ba24..3b97a35 100644
--- a/core/misc/dialog/dialog.position.js
+++ b/core/misc/dialog/dialog.position.js
@@ -3,7 +3,7 @@
   "use strict";
 
   // autoResize option will turn off resizable and draggable.
-  drupalSettings.dialog = $.extend({autoResize: true, maxHeight: '95%'}, drupalSettings.dialog);
+  drupalSettings.dialog = $.extend({ autoResize: true, maxHeight: '95%' }, drupalSettings.dialog);
 
   /**
    * Resets the current options for positioning.
@@ -61,10 +61,10 @@
   $(window).on({
     'dialog:aftercreate': function (event, dialog, $element, settings) {
       var autoResize = debounce(resetSize, 20);
-      var eventData = {settings: settings, $element: $element};
+      var eventData = { settings: settings, $element: $element };
       if (settings.autoResize === true || settings.autoResize === 'true') {
         $element
-          .dialog('option', {resizable: false, draggable: false})
+          .dialog('option', { resizable: false, draggable: false })
           .dialog('widget').css('position', 'fixed');
         $(window)
           .on('resize.dialogResize scroll.dialogResize', eventData, autoResize)
diff --git a/core/misc/displace.js b/core/misc/displace.js
index 6dca569..ce99181 100644
--- a/core/misc/displace.js
+++ b/core/misc/displace.js
@@ -126,7 +126,7 @@
     var displacement = 0;
     var horizontal = (edge === 'left' || edge === 'right');
     // Get the offset of the element itself.
-    var placement = $el.offset()[horizontal ? 'left' : 'top'];
+    var placement = $el.offset()[ horizontal ? 'left' : 'top'];
     // Subtract scroll distance from placement to get the distance
     // to the edge of the viewport.
     placement -= window['scroll' + (horizontal ? 'X' : 'Y')] || document.documentElement['scroll' + (horizontal) ? 'Left' : 'Top'] || 0;
diff --git a/core/misc/drupal.js b/core/misc/drupal.js
index 4244ed6..dcfad00 100644
--- a/core/misc/drupal.js
+++ b/core/misc/drupal.js
@@ -1,7 +1,7 @@
 /**
  * Base framework for Drupal-specific JavaScript, behaviors, and settings.
  */
-window.Drupal = {behaviors: {}, locale: {}};
+window.Drupal = { behaviors: {}, locale: {} };
 
 // Class indicating that JS is enabled; used for styling purpose.
 document.documentElement.className += ' js';
@@ -90,7 +90,7 @@ if (window.jQuery) {
           behaviors[i].attach(context, settings);
         }
         catch (e) {
-          errors.push({behavior: i, error: e});
+          errors.push({ behavior: i, error: e });
         }
       }
     }
@@ -156,7 +156,7 @@ if (window.jQuery) {
           behaviors[i].detach(context, settings, trigger);
         }
         catch (e) {
-          errors.push({behavior: i, error: e});
+          errors.push({ behavior: i, error: e });
         }
       }
     }
@@ -336,9 +336,8 @@ if (window.jQuery) {
    * Drupal.t() is called by this function, make sure not to pass
    * already-localized strings to it.
    *
-   * See the documentation of the server-side
-   * \Drupal\Core\StringTranslation\TranslationInterface::formatPlural()
-   * function for more details.
+   * See the documentation of the server-side format_plural() function for
+   * further details.
    *
    * @param {Number} count
    *   The item count to display.
diff --git a/core/misc/form.js b/core/misc/form.js
index b1d1fff..4f74127 100644
--- a/core/misc/form.js
+++ b/core/misc/form.js
@@ -128,7 +128,6 @@
       var $context = $(context);
       var contextIsForm = $context.is('form');
       var $forms = (contextIsForm ? $context : $context.find('form')).once('form-updated');
-      var formFields;
 
       if ($forms.length) {
         // Initialize form behaviors, use $.makeArray to be able to use native
@@ -136,7 +135,7 @@
         $.makeArray($forms).forEach(function (form) {
           var events = 'change.formUpdated keypress.formUpdated';
           var eventHandler = debounce(function (event) { triggerFormUpdated(event.target); }, 300);
-          formFields = fieldsList(form).join(',');
+          var formFields = fieldsList(form).join(',');
 
           form.setAttribute('data-drupal-form-fields', formFields);
           $(form).on(events, eventHandler);
@@ -144,7 +143,7 @@
       }
       // On ajax requests context is the form element.
       if (contextIsForm) {
-        formFields = fieldsList(context).join(',');
+        var formFields = fieldsList(context).join(',');
         // @todo replace with form.getAttribute() when #1979468 is in.
         var currentFields = $(context).attr('data-drupal-form-fields');
         // if there has been a change in the fields or their order, trigger
diff --git a/core/misc/states.js b/core/misc/states.js
index 680e86e..b90015c 100644
--- a/core/misc/states.js
+++ b/core/misc/states.js
@@ -55,7 +55,7 @@
    *     AND and OR clauses.
    */
   states.Dependent = function (args) {
-    $.extend(this, {values: {}, oldValue: null}, args);
+    $.extend(this, { values: {}, oldValue: null }, args);
 
     this.dependees = this.getDependees();
     for (var selector in this.dependees) {
@@ -124,7 +124,7 @@
           $(selector).on('state:' + state, {selector: selector, state: state}, stateEventHandler);
 
           // Make sure the event we just bound ourselves to is actually fired.
-          new states.Trigger({selector: selector, state: state});
+          new states.Trigger({ selector: selector, state: state });
         }
       }
     },
@@ -190,7 +190,7 @@
 
         // By adding "trigger: true", we ensure that state changes don't go into
         // infinite loops.
-        this.element.trigger({type: 'state:' + this.state, value: value, trigger: true});
+        this.element.trigger({ type: 'state:' + this.state, value: value, trigger: true });
       }
     },
 
@@ -355,14 +355,14 @@
         var value = valueFn.call(this.element, e);
         // Only trigger the event if the value has actually changed.
         if (oldValue !== value) {
-          this.element.trigger({type: 'state:' + this.state, value: value, oldValue: oldValue});
+          this.element.trigger({ type: 'state:' + this.state, value: value, oldValue: oldValue });
           oldValue = value;
         }
       }, this));
 
       states.postponed.push($.proxy(function () {
         // Trigger the event once for initialization purposes.
-        this.element.trigger({type: 'state:' + this.state, value: oldValue, oldValue: null});
+        this.element.trigger({ type: 'state:' + this.state, value: oldValue, oldValue: null });
       }, this));
     }
   };
@@ -436,8 +436,7 @@
     this.pristine = this.name = state;
 
     // Normalize the state name.
-    var process = true;
-    do {
+    while (true) {
       // Iteratively remove exclamation marks and invert the value.
       while (this.name.charAt(0) === '!') {
         this.name = this.name.substring(1);
@@ -449,9 +448,9 @@
         this.name = states.State.aliases[this.name];
       }
       else {
-        process = false;
+        break;
       }
-    } while (process);
+    }
   };
 
   /**
@@ -520,7 +519,7 @@
   $(document).on('state:required', function (e) {
     if (e.trigger) {
       if (e.value) {
-        var $label = $(e.target).attr({'required': 'required', 'aria-required': 'aria-required'}).closest('.form-item, .form-wrapper').find('label');
+        var $label = $(e.target).attr({ 'required': 'required', 'aria-required': 'aria-required' }).closest('.form-item, .form-wrapper').find('label');
         // Avoids duplicate required markers on initialization.
         if (!$label.hasClass('form-required').length) {
           $label.addClass('form-required');
@@ -561,15 +560,7 @@
    * Bitwise AND with a third undefined state.
    */
   function ternary(a, b) {
-    if (typeof a === 'undefined') {
-      return b;
-    }
-    else if (typeof b === 'undefined') {
-      return a;
-    }
-    else {
-      return a && b;
-    }
+    return typeof a === 'undefined' ? b : (typeof b === 'undefined' ? a : a && b);
   }
 
   /**
@@ -583,12 +574,7 @@
    * Compares two values while ignoring undefined values.
    */
   function compare(a, b) {
-    if (a === b) {
-      return typeof a === 'undefined' ? a : true;
-    }
-    else {
-      return typeof a === 'undefined' || typeof b === 'undefined';
-    }
+    return (a === b) ? (typeof a === 'undefined' ? a : true) : (typeof a === 'undefined' || typeof b === 'undefined');
   }
 
 })(jQuery);
diff --git a/core/misc/tabledrag.js b/core/misc/tabledrag.js
index 1e61eff..de0bc5d 100644
--- a/core/misc/tabledrag.js
+++ b/core/misc/tabledrag.js
@@ -62,7 +62,7 @@
     this.rtl = $(this.table).css('direction') === 'rtl' ? -1 : 1; // Direction of the table.
 
     // Configure the scroll settings.
-    this.scrollSettings = {amount: 4, interval: 50, trigger: 70};
+    this.scrollSettings = { amount: 4, interval: 50, trigger: 70 };
     this.scrollInterval = null;
     this.scrollY = 0;
     this.windowHeight = 0;
@@ -309,7 +309,7 @@
   Drupal.tableDrag.prototype.makeDraggable = function (item) {
     var self = this;
     var $item = $(item);
-    // Add a class to the title link
+    //Add a class to the title link
     $item.find('td:first a').addClass('menu-item__link');
     // Create the handle.
     var handle = $('<a href="#" class="tabledrag-handle"><div class="handle">&nbsp;</div></a>').attr('title', Drupal.t('Drag to re-order'));
@@ -639,7 +639,7 @@
    */
   Drupal.tableDrag.prototype.pointerCoords = function (event) {
     if (event.pageX || event.pageY) {
-      return {x: event.pageX, y: event.pageY};
+      return { x: event.pageX, y: event.pageY };
     }
     return {
       x: event.clientX + document.body.scrollLeft - document.body.clientLeft,
@@ -654,7 +654,7 @@
   Drupal.tableDrag.prototype.getPointerOffset = function (target, event) {
     var docPos = $(target).offset();
     var pointerPos = this.pointerCoords(event);
-    return {x: pointerPos.x - docPos.left, y: pointerPos.y - docPos.top};
+    return { x: pointerPos.x - docPos.left, y: pointerPos.y - docPos.top };
   };
 
   /**
@@ -890,13 +890,7 @@
     var b = document.body;
 
     var windowHeight = this.windowHeight = window.innerHeight || (de.clientHeight && de.clientWidth !== 0 ? de.clientHeight : b.offsetHeight);
-    var scrollY;
-    if (document.all) {
-      scrollY = this.scrollY = !de.scrollTop ? b.scrollTop : de.scrollTop;
-    }
-    else {
-      scrollY = this.scrollY = window.pageYOffset ? window.pageYOffset : window.scrollY;
-    }
+    var scrollY = this.scrollY = (document.all ? (!de.scrollTop ? b.scrollTop : de.scrollTop) : (window.pageYOffset ? window.pageYOffset : window.scrollY));
     var trigger = this.scrollSettings.trigger;
     var delta = 0;
 
@@ -1126,7 +1120,7 @@
       }
     }
 
-    return {'min': minIndent, 'max': maxIndent};
+    return { 'min': minIndent, 'max': maxIndent };
   };
 
   /**
diff --git a/core/misc/tableselect.js b/core/misc/tableselect.js
index c2aa5dc..5dce745 100644
--- a/core/misc/tableselect.js
+++ b/core/misc/tableselect.js
@@ -18,7 +18,7 @@
     // Keep track of the table, which checkbox is checked and alias the settings.
     var table = this, checkboxes, lastChecked;
     var $table = $(table);
-    var strings = {'selectAll': Drupal.t('Select all rows in this table'), 'selectNone': Drupal.t('Deselect all rows in this table')};
+    var strings = { 'selectAll': Drupal.t('Select all rows in this table'), 'selectNone': Drupal.t('Deselect all rows in this table') };
     var updateSelectAll = function (state) {
       // Update table's select-all checkbox (and sticky header's if available).
       $table.prev('table.sticky-header').addBack().find('th.select-all input[type="checkbox"]').each(function () {
diff --git a/core/misc/timezone.js b/core/misc/timezone.js
index e7667b8..9978971 100644
--- a/core/misc/timezone.js
+++ b/core/misc/timezone.js
@@ -53,7 +53,7 @@
         $.ajax({
           async: false,
           url: Drupal.url(path),
-          data: {date: dateString},
+          data: { date: dateString },
           dataType: 'json',
           success: function (data) {
             if (data) {
diff --git a/core/misc/vertical-tabs.js b/core/misc/vertical-tabs.js
index 11fca70..6efa4c3 100644
--- a/core/misc/vertical-tabs.js
+++ b/core/misc/vertical-tabs.js
@@ -37,13 +37,13 @@
 
         // Transform each details into a tab.
         $details.each(function () {
-          var $that = $(this);
+          var $this = $(this);
           var vertical_tab = new Drupal.verticalTab({
-            title: $that.find('> summary').text(),
-            details: $that
+            title: $this.find('> summary').text(),
+            details: $this
           });
           tab_list.append(vertical_tab.item);
-          $that
+          $this
             .removeClass('collapsed')
             // prop() can't be used on browsers not supporting details element,
             // the style won't apply to them if prop() is used.
@@ -51,7 +51,7 @@
             .addClass('vertical-tabs-pane')
             .data('verticalTab', vertical_tab);
           if (this.id === focusID) {
-            tab_focus = $that;
+            tab_focus = $this;
           }
         });
 
diff --git a/core/modules/aggregator/src/Plugin/aggregator/processor/DefaultProcessor.php b/core/modules/aggregator/src/Plugin/aggregator/processor/DefaultProcessor.php
index c31b4ff..f6c1412 100644
--- a/core/modules/aggregator/src/Plugin/aggregator/processor/DefaultProcessor.php
+++ b/core/modules/aggregator/src/Plugin/aggregator/processor/DefaultProcessor.php
@@ -150,7 +150,7 @@ public function buildConfigurationForm(array $form, FormStateInterface $form_sta
 
     $lengths = array(0, 200, 400, 600, 800, 1000, 1200, 1400, 1600, 1800, 2000);
     $options = array_map(function($length) {
-      return ($length == 0) ? t('Unlimited') : $this->formatPlural($length, '1 character', '@count characters');
+      return ($length == 0) ? t('Unlimited') : format_plural($length, '1 character', '@count characters');
     }, array_combine($lengths, $lengths));
 
     $form['processors'][$info['id']]['aggregator_teaser_length'] = array(
diff --git a/core/modules/block/block.module b/core/modules/block/block.module
index 85d295e..d54d367 100644
--- a/core/modules/block/block.module
+++ b/core/modules/block/block.module
@@ -290,7 +290,7 @@ function block_menu_delete(Menu $menu) {
 }
 
 /**
- * Implements hook_ENTITY_TYPE_delete() for 'configurable_language'.
+ * Implements hook_ENTITY_TYPE_delete() for configurable_language entities.
  *
  * Delete the potential block visibility settings of the deleted language.
  */
diff --git a/core/modules/block/src/BlockListBuilder.php b/core/modules/block/src/BlockListBuilder.php
index 444d989..4eb79af 100644
--- a/core/modules/block/src/BlockListBuilder.php
+++ b/core/modules/block/src/BlockListBuilder.php
@@ -215,7 +215,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
         ),
       );
       $form['blocks'][$region]['title'] = array(
-        '#markup' => $region != BlockInterface::BLOCK_REGION_NONE ? $title : t('Disabled', array(), array('context' => 'Plural')),
+        '#markup' => $region != BlockInterface::BLOCK_REGION_NONE ? $title : t('Disabled'),
         '#wrapper_attributes' => array(
           'colspan' => 5,
         ),
diff --git a/core/modules/block_content/js/block_content.js b/core/modules/block_content/js/block_content.js
index de36d4b..a8cd785 100644
--- a/core/modules/block_content/js/block_content.js
+++ b/core/modules/block_content/js/block_content.js
@@ -11,14 +11,14 @@
     attach: function (context) {
       var $context = $(context);
       $context.find('.block-content-form-revision-information').drupalSetSummary(function (context) {
-        var $revisionContext = $(context);
-        var revisionCheckbox = $revisionContext.find('.form-item-revision input');
+        var $context = $(context);
+        var revisionCheckbox = $context.find('.form-item-revision input');
 
         // Return 'New revision' if the 'Create new revision' checkbox is checked,
         // or if the checkbox doesn't exist, but the revision log does. For users
         // without the "Administer content" permission the checkbox won't appear,
         // but the revision log will if the content type is set to auto-revision.
-        if (revisionCheckbox.is(':checked') || (!revisionCheckbox.length && $revisionContext.find('.form-item-revision-log textarea').length)) {
+        if (revisionCheckbox.is(':checked') || (!revisionCheckbox.length && $context.find('.form-item-revision-log textarea').length)) {
           return Drupal.t('New revision');
         }
 
@@ -26,15 +26,15 @@
       });
 
       $context.find('fieldset.block-content-translation-options').drupalSetSummary(function (context) {
-        var $translationContext = $(context);
+        var $context = $(context);
         var translate;
-        var $checkbox = $translationContext.find('.form-item-translation-translate input');
+        var $checkbox = $context.find('.form-item-translation-translate input');
 
         if ($checkbox.size()) {
           translate = $checkbox.is(':checked') ? Drupal.t('Needs to be updated') : Drupal.t('Does not need to be updated');
         }
         else {
-          $checkbox = $translationContext.find('.form-item-translation-retranslate input');
+          $checkbox = $context.find('.form-item-translation-retranslate input');
           translate = $checkbox.is(':checked') ? Drupal.t('Flag other translations as outdated') : Drupal.t('Do not flag other translations as outdated');
         }
 
diff --git a/core/modules/block_content/src/Form/BlockContentDeleteForm.php b/core/modules/block_content/src/Form/BlockContentDeleteForm.php
index 26e55f4..1d7724d 100644
--- a/core/modules/block_content/src/Form/BlockContentDeleteForm.php
+++ b/core/modules/block_content/src/Form/BlockContentDeleteForm.php
@@ -44,7 +44,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     $instances = $this->entity->getInstances();
 
     $form['message'] = array(
-      '#markup' => $this->formatPlural(count($instances), 'This will also remove 1 placed block instance.', 'This will also remove @count placed block instances.'),
+      '#markup' => format_plural(count($instances), 'This will also remove 1 placed block instance.', 'This will also remove @count placed block instances.'),
       '#access' => !empty($instances),
     );
 
diff --git a/core/modules/block_content/src/Form/BlockContentTypeDeleteForm.php b/core/modules/block_content/src/Form/BlockContentTypeDeleteForm.php
index 4c7d909..65fe352 100644
--- a/core/modules/block_content/src/Form/BlockContentTypeDeleteForm.php
+++ b/core/modules/block_content/src/Form/BlockContentTypeDeleteForm.php
@@ -71,7 +71,7 @@ public function getConfirmText() {
   public function buildForm(array $form, FormStateInterface $form_state) {
     $blocks = $this->queryFactory->get('block_content')->condition('type', $this->entity->id())->execute();
     if (!empty($blocks)) {
-      $caption = '<p>' . $this->formatPlural(count($blocks), '%label is used by 1 custom block on your site. You can not remove this block type until you have removed all of the %label blocks.', '%label is used by @count custom blocks on your site. You may not remove %label until you have removed all of the %label custom blocks.', array('%label' => $this->entity->label())) . '</p>';
+      $caption = '<p>' . format_plural(count($blocks), '%label is used by 1 custom block on your site. You can not remove this block type until you have removed all of the %label blocks.', '%label is used by @count custom blocks on your site. You may not remove %label until you have removed all of the %label custom blocks.', array('%label' => $this->entity->label())) . '</p>';
       $form['description'] = array('#markup' => $caption);
       return $form;
     }
diff --git a/core/modules/block_content/src/Tests/BlockContentCreationTest.php b/core/modules/block_content/src/Tests/BlockContentCreationTest.php
index 400ad50..7797571 100644
--- a/core/modules/block_content/src/Tests/BlockContentCreationTest.php
+++ b/core/modules/block_content/src/Tests/BlockContentCreationTest.php
@@ -184,7 +184,7 @@ public function testBlockDelete() {
 
     // Delete the block.
     $this->drupalGet('block/1/delete');
-    $this->assertText(\Drupal::translation()->formatPlural(1, 'This will also remove 1 placed block instance.', 'This will also remove @count placed block instance.'));
+    $this->assertText(format_plural(1, 'This will also remove 1 placed block instance.', 'This will also remove @count placed block instance.'));
 
     $this->drupalPostForm(NULL, array(), 'Delete');
     $this->assertRaw(t('Custom block %name has been deleted.', array('%name' => $edit['info[0][value]'])));
diff --git a/core/modules/book/book.module b/core/modules/book/book.module
index 51da823..d3e284f 100644
--- a/core/modules/book/book.module
+++ b/core/modules/book/book.module
@@ -301,7 +301,7 @@ function book_node_predelete(EntityInterface $node) {
 }
 
 /**
- * Implements hook_node_prepare_form().
+ * Implements hook_ENTITY_TYPE_prepare_form() for node entities.
  */
 function book_node_prepare_form(NodeInterface $node, $operation, FormStateInterface $form_state) {
   /** @var \Drupal\book\BookManagerInterface $book_manager */
diff --git a/core/modules/ckeditor/js/ckeditor.admin.js b/core/modules/ckeditor/js/ckeditor.admin.js
index 671313a..def5971 100644
--- a/core/modules/ckeditor/js/ckeditor.admin.js
+++ b/core/modules/ckeditor/js/ckeditor.admin.js
@@ -94,7 +94,7 @@
      *   A callback to invoke after the button group naming modal dialog has been
      *   closed.
      */
-    registerButtonMove: function (view, $button, callback) {
+    registerButtonMove: function(view, $button, callback) {
       var $group = $button.closest('.ckeditor-toolbar-group');
 
       // If dropped in a placeholder button group, the user must name it.
@@ -312,7 +312,7 @@
           });
           // Announce to the user that a modal dialog is open.
           var text = Drupal.t('Editing the name of the new button group in a dialog.');
-          if (typeof $group.attr('data-drupal-ckeditor-toolbar-group-name') !== 'undefined') {
+          if ($group.attr('data-drupal-ckeditor-toolbar-group-name') !== undefined) {
             text = Drupal.t('Editing the name of the "@groupName" button group in a dialog.', {
               '@groupName': $group.attr('data-drupal-ckeditor-toolbar-group-name')
             });
diff --git a/core/modules/ckeditor/js/ckeditor.drupalimage.admin.js b/core/modules/ckeditor/js/ckeditor.drupalimage.admin.js
index 44072df..1315b24 100644
--- a/core/modules/ckeditor/js/ckeditor.drupalimage.admin.js
+++ b/core/modules/ckeditor/js/ckeditor.drupalimage.admin.js
@@ -23,7 +23,7 @@
         }
 
         var output = '';
-        output += Drupal.t('Uploads enabled, max size: @size @dimensions', {'@size': maxFileSize, '@dimensions': maxDimensions});
+        output += Drupal.t('Uploads enabled, max size: @size @dimensions', { '@size': maxFileSize, '@dimensions': maxDimensions });
         if ($scheme.length) {
           output += '<br />' + $scheme.attr('data-label');
         }
diff --git a/core/modules/ckeditor/js/ckeditor.js b/core/modules/ckeditor/js/ckeditor.js
index 1596808..67e2399 100644
--- a/core/modules/ckeditor/js/ckeditor.js
+++ b/core/modules/ckeditor/js/ckeditor.js
@@ -166,7 +166,7 @@
         selector: '.ckeditor-dialog-loading-link',
         url: url,
         event: 'ckeditor-internal.ckeditor',
-        progress: {'type': 'throbber'},
+        progress: { 'type': 'throbber' },
         submit: {
           editor_object: existingValues
         }
@@ -177,7 +177,7 @@
 
       // After a short delay, show "Loading…" message.
       window.setTimeout(function () {
-        $content.find('span').animate({top: '0px'});
+        $content.find('span').animate({ top: '0px' });
       }, 1000);
 
       // Store the save callback to be executed when this dialog is closed.
@@ -187,7 +187,7 @@
 
   // Respond to new dialogs that are opened by CKEditor, closing the AJAX loader.
   $(window).on('dialog:beforecreate', function (e, dialog, $element, settings) {
-    $('.ckeditor-dialog-loading').animate({top: '-40px'}, function () {
+    $('.ckeditor-dialog-loading').animate({ top: '-40px' }, function () {
       $(this).remove();
     });
   });
diff --git a/core/modules/ckeditor/js/ckeditor.stylescombo.admin.js b/core/modules/ckeditor/js/ckeditor.stylescombo.admin.js
index d9c585a..10bdbbb 100644
--- a/core/modules/ckeditor/js/ckeditor.stylescombo.admin.js
+++ b/core/modules/ckeditor/js/ckeditor.stylescombo.admin.js
@@ -31,7 +31,7 @@
           if (!_.isEqual(previousStylesSet, stylesSet)) {
             previousStylesSet = stylesSet;
             $ckeditorActiveToolbar.trigger('CKEditorPluginSettingsChanged', [
-              {stylesSet: stylesSet}
+              { stylesSet: stylesSet }
             ]);
           }
         });
@@ -81,7 +81,7 @@
         // Build the data structure CKEditor's stylescombo plugin expects.
         // @see http://docs.cksource.com/CKEditor_3.x/Developers_Guide/Styles
         stylesSet.push({
-          attributes: {'class': classes.join(' ')},
+          attributes: { class: classes.join(' ') },
           element: element,
           name: label
         });
@@ -103,7 +103,7 @@
         }
         else {
           var count = $.trim(styles).split("\n").length;
-          return Drupal.t('@count styles configured', {'@count': count});
+          return Drupal.t('@count styles configured', { '@count': count});
         }
       });
     }
diff --git a/core/modules/ckeditor/js/plugins/drupalimage/plugin.js b/core/modules/ckeditor/js/plugins/drupalimage/plugin.js
index d649885..51a0bc5 100644
--- a/core/modules/ckeditor/js/plugins/drupalimage/plugin.js
+++ b/core/modules/ckeditor/js/plugins/drupalimage/plugin.js
@@ -180,7 +180,7 @@
       editor.addCommand('editdrupalimage', {
         allowedContent: 'img[alt,!src,width,height,!data-entity-type,!data-entity-uuid]',
         requiredContent: 'img[alt,src,width,height,data-entity-type,data-entity-uuid]',
-        modes: {wysiwyg: 1},
+        modes: { wysiwyg: 1 },
         canUndo: true,
         exec: function (editor, data) {
           var dialogSettings = {
diff --git a/core/modules/ckeditor/js/plugins/drupalimagecaption/plugin.js b/core/modules/ckeditor/js/plugins/drupalimagecaption/plugin.js
index cbb6160..50a4a4d 100644
--- a/core/modules/ckeditor/js/plugins/drupalimagecaption/plugin.js
+++ b/core/modules/ckeditor/js/plugins/drupalimagecaption/plugin.js
@@ -102,21 +102,20 @@
 
           var attrs = element.attributes;
           var retElement = element;
-          var caption;
 
           // We won't need the attributes during editing: we'll use widget.data
           // to store them (except the caption, which is stored in the DOM).
           if (captionFilterEnabled) {
-            caption = attrs['data-caption'];
+            var caption = attrs['data-caption'];
             delete attrs['data-caption'];
           }
           if (alignFilterEnabled) {
             data.align = attrs['data-align'];
             delete attrs['data-align'];
           }
-          data['data-entity-type'] = attrs['data-entity-type'];
+          data['data-entity-type' ] = attrs['data-entity-type'];
           delete attrs['data-entity-type'];
-          data['data-entity-uuid'] = attrs['data-entity-uuid'];
+          data['data-entity-uuid' ] = attrs['data-entity-uuid'];
           delete attrs['data-entity-uuid'];
 
           if (captionFilterEnabled) {
diff --git a/core/modules/ckeditor/js/plugins/drupallink/plugin.js b/core/modules/ckeditor/js/plugins/drupallink/plugin.js
index 76e6de2..762ac07 100644
--- a/core/modules/ckeditor/js/plugins/drupallink/plugin.js
+++ b/core/modules/ckeditor/js/plugins/drupallink/plugin.js
@@ -13,7 +13,7 @@
       editor.addCommand('drupallink', {
         allowedContent: 'a[!href,target]',
         requiredContent: 'a[href]',
-        modes: {wysiwyg: 1},
+        modes: { wysiwyg: 1 },
         canUndo: true,
         exec: function (editor) {
           var linkElement = getSelectedLink(editor);
@@ -26,8 +26,8 @@
 
             // Populate an array with the link's current attributes.
             var attribute = null, attributeName;
-            for (var attrIndex = 0; attrIndex < linkDOMElement.attributes.length; attrIndex++) {
-              attribute = linkDOMElement.attributes.item(attrIndex);
+            for (var key = 0; key < linkDOMElement.attributes.length; key++) {
+              attribute = linkDOMElement.attributes.item(key);
               attributeName = attribute.nodeName.toLowerCase();
               // Don't consider data-cke-saved- attributes; they're just there to
               // work around browser quirks.
@@ -64,7 +64,7 @@
               }
 
               // Create the new link by applying a style to the new text.
-              var style = new CKEDITOR.style({element: 'a', attributes: returnValues.attributes});
+              var style = new CKEDITOR.style({ element: 'a', attributes: returnValues.attributes });
               style.type = CKEDITOR.STYLE_INLINE;
               style.applyToRange(range);
               range.select();
@@ -74,17 +74,17 @@
             }
             // Update the link properties.
             else if (linkElement) {
-              for (var attrName in returnValues.attributes) {
-                if (returnValues.attributes.hasOwnProperty(attrName)) {
+              for (var key in returnValues.attributes) {
+                if (returnValues.attributes.hasOwnProperty(key)) {
                   // Update the property if a value is specified.
-                  if (returnValues.attributes[attrName].length > 0) {
-                    var value = returnValues.attributes[attrName];
-                    linkElement.data('cke-saved-' + attrName, value);
-                    linkElement.setAttribute(attrName, value);
+                  if (returnValues.attributes[key].length > 0) {
+                    var value = returnValues.attributes[key];
+                    linkElement.data('cke-saved-' + key, value);
+                    linkElement.setAttribute(key, value);
                   }
                   // Delete the property if set to an empty string.
                   else {
-                    linkElement.removeAttribute(attrName);
+                    linkElement.removeAttribute(key);
                   }
                 }
               }
@@ -111,7 +111,7 @@
         allowedContent: 'a[!href]',
         requiredContent: 'a[href]',
         exec: function (editor) {
-          var style = new CKEDITOR.style({element: 'a', type: CKEDITOR.STYLE_INLINE, alwaysRemoveElement: 1});
+          var style = new CKEDITOR.style({ element: 'a', type: CKEDITOR.STYLE_INLINE, alwaysRemoveElement: 1 });
           editor.removeStyle(style);
         },
         refresh: function (editor, path) {
@@ -125,8 +125,7 @@
         }
       });
 
-      // CTRL + K.
-      editor.setKeystroke(CKEDITOR.CTRL + 75, 'drupallink');
+      editor.setKeystroke(CKEDITOR.CTRL + 75 /*K*/, 'drupallink');
 
       // Add buttons for link and unlink.
       if (editor.ui.addButton) {
@@ -185,7 +184,7 @@
 
           var menu = {};
           if (anchor.getAttribute('href') && anchor.getChildCount()) {
-            menu = {link: CKEDITOR.TRISTATE_OFF, unlink: CKEDITOR.TRISTATE_OFF};
+            menu = { link: CKEDITOR.TRISTATE_OFF, unlink: CKEDITOR.TRISTATE_OFF };
           }
           return menu;
         });
diff --git a/core/modules/ckeditor/js/views/ControllerView.js b/core/modules/ckeditor/js/views/ControllerView.js
index aff0f8d..f21e1d7 100644
--- a/core/modules/ckeditor/js/views/ControllerView.js
+++ b/core/modules/ckeditor/js/views/ControllerView.js
@@ -242,8 +242,8 @@
       // Remove duplicate buttons.
       existingButtons = _.unique(existingButtons);
       // Prepare the active toolbar and available-button toolbars.
-      for (var n = 0; n < existingButtons.length; n++) {
-        var button = existingButtons[n];
+      for (i = 0; i < existingButtons.length; i++) {
+        var button = existingButtons[i];
         var feature = this.getFeatureForButton(button);
         // Skip dividers.
         if (feature === false) {
@@ -252,7 +252,7 @@
 
         if (Drupal.editorConfiguration.featureIsAllowedByFilters(feature)) {
           // Existing toolbar buttons are in fact "added features".
-          this.$el.find('.ckeditor-toolbar-active').trigger('CKEditorToolbarChanged', ['added', existingButtons[n]]);
+          this.$el.find('.ckeditor-toolbar-active').trigger('CKEditorToolbarChanged', ['added', existingButtons[i]]);
         }
         else {
           // Move the button element from the active the active toolbar to the
diff --git a/core/modules/color/color.js b/core/modules/color/color.js
index f9eebf2..62eab38 100644
--- a/core/modules/color/color.js
+++ b/core/modules/color/color.js
@@ -207,7 +207,7 @@
           farb.linkTo(function () {}).setColor('#000').linkTo(this);
 
           // Add lock.
-          i = inputs.length;
+          var i = inputs.length;
           if (inputs.length) {
             var toggleClick = true;
             var lock = $('<div class="lock"></div>').on('click', function () {
diff --git a/core/modules/color/preview.js b/core/modules/color/preview.js
index 4c99ffa..5e79855 100644
--- a/core/modules/color/preview.js
+++ b/core/modules/color/preview.js
@@ -9,7 +9,6 @@
 
   Drupal.color = {
     callback: function (context, settings, form, farb, height, width) {
-      var accum, delta;
       // Solid background.
       form.find('#preview').css('backgroundColor', form.find('#palette input[name="palette[base]"]').val());
 
@@ -33,13 +32,13 @@
           color_start = farb.unpack(form.find('#palette input[name="palette[' + settings.gradients[i].colors[0] + ']"]').val());
           color_end = farb.unpack(form.find('#palette input[name="palette[' + settings.gradients[i].colors[1] + ']"]').val());
           if (color_start && color_end) {
-            delta = [];
+            var delta = [];
             for (var j in color_start) {
               if (color_start.hasOwnProperty(j)) {
                 delta[j] = (color_end[j] - color_start[j]) / (settings.gradients[i].vertical ? height[i] : width[i]);
               }
             }
-            accum = color_start;
+            var accum = color_start;
             // Render gradient lines.
             form.find('#gradient-' + i + ' > div').each(gradientLineColor);
           }
diff --git a/core/modules/comment/comment.module b/core/modules/comment/comment.module
index ab7751c..f14ef4d 100644
--- a/core/modules/comment/comment.module
+++ b/core/modules/comment/comment.module
@@ -169,7 +169,7 @@ function comment_field_config_update(FieldConfigInterface $field) {
 }
 
 /**
- * Implements hook_ENTITY_TYPE_insert() for 'field_storage_config'.
+ * Implements hook_ENTITY_TYPE_insert() for field_storage_config entities.
  */
 function comment_field_storage_config_insert(FieldStorageConfigInterface $field_storage) {
   if ($field_storage->getType() == 'comment') {
@@ -530,7 +530,7 @@ function comment_node_search_result(EntityInterface $node) {
   // Do not make a string if there are no comment fields, or no comments exist
   // or all comment fields are hidden.
   if ($comments > 0 || $open) {
-    return array('comment' => \Drupal::translation()->formatPlural($comments, '1 comment', '@count comments'));
+    return array('comment' => format_plural($comments, '1 comment', '@count comments'));
   }
 }
 
diff --git a/core/modules/comment/js/node-new-comments-link.js b/core/modules/comment/js/node-new-comments-link.js
index 97c7871..2c89cf9 100644
--- a/core/modules/comment/js/node-new-comments-link.js
+++ b/core/modules/comment/js/node-new-comments-link.js
@@ -122,7 +122,7 @@
       $.ajax({
         url: Drupal.url('comments/render_new_comments_node_links'),
         type: 'POST',
-        data: {'node_ids[]': nodeIDs, 'field_name': fieldName},
+        data: { 'node_ids[]': nodeIDs, 'field_name': fieldName },
         dataType: 'json',
         success: render
       });
diff --git a/core/modules/comment/src/Form/ConfirmDeleteMultiple.php b/core/modules/comment/src/Form/ConfirmDeleteMultiple.php
index d360543..f6c8a6e 100644
--- a/core/modules/comment/src/Form/ConfirmDeleteMultiple.php
+++ b/core/modules/comment/src/Form/ConfirmDeleteMultiple.php
@@ -122,7 +122,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
       $this->commentStorage->delete($this->comments);
       $count = count($form_state->getValue('comments'));
       $this->logger('content')->notice('Deleted @count comments.', array('@count' => $count));
-      drupal_set_message($this->formatPlural($count, 'Deleted 1 comment.', 'Deleted @count comments.'));
+      drupal_set_message(format_plural($count, 'Deleted 1 comment.', 'Deleted @count comments.'));
     }
     $form_state->setRedirectUrl($this->getCancelUrl());
   }
diff --git a/core/modules/comment/src/Tests/CommentNonNodeTest.php b/core/modules/comment/src/Tests/CommentNonNodeTest.php
index ec9b630..704a298 100644
--- a/core/modules/comment/src/Tests/CommentNonNodeTest.php
+++ b/core/modules/comment/src/Tests/CommentNonNodeTest.php
@@ -208,7 +208,7 @@ function performCommentOperation($comment, $operation, $approval = FALSE) {
 
     if ($operation == 'delete') {
       $this->drupalPostForm(NULL, array(), t('Delete comments'));
-      $this->assertRaw(\Drupal::translation()->formatPlural(1, 'Deleted 1 comment.', 'Deleted @count comments.'), format_string('Operation "@operation" was performed on comment.', array('@operation' => $operation)));
+      $this->assertRaw(format_plural(1, 'Deleted 1 comment.', 'Deleted @count comments.'), format_string('Operation "@operation" was performed on comment.', array('@operation' => $operation)));
     }
     else {
       $this->assertText(t('The update has been performed.'), format_string('Operation "@operation" was performed on comment.', array('@operation' => $operation)));
diff --git a/core/modules/comment/src/Tests/CommentTestBase.php b/core/modules/comment/src/Tests/CommentTestBase.php
index 5acb24a..46522e6 100644
--- a/core/modules/comment/src/Tests/CommentTestBase.php
+++ b/core/modules/comment/src/Tests/CommentTestBase.php
@@ -345,7 +345,7 @@ function performCommentOperation(CommentInterface $comment, $operation, $approva
 
     if ($operation == 'delete') {
       $this->drupalPostForm(NULL, array(), t('Delete comments'));
-      $this->assertRaw(\Drupal::translation()->formatPlural(1, 'Deleted 1 comment.', 'Deleted @count comments.'), format_string('Operation "@operation" was performed on comment.', array('@operation' => $operation)));
+      $this->assertRaw(format_plural(1, 'Deleted 1 comment.', 'Deleted @count comments.'), format_string('Operation "@operation" was performed on comment.', array('@operation' => $operation)));
     }
     else {
       $this->assertText(t('The update has been performed.'), format_string('Operation "@operation" was performed on comment.', array('@operation' => $operation)));
diff --git a/core/modules/config/src/Form/ConfigSync.php b/core/modules/config/src/Form/ConfigSync.php
old mode 100644
new mode 100755
index 2742e93..58451e7
--- a/core/modules/config/src/Form/ConfigSync.php
+++ b/core/modules/config/src/Form/ConfigSync.php
@@ -239,19 +239,19 @@ public function buildForm(array $form, FormStateInterface $form_state) {
         );
         switch ($config_change_type) {
           case 'create':
-            $form[$collection][$config_change_type]['heading']['#value'] = $this->formatPlural(count($config_names), '@count new', '@count new');
+            $form[$collection][$config_change_type]['heading']['#value'] = format_plural(count($config_names), '@count new', '@count new');
             break;
 
           case 'update':
-            $form[$collection][$config_change_type]['heading']['#value'] = $this->formatPlural(count($config_names), '@count changed', '@count changed');
+            $form[$collection][$config_change_type]['heading']['#value'] = format_plural(count($config_names), '@count changed', '@count changed');
             break;
 
           case 'delete':
-            $form[$collection][$config_change_type]['heading']['#value'] = $this->formatPlural(count($config_names), '@count removed', '@count removed');
+            $form[$collection][$config_change_type]['heading']['#value'] = format_plural(count($config_names), '@count removed', '@count removed');
             break;
 
           case 'rename':
-            $form[$collection][$config_change_type]['heading']['#value'] = $this->formatPlural(count($config_names), '@count renamed', '@count renamed');
+            $form[$collection][$config_change_type]['heading']['#value'] = format_plural(count($config_names), '@count renamed', '@count renamed');
             break;
         }
         $form[$collection][$config_change_type]['list'] = array(
diff --git a/core/modules/config/tests/config_test/config_test.module b/core/modules/config/tests/config_test/config_test.module
index 1f3a30b..1472ecd 100644
--- a/core/modules/config/tests/config_test/config_test.module
+++ b/core/modules/config/tests/config_test/config_test.module
@@ -29,7 +29,7 @@ function config_test_cache_flush() {
 }
 
 /**
- * Implements hook_ENTITY_TYPE_create().
+ * Implements hook_ENTITY_TYPE_create() for config_test entities.
  */
 function config_test_config_test_create(ConfigTest $config_test) {
   if (\Drupal::state()->get('config_test.prepopulate')) {
diff --git a/core/modules/contextual/js/contextual.js b/core/modules/contextual/js/contextual.js
index e00b011..505b2a8 100644
--- a/core/modules/contextual/js/contextual.js
+++ b/core/modules/contextual/js/contextual.js
@@ -66,14 +66,14 @@
     var model = new contextual.StateModel({
       title: $region.find('h2:first').text().trim()
     });
-    var viewOptions = $.extend({el: $contextual, model: model}, options);
+    var viewOptions = $.extend({ el: $contextual, model: model }, options);
     contextual.views.push({
       visual: new contextual.VisualView(viewOptions),
       aural: new contextual.AuralView(viewOptions),
       keyboard: new contextual.KeyboardView(viewOptions)
     });
     contextual.regionViews.push(new contextual.RegionView(
-      $.extend({el: $region, model: model}, options))
+      $.extend({ el: $region, model: model }, options))
     );
 
     // Add the model to the collection. This must happen after the views have been
@@ -128,7 +128,7 @@
       $trigger.addClass('visually-hidden');
 
       // Adjust nested contextual link's position.
-      $nestedContextual.css({top: $nestedContextual.position().top + height});
+      $nestedContextual.css({ top: $nestedContextual.position().top + height });
     }
   }
 
@@ -178,7 +178,7 @@
         $.ajax({
           url: Drupal.url('contextual/render'),
           type: 'POST',
-          data: {'ids[]': uncachedIDs},
+          data: { 'ids[]': uncachedIDs },
           dataType: 'json',
           success: function (results) {
             _.each(results, function (html, contextualID) {
@@ -192,7 +192,7 @@
                 // Usually there will only be one placeholder, but it's possible for
                 // multiple identical placeholders exist on the page (probably
                 // because the same content appears more than once).
-                $placeholders = $context.find('[data-contextual-id="' + contextualID + '"]');
+                var $placeholders = $context.find('[data-contextual-id="' + contextualID + '"]');
 
                 // Initialize the contextual links.
                 for (var i = 0; i < $placeholders.length; i++) {
@@ -217,7 +217,7 @@
   };
 
   // A Backbone.Collection of Drupal.contextual.StateModel instances.
-  Drupal.contextual.collection = new Backbone.Collection([], {model: Drupal.contextual.StateModel});
+  Drupal.contextual.collection = new Backbone.Collection([], { model: Drupal.contextual.StateModel });
 
   /**
    * A trigger is an interactive element often bound to a click handler.
diff --git a/core/modules/editor/js/editor.admin.js b/core/modules/editor/js/editor.admin.js
index 74a38b2..c8b1870 100644
--- a/core/modules/editor/js/editor.admin.js
+++ b/core/modules/editor/js/editor.admin.js
@@ -84,22 +84,22 @@
        *
        * This generates an object of this form:
        *   var universe = {
-       *     a: {
-       *       'touchedByAllowedPropertyRule': false,
-       *       'tag': false,
-       *       'attributes:href': false,
-       *       'classes:external': false,
-       *     },
-       *     strong: {
-       *       'touchedByAllowedPropertyRule': false,
-       *       'tag': false,
-       *     },
-       *     img: {
-       *       'touchedByAllowedPropertyRule': false,
-       *       'tag': false,
-       *       'attributes:src': false
-       *     }
-       *   };
+     *     a: {
+     *       'touchedByAllowedPropertyRule': false,
+     *       'tag': false,
+     *       'attributes:href': false,
+     *       'classes:external': false,
+     *     },
+     *     strong: {
+     *       'touchedByAllowedPropertyRule': false,
+     *       'tag': false,
+     *     },
+     *     img: {
+     *       'touchedByAllowedPropertyRule': false,
+     *       'tag': false,
+     *       'attributes:src': false
+     *     }
+     *   };
        *
        * In this example, the given text editor feature resulted in the above
        * universe, which shows that it must be allowed to generate the a, strong
@@ -550,8 +550,8 @@
    *  - classes: ['external', 'internal']
    */
   Drupal.EditorFeatureHTMLRule = function () {
-    this.required = {tags: [], attributes: [], styles: [], classes: []};
-    this.allowed = {tags: [], attributes: [], styles: [], classes: []};
+    this.required = { tags: [], attributes: [], styles: [], classes: [] };
+    this.allowed = { tags: [], attributes: [], styles: [], classes: [] };
     this.raw = null;
   };
 
@@ -616,36 +616,36 @@
    * Examples:
    *  - Whitelist the "p", "strong" and "a" HTML tags:
    *    {
-   *      tags: ['p', 'strong', 'a'],
-   *      allow: true,
-   *      restrictedTags: {
-   *        tags: [],
-   *        allowed: { attributes: [], styles: [], classes: [] },
-   *        forbidden: { attributes: [], styles: [], classes: [] }
-   *      }
-   *    }
+ *      tags: ['p', 'strong', 'a'],
+ *      allow: true,
+ *      restrictedTags: {
+ *        tags: [],
+ *        allowed: { attributes: [], styles: [], classes: [] },
+ *        forbidden: { attributes: [], styles: [], classes: [] }
+ *      }
+ *    }
    *  - For the "a" HTML tag, only allow the "href" attribute and the "external"
    *    class and disallow the "target" attribute.
    *    {
-   *      tags: [],
-   *      allow: null,
-   *      restrictedTags: {
-   *        tags: ['a'],
-   *        allowed: { attributes: ['href'], styles: [], classes: ['external'] },
-   *        forbidden: { attributes: ['target'], styles: [], classes: [] }
-   *      }
-   *    }
+ *      tags: [],
+ *      allow: null,
+ *      restrictedTags: {
+ *        tags: ['a'],
+ *        allowed: { attributes: ['href'], styles: [], classes: ['external'] },
+ *        forbidden: { attributes: ['target'], styles: [], classes: [] }
+ *      }
+ *    }
    *  - For all tags, allow the "data-*" attribute (that is, any attribute that
    *    begins with "data-").
    *    {
-   *      tags: [],
-   *      allow: null,
-   *      restrictedTags: {
-   *        tags: ['*'],
-   *        allowed: { attributes: ['data-*'], styles: [], classes: [] },
-   *        forbidden: { attributes: [], styles: [], classes: [] }
-   *      }
-   *    }
+ *      tags: [],
+ *      allow: null,
+ *      restrictedTags: {
+ *        tags: ['*'],
+ *        allowed: { attributes: ['data-*'], styles: [], classes: [] },
+ *        forbidden: { attributes: [], styles: [], classes: [] }
+ *      }
+ *    }
    */
   Drupal.FilterHTMLRule = function () {
     return {
@@ -655,8 +655,8 @@
       // Apply restrictions to properties set on tags.
       restrictedTags: {
         tags: [],
-        allowed: {attributes: [], styles: [], classes: []},
-        forbidden: {attributes: [], styles: [], classes: []}
+        allowed: { attributes: [], styles: [], classes: [] },
+        forbidden: { attributes: [], styles: [], classes: [] }
       }
     };
   };
diff --git a/core/modules/editor/js/editor.formattedTextEditor.js b/core/modules/editor/js/editor.formattedTextEditor.js
index 75b20b6..97f261f 100644
--- a/core/modules/editor/js/editor.formattedTextEditor.js
+++ b/core/modules/editor/js/editor.formattedTextEditor.js
@@ -146,7 +146,7 @@
      * {@inheritdoc}
      */
     getQuickEditUISettings: function () {
-      return {padding: true, unifiedToolbar: true, fullWidthToolbar: true, popup: false};
+      return { padding: true, unifiedToolbar: true, fullWidthToolbar: true, popup: false };
     },
 
     /**
@@ -174,8 +174,8 @@
       var textLoaderAjax = new Drupal.ajax(fieldID, this.$el, {
         url: Drupal.quickedit.util.buildUrl(fieldID, Drupal.url('editor/!entity_type/!id/!field_name/!langcode/!view_mode')),
         event: 'editor-internal.editor',
-        submit: {nocssjs: true},
-        progress: {type: null} // No progress indicator.
+        submit: { nocssjs: true },
+        progress: { type: null } // No progress indicator.
       });
 
       // Implement a scoped editorGetUntransformedText AJAX command: calls the
diff --git a/core/modules/entity_reference/entity_reference.module b/core/modules/entity_reference/entity_reference.module
index 6d4280b..6729e2b 100644
--- a/core/modules/entity_reference/entity_reference.module
+++ b/core/modules/entity_reference/entity_reference.module
@@ -64,7 +64,7 @@ function entity_reference_field_widget_info_alter(&$info) {
 }
 
 /**
- * Implements hook_ENTITY_TYPE_update() for 'field_storage_config'.
+ * Implements hook_ENTITY_TYPE_update() for field_storage_config entities.
  *
  * Reset the instance handler settings, when the target type is changed.
  */
diff --git a/core/modules/field_ui/src/DisplayOverviewBase.php b/core/modules/field_ui/src/DisplayOverviewBase.php
index 307a9bb..09322d3 100644
--- a/core/modules/field_ui/src/DisplayOverviewBase.php
+++ b/core/modules/field_ui/src/DisplayOverviewBase.php
@@ -149,7 +149,7 @@ public function getRegions() {
         'message' => $this->t('No field is displayed.')
       ),
       'hidden' => array(
-        'title' => $this->t('Disabled', array(), array('context' => 'Plural')),
+        'title' => $this->t('Disabled'),
         'message' => $this->t('No field is hidden.')
       ),
     );
diff --git a/core/modules/file/file.field.inc b/core/modules/file/file.field.inc
index 57c402e..3e88433 100644
--- a/core/modules/file/file.field.inc
+++ b/core/modules/file/file.field.inc
@@ -175,7 +175,7 @@ function template_preprocess_file_upload_help(&$variables) {
       $descriptions[] = t('Unlimited number of files can be uploaded to this field.');
     }
     else {
-      $descriptions[] = \Drupal::translation()->formatPlural($cardinality, 'One file only.', 'Maximum @count files.');
+      $descriptions[] = format_plural($cardinality, 'One file only.', 'Maximum @count files.');
     }
   }
   if (isset($upload_validators['file_validate_size'])) {
diff --git a/core/modules/file/file.js b/core/modules/file/file.js
index fcefad1..fa34513 100644
--- a/core/modules/file/file.js
+++ b/core/modules/file/file.js
@@ -22,7 +22,7 @@
       function initFileValidation(selector) {
         $context.find(selector)
           .once('fileValidate')
-          .on('change.fileValidate', {extensions: elements[selector]}, Drupal.file.validateExtension);
+          .on('change.fileValidate', { extensions: elements[selector] }, Drupal.file.validateExtension);
       }
 
       if (settings.file && settings.file.elements) {
diff --git a/core/modules/file/src/Tests/FileManagedTestBase.php b/core/modules/file/src/Tests/FileManagedTestBase.php
index 031a1a7..3147f73 100644
--- a/core/modules/file/src/Tests/FileManagedTestBase.php
+++ b/core/modules/file/src/Tests/FileManagedTestBase.php
@@ -80,7 +80,7 @@ function assertFileHookCalled($hook, $expected_count = 1, $message = NULL) {
         $message = format_string('hook_file_@name was called correctly.', array('@name' => $hook));
       }
       elseif ($expected_count == 0) {
-        $message = \Drupal::translation()->formatPlural($actual_count, 'hook_file_@name was not expected to be called but was actually called once.', 'hook_file_@name was not expected to be called but was actually called @count times.', array('@name' => $hook, '@count' => $actual_count));
+        $message = format_plural($actual_count, 'hook_file_@name was not expected to be called but was actually called once.', 'hook_file_@name was not expected to be called but was actually called @count times.', array('@name' => $hook, '@count' => $actual_count));
       }
       else {
         $message = format_string('hook_file_@name was expected to be called %expected times but was called %actual times.', array('@name' => $hook, '%expected' => $expected_count, '%actual' => $actual_count));
diff --git a/core/modules/file/src/Tests/FileManagedUnitTestBase.php b/core/modules/file/src/Tests/FileManagedUnitTestBase.php
index 00448c5..cd07552 100644
--- a/core/modules/file/src/Tests/FileManagedUnitTestBase.php
+++ b/core/modules/file/src/Tests/FileManagedUnitTestBase.php
@@ -92,7 +92,7 @@ function assertFileHookCalled($hook, $expected_count = 1, $message = NULL) {
         $message = format_string('hook_file_@name was called correctly.', array('@name' => $hook));
       }
       elseif ($expected_count == 0) {
-        $message = \Drupal::translation()->formatPlural($actual_count, 'hook_file_@name was not expected to be called but was actually called once.', 'hook_file_@name was not expected to be called but was actually called @count times.', array('@name' => $hook, '@count' => $actual_count));
+        $message = format_plural($actual_count, 'hook_file_@name was not expected to be called but was actually called once.', 'hook_file_@name was not expected to be called but was actually called @count times.', array('@name' => $hook, '@count' => $actual_count));
       }
       else {
         $message = format_string('hook_file_@name was expected to be called %expected times but was called %actual times.', array('@name' => $hook, '%expected' => $expected_count, '%actual' => $actual_count));
diff --git a/core/modules/filter/filter.filter_html.admin.js b/core/modules/filter/filter.filter_html.admin.js
index a11fca5..ed0284c 100644
--- a/core/modules/filter/filter.filter_html.admin.js
+++ b/core/modules/filter/filter.filter_html.admin.js
@@ -177,7 +177,7 @@
     var html = '';
     var tagList = '<' + tags.join('> <') + '>';
     html += '<p class="editor-update-message">';
-    html += Drupal.t('Based on the text editor configuration, these tags have automatically been added: <strong>@tag-list</strong>.', {'@tag-list': tagList});
+    html += Drupal.t('Based on the text editor configuration, these tags have automatically been added: <strong>@tag-list</strong>.', { '@tag-list': tagList });
     html += '</p>';
     return html;
   };
diff --git a/core/modules/forum/forum.module b/core/modules/forum/forum.module
index 19db072..c5e6d41 100644
--- a/core/modules/forum/forum.module
+++ b/core/modules/forum/forum.module
@@ -501,7 +501,7 @@ function template_preprocess_forums(&$variables) {
           $page_number = \Drupal::entityManager()->getStorage('comment')
             ->getNewCommentPageNumber($topic->comment_count, $topic->new_replies, $topic, 'comment_forum');
           $query = $page_number ? array('page' => $page_number) : NULL;
-          $variables['topics'][$id]->new_text = \Drupal::translation()->formatPlural($topic->new_replies, '1 new post<span class="visually-hidden"> in topic %title</span>', '@count new posts<span class="visually-hidden"> in topic %title</span>', array('%title' => $variables['topics'][$id]->label()));
+          $variables['topics'][$id]->new_text = format_plural($topic->new_replies, '1 new post<span class="visually-hidden"> in topic %title</span>', '@count new posts<span class="visually-hidden"> in topic %title</span>', array('%title' => $variables['topics'][$id]->label()));
           $variables['topics'][$id]->new_url = \Drupal::url('entity.node.canonical', ['node' => $topic->id()], ['query' => $query, 'fragment' => 'new']);
         }
 
@@ -583,7 +583,7 @@ function template_preprocess_forum_list(&$variables) {
     if ($user->isAuthenticated()) {
       $variables['forums'][$id]->new_topics = \Drupal::service('forum_manager')->unreadTopics($forum->id(), $user->id());
       if ($variables['forums'][$id]->new_topics) {
-        $variables['forums'][$id]->new_text = \Drupal::translation()->formatPlural($variables['forums'][$id]->new_topics, '1 new post<span class="visually-hidden"> in forum %title</span>', '@count new posts<span class="visually-hidden"> in forum %title</span>', array('%title' => $variables['forums'][$id]->label()));
+        $variables['forums'][$id]->new_text = format_plural($variables['forums'][$id]->new_topics, '1 new post<span class="visually-hidden"> in forum %title</span>', '@count new posts<span class="visually-hidden"> in forum %title</span>', array('%title' => $variables['forums'][$id]->label()));
         $variables['forums'][$id]->new_url = \Drupal::url('forum.page', ['taxonomy_term' => $forum->id()], ['fragment' => 'new']);
         $variables['forums'][$id]->icon_class = 'new';
         $variables['forums'][$id]->icon_title = t('New posts');
diff --git a/core/modules/forum/src/Tests/ForumTest.php b/core/modules/forum/src/Tests/ForumTest.php
index ead923a..af56049 100644
--- a/core/modules/forum/src/Tests/ForumTest.php
+++ b/core/modules/forum/src/Tests/ForumTest.php
@@ -184,7 +184,7 @@ function testForum() {
 
     // Verify the number of unread topics.
     $unread_topics = $this->container->get('forum_manager')->unreadTopics($this->forum['tid'], $this->edit_any_topics_user->id());
-    $unread_topics = \Drupal::translation()->formatPlural($unread_topics, '1 new post', '@count new posts');
+    $unread_topics = format_plural($unread_topics, '1 new post', '@count new posts');
     $xpath = $this->buildXPathQuery('//tr[@id=:forum]//td[@class="topics"]//a', $forum_arg);
     $this->assertFieldByXPath($xpath, $unread_topics, 'Number of unread topics found.');
     // Verify that the forum name is in the unread topics text.
diff --git a/core/modules/history/js/history.js b/core/modules/history/js/history.js
index 5030790..c598dd4 100644
--- a/core/modules/history/js/history.js
+++ b/core/modules/history/js/history.js
@@ -39,7 +39,7 @@
       $.ajax({
         url: Drupal.url('history/get_node_read_timestamps'),
         type: 'POST',
-        data: {'node_ids[]': nodeIDs},
+        data: { 'node_ids[]': nodeIDs },
         dataType: 'json',
         success: function (results) {
           for (var nodeID in results) {
diff --git a/core/modules/history/js/mark-as-read.js b/core/modules/history/js/mark-as-read.js
index b2ba518..d5b62ec 100644
--- a/core/modules/history/js/mark-as-read.js
+++ b/core/modules/history/js/mark-as-read.js
@@ -10,7 +10,7 @@
   // When the window's "load" event is triggered, mark all enumerated nodes as
   // read. This still allows for Drupal behaviors (which are triggered on the
   // "DOMContentReady" event) to add "new" and "updated" indicators.
-  window.addEventListener('load', function () {
+  window.addEventListener('load', function() {
     if (drupalSettings.history && drupalSettings.history.nodesToMarkAsRead) {
       Object.keys(drupalSettings.history.nodesToMarkAsRead).forEach(Drupal.history.markAsRead);
     }
diff --git a/core/modules/image/image.module b/core/modules/image/image.module
index a408e05..594356b 100644
--- a/core/modules/image/image.module
+++ b/core/modules/image/image.module
@@ -360,7 +360,7 @@ function image_entity_presave(EntityInterface $entity) {
 }
 
 /**
- * Implements hook_ENTITY_TYPE_update() for 'field_storage_config'.
+ * Implements hook_ENTITY_TYPE_update() for field_storage_config entities.
  */
 function image_field_storage_config_update(FieldStorageConfigInterface $field_storage) {
   if ($field_storage->type != 'image') {
@@ -438,7 +438,7 @@ function image_field_config_update(FieldConfigInterface $field) {
 }
 
 /**
- * Implements hook_ENTITY_TYPE_delete() for 'field_storage_config'.
+ * Implements hook_ENTITY_TYPE_delete() for field_storage_config entities.
  */
 function image_field_storage_config_delete(FieldStorageConfigInterface $field) {
   if ($field->type != 'image') {
diff --git a/core/modules/language/language.module b/core/modules/language/language.module
index 0da7ed8..788b1fc 100644
--- a/core/modules/language/language.module
+++ b/core/modules/language/language.module
@@ -392,7 +392,7 @@ function language_modules_uninstalled($modules) {
 }
 
 /**
- * Implements hook_ENTITY_TYPE_insert() for 'configurable_language'.
+ * Implements hook_ENTITY_TYPE_insert() for configurable_language entities.
  */
 function language_configurable_language_insert(ConfigurableLanguageInterface $language) {
   if ($language->isLocked()) {
@@ -406,7 +406,7 @@ function language_configurable_language_insert(ConfigurableLanguageInterface $la
 }
 
 /**
- * Implements hook_ENTITY_TYPE_delete() for 'configurable_language'.
+ * Implements hook_ENTITY_TYPE_delete() for configurable_language entities.
  */
 function language_configurable_language_delete(ConfigurableLanguageInterface $language) {
   // Remove language from language prefix list.
diff --git a/core/modules/locale/locale.batch.inc b/core/modules/locale/locale.batch.inc
index 5d3b73a..22e5544 100644
--- a/core/modules/locale/locale.batch.inc
+++ b/core/modules/locale/locale.batch.inc
@@ -94,15 +94,15 @@ function locale_translation_batch_status_finished($success, $results) {
   if ($success) {
     if (isset($results['failed_files'])) {
       if (\Drupal::moduleHandler()->moduleExists('dblog') && \Drupal::currentUser()->hasPermission('access site reports')) {
-        $message = \Drupal::translation()->formatPlural(count($results['failed_files']), 'One translation file could not be checked. <a href="@url">See the log</a> for details.', '@count translation files could not be checked. <a href="@url">See the log</a> for details.', array('@url' => \Drupal::url('dblog.overview')));
+        $message = format_plural(count($results['failed_files']), 'One translation file could not be checked. <a href="@url">See the log</a> for details.', '@count translation files could not be checked. <a href="@url">See the log</a> for details.', array('@url' => \Drupal::url('dblog.overview')));
       }
       else {
-        $message = \Drupal::translation()->formatPlural(count($results['failed_files']), 'One translation files could not be checked. See the log for details.', '@count translation files could not be checked. See the log for details.');
+        $message = format_plural(count($results['failed_files']), 'One translation files could not be checked. See the log for details.', '@count translation files could not be checked. See the log for details.');
       }
       drupal_set_message($message, 'error');
     }
     if (isset($results['files'])) {
-      drupal_set_message(\Drupal::translation()->formatPlural(
+      drupal_set_message(format_plural(
         count($results['files']),
         'Checked available interface translation updates for one project.',
         'Checked available interface translation updates for @count projects.'
diff --git a/core/modules/locale/locale.bulk.inc b/core/modules/locale/locale.bulk.inc
index 93131b9..9206225 100644
--- a/core/modules/locale/locale.bulk.inc
+++ b/core/modules/locale/locale.bulk.inc
@@ -359,10 +359,10 @@ function locale_translate_batch_finished($success, array $results) {
     $additions = $updates = $deletes = $skips = $config = 0;
     if (isset($results['failed_files'])) {
       if (\Drupal::moduleHandler()->moduleExists('dblog') && \Drupal::currentUser()->hasPermission('access site reports')) {
-        $message = \Drupal::translation()->formatPlural(count($results['failed_files']), 'One translation file could not be imported. <a href="@url">See the log</a> for details.', '@count translation files could not be imported. <a href="@url">See the log</a> for details.', array('@url' => \Drupal::url('dblog.overview')));
+        $message = format_plural(count($results['failed_files']), 'One translation file could not be imported. <a href="@url">See the log</a> for details.', '@count translation files could not be imported. <a href="@url">See the log</a> for details.', array('@url' => \Drupal::url('dblog.overview')));
       }
       else {
-        $message = \Drupal::translation()->formatPlural(count($results['failed_files']), 'One translation file could not be imported. See the log for details.', '@count translation files could not be imported. See the log for details.');
+        $message = format_plural(count($results['failed_files']), 'One translation file could not be imported. See the log for details.', '@count translation files could not be imported. See the log for details.');
       }
       drupal_set_message($message, 'error');
     }
@@ -381,7 +381,7 @@ function locale_translate_batch_finished($success, array $results) {
           }
         }
       }
-      drupal_set_message(\Drupal::translation()->formatPlural(count($results['files']),
+      drupal_set_message(format_plural(count($results['files']),
         'One translation file imported. %number translations were added, %update translations were updated and %delete translations were removed.',
         '@count translation files imported. %number translations were added, %update translations were updated and %delete translations were removed.',
         array('%number' => $additions, '%update' => $updates, '%delete' => $deletes)
@@ -390,10 +390,10 @@ function locale_translate_batch_finished($success, array $results) {
 
       if ($skips) {
         if (\Drupal::moduleHandler()->moduleExists('dblog') && \Drupal::currentUser()->hasPermission('access site reports')) {
-          $message = \Drupal::translation()->formatPlural($skips, 'One translation string was skipped because of disallowed or malformed HTML. <a href="@url">See the log</a> for details.', '@count translation strings were skipped because of disallowed or malformed HTML. <a href="@url">See the log</a> for details.', array('@url' => \Drupal::url('dblog.overview')));
+          $message = format_plural($skips, 'One translation string was skipped because of disallowed or malformed HTML. <a href="@url">See the log</a> for details.', '@count translation strings were skipped because of disallowed or malformed HTML. <a href="@url">See the log</a> for details.', array('@url' => \Drupal::url('dblog.overview')));
         }
         else {
-          $message = \Drupal::translation()->formatPlural($skips, 'One translation string was skipped because of disallowed or malformed HTML. See the log for details.', '@count translation strings were skipped because of disallowed or malformed HTML. See the log for details.');
+          $message = format_plural($skips, 'One translation string was skipped because of disallowed or malformed HTML. See the log for details.', '@count translation strings were skipped because of disallowed or malformed HTML. See the log for details.');
         }
         drupal_set_message($message, 'warning');
         $logger->warning('@count disallowed HTML string(s) in files: @files.', array('@count' => $skips, '@files' => implode(',', $skipped_files)));
diff --git a/core/modules/locale/locale.module b/core/modules/locale/locale.module
index 9e09a46..ae05237 100644
--- a/core/modules/locale/locale.module
+++ b/core/modules/locale/locale.module
@@ -192,7 +192,7 @@ function locale_theme() {
 }
 
 /**
- * Implements hook_ENTITY_TYPE_insert() for 'configurable_language'.
+ * Implements hook_ENTITY_TYPE_insert() for configurable_language entities.
  */
 function locale_configurable_language_insert(ConfigurableLanguageInterface $language) {
   // @todo move these two cache clears out. See http://drupal.org/node/1293252
@@ -203,7 +203,7 @@ function locale_configurable_language_insert(ConfigurableLanguageInterface $lang
 }
 
 /**
- * Implements hook_ENTITY_TYPE_update() for 'configurable_language'.
+ * Implements hook_ENTITY_TYPE_update() for configurable_language entities.
  */
 function locale_configurable_language_update(ConfigurableLanguageInterface $language) {
   // @todo move these two cache clears out. See http://drupal.org/node/1293252
@@ -214,7 +214,7 @@ function locale_configurable_language_update(ConfigurableLanguageInterface $lang
 }
 
 /**
- * Implements hook_ENTITY_TYPE_delete() for 'configurable_language'.
+ * Implements hook_ENTITY_TYPE_delete() for configurable_language entities.
  */
 function locale_configurable_language_delete(ConfigurableLanguageInterface $language) {
   // Remove translations.
diff --git a/core/modules/locale/locale.pages.inc b/core/modules/locale/locale.pages.inc
index f5c5b9a..a2b7677 100644
--- a/core/modules/locale/locale.pages.inc
+++ b/core/modules/locale/locale.pages.inc
@@ -73,7 +73,7 @@ function template_preprocess_locale_translation_update_info(array &$variables) {
   // Build output for updates not found.
   if (isset($variables['not_found'])) {
     $releases = array();
-    $variables['missing_updates_status'] = \Drupal::translation()->formatPlural(count($variables['not_found']), 'Missing translations for one project', 'Missing translations for @count projects');
+    $variables['missing_updates_status'] = format_plural(count($variables['not_found']), 'Missing translations for one project', 'Missing translations for @count projects');
     if ($variables['not_found']) {
       foreach ($variables['not_found'] as $update) {
         $version = $update['version'] ? $update['version'] : t('no version');
diff --git a/core/modules/locale/src/Form/TranslateEditForm.php b/core/modules/locale/src/Form/TranslateEditForm.php
index 1e3239a..fc71263 100644
--- a/core/modules/locale/src/Form/TranslateEditForm.php
+++ b/core/modules/locale/src/Form/TranslateEditForm.php
@@ -125,7 +125,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
             for ($i = 0; $i < $plural_formulas[$langcode]['plurals']; $i++) {
               $form['strings'][$string->lid]['translations'][$i] = array(
                 '#type' => 'textarea',
-                '#title' => ($i == 0 ? $this->t('Singular form') : $this->formatPlural($i, 'First plural form', '@count. plural form')),
+                '#title' => ($i == 0 ? $this->t('Singular form') : format_plural($i, 'First plural form', '@count. plural form')),
                 '#rows' => $rows,
                 '#default_value' => isset($translation_array[$i]) ? $translation_array[$i] : '',
                 '#attributes' => array('lang' => $langcode),
diff --git a/core/modules/locale/src/Tests/LocalePluralFormatTest.php b/core/modules/locale/src/Tests/LocalePluralFormatTest.php
index e6b51f1..1542f17 100644
--- a/core/modules/locale/src/Tests/LocalePluralFormatTest.php
+++ b/core/modules/locale/src/Tests/LocalePluralFormatTest.php
@@ -34,8 +34,7 @@ protected function setUp() {
   }
 
   /**
-   * Tests locale_get_plural() and \Drupal::translation()->formatPlural()
-   * functionality.
+   * Tests locale_get_plural() and format_plural() functionality.
    */
   public function testGetPluralFormat() {
     // Import some .po files with formulas to set up the environment.
@@ -130,7 +129,7 @@ public function testGetPluralFormat() {
         // expected index as per the logic for translation lookups.
         $expected_plural_index = ($count == 1) ? 0 : $expected_plural_index;
         $expected_plural_string = str_replace('@count', $count, $plural_strings[$langcode][$expected_plural_index]);
-        $this->assertIdentical(\Drupal::translation()->formatPlural($count, '1 hour', '@count hours', array(), array('langcode' => $langcode)), $expected_plural_string, 'Plural translation of 1 hours / @count hours for count ' . $count . ' in ' . $langcode . ' is ' . $expected_plural_string);
+        $this->assertIdentical(format_plural($count, '1 hour', '@count hours', array(), array('langcode' => $langcode)), $expected_plural_string, 'Plural translation of 1 hours / @count hours for count ' . $count . ' in ' . $langcode . ' is ' . $expected_plural_string);
       }
     }
   }
@@ -218,7 +217,7 @@ public function testPluralEditExport() {
     // langcode here because the language will be English by default and will
     // not save our source string for performance optimization if we do not ask
     // specifically for a language.
-    \Drupal::translation()->formatPlural(1, '1 day', '@count days', array(), array('langcode' => 'fr'));
+    format_plural(1, '1 day', '@count days', array(), array('langcode' => 'fr'));
     $lid = db_query("SELECT lid FROM {locales_source} WHERE source = :source AND context = ''", array(':source' => "1 day" . LOCALE_PLURAL_DELIMITER . "@count days"))->fetchField();
     // Look up editing page for this plural string and check fields.
     $search = array(
diff --git a/core/modules/menu_ui/menu_ui.module b/core/modules/menu_ui/menu_ui.module
index 5dda4ce..b7daebe 100644
--- a/core/modules/menu_ui/menu_ui.module
+++ b/core/modules/menu_ui/menu_ui.module
@@ -140,7 +140,7 @@ function menu_ui_node_update(EntityInterface $node) {
 }
 
 /**
- * Helper for hook_ENTITY_TYPE_insert() and hook_ENTITY_TYPE_update() for nodes.
+ * Helper for hook_ENTITY_TYPE_insert() and hook_ENTITY_TYPE_update() for node entities.
  */
 function menu_ui_node_save(EntityInterface $node) {
   if (!empty($node->menu)) {
@@ -196,7 +196,7 @@ function menu_ui_node_predelete(EntityInterface $node) {
 }
 
 /**
- * Implements hook_node_prepare_form().
+ * Implements hook_ENTITY_TYPE_prepare_form() for node entities.
  */
 function menu_ui_node_prepare_form(NodeInterface $node, $operation, FormStateInterface $form_state) {
   if (!$form_state->get('menu_link_definition')) {
diff --git a/core/modules/menu_ui/src/Form/MenuDeleteForm.php b/core/modules/menu_ui/src/Form/MenuDeleteForm.php
index b289970..2d72b84 100644
--- a/core/modules/menu_ui/src/Form/MenuDeleteForm.php
+++ b/core/modules/menu_ui/src/Form/MenuDeleteForm.php
@@ -76,7 +76,7 @@ public function getDescription() {
     $caption = '';
     $num_links = $this->menuLinkManager->countMenuLinks($this->entity->id());
     if ($num_links) {
-      $caption .= '<p>' . $this->formatPlural($num_links, '<strong>Warning:</strong> There is currently 1 menu link in %title. It will be deleted (system-defined items will be reset).', '<strong>Warning:</strong> There are currently @count menu links in %title. They will be deleted (system-defined links will be reset).', array('%title' => $this->entity->label())) . '</p>';
+      $caption .= '<p>' . format_plural($num_links, '<strong>Warning:</strong> There is currently 1 menu link in %title. It will be deleted (system-defined items will be reset).', '<strong>Warning:</strong> There are currently @count menu links in %title. They will be deleted (system-defined links will be reset).', array('%title' => $this->entity->label())) . '</p>';
     }
     $caption .= '<p>' . t('This action cannot be undone.') . '</p>';
     return $caption;
diff --git a/core/modules/migrate/src/Plugin/migrate/destination/EntityFile.php b/core/modules/migrate/src/Plugin/migrate/destination/EntityFile.php
index 2ad777b..c94d1a0 100644
--- a/core/modules/migrate/src/Plugin/migrate/destination/EntityFile.php
+++ b/core/modules/migrate/src/Plugin/migrate/destination/EntityFile.php
@@ -42,14 +42,8 @@ public function __construct(array $configuration, $plugin_id, $plugin_definition
    * {@inheritdoc}
    */
   public function import(Row $row, array $old_destination_id_values = array()) {
-    $file = $row->getSourceProperty($this->configuration['source_path_property']);
+    $source = $this->configuration['source_base_path'] . $row->getSourceProperty($this->configuration['source_path_property']);
     $destination = $row->getDestinationProperty($this->configuration['destination_path_property']);
-
-    // We check the destination to see if this is a temporary file. If it is
-    // then we do not prepend the source_base_path because temporary files are
-    // already absolute.
-    $source = $this->isTempFile($destination) ? $file : $this->configuration['source_base_path'] . $file;
-
     $replace = FILE_EXISTS_REPLACE;
     if (!empty($this->configuration['rename'])) {
       $entity_id = $row->getDestinationProperty($this->getKey('id'));
@@ -108,18 +102,4 @@ protected function urlencode($filename) {
     return $filename;
   }
 
-  /**
-   * Check if a file is a temp file.
-   *
-   * @param string $file
-   *   The destination file path.
-   *
-   * @return bool
-   *   TRUE if the file is temporary otherwise FALSE.
-   */
-  protected function isTempFile($file) {
-    $tmp = 'temporary://';
-    return substr($file, 0, strlen($tmp)) === $tmp;
-  }
-
 }
diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_field_formatter_settings.yml b/core/modules/migrate_drupal/config/install/migrate.migration.d6_field_formatter_settings.yml
index 8ab6df5..7136049 100644
--- a/core/modules/migrate_drupal/config/install/migrate.migration.d6_field_formatter_settings.yml
+++ b/core/modules/migrate_drupal/config/install/migrate.migration.d6_field_formatter_settings.yml
@@ -57,9 +57,9 @@ process:
             plain: basic_string
           number_integer:
             default: number_integer
-            us_0: number_integer
-            be_0: number_integer
-            fr_0: number_integer
+            us_3: number_integer
+            be_3: number_integer
+            fr_3: number_integer
             unformatted: number_unformatted
           number_float:
             default: number_decimal
@@ -180,6 +180,61 @@ process:
         - module
         - 'display_settings/format'
       map:
+        number:
+          us_0:
+            scale: 0
+            decimal_separator: .
+            thousand_separator: ','
+            prefix_suffix: true
+          us_1:
+            scale: 1
+            decimal_separator: .
+            thousand_separator: ','
+            prefix_suffix: true
+          us_2:
+            scale: 2
+            decimal_separator: .
+            thousand_separator: ','
+            prefix_suffix: true
+          us_3:
+            thousand_separator: ','
+            prefix_suffix: true
+          be_0:
+            scale: 0
+            decimal_separator: ','
+            thousand_separator: .
+            prefix_suffix: true
+          be_1:
+            scale: 1
+            decimal_separator: ','
+            thousand_separator: .
+            prefix_suffix: true
+          be_2:
+            scale: 2
+            decimal_separator: ','
+            thousand_separator: .
+            prefix_suffix: true
+          be_3:
+            thousand_separator: .
+            prefix_suffix: true
+          fr_0:
+            scale: 0
+            decimal_separator: ','
+            thousand_separator: ' '
+            prefix_suffix: true
+          fr_1:
+            scale: 1
+            decimal_separator: ','
+            thousand_separator: ' '
+            prefix_suffix: true
+          fr_2:
+            scale: 2
+            decimal_separator: ','
+            thousand_separator: ' '
+            prefix_suffix: true
+          fr_3:
+            thousand_separator: ' '
+            prefix_suffix: true
         link:
           default:
             trim_length: '80'
diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_file.yml b/core/modules/migrate_drupal/config/install/migrate.migration.d6_file.yml
index 419680c..d1990a0 100644
--- a/core/modules/migrate_drupal/config/install/migrate.migration.d6_file.yml
+++ b/core/modules/migrate_drupal/config/install/migrate.migration.d6_file.yml
@@ -14,7 +14,6 @@ process:
     source:
       - filepath
       - file_directory_path
-      - temp_directory_path
       - is_public
   filemime: filemime
   filesize: filesize
diff --git a/core/modules/migrate_drupal/config/install/migrate.migration.d6_user_picture_file.yml b/core/modules/migrate_drupal/config/install/migrate.migration.d6_user_picture_file.yml
index 1ed11aa..8e3fd25 100644
--- a/core/modules/migrate_drupal/config/install/migrate.migration.d6_user_picture_file.yml
+++ b/core/modules/migrate_drupal/config/install/migrate.migration.d6_user_picture_file.yml
@@ -13,7 +13,6 @@ process:
     source:
       - picture
       - file_directory_path
-      - temp_directory_path
       - 'constants/is_public'
 destination:
   plugin: entity:file
diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/load/LoadEntity.php b/core/modules/migrate_drupal/src/Plugin/migrate/load/LoadEntity.php
index 9e6a393..b7a9283 100644
--- a/core/modules/migrate_drupal/src/Plugin/migrate/load/LoadEntity.php
+++ b/core/modules/migrate_drupal/src/Plugin/migrate/load/LoadEntity.php
@@ -111,26 +111,6 @@ public function loadMultiple(EntityStorageInterface $storage, array $sub_ids = N
                 ],
               ];
             }
-            elseif ($data['type'] === 'text') {
-              $migration->process[$field_name . '/value'] = $field_name . '/value';
-              // See d6_user, signature_format for an example of the YAML that
-              // represents this process array.
-              $migration->process[$field_name . '/format'] = [
-                [
-                  'plugin' => 'static_map',
-                  'bypass' => TRUE,
-                  'source' => $field_name . '/format',
-                  'map' => [0 => NULL]
-                ],
-                ['plugin' => 'skip_process_on_empty'],
-                [
-                  'plugin' => 'migration',
-                  'migration' => 'd6_filter_format',
-                  'source' => $field_name . '/format',
-                  'no_stub' => 1,
-                ],
-              ];
-            }
             else {
               $migration->process[$field_name] = $field_name;
             }
diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/process/d6/FieldFormatterSettingsDefaults.php b/core/modules/migrate_drupal/src/Plugin/migrate/process/d6/FieldFormatterSettingsDefaults.php
index d927a59..77f41eb 100644
--- a/core/modules/migrate_drupal/src/Plugin/migrate/process/d6/FieldFormatterSettingsDefaults.php
+++ b/core/modules/migrate_drupal/src/Plugin/migrate/process/d6/FieldFormatterSettingsDefaults.php
@@ -7,7 +7,6 @@
 
 namespace Drupal\migrate_drupal\Plugin\migrate\process\d6;
 
-use Drupal\migrate\MigrateException;
 use Drupal\migrate\ProcessPluginBase;
 use Drupal\migrate\MigrateExecutable;
 use Drupal\migrate\Row;
@@ -30,109 +29,9 @@ class FieldFormatterSettingsDefaults extends ProcessPluginBase {
   public function transform($value, MigrateExecutable $migrate_executable, Row $row, $destination_property) {
     // If the 1 index is set then the map missed.
     if (isset($value[1])) {
-      $module = $row->getSourceProperty('module');
-      if ($module === 'date') {
-        $value = array('format_type' => 'fallback');
-      }
-      elseif ($module === 'number') {
-        // We have to do the lookup here in the process plugin because for
-        // number we need to calculated the settings based on the type not just
-        // the module which works well for other field types.
-        return $this->numberSettings($row->getDestinationProperty('options/type'), $value[1]);
-      }
-      else {
-        $value = array();
-      }
+      $value = $row->getSourceProperty('module') == 'date' ? array('format_type' => 'fallback') : array();
     }
     return $value;
   }
 
-  /**
-   * @param string $type
-   *   The field type.
-   * @param $format
-   *   The format selected for the field on the display.
-   *
-   * @return array
-   *   The correct default settings.
-   *
-   * @throws \Drupal\migrate\MigrateException
-   */
-  protected function numberSettings($type, $format) {
-    $map = [
-      'number_decimal' => [
-        'us_0' => [
-          'scale' => 0,
-          'decimal_separator' => '.',
-          'thousand_separator' => ',',
-          'prefix_suffix' => TRUE,
-        ],
-        'us_1' => [
-          'scale' => 1,
-          'decimal_separator' => '.',
-          'thousand_separator' => ',',
-          'prefix_suffix' => TRUE,
-        ],
-        'us_2' => [
-          'scale' => 2,
-          'decimal_separator' => '.',
-          'thousand_separator' => ',',
-          'prefix_suffix' => TRUE,
-        ],
-        'be_0' => [
-          'scale' => 0,
-          'decimal_separator' => ',',
-          'thousand_separator' => '.',
-          'prefix_suffix' => TRUE,
-        ],
-        'be_1' => [
-          'scale' => 1,
-          'decimal_separator' => ',',
-          'thousand_separator' => '.',
-          'prefix_suffix' => TRUE,
-        ],
-        'be_2' => [
-          'scale' => 2,
-          'decimal_separator' => ',',
-          'thousand_separator' => '.',
-          'prefix_suffix' => TRUE,
-        ],
-        'fr_0' => [
-          'scale' => 0,
-          'decimal_separator' => ',',
-          'thousand_separator' => ' ',
-          'prefix_suffix' => TRUE,
-        ],
-        'fr_1' => [
-          'scale' => 1,
-          'decimal_separator' => ',',
-          'thousand_separator' => ' ',
-          'prefix_suffix' => TRUE,
-        ],
-        'fr_2' => [
-          'scale' => 2,
-          'decimal_separator' => ',',
-          'thousand_separator' => ' ',
-          'prefix_suffix' => TRUE,
-        ],
-      ],
-      'number_integer' => [
-        'us_0' => [
-          'thousand_separator' => ',',
-          'prefix_suffix' => TRUE,
-        ],
-        'be_0' => [
-          'thousand_separator' => '.',
-          'prefix_suffix' => TRUE,
-        ],
-        'fr_0' => [
-          'thousand_separator' => ' ',
-          'prefix_suffix' => TRUE,
-        ],
-      ],
-    ];
-
-    return isset($map[$type][$format]) ? $map[$type][$format] : [];
-  }
-
 }
diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/process/d6/FileUri.php b/core/modules/migrate_drupal/src/Plugin/migrate/process/d6/FileUri.php
index 164ece0..74d1d82 100644
--- a/core/modules/migrate_drupal/src/Plugin/migrate/process/d6/FileUri.php
+++ b/core/modules/migrate_drupal/src/Plugin/migrate/process/d6/FileUri.php
@@ -25,13 +25,7 @@ class FileUri extends ProcessPluginBase {
    */
   public function transform($value, MigrateExecutable $migrate_executable, Row $row, $destination_property) {
 
-    list($filepath, $file_directory_path, $temp_directory_path, $is_public) = $value;
-
-    // Specific handling using $temp_directory_path for temporary files.
-    if (substr($filepath, 0, strlen($temp_directory_path)) === $temp_directory_path) {
-      $uri = preg_replace('/^' . preg_quote($temp_directory_path, '/') . '/', '', $filepath);
-      return "temporary://$uri";
-    }
+    list($filepath, $file_directory_path, $is_public) = $value;
 
     // Strip the files path from the uri instead of using basename
     // so any additional folders in the path are preserved.
diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/CckFieldValues.php b/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/CckFieldValues.php
index 0612102..7273691 100644
--- a/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/CckFieldValues.php
+++ b/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/CckFieldValues.php
@@ -268,7 +268,7 @@ public function fields() {
   public function fieldData() {
     $field_info = $this->getSourceFieldInfo($this->configuration['bundle']);
     $field_info['nid'] = ['type' => 'number'];
-    $field_info['type'] = ['type' => 'varchar'];
+    $field_info['type'] = ['type' => 'text'];
     return $field_info;
   }
 
diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/File.php b/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/File.php
index f7f30b1..887bdd9 100644
--- a/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/File.php
+++ b/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/File.php
@@ -27,13 +27,6 @@ class File extends DrupalSqlBase {
   protected $filePath;
 
   /**
-   * The temporary file path.
-   *
-   * @var string
-   */
-  protected $tempFilePath;
-
-  /**
    * Flag for private or public file storage.
    *
    * @var boolean
@@ -65,7 +58,6 @@ public function query() {
   protected function runQuery() {
     $conf_path = isset($this->configuration['conf_path']) ? $this->configuration['conf_path'] : 'sites/default';
     $this->filePath = $this->variableGet('file_directory_path', $conf_path . '/files') . '/';
-    $this->tempFilePath = $this->variableGet('file_directory_temp', '/tmp') . '/';
 
     // FILE_DOWNLOADS_PUBLIC == 1 and FILE_DOWNLOADS_PRIVATE == 2.
     $this->isPublic = $this->variableGet('file_downloads', 1) == 1;
@@ -77,7 +69,6 @@ protected function runQuery() {
    */
   public function prepareRow(Row $row) {
     $row->setSourceProperty('file_directory_path', $this->filePath);
-    $row->setSourceProperty('temp_directory_path', $this->tempFilePath);
     $row->setSourceProperty('is_public', $this->isPublic);
     return parent::prepareRow($row);
   }
diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/UserPictureFile.php b/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/UserPictureFile.php
index e478e1d..757472d 100644
--- a/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/UserPictureFile.php
+++ b/core/modules/migrate_drupal/src/Plugin/migrate/source/d6/UserPictureFile.php
@@ -27,13 +27,6 @@ class UserPictureFile extends DrupalSqlBase {
   protected $filePath;
 
   /**
-   * The temporary file path.
-   *
-   * @var string
-   */
-  protected $tempFilePath;
-
-  /**
    * {@inheritdoc}
    */
   public function query() {
@@ -49,7 +42,6 @@ public function query() {
   public function runQuery() {
     $conf_path = isset($this->configuration['conf_path']) ? $this->configuration['conf_path'] : 'sites/default';
     $this->filePath = $this->variableGet('file_directory_path', $conf_path . '/files') . '/';
-    $this->tempFilePath = $this->variableGet('file_directory_temp', '/tmp') . '/';
     return parent::runQuery();
   }
 
@@ -59,7 +51,6 @@ public function runQuery() {
   public function prepareRow(Row $row) {
     $row->setSourceProperty('filename', basename($row->getSourceProperty('picture')));
     $row->setSourceProperty('file_directory_path', $this->filePath);
-    $row->setSourceProperty('temp_directory_path', $this->tempFilePath);
     return parent::prepareRow($row);
   }
 
diff --git a/core/modules/migrate_drupal/src/Tests/Dump/Drupal6FieldInstance.php b/core/modules/migrate_drupal/src/Tests/Dump/Drupal6FieldInstance.php
index 47b2d09..870f589 100644
--- a/core/modules/migrate_drupal/src/Tests/Dump/Drupal6FieldInstance.php
+++ b/core/modules/migrate_drupal/src/Tests/Dump/Drupal6FieldInstance.php
@@ -193,11 +193,11 @@ public function load() {
           'format' => 'above',
         ),
         'teaser' => array(
-          'format' => 'us_0',
+          'format' => 'unformatted',
           'exclude' => 0,
         ),
         'full' => array(
-          'format' => 'us_0',
+          'format' => 'us_3',
           'exclude' => 0,
         ),
         4 => array(
@@ -708,7 +708,7 @@ public function load() {
           'exclude' => 0,
         ),
         'full' => array(
-          'format' => 'us_0',
+          'format' => 'us_3',
           'exclude' => 0,
         ),
         4 => array(
@@ -808,7 +808,7 @@ public function load() {
           'exclude' => 0,
         ),
         'full' => array(
-          'format' => 'us_0',
+          'format' => 'us_3',
           'exclude' => 0,
         ),
         4 => array(
@@ -840,7 +840,7 @@ public function load() {
           'exclude' => 0,
         ),
         'full' => array(
-          'format' => 'us_0',
+          'format' => 'us_3',
           'exclude' => 0,
         ),
         4 => array(
diff --git a/core/modules/migrate_drupal/src/Tests/Dump/Drupal6File.php b/core/modules/migrate_drupal/src/Tests/Dump/Drupal6File.php
index 3f0d7c5..23f0dc6 100644
--- a/core/modules/migrate_drupal/src/Tests/Dump/Drupal6File.php
+++ b/core/modules/migrate_drupal/src/Tests/Dump/Drupal6File.php
@@ -123,18 +123,7 @@ public function load() {
       'status' => '1',
       'timestamp' => '1388880668',
     ))
-    ->values(array(
-      'fid' => '4',
-      'uid' => '1',
-      'filename' => 'some-temp-file.jpg',
-      'filepath' => '/tmp/some-temp-file.jpg',
-      'filemime' => 'image/jpeg',
-      'filesize' => '183',
-      'status' => '0',
-      'timestamp' => '1388880668',
-    ))
     ->execute();
-    file_put_contents('/tmp/some-temp-file.jpg', '');
   }
 
 }
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateCckFieldValuesTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateCckFieldValuesTest.php
index 39ed013..2ef6b77 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateCckFieldValuesTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateCckFieldValuesTest.php
@@ -167,7 +167,7 @@ protected function setUp() {
   public function testCckFields() {
     $node = Node::load(1);
     $this->assertEqual($node->field_test->value, 'This is a shared text field', "Shared field storage field is correct.");
-    $this->assertEqual($node->field_test->format, 'filtered_html');
+    $this->assertEqual($node->field_test->format, 1, "Shared field storage field with multiple columns is correct.");
     $this->assertEqual($node->field_test_two->value, 10, 'Multi field storage field is correct');
     $this->assertEqual($node->field_test_two[1]->value, 20, 'Multi field second value is correct.');
     $this->assertEqual($node->field_test_three->value, '42.42', 'Single field second value is correct.');
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateFileTest.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateFileTest.php
index 8c3da63..48645c1 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateFileTest.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateFileTest.php
@@ -68,10 +68,6 @@ public function testFiles() {
 
     $file = entity_load('file', 2);
     $this->assertEqual($file->getFileUri(), 'public://core/modules/simpletest/files/image-2.jpg');
-
-    // Ensure that a temporary file has been migrated.
-    $file = entity_load('file', 4);
-    $this->assertIdentical($file->getFileUri(), 'temporary://some-temp-file.jpg');
   }
 
 }
diff --git a/core/modules/node/content_types.js b/core/modules/node/content_types.js
index c77a2c3..3cfa38c 100644
--- a/core/modules/node/content_types.js
+++ b/core/modules/node/content_types.js
@@ -39,11 +39,11 @@
       });
       $context.find('#edit-display').drupalSetSummary(function (context) {
         var vals = [];
-        var $editContext = $(context);
-        $editContext.find('input:checked').next('label').each(function () {
+        var $context = $(context);
+        $context.find('input:checked').next('label').each(function () {
           vals.push(Drupal.checkPlain($(this).text()));
         });
-        if (!$editContext.find('#edit-display-submitted').is(':checked')) {
+        if (!$context.find('#edit-display-submitted').is(':checked')) {
           vals.unshift(Drupal.t("Don't display post information"));
         }
         return vals.join(', ');
diff --git a/core/modules/node/node.admin.inc b/core/modules/node/node.admin.inc
index 8e0facd..859dece 100644
--- a/core/modules/node/node.admin.inc
+++ b/core/modules/node/node.admin.inc
@@ -159,7 +159,7 @@ function _node_mass_update_batch_finished($success, $results, $operations) {
   }
   else {
     drupal_set_message(t('An error occurred and processing did not complete.'), 'error');
-    $message = \Drupal::translation()->formatPlural(count($results), '1 item successfully processed:', '@count items successfully processed:');
+    $message = format_plural(count($results), '1 item successfully processed:', '@count items successfully processed:');
     $item_list = array(
       '#theme' => 'item_list',
       '#items' => $results,
diff --git a/core/modules/node/node.api.php b/core/modules/node/node.api.php
index 9ae46d6..8110c83 100644
--- a/core/modules/node/node.api.php
+++ b/core/modules/node/node.api.php
@@ -380,7 +380,7 @@ function hook_node_access(\Drupal\node\NodeInterface $node, $op, \Drupal\Core\Se
  */
 function hook_node_search_result(\Drupal\node\NodeInterface $node, $langcode) {
   $rating = db_query('SELECT SUM(points) FROM {my_rating} WHERE nid = :nid', array('nid' => $node->id()))->fetchField();
-  return array('rating' => \Drupal::translation()->formatPlural($rating, '1 point', '@count points'));
+  return array('rating' => format_plural($rating, '1 point', '@count points'));
 }
 
 /**
diff --git a/core/modules/node/node.install b/core/modules/node/node.install
index b7baab8..6f8f53a 100644
--- a/core/modules/node/node.install
+++ b/core/modules/node/node.install
@@ -20,7 +20,7 @@ function node_requirements($phase) {
     // implement hook_node_grants().
     $grant_count = \Drupal::entityManager()->getAccessControlHandler('node')->countGrants();
     if ($grant_count != 1 || count(\Drupal::moduleHandler()->getImplementations('node_grants')) > 0) {
-      $value = \Drupal::translation()->formatPlural($grant_count, 'One permission in use', '@count permissions in use', array('@count' => $grant_count));
+      $value = format_plural($grant_count, 'One permission in use', '@count permissions in use', array('@count' => $grant_count));
     }
     else {
       $value = t('Disabled');
diff --git a/core/modules/node/node.js b/core/modules/node/node.js
index 60db08f..1a82ea1 100644
--- a/core/modules/node/node.js
+++ b/core/modules/node/node.js
@@ -11,14 +11,14 @@
     attach: function (context) {
       var $context = $(context);
       $context.find('.node-form-revision-information').drupalSetSummary(function (context) {
-        var $revisionContext = $(context);
-        var revisionCheckbox = $revisionContext.find('.form-item-revision input');
+        var $context = $(context);
+        var revisionCheckbox = $context.find('.form-item-revision input');
 
         // Return 'New revision' if the 'Create new revision' checkbox is checked,
         // or if the checkbox doesn't exist, but the revision log does. For users
         // without the "Administer content" permission the checkbox won't appear,
         // but the revision log will if the content type is set to auto-revision.
-        if (revisionCheckbox.is(':checked') || (!revisionCheckbox.length && $revisionContext.find('.form-item-revision-log textarea').length)) {
+        if (revisionCheckbox.is(':checked') || (!revisionCheckbox.length && $context.find('.form-item-revision-log textarea').length)) {
           return Drupal.t('New revision');
         }
 
@@ -26,20 +26,20 @@
       });
 
       $context.find('.node-form-author').drupalSetSummary(function (context) {
-        var $authorContext = $(context);
-        var name = $authorContext.find('.field-name-uid input').val(),
-          date = $authorContext.find('.field-name-created input').val();
+        var $context = $(context);
+        var name = $context.find('.field-name-uid input').val(),
+          date = $context.find('.field-name-created input').val();
         return date ?
-          Drupal.t('By @name on @date', {'@name': name, '@date': date}) :
-          Drupal.t('By @name', {'@name': name});
+          Drupal.t('By @name on @date', { '@name': name, '@date': date }) :
+          Drupal.t('By @name', { '@name': name });
       });
 
       $context.find('.node-form-options').drupalSetSummary(function (context) {
-        var $optionsContext = $(context);
+        var $context = $(context);
         var vals = [];
 
-        if ($optionsContext.find('input').is(':checked')) {
-          $optionsContext.find('input:checked').next('label').each(function () {
+        if ($context.find('input').is(':checked')) {
+          $context.find('input:checked').next('label').each(function () {
             vals.push(Drupal.checkPlain($.trim($(this).text())));
           });
           return vals.join(', ');
@@ -50,15 +50,15 @@
       });
 
       $context.find('fieldset.node-translation-options').drupalSetSummary(function (context) {
-        var $translationContext = $(context);
+        var $context = $(context);
         var translate;
-        var $checkbox = $translationContext.find('.form-item-translation-translate input');
+        var $checkbox = $context.find('.form-item-translation-translate input');
 
         if ($checkbox.size()) {
           translate = $checkbox.is(':checked') ? Drupal.t('Needs to be updated') : Drupal.t('Does not need to be updated');
         }
         else {
-          $checkbox = $translationContext.find('.form-item-translation-retranslate input');
+          $checkbox = $context.find('.form-item-translation-retranslate input');
           translate = $checkbox.is(':checked') ? Drupal.t('Flag other translations as outdated') : Drupal.t('Do not flag other translations as outdated');
         }
 
diff --git a/core/modules/node/node.module b/core/modules/node/node.module
index 84a2d19..a078e46 100644
--- a/core/modules/node/node.module
+++ b/core/modules/node/node.module
@@ -190,7 +190,7 @@ function node_title_list(StatementInterface $result, $title = NULL) {
   foreach ($result as $row) {
     // Do not use $node->label() or $node->urlInfo() here, because we only have
     // database rows, not actual nodes.
-    $options = !empty($row->comment_count) ? array('attributes' => array('title' => \Drupal::translation()->formatPlural($row->comment_count, '1 comment', '@count comments'))) : array();
+    $options = !empty($row->comment_count) ? array('attributes' => array('title' => format_plural($row->comment_count, '1 comment', '@count comments'))) : array();
     $items[] = \Drupal::l($row->title, new Url('entity.node.canonical', ['node' => $row->nid], $options));
     $num_rows = TRUE;
   }
@@ -1296,7 +1296,7 @@ function node_modules_uninstalled($modules) {
 }
 
 /**
- * Implements hook_ENTITY_TYPE_delete() for 'configurable_language'.
+ * Implements hook_ENTITY_TYPE_delete() for configurable_language entities.
  */
 function node_configurable_language_delete(ConfigurableLanguageInterface $language) {
   // On nodes with this language, unset the language.
diff --git a/core/modules/node/src/Entity/NodeType.php b/core/modules/node/src/Entity/NodeType.php
index 6113247..e33c1ec 100644
--- a/core/modules/node/src/Entity/NodeType.php
+++ b/core/modules/node/src/Entity/NodeType.php
@@ -162,7 +162,7 @@ public function postSave(EntityStorageInterface $storage, $update = TRUE) {
     if ($update && $this->getOriginalId() != $this->id()) {
       $update_count = node_type_update_nodes($this->getOriginalId(), $this->id());
       if ($update_count) {
-        drupal_set_message(\Drupal::translation()->formatPlural($update_count,
+        drupal_set_message(format_plural($update_count,
           'Changed the content type of 1 post from %old-type to %type.',
           'Changed the content type of @count posts from %old-type to %type.',
           array(
diff --git a/core/modules/node/src/Form/DeleteMultiple.php b/core/modules/node/src/Form/DeleteMultiple.php
index 8116db8..7b2aced 100644
--- a/core/modules/node/src/Form/DeleteMultiple.php
+++ b/core/modules/node/src/Form/DeleteMultiple.php
@@ -76,7 +76,7 @@ public function getFormId() {
    * {@inheritdoc}
    */
   public function getQuestion() {
-    return $this->formatPlural(count($this->nodes), 'Are you sure you want to delete this item?', 'Are you sure you want to delete these items?');
+    return format_plural(count($this->nodes), 'Are you sure you want to delete this item?', 'Are you sure you want to delete these items?');
   }
 
   /**
@@ -122,7 +122,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
       $this->tempStoreFactory->get('node_multiple_delete_confirm')->delete(\Drupal::currentUser()->id());
       $count = count($this->nodes);
       $this->logger('content')->notice('Deleted @count posts.', array('@count' => $count));
-      drupal_set_message($this->formatPlural($count, 'Deleted 1 post.', 'Deleted @count posts.'));
+      drupal_set_message(format_plural($count, 'Deleted 1 post.', 'Deleted @count posts.'));
     }
     $form_state->setRedirect('system.admin_content');
   }
diff --git a/core/modules/node/src/Form/NodeTypeDeleteConfirm.php b/core/modules/node/src/Form/NodeTypeDeleteConfirm.php
index 2d662c1..0242301 100644
--- a/core/modules/node/src/Form/NodeTypeDeleteConfirm.php
+++ b/core/modules/node/src/Form/NodeTypeDeleteConfirm.php
@@ -74,7 +74,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       ->count()
       ->execute();
     if ($num_nodes) {
-      $caption = '<p>' . $this->formatPlural($num_nodes, '%type is used by 1 piece of content on your site. You can not remove this content type until you have removed all of the %type content.', '%type is used by @count pieces of content on your site. You may not remove %type until you have removed all of the %type content.', array('%type' => $this->entity->label())) . '</p>';
+      $caption = '<p>' . format_plural($num_nodes, '%type is used by 1 piece of content on your site. You can not remove this content type until you have removed all of the %type content.', '%type is used by @count pieces of content on your site. You may not remove %type until you have removed all of the %type content.', array('%type' => $this->entity->label())) . '</p>';
       $form['#title'] = $this->getQuestion();
       $form['description'] = array('#markup' => $caption);
       return $form;
diff --git a/core/modules/node/src/Plugin/Search/NodeSearch.php b/core/modules/node/src/Plugin/Search/NodeSearch.php
index 47f1bc9..8c795a2 100644
--- a/core/modules/node/src/Plugin/Search/NodeSearch.php
+++ b/core/modules/node/src/Plugin/Search/NodeSearch.php
@@ -265,7 +265,7 @@ protected function findResults() {
     }
 
     if ($status & SearchQuery::NO_POSITIVE_KEYWORDS) {
-      drupal_set_message($this->formatPlural($this->searchSettings->get('index.minimum_word_size'), 'You must include at least one positive keyword with 1 character or more.', 'You must include at least one positive keyword with @count characters or more.'), 'warning');
+      drupal_set_message(\Drupal::translation()->formatPlural($this->searchSettings->get('index.minimum_word_size'), 'You must include at least one positive keyword with 1 character or more.', 'You must include at least one positive keyword with @count characters or more.'), 'warning');
     }
 
     return $find;
diff --git a/core/modules/node/src/Tests/NodeEntityViewModeAlterTest.php b/core/modules/node/src/Tests/NodeEntityViewModeAlterTest.php
index 232fde7..1cd62a3 100644
--- a/core/modules/node/src/Tests/NodeEntityViewModeAlterTest.php
+++ b/core/modules/node/src/Tests/NodeEntityViewModeAlterTest.php
@@ -15,7 +15,7 @@
 class NodeEntityViewModeAlterTest extends NodeTestBase {
 
   /**
-   * Enable dummy module that implements hook_ENTITY_TYPE_view() for nodes.
+   * Enable dummy module that implements hook_ENTITY_TYPE_view() for node entities.
    */
   public static $modules = array('node_test');
 
diff --git a/core/modules/options/options.module b/core/modules/options/options.module
index 54cf4b3..98fe0b2 100644
--- a/core/modules/options/options.module
+++ b/core/modules/options/options.module
@@ -34,14 +34,14 @@ function options_help($route_name, RouteMatchInterface $route_match) {
 }
 
 /**
- * Implements hook_ENTITY_TYPE_update() for 'field_storage_config'.
+ * Implements hook_ENTITY_TYPE_update() for field_storage_config entities.
  */
 function options_field_storage_config_update(FieldStorageConfigInterface $field_storage) {
   drupal_static_reset('options_allowed_values');
 }
 
 /**
- * Implements hook_ENTITY_TYPE_delete() for 'field_storage_config'.
+ * Implements hook_ENTITY_TYPE_delete() for field_storage_config entities.
  */
 function options_field_storage_config_delete(FieldStorageConfigInterface $field_storage) {
   drupal_static_reset('options_allowed_values');
diff --git a/core/modules/path/path.js b/core/modules/path/path.js
index aa91bb2..a4d0b6c 100644
--- a/core/modules/path/path.js
+++ b/core/modules/path/path.js
@@ -12,7 +12,7 @@
         var path = $('.form-item-path-0-alias input').val();
 
         return path ?
-          Drupal.t('Alias: @alias', {'@alias': path}) :
+          Drupal.t('Alias: @alias', { '@alias': path }) :
           Drupal.t('No alias');
       });
     }
diff --git a/core/modules/quickedit/js/editors/formEditor.js b/core/modules/quickedit/js/editors/formEditor.js
index 7660bce..149e125 100644
--- a/core/modules/quickedit/js/editors/formEditor.js
+++ b/core/modules/quickedit/js/editors/formEditor.js
@@ -56,7 +56,7 @@
      * {@inheritdoc}
      */
     getQuickEditUISettings: function () {
-      return {padding: true, unifiedToolbar: true, fullWidthToolbar: true, popup: true};
+      return { padding: true, unifiedToolbar: true, fullWidthToolbar: true, popup: true };
     },
 
     /**
diff --git a/core/modules/quickedit/js/editors/plainTextEditor.js b/core/modules/quickedit/js/editors/plainTextEditor.js
index f380a40..c7440d5 100644
--- a/core/modules/quickedit/js/editors/plainTextEditor.js
+++ b/core/modules/quickedit/js/editors/plainTextEditor.js
@@ -100,7 +100,7 @@
      * {@inheritdoc}
      */
     getQuickEditUISettings: function () {
-      return {padding: true, unifiedToolbar: false, fullWidthToolbar: false, popup: false};
+      return { padding: true, unifiedToolbar: false, fullWidthToolbar: false, popup: false };
     },
 
     /**
diff --git a/core/modules/quickedit/js/models/EntityModel.js b/core/modules/quickedit/js/models/EntityModel.js
index 052ab3a..ee6f6ce 100644
--- a/core/modules/quickedit/js/models/EntityModel.js
+++ b/core/modules/quickedit/js/models/EntityModel.js
@@ -290,7 +290,7 @@
           if (fieldState === 'invalid') {
             // A state change in reaction to another state change must be deferred.
             _.defer(function () {
-              entityModel.set('state', 'opened', {reason: 'invalid'});
+              entityModel.set('state', 'opened', { reason: 'invalid' });
             });
           }
           else {
@@ -315,9 +315,9 @@
                 entityModel.set('isCommitting', false);
                 // Change the state back to "opened", to allow the user to hit the
                 // "Save" button again.
-                entityModel.set('state', 'opened', {reason: 'networkerror'});
+                entityModel.set('state', 'opened', { reason: 'networkerror' });
                 // Show a modal to inform the user of the network error.
-                var message = Drupal.t('Your changes to <q>@entity-title</q> could not be saved, either due to a website problem or a network connection problem.<br>Please try again.', {'@entity-title': entityModel.get('label')});
+                var message = Drupal.t('Your changes to <q>@entity-title</q> could not be saved, either due to a website problem or a network connection problem.<br>Please try again.', { '@entity-title': entityModel.get('label') });
                 Drupal.quickedit.util.networkErrorModal(Drupal.t('Sorry!'), message);
               }
             });
@@ -368,7 +368,7 @@
       var entitySaverAjax = new Drupal.ajax(id, $el, {
         url: Drupal.url('quickedit/entity/' + entityModel.get('entityID')),
         event: 'quickedit-save.quickedit',
-        progress: {type: 'none'},
+        progress: { type: 'none' },
         error: function () {
           $el.off('quickedit-save.quickedit');
           // Let the Drupal.quickedit.EntityModel Backbone model's error()=
diff --git a/core/modules/quickedit/js/models/FieldModel.js b/core/modules/quickedit/js/models/FieldModel.js
index 5737383..d381fdb 100644
--- a/core/modules/quickedit/js/models/FieldModel.js
+++ b/core/modules/quickedit/js/models/FieldModel.js
@@ -147,7 +147,7 @@
         // Find all instances of fields that display the same logical field (same
         // entity, same field, just a different instance and maybe a different
         // view mode).
-        .where({logicalFieldID: currentField.get('logicalFieldID')})
+        .where({ logicalFieldID: currentField.get('logicalFieldID') })
         .forEach(function (field) {
           // Ignore the current field.
           if (field === currentField) {
diff --git a/core/modules/quickedit/js/quickedit.js b/core/modules/quickedit/js/quickedit.js
index 539fc3e..d722bea 100644
--- a/core/modules/quickedit/js/quickedit.js
+++ b/core/modules/quickedit/js/quickedit.js
@@ -140,7 +140,7 @@
       },
       get: function (fieldID, key) {
         var metadata = JSON.parse(storage.getItem(this._prefixFieldID(fieldID)));
-        return (typeof key === 'undefined') ? metadata : metadata[key];
+        return (key === undefined) ? metadata : metadata[key];
       },
       _prefixFieldID: function (fieldID) {
         return 'Drupal.quickedit.metadata.' + fieldID;
@@ -295,13 +295,13 @@
 
     // If an EntityModel for this field already exists (and hence also a "Quick
     // edit" contextual link), then initialize it immediately.
-    if (Drupal.quickedit.collections.entities.findWhere({entityID: entityID, entityInstanceID: entityInstanceID})) {
+    if (Drupal.quickedit.collections.entities.findWhere({ entityID: entityID, entityInstanceID: entityInstanceID })) {
       initializeField(fieldElement, fieldID, entityID, entityInstanceID);
     }
     // Otherwise: queue the field. It is now available to be set up when its
     // corresponding entity becomes in-place editable.
     else {
-      fieldsAvailableQueue.push({el: fieldElement, fieldID: fieldID, entityID: entityID, entityInstanceID: entityInstanceID});
+      fieldsAvailableQueue.push({ el: fieldElement, fieldID: fieldID, entityID: entityID, entityInstanceID: entityInstanceID });
     }
   }
 
@@ -417,9 +417,9 @@
     var loadEditorsAjax = new Drupal.ajax(id, $el, {
       url: Drupal.url('quickedit/attachments'),
       event: 'quickedit-internal.quickedit',
-      submit: {'editors[]': missingEditors},
+      submit: { 'editors[]': missingEditors },
       // No progress indicator.
-      progress: {type: null}
+      progress: { type: null }
     });
     // Implement a scoped insert AJAX command: calls the callback after all AJAX
     // command functions have been executed (hence the deferred calling).
diff --git a/core/modules/quickedit/js/theme.js b/core/modules/quickedit/js/theme.js
index a6d1d91..4a97130 100644
--- a/core/modules/quickedit/js/theme.js
+++ b/core/modules/quickedit/js/theme.js
@@ -102,7 +102,7 @@
       html += ' id="' + settings.id + '"';
     }
     html += '>';
-    html += Drupal.theme('quickeditButtons', {buttons: settings.buttons});
+    html += Drupal.theme('quickeditButtons', { buttons: settings.buttons });
     html += '</div>';
     return html;
   };
@@ -133,7 +133,7 @@
       var attrMap = settings.buttons[i].attributes || {};
       for (var attr in attrMap) {
         if (attrMap.hasOwnProperty(attr)) {
-          attributes.push(attr + ((attrMap[attr]) ? '="' + attrMap[attr] + '"' : ''));
+          attributes.push(attr + ((attrMap[attr]) ? '="' + attrMap[attr] + '"' : '' ));
         }
       }
       html += '<button type="' + button.type + '" class="' + button.classes + '"' + ' ' + attributes.join(' ') + '>';
diff --git a/core/modules/quickedit/js/util.js b/core/modules/quickedit/js/util.js
index 3b3aa3a..788309c 100644
--- a/core/modules/quickedit/js/util.js
+++ b/core/modules/quickedit/js/util.js
@@ -100,13 +100,13 @@
           nocssjs: options.nocssjs,
           reset: options.reset
         },
-        progress: {type: null}, // No progress indicator.
+        progress: { type: null }, // No progress indicator.
         error: function (xhr, url) {
           $el.off('quickedit-internal.quickedit');
 
           // Show a modal to inform the user of the network error.
           var fieldLabel = Drupal.quickedit.metadata.get(fieldID, 'label');
-          var message = Drupal.t('Could not load the form for <q>@field-label</q>, either due to a website problem or a network connection problem.<br>Please try again.', {'@field-label': fieldLabel});
+          var message = Drupal.t('Could not load the form for <q>@field-label</q>, either due to a website problem or a network connection problem.<br>Please try again.', { '@field-label': fieldLabel });
           Drupal.quickedit.util.networkErrorModal(Drupal.t('Sorry!'), message);
 
           // Change the state back to "candidate", to allow the user to start
@@ -143,7 +143,7 @@
         url: $submit.closest('form').attr('action'),
         setClick: true,
         event: 'click.quickedit',
-        progress: {type: null},
+        progress: { type: null },
         submit: {
           nocssjs: options.nocssjs,
           other_view_modes: options.other_view_modes
diff --git a/core/modules/quickedit/js/views/AppView.js b/core/modules/quickedit/js/views/AppView.js
index 9668251..8162934 100644
--- a/core/modules/quickedit/js/views/AppView.js
+++ b/core/modules/quickedit/js/views/AppView.js
@@ -297,7 +297,7 @@
      */
     teardownEditor: function (fieldModel) {
       // Early-return if this field was not yet decorated.
-      if (typeof fieldModel.editorView === 'undefined') {
+      if (fieldModel.editorView === undefined) {
         return;
       }
 
@@ -470,7 +470,7 @@
           _.defer(function () {
             // Set the field's state to 'inactive', to enable the updating of its
             // DOM value.
-            fieldModel.set('state', 'inactive', {reason: 'rerender'});
+            fieldModel.set('state', 'inactive', { reason: 'rerender' });
 
             renderField();
           });
@@ -507,7 +507,7 @@
         // Find all instances of fields that display the same logical field (same
         // entity, same field, just a different instance and maybe a different
         // view mode).
-        .where({logicalFieldID: updatedField.get('logicalFieldID')})
+        .where({ logicalFieldID: updatedField.get('logicalFieldID') })
         .forEach(function (field) {
           // Ignore the field that was already updated.
           if (field === updatedField) {
@@ -525,7 +525,7 @@
           // that view mode's re-rendered version.
           else {
             if (field.getViewMode() in htmlForOtherViewModes) {
-              field.set('html', htmlForOtherViewModes[field.getViewMode()], {propagation: true});
+              field.set('html', htmlForOtherViewModes[field.getViewMode()], { propagation: true });
             }
           }
         });
diff --git a/core/modules/quickedit/js/views/EditorView.js b/core/modules/quickedit/js/views/EditorView.js
index 5122938..46bc424 100644
--- a/core/modules/quickedit/js/views/EditorView.js
+++ b/core/modules/quickedit/js/views/EditorView.js
@@ -77,14 +77,14 @@
      *  - Boolean padding: indicates whether padding should be applied to the
      *    edited element, to guarantee legibility of text.
      *  - Boolean unifiedToolbar: provides the in-place editor with the ability
-     *    to insert its own toolbar UI into Quick Edit's tightly integrated
+     *    to insert its own toolbar UI into Quick Edit's tightly integrated
      *    toolbar.
      *  - Boolean fullWidthToolbar: indicates whether Quick Edit's tightly
      *    integrated toolbar should consume the full width of the element,
      *    rather than being just long enough to accommodate a label.
      */
     getQuickEditUISettings: function () {
-      return {padding: false, unifiedToolbar: false, fullWidthToolbar: false, popup: false};
+      return { padding: false, unifiedToolbar: false, fullWidthToolbar: false, popup: false };
     },
 
     /**
@@ -211,7 +211,7 @@
         // Create a backstage area for storing forms that are hidden from view
         // (hence "backstage" — since the editing doesn't happen in the form, it
         // happens "directly" in the content, the form is only used for saving).
-        var $backstage = $(Drupal.theme('quickeditBackstage', {id: backstageId})).appendTo('body');
+        var $backstage = $(Drupal.theme('quickeditBackstage', { id: backstageId })).appendTo('body');
         // Hidden forms are stuffed into the backstage container for this field.
         var $form = $(form).appendTo($backstage);
         // Disable the browser's HTML5 validation; we only care about server-
diff --git a/core/modules/quickedit/js/views/FieldDecorationView.js b/core/modules/quickedit/js/views/FieldDecorationView.js
index a3d8d2e..b63e57c 100644
--- a/core/modules/quickedit/js/views/FieldDecorationView.js
+++ b/core/modules/quickedit/js/views/FieldDecorationView.js
@@ -123,7 +123,7 @@
      */
     onMouseLeave: function (event) {
       var that = this;
-      that.model.set('state', 'candidate', {reason: 'mouseleave'});
+      that.model.set('state', 'candidate', { reason: 'mouseleave' });
       event.stopPropagation();
     },
 
diff --git a/core/modules/search/src/Plugin/views/filter/Search.php b/core/modules/search/src/Plugin/views/filter/Search.php
index c5665cb..a061fc1 100644
--- a/core/modules/search/src/Plugin/views/filter/Search.php
+++ b/core/modules/search/src/Plugin/views/filter/Search.php
@@ -108,7 +108,7 @@ public function validateExposed(&$form, FormStateInterface $form_state) {
     if (!$form_state->isValueEmpty($key)) {
       $this->queryParseSearchExpression($form_state->getValue($key));
       if (count($this->searchQuery->words()) == 0) {
-        $form_state->setErrorByName($key, $this->formatPlural(\Drupal::config('search.settings')->get('index.minimum_word_size'), 'You must include at least one positive keyword with 1 character or more.', 'You must include at least one positive keyword with @count characters or more.'));
+        $form_state->setErrorByName($key, format_plural(\Drupal::config('search.settings')->get('index.minimum_word_size'), 'You must include at least one positive keyword with 1 character or more.', 'You must include at least one positive keyword with @count characters or more.'));
       }
     }
   }
diff --git a/core/modules/search/src/SearchPageListBuilder.php b/core/modules/search/src/SearchPageListBuilder.php
index 9efd4cc..6310dae 100644
--- a/core/modules/search/src/SearchPageListBuilder.php
+++ b/core/modules/search/src/SearchPageListBuilder.php
@@ -170,7 +170,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     }
 
     $this->moduleHandler->loadAllIncludes('admin.inc');
-    $count = $this->formatPlural($remaining, 'There is 1 item left to index.', 'There are @count items left to index.');
+    $count = format_plural($remaining, 'There is 1 item left to index.', 'There are @count items left to index.');
     $done = $total - $remaining;
     // Use floor() to calculate the percentage, so if it is not quite 100%, it
     // will show as 99%, to indicate "almost done".
diff --git a/core/modules/search/src/Tests/SearchMultilingualEntityTest.php b/core/modules/search/src/Tests/SearchMultilingualEntityTest.php
index 0370ee2..07a3091 100644
--- a/core/modules/search/src/Tests/SearchMultilingualEntityTest.php
+++ b/core/modules/search/src/Tests/SearchMultilingualEntityTest.php
@@ -278,9 +278,7 @@ protected function assertIndexCounts($remaining, $total, $message) {
     $this->assertEqual($status['total'], $total, 'Total items ' . $message . ' is ' . $total);
 
     // Check text in progress section of Search settings page. Note that this
-    // test avoids using
-    // \Drupal\Core\StringTranslation\TranslationInterface::formatPlural(), so
-    // it tests for fragments of text.
+    // test avoids using format_plural(), so it tests for fragments of text.
     $indexed = $total - $remaining;
     $percent = ($total > 0) ? floor(100 * $indexed / $total) : 100;
     $this->drupalGet('admin/config/search/pages');
diff --git a/core/modules/shortcut/src/Form/ShortcutSetDeleteForm.php b/core/modules/shortcut/src/Form/ShortcutSetDeleteForm.php
index 0360053..4ab3448 100644
--- a/core/modules/shortcut/src/Form/ShortcutSetDeleteForm.php
+++ b/core/modules/shortcut/src/Form/ShortcutSetDeleteForm.php
@@ -80,7 +80,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     $number = $this->storage->countAssignedUsers($this->entity);
     $info = '';
     if ($number) {
-      $info .= '<p>' . $this->formatPlural($number,
+      $info .= '<p>' . format_plural($number,
         '1 user has chosen or been assigned to this shortcut set.',
         '@count users have chosen or been assigned to this shortcut set.') . '</p>';
     }
diff --git a/core/modules/simpletest/simpletest.module b/core/modules/simpletest/simpletest.module
index 273bf3c..7c0c34f 100644
--- a/core/modules/simpletest/simpletest.module
+++ b/core/modules/simpletest/simpletest.module
@@ -528,7 +528,7 @@ function simpletest_clean_environment() {
   simpletest_clean_temporary_directories();
   if (\Drupal::config('simpletest.settings')->get('clear_results')) {
     $count = simpletest_clean_results_table();
-    drupal_set_message(\Drupal::translation()->formatPlural($count, 'Removed 1 test result.', 'Removed @count test results.'));
+    drupal_set_message(format_plural($count, 'Removed 1 test result.', 'Removed @count test results.'));
   }
   else {
     drupal_set_message(t('Clear results is disabled and the test results table will not be cleared.'), 'warning');
@@ -556,7 +556,7 @@ function simpletest_clean_database() {
   }
 
   if ($count > 0) {
-    drupal_set_message(\Drupal::translation()->formatPlural($count, 'Removed 1 leftover table.', 'Removed @count leftover tables.'));
+    drupal_set_message(format_plural($count, 'Removed 1 leftover table.', 'Removed @count leftover tables.'));
   }
   else {
     drupal_set_message(t('No leftover tables to remove.'));
@@ -580,7 +580,7 @@ function simpletest_clean_temporary_directories() {
   }
 
   if ($count > 0) {
-    drupal_set_message(\Drupal::translation()->formatPlural($count, 'Removed 1 temporary directory.', 'Removed @count temporary directories.'));
+    drupal_set_message(format_plural($count, 'Removed 1 temporary directory.', 'Removed @count temporary directories.'));
   }
   else {
     drupal_set_message(t('No temporary directories to remove.'));
diff --git a/core/modules/statistics/statistics.module b/core/modules/statistics/statistics.module
index 489241f..53dd91f 100644
--- a/core/modules/statistics/statistics.module
+++ b/core/modules/statistics/statistics.module
@@ -52,7 +52,7 @@ function statistics_node_links_alter(array &$node_links, NodeInterface $entity,
     if (\Drupal::currentUser()->hasPermission('view post access counter')) {
       $statistics = statistics_get($entity->id());
       if ($statistics) {
-        $links['statistics_counter']['title'] = \Drupal::translation()->formatPlural($statistics['totalcount'], '1 view', '@count views');
+        $links['statistics_counter']['title'] = format_plural($statistics['totalcount'], '1 view', '@count views');
         $node_links['statistics'] = array(
           '#theme' => 'links__node__statistics',
           '#links' => $links,
diff --git a/core/modules/system/src/Controller/FormAjaxController.php b/core/modules/system/src/Controller/FormAjaxController.php
index 8f122e9..eee443a 100644
--- a/core/modules/system/src/Controller/FormAjaxController.php
+++ b/core/modules/system/src/Controller/FormAjaxController.php
@@ -99,7 +99,7 @@ public function content(Request $request) {
     }
     $callback = $form_state->prepareCallback($callback);
     if (empty($callback) || !is_callable($callback)) {
-      throw new HttpException(500, 'The specified #ajax callback is empty or not callable.');
+      throw new HttpException(500, t('Internal Server Error'));
     }
     /** @var \Drupal\Core\Ajax\AjaxResponse $response */
     $response = call_user_func_array($callback, [&$form, &$form_state]);
diff --git a/core/modules/system/src/Form/ModulesListConfirmForm.php b/core/modules/system/src/Form/ModulesListConfirmForm.php
index 24f1b4b..279b95e 100644
--- a/core/modules/system/src/Form/ModulesListConfirmForm.php
+++ b/core/modules/system/src/Form/ModulesListConfirmForm.php
@@ -126,7 +126,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     // Display a list of required modules that have to be installed as well but
     // were not manually selected.
     foreach ($this->modules['dependencies'] as $module => $dependencies) {
-      $items[] = $this->formatPlural(count($dependencies), 'You must enable the @required module to install @module.', 'You must enable the @required modules to install @module.', array(
+      $items[] = format_plural(count($dependencies), 'You must enable the @required module to install @module.', 'You must enable the @required modules to install @module.', array(
         '@module' => $this->modules['install'][$module],
         '@required' => implode(', ', $dependencies),
       ));
diff --git a/core/modules/system/src/Tests/Extension/InfoParserUnitTest.php b/core/modules/system/src/Tests/Extension/InfoParserUnitTest.php
index 767e0a1..b925285 100644
--- a/core/modules/system/src/Tests/Extension/InfoParserUnitTest.php
+++ b/core/modules/system/src/Tests/Extension/InfoParserUnitTest.php
@@ -74,7 +74,7 @@ public function testInfoParser() {
       $this->fail('Expected InfoParserException not thrown when reading missing_key.info.txt');
     }
     catch (InfoParserException $e) {
-      $expected_message = "Missing required keys (type) in $filename.";
+      $expected_message = "Missing required key (type) in $filename.";
       $this->assertEqual($e->getMessage(), $expected_message);
     }
 
diff --git a/core/modules/system/src/Tests/Routing/RouterTest.php b/core/modules/system/src/Tests/Routing/RouterTest.php
index 85e5e4b..e328759 100644
--- a/core/modules/system/src/Tests/Routing/RouterTest.php
+++ b/core/modules/system/src/Tests/Routing/RouterTest.php
@@ -32,9 +32,9 @@ public function testDefaultController() {
     $this->drupalGet('router_test/test1');
     $this->assertRaw('test1', 'The correct string was returned because the route was successful.');
 
-    // Check expected headers from FinishResponseSubscriber.
+    // Check expected headers from FinishResponseSubscriber
     $headers = $this->drupalGetHeaders();
-    $this->assertEqual($headers['x-ua-compatible'], 'IE=edge');
+    $this->assertEqual($headers['x-ua-compatible'], 'IE=edge,chrome=1');
     $this->assertEqual($headers['content-language'], 'en');
     $this->assertEqual($headers['x-content-type-options'], 'nosniff');
 
diff --git a/core/modules/system/system.install b/core/modules/system/system.install
index cc2079f..c9ae4c1 100644
--- a/core/modules/system/system.install
+++ b/core/modules/system/system.install
@@ -606,7 +606,7 @@ function system_requirements($phase) {
       $requirements['disabled_modules'] = array(
         'severity' => REQUIREMENT_ERROR,
         'title' => t('Disabled modules'),
-        'value' => \Drupal::translation()->formatPlural(count($modules), 'The %modules module is disabled.', 'The following modules are disabled: %modules', array('%modules' => implode(', ', $modules))),
+        'value' => format_plural(count($modules), 'The %modules module is disabled.', 'The following modules are disabled: %modules', array('%modules' => implode(', ', $modules))),
         'description' => t('Drupal 8 no longer supports disabled modules. Please either enable or uninstall them before upgrading.'),
       );
     }
diff --git a/core/modules/system/tests/modules/entity_test/entity_test.module b/core/modules/system/tests/modules/entity_test/entity_test.module
index 6a6c6e2..03f385c 100644
--- a/core/modules/system/tests/modules/entity_test/entity_test.module
+++ b/core/modules/system/tests/modules/entity_test/entity_test.module
@@ -308,7 +308,7 @@ function entity_test_mulrev_load($id, $reset = FALSE) {
 }
 
 /**
- * Implements hook_ENTITY_TYPE_insert().
+ * Implements hook_ENTITY_TYPE_insert() for entity_test entities.
  */
 function entity_test_entity_test_insert($entity) {
   if ($entity->name->value == 'fail_insert') {
@@ -416,14 +416,14 @@ function entity_test_entity_translation_delete(EntityInterface $translation) {
 }
 
 /**
- * Implements hook_ENTITY_TYPE_translation_insert().
+ * Implements hook_ENTITY_TYPE_translation_insert() for entity_test_mul entities.
  */
 function entity_test_entity_test_mul_translation_insert(EntityInterface $translation) {
   _entity_test_record_hooks('entity_test_mul_translation_insert', $translation->language()->getId());
 }
 
 /**
- * Implements hook_ENTITY_TYPE_translation_delete().
+ * Implements hook_ENTITY_TYPE_translation_delete() for entity_test_mul entities.
  */
 function entity_test_entity_test_mul_translation_delete(EntityInterface $translation) {
   _entity_test_record_hooks('entity_test_mul_translation_delete', $translation->language()->getId());
@@ -540,7 +540,7 @@ function entity_test_entity_access(EntityInterface $entity, $operation, AccountI
 }
 
 /**
- * Implements hook_ENTITY_TYPE_access().
+ * Implements hook_ENTITY_TYPE_access() for entity_test entities.
  */
 function entity_test_entity_test_access(EntityInterface $entity, $operation, AccountInterface $account, $langcode) {
   \Drupal::state()->set('entity_test_entity_test_access', TRUE);
@@ -560,7 +560,7 @@ function entity_test_entity_create_access(AccountInterface $account, $context, $
 }
 
 /**
- * Implements hook_ENTITY_TYPE_create_access().
+ * Implements hook_ENTITY_TYPE_create_access() for entity_test entities.
  */
 function entity_test_entity_test_create_access(AccountInterface $account, $context, $entity_bundle) {
   \Drupal::state()->set('entity_test_entity_test_create_access', TRUE);
diff --git a/core/modules/taxonomy/src/Plugin/views/filter/TaxonomyIndexTid.php b/core/modules/taxonomy/src/Plugin/views/filter/TaxonomyIndexTid.php
index 1c44562..f37453e 100644
--- a/core/modules/taxonomy/src/Plugin/views/filter/TaxonomyIndexTid.php
+++ b/core/modules/taxonomy/src/Plugin/views/filter/TaxonomyIndexTid.php
@@ -373,7 +373,7 @@ function validate_term_strings(&$form, $values, FormStateInterface $form_state)
     }
 
     if ($missing && !empty($this->options['error_message'])) {
-      $form_state->setError($form, $this->formatPlural(count($missing), 'Unable to find term: @terms', 'Unable to find terms: @terms', array('@terms' => implode(', ', array_keys($missing)))));
+      $form_state->setError($form, format_plural(count($missing), 'Unable to find term: @terms', 'Unable to find terms: @terms', array('@terms' => implode(', ', array_keys($missing)))));
     }
     elseif ($missing && empty($this->options['error_message'])) {
       $tids = array(0);
diff --git a/core/modules/text/text.js b/core/modules/text/text.js
index 10aed14..4aec0c7 100644
--- a/core/modules/text/text.js
+++ b/core/modules/text/text.js
@@ -25,7 +25,7 @@
         var $link = $('<span class="field-edit-link"> (<button type="button" class="link link-edit-summary">' + Drupal.t('Hide summary') + '</button>)</span>');
         var $button = $link.find('button');
         var toggleClick = true;
-        $link.on('click', function (e) {
+        $link.on('click',function (e) {
           if (toggleClick) {
             $summary.hide();
             $button.html(Drupal.t('Edit summary'));
diff --git a/core/modules/toolbar/js/toolbar.js b/core/modules/toolbar/js/toolbar.js
index dcfbb2a..e5b244c 100644
--- a/core/modules/toolbar/js/toolbar.js
+++ b/core/modules/toolbar/js/toolbar.js
@@ -127,7 +127,7 @@
         // If the toolbar's orientation is horizontal and no active tab is
         // defined then show the tray of the first toolbar tab by default (but
         // not the first 'Home' toolbar tab).
-        if (Drupal.toolbar.models.toolbarModel.get('orientation') === 'horizontal' && Drupal.toolbar.models.toolbarModel.get('activeTab') === null) {
+        if (Drupal.toolbar.models.toolbarModel.get('orientation') === 'horizontal' && Drupal.toolbar.models.toolbarModel.get('activeTab') === null){
           Drupal.toolbar.models.toolbarModel.set({
             'activeTab': $('.toolbar-bar .toolbar-tab:not(.home-toolbar-tab) a').get(0)
           });
diff --git a/core/modules/toolbar/js/views/ToolbarVisualView.js b/core/modules/toolbar/js/views/ToolbarVisualView.js
index aaccf17..e9dd6f0 100644
--- a/core/modules/toolbar/js/views/ToolbarVisualView.js
+++ b/core/modules/toolbar/js/views/ToolbarVisualView.js
@@ -256,7 +256,7 @@
       //   (2) The active tab is the administration menu tab, indicated by the
       //       presence of the data-drupal-subtrees attribute.
       //   (3) The orientation of the tray is vertical.
-      if (!this.model.get('areSubtreesLoaded') && typeof $activeTab.data('drupal-subtrees') !== 'undefined' && orientation === 'vertical') {
+      if (!this.model.get('areSubtreesLoaded') && $activeTab.data('drupal-subtrees') !== undefined && orientation === 'vertical') {
         var subtreesHash = drupalSettings.toolbar.subtreesHash;
         var langcode = drupalSettings.toolbar.langcode;
         var endpoint = Drupal.url('toolbar/subtrees/' + subtreesHash + '/' + langcode);
diff --git a/core/modules/tour/js/tour.js b/core/modules/tour/js/tour.js
index cee9feb..487bdd5 100644
--- a/core/modules/tour/js/tour.js
+++ b/core/modules/tour/js/tour.js
@@ -47,7 +47,7 @@
     }
   };
 
-  Drupal.tour = Drupal.tour || {models: {}, views: {}};
+  Drupal.tour = Drupal.tour || { models: {}, views: {}};
 
   /**
    * Backbone Model for tours.
@@ -68,7 +68,7 @@
    */
   Drupal.tour.views.ToggleTourView = Backbone.View.extend({
 
-    events: {'click': 'onClick'},
+    events: { 'click': 'onClick' },
 
     /**
      * Implements Backbone Views' initialize().
@@ -109,12 +109,12 @@
               button: '<a href=\"#\" class=\"button button--primary joyride-next-tip\"></a>'
             }
           });
-          this.model.set({isActive: true, activeTour: $tour});
+          this.model.set({ isActive: true, activeTour: $tour });
         }
       }
       else {
         this.model.get('activeTour').joyride('destroy');
-        this.model.set({isActive: false, activeTour: []});
+        this.model.set({ isActive: false, activeTour: [] });
       }
     },
 
@@ -196,14 +196,14 @@
       if (removals) {
         var total = $tour.find('li').length;
         if (!total) {
-          this.model.set({tour: []});
+          this.model.set({ tour: [] });
         }
 
         $tour
           .find('li')
           // Rebuild the progress data.
           .each(function (index) {
-            var progress = Drupal.t('!tour_item of !total', {'!tour_item': index + 1, '!total': total});
+            var progress = Drupal.t('!tour_item of !total', { '!tour_item': index + 1, '!total': total });
             $(this).find('.tour-progress').text(progress);
           })
           // Update the last item to have "End tour" as the button.
diff --git a/core/modules/tour/tests/tour_test/tour_test.module b/core/modules/tour/tests/tour_test/tour_test.module
index 69a9a54..7ec75a4 100644
--- a/core/modules/tour/tests/tour_test/tour_test.module
+++ b/core/modules/tour/tests/tour_test/tour_test.module
@@ -8,7 +8,7 @@
 use Drupal\Core\Entity\EntityInterface;
 
 /**
- * Implements hook_ENTITY_TYPE_load() for tour.
+ * Implements hook_ENTITY_TYPE_load() for tour entities.
  */
 function tour_test_tour_load($entities) {
   if (isset($entities['tour-entity-create-test-en'])) {
@@ -17,7 +17,7 @@ function tour_test_tour_load($entities) {
 }
 
 /**
- * Implements hook_ENTITY_TYPE_presave() for tour.
+ * Implements hook_ENTITY_TYPE_presave() for tour entities.
  */
 function tour_test_tour_presave($entity) {
   if ($entity->id() == 'tour-entity-create-test-en') {
diff --git a/core/modules/update/update.manager.inc b/core/modules/update/update.manager.inc
index 13be6df..41866c7 100644
--- a/core/modules/update/update.manager.inc
+++ b/core/modules/update/update.manager.inc
@@ -112,7 +112,7 @@ function _update_manager_check_backends(&$form, $operation) {
     $backend_names[] = $backend['title'];
   }
   if ($operation == 'update') {
-    $form['available_backends']['#markup'] = \Drupal::translation()->formatPlural(
+    $form['available_backends']['#markup'] = format_plural(
       count($available_backends),
       'Updating modules and themes requires <strong>@backends access</strong> to your server. See the <a href="@handbook_url">handbook</a> for other update methods.',
       'Updating modules and themes requires access to your server via one of the following methods: <strong>@backends</strong>. See the <a href="@handbook_url">handbook</a> for other update methods.',
@@ -122,7 +122,7 @@ function _update_manager_check_backends(&$form, $operation) {
       ));
   }
   else {
-    $form['available_backends']['#markup'] = \Drupal::translation()->formatPlural(
+    $form['available_backends']['#markup'] = format_plural(
       count($available_backends),
       'Installing modules and themes requires <strong>@backends access</strong> to your server. See the <a href="@handbook_url">handbook</a> for other installation methods.',
       'Installing modules and themes requires access to your server via one of the following methods: <strong>@backends</strong>. See the <a href="@handbook_url">handbook</a> for other installation methods.',
diff --git a/core/modules/update/update.module b/core/modules/update/update.module
index e3eba3f..c445986 100644
--- a/core/modules/update/update.module
+++ b/core/modules/update/update.module
@@ -420,10 +420,10 @@ function update_fetch_data_finished($success, $results) {
   if ($success) {
     if (!empty($results)) {
       if (!empty($results['updated'])) {
-        drupal_set_message(\Drupal::translation()->formatPlural($results['updated'], 'Checked available update data for one project.', 'Checked available update data for @count projects.'));
+        drupal_set_message(format_plural($results['updated'], 'Checked available update data for one project.', 'Checked available update data for @count projects.'));
       }
       if (!empty($results['failures'])) {
-        drupal_set_message(\Drupal::translation()->formatPlural($results['failures'], 'Failed to get available update data for one project.', 'Failed to get available update data for @count projects.'), 'error');
+        drupal_set_message(format_plural($results['failures'], 'Failed to get available update data for one project.', 'Failed to get available update data for @count projects.'), 'error');
       }
     }
   }
@@ -652,7 +652,7 @@ function update_verify_update_archive($project, $archive_file, $directory) {
     $errors[] = t('%archive_file does not contain any .info.yml files.', array('%archive_file' => drupal_basename($archive_file)));
   }
   elseif (!$compatible_project) {
-    $errors[] = \Drupal::translation()->formatPlural(
+    $errors[] = format_plural(
       count($incompatible),
       '%archive_file contains a version of %names that is not compatible with Drupal !version.',
       '%archive_file contains versions of modules or themes that are not compatible with Drupal !version: %names',
diff --git a/core/modules/user/src/Form/UserLoginForm.php b/core/modules/user/src/Form/UserLoginForm.php
index 999a7cd..4cfdff3 100644
--- a/core/modules/user/src/Form/UserLoginForm.php
+++ b/core/modules/user/src/Form/UserLoginForm.php
@@ -207,7 +207,7 @@ public function validateFinal(array &$form, FormStateInterface $form_state) {
 
       if ($flood_control_triggered = $form_state->get('flood_control_triggered')) {
         if ($flood_control_triggered == 'user') {
-          $form_state->setErrorByName('name', $this->formatPlural($flood_config->get('user_limit'), 'Sorry, there has been more than one failed login attempt for this account. It is temporarily blocked. Try again later or <a href="@url">request a new password</a>.', 'Sorry, there have been more than @count failed login attempts for this account. It is temporarily blocked. Try again later or <a href="@url">request a new password</a>.', array('@url' => $this->url('user.pass'))));
+          $form_state->setErrorByName('name', format_plural($flood_config->get('user_limit'), 'Sorry, there has been more than one failed login attempt for this account. It is temporarily blocked. Try again later or <a href="@url">request a new password</a>.', 'Sorry, there have been more than @count failed login attempts for this account. It is temporarily blocked. Try again later or <a href="@url">request a new password</a>.', array('@url' => $this->url('user.pass'))));
         }
         else {
           // We did not find a uid, so the limit is IP-based.
diff --git a/core/modules/user/src/Plugin/views/filter/Name.php b/core/modules/user/src/Plugin/views/filter/Name.php
index 76e642a..531dc5d 100644
--- a/core/modules/user/src/Plugin/views/filter/Name.php
+++ b/core/modules/user/src/Plugin/views/filter/Name.php
@@ -135,7 +135,7 @@ function validate_user_strings(&$form, FormStateInterface $form_state, $values)
     }
 
     if ($missing) {
-      $form_state->setError($form, $this->formatPlural(count($missing), 'Unable to find user: @users', 'Unable to find users: @users', array('@users' => implode(', ', array_keys($missing)))));
+      $form_state->setError($form, format_plural(count($missing), 'Unable to find user: @users', 'Unable to find users: @users', array('@users' => implode(', ', array_keys($missing)))));
     }
 
     return $uids;
diff --git a/core/modules/user/src/Tests/UserLoginTest.php b/core/modules/user/src/Tests/UserLoginTest.php
index 0235983..43202d6 100644
--- a/core/modules/user/src/Tests/UserLoginTest.php
+++ b/core/modules/user/src/Tests/UserLoginTest.php
@@ -155,7 +155,7 @@ function assertFailedLogin($account, $flood_trigger = NULL) {
     $this->assertNoFieldByXPath("//input[@name='pass' and @value!='']", NULL, 'Password value attribute is blank.');
     if (isset($flood_trigger)) {
       if ($flood_trigger == 'user') {
-        $this->assertRaw(\Drupal::translation()->formatPlural($this->config('user.flood')->get('user_limit'), 'Sorry, there has been more than one failed login attempt for this account. It is temporarily blocked. Try again later or <a href="@url">request a new password</a>.', 'Sorry, there have been more than @count failed login attempts for this account. It is temporarily blocked. Try again later or <a href="@url">request a new password</a>.', array('@url' => \Drupal::url('user.pass'))));
+        $this->assertRaw(format_plural($this->config('user.flood')->get('user_limit'), 'Sorry, there has been more than one failed login attempt for this account. It is temporarily blocked. Try again later or <a href="@url">request a new password</a>.', 'Sorry, there have been more than @count failed login attempts for this account. It is temporarily blocked. Try again later or <a href="@url">request a new password</a>.', array('@url' => \Drupal::url('user.pass'))));
       }
       else {
         // No uid, so the limit is IP-based.
diff --git a/core/modules/user/src/Tests/Views/HandlerFilterUserNameTest.php b/core/modules/user/src/Tests/Views/HandlerFilterUserNameTest.php
index 0faa52c..b582d34 100644
--- a/core/modules/user/src/Tests/Views/HandlerFilterUserNameTest.php
+++ b/core/modules/user/src/Tests/Views/HandlerFilterUserNameTest.php
@@ -102,7 +102,7 @@ public function testAdminUserInterface() {
       'options[value]' => implode(', ', $users)
     );
     $this->drupalPostForm($path, $edit, t('Apply'));
-    $message = \Drupal::translation()->formatPlural(count($users), 'Unable to find user: @users', 'Unable to find users: @users', array('@users' => implode(', ', $users)));
+    $message = format_plural(count($users), 'Unable to find user: @users', 'Unable to find users: @users', array('@users' => implode(', ', $users)));
     $this->assertText($message);
 
     // Pass in an invalid username and a valid username.
@@ -114,7 +114,7 @@ public function testAdminUserInterface() {
     );
     $users = array($users[0]);
     $this->drupalPostForm($path, $edit, t('Apply'));
-    $message = \Drupal::translation()->formatPlural(count($users), 'Unable to find user: @users', 'Unable to find users: @users', array('@users' => implode(', ', $users)));
+    $message = format_plural(count($users), 'Unable to find user: @users', 'Unable to find users: @users', array('@users' => implode(', ', $users)));
     $this->assertRaw($message);
 
     // Pass in just valid usernames.
@@ -124,7 +124,7 @@ public function testAdminUserInterface() {
       'options[value]' => implode(', ', $users)
     );
     $this->drupalPostForm($path, $edit, t('Apply'));
-    $message = \Drupal::translation()->formatPlural(count($users), 'Unable to find user: @users', 'Unable to find users: @users', array('@users' => implode(', ', $users)));
+    $message = format_plural(count($users), 'Unable to find user: @users', 'Unable to find users: @users', array('@users' => implode(', ', $users)));
     $this->assertNoRaw($message);
   }
 
@@ -141,7 +141,7 @@ public function testExposedFilter() {
     $users = array_map('strtolower', $users);
     $options['query']['uid'] = implode(', ', $users);
     $this->drupalGet($path, $options);
-    $message = \Drupal::translation()->formatPlural(count($users), 'Unable to find user: @users', 'Unable to find users: @users', array('@users' => implode(', ', $users)));
+    $message = format_plural(count($users), 'Unable to find user: @users', 'Unable to find users: @users', array('@users' => implode(', ', $users)));
     $this->assertRaw($message);
 
     // Pass in an invalid username and a valid username.
@@ -151,7 +151,7 @@ public function testExposedFilter() {
     $users = array($users[0]);
 
     $this->drupalGet($path, $options);
-    $message = \Drupal::translation()->formatPlural(count($users), 'Unable to find user: @users', 'Unable to find users: @users', array('@users' => implode(', ', $users)));
+    $message = format_plural(count($users), 'Unable to find user: @users', 'Unable to find users: @users', array('@users' => implode(', ', $users)));
     $this->assertRaw($message);
 
     // Pass in just valid usernames.
diff --git a/core/modules/user/user.js b/core/modules/user/user.js
index 51fb591..554284b 100644
--- a/core/modules/user/user.js
+++ b/core/modules/user/user.js
@@ -13,7 +13,6 @@
         var passwordInput = $(this);
         var innerWrapper = $(this).parent();
         var outerWrapper = $(this).parent().parent();
-        var passwordDescription;
 
         // Add identifying class to password element parent.
         innerWrapper.addClass('password-parent');
@@ -29,7 +28,7 @@
           var passwordMeter = '<div class="password-strength"><div class="password-strength__meter"><div class="password-strength__indicator"></div></div><div class="password-strength__title">' + translate.strengthTitle + ' </div><div class="password-strength__text" aria-live="assertive"></div></div>';
           confirmInput.parent().after('<div class="password-suggestions description"></div>');
           innerWrapper.append(passwordMeter);
-          passwordDescription = outerWrapper.find('div.password-suggestions').hide();
+          var passwordDescription = outerWrapper.find('div.password-suggestions').hide();
         }
 
         // Check that password and confirmation inputs match.
@@ -69,10 +68,10 @@
           // Check the value in the confirm input and show results.
           if (confirmInput.val()) {
             passwordCheckMatch(confirmInput.val());
-            confirmResult.css({visibility: 'visible'});
+            confirmResult.css({ visibility: 'visible' });
           }
           else {
-            confirmResult.css({visibility: 'hidden'});
+            confirmResult.css({ visibility: 'hidden' });
           }
         };
 
@@ -171,7 +170,7 @@
 
     // Assemble the final message.
     msg = translate.hasWeaknesses + '<ul><li>' + msg.join('</li><li>') + '</li></ul>';
-    return {strength: strength, message: msg, indicatorText: indicatorText, indicatorClass: indicatorClass};
+    return { strength: strength, message: msg, indicatorText: indicatorText, indicatorClass: indicatorClass };
 
   };
 
diff --git a/core/modules/views/js/ajax_view.js b/core/modules/views/js/ajax_view.js
index 3139112..2f4aae8 100644
--- a/core/modules/views/js/ajax_view.js
+++ b/core/modules/views/js/ajax_view.js
@@ -56,7 +56,7 @@
       setClick: true,
       event: 'click',
       selector: selector,
-      progress: {type: 'fullscreen'}
+      progress: { type: 'fullscreen' }
     };
 
     this.settings = settings;
diff --git a/core/modules/views/src/Plugin/views/field/Numeric.php b/core/modules/views/src/Plugin/views/field/Numeric.php
index c17c7f6..d1d6874 100644
--- a/core/modules/views/src/Plugin/views/field/Numeric.php
+++ b/core/modules/views/src/Plugin/views/field/Numeric.php
@@ -150,7 +150,7 @@ public function render(ResultRow $values) {
 
     // Should we format as a plural.
     if (!empty($this->options['format_plural'])) {
-      $value = $this->formatPlural($value, $this->options['format_plural_singular'], $this->options['format_plural_plural']);
+      $value = format_plural($value, $this->options['format_plural_singular'], $this->options['format_plural_plural']);
     }
 
     return $this->sanitizeValue($this->options['prefix'], 'xss')
diff --git a/core/modules/views/src/Plugin/views/pager/Full.php b/core/modules/views/src/Plugin/views/pager/Full.php
index 43a0ca7..787580c 100644
--- a/core/modules/views/src/Plugin/views/pager/Full.php
+++ b/core/modules/views/src/Plugin/views/pager/Full.php
@@ -73,9 +73,9 @@ public function buildOptionsForm(&$form, FormStateInterface $form_state) {
    */
   public function summaryTitle() {
     if (!empty($this->options['offset'])) {
-      return $this->formatPlural($this->options['items_per_page'], '@count item, skip @skip', 'Paged, @count items, skip @skip', array('@count' => $this->options['items_per_page'], '@skip' => $this->options['offset']));
+      return format_plural($this->options['items_per_page'], '@count item, skip @skip', 'Paged, @count items, skip @skip', array('@count' => $this->options['items_per_page'], '@skip' => $this->options['offset']));
     }
-    return $this->formatPlural($this->options['items_per_page'], '@count item', 'Paged, @count items', array('@count' => $this->options['items_per_page']));
+    return format_plural($this->options['items_per_page'], '@count item', 'Paged, @count items', array('@count' => $this->options['items_per_page']));
   }
 
   /**
diff --git a/core/modules/views/src/Plugin/views/pager/Mini.php b/core/modules/views/src/Plugin/views/pager/Mini.php
index b08c9d2..f0195ae 100644
--- a/core/modules/views/src/Plugin/views/pager/Mini.php
+++ b/core/modules/views/src/Plugin/views/pager/Mini.php
@@ -41,9 +41,9 @@ public function defineOptions() {
    */
   public function summaryTitle() {
     if (!empty($this->options['offset'])) {
-      return $this->formatPlural($this->options['items_per_page'], 'Mini pager, @count item, skip @skip', 'Mini pager, @count items, skip @skip', array('@count' => $this->options['items_per_page'], '@skip' => $this->options['offset']));
+      return format_plural($this->options['items_per_page'], 'Mini pager, @count item, skip @skip', 'Mini pager, @count items, skip @skip', array('@count' => $this->options['items_per_page'], '@skip' => $this->options['offset']));
     }
-      return $this->formatPlural($this->options['items_per_page'], 'Mini pager, @count item', 'Mini pager, @count items', array('@count' => $this->options['items_per_page']));
+      return format_plural($this->options['items_per_page'], 'Mini pager, @count item', 'Mini pager, @count items', array('@count' => $this->options['items_per_page']));
   }
 
   /**
diff --git a/core/modules/views/src/Plugin/views/pager/Some.php b/core/modules/views/src/Plugin/views/pager/Some.php
index 125fc3c..effc40e 100644
--- a/core/modules/views/src/Plugin/views/pager/Some.php
+++ b/core/modules/views/src/Plugin/views/pager/Some.php
@@ -25,9 +25,9 @@ class Some extends PagerPluginBase {
 
   public function summaryTitle() {
     if (!empty($this->options['offset'])) {
-      return $this->formatPlural($this->options['items_per_page'], '@count item, skip @skip', '@count items, skip @skip', array('@count' => $this->options['items_per_page'], '@skip' => $this->options['offset']));
+      return format_plural($this->options['items_per_page'], '@count item, skip @skip', '@count items, skip @skip', array('@count' => $this->options['items_per_page'], '@skip' => $this->options['offset']));
     }
-      return $this->formatPlural($this->options['items_per_page'], '@count item', '@count items', array('@count' => $this->options['items_per_page']));
+      return format_plural($this->options['items_per_page'], '@count item', '@count items', array('@count' => $this->options['items_per_page']));
   }
 
   protected function defineOptions() {
diff --git a/core/modules/views_ui/js/ajax.js b/core/modules/views_ui/js/ajax.js
index e693493..f120faa 100644
--- a/core/modules/views_ui/js/ajax.js
+++ b/core/modules/views_ui/js/ajax.js
@@ -79,7 +79,7 @@
     attach: function (context, settings) {
       var base_element_settings = {
         'event': 'click',
-        'progress': {'type': 'fullscreen'}
+        'progress': { 'type': 'fullscreen' }
       };
       // Bind AJAX behaviors to all items showing the class.
       $('a.views-ajax-link', context).once('views-ajax').each(function () {
diff --git a/core/modules/views_ui/js/dialog.views.js b/core/modules/views_ui/js/dialog.views.js
index a982b73..ad68de7 100644
--- a/core/modules/views_ui/js/dialog.views.js
+++ b/core/modules/views_ui/js/dialog.views.js
@@ -12,7 +12,7 @@
       // Add a class to do some styles adjustments.
       $modal.closest('.views-ui-dialog').addClass('views-ui-dialog-scroll');
       // Let scroll element take all the height available.
-      $scroll.css({overflow: 'visible', height: 'auto'});
+      $scroll.css({ overflow: 'visible', height: 'auto' });
       modalHeight = $modal.height();
       $viewsOverride.each(function () { offset += $(this).outerHeight(); });
 
diff --git a/core/modules/views_ui/js/views-admin.js b/core/modules/views_ui/js/views-admin.js
index c3c5b8d..2d197a9 100644
--- a/core/modules/views_ui/js/views-admin.js
+++ b/core/modules/views_ui/js/views-admin.js
@@ -516,7 +516,7 @@
           // When the link is clicked, dynamically click the corresponding form
           // button.
           .once('views-rearrange-filter-handler')
-          .on('click.views-rearrange-filter-handler', {buttonId: buttonId}, $.proxy(this, 'clickRemoveGroupButton'));
+          .on('click.views-rearrange-filter-handler', { buttonId: buttonId }, $.proxy(this, 'clickRemoveGroupButton'));
       }
     },
 
diff --git a/core/modules/views_ui/src/ViewListBuilder.php b/core/modules/views_ui/src/ViewListBuilder.php
index f9ac0e1..10e0d7e 100644
--- a/core/modules/views_ui/src/ViewListBuilder.php
+++ b/core/modules/views_ui/src/ViewListBuilder.php
@@ -197,8 +197,8 @@ public function render() {
       ),
     );
 
-    $list['enabled']['heading']['#markup'] = '<h2>' . $this->t('Enabled', array(), array('context' => 'Plural')) . '</h2>';
-    $list['disabled']['heading']['#markup'] = '<h2>' . $this->t('Disabled', array(), array('context' => 'Plural')) . '</h2>';
+    $list['enabled']['heading']['#markup'] = '<h2>' . $this->t('Enabled') . '</h2>';
+    $list['disabled']['heading']['#markup'] = '<h2>' . $this->t('Disabled') . '</h2>';
     foreach (array('enabled', 'disabled') as $status) {
       $list[$status]['#type'] = 'container';
       $list[$status]['#attributes'] = array('class' => array('views-list-section', $status));
diff --git a/core/modules/views_ui/views_ui.theme.inc b/core/modules/views_ui/views_ui.theme.inc
index 294fa07..f56b3b5 100644
--- a/core/modules/views_ui/views_ui.theme.inc
+++ b/core/modules/views_ui/views_ui.theme.inc
@@ -80,7 +80,7 @@ function template_preprocess_views_ui_view_info(&$variables) {
     $displays = t('None');
   }
   else {
-    $displays = \Drupal::translation()->formatPlural(count($variables['displays']), 'Display', 'Displays') . ': <em>';
+    $displays = format_plural(count($variables['displays']), 'Display', 'Displays') . ': <em>';
     $separator = '';
     foreach ($variables['displays'] as $displays_item) {
       $displays .= $separator . SafeMarkup::escape($displays_item);
