diff --git a/core/includes/bootstrap.inc b/core/includes/bootstrap.inc
index 8c96031..fe448bc 100644
--- a/core/includes/bootstrap.inc
+++ b/core/includes/bootstrap.inc
@@ -1286,25 +1286,6 @@ function drupal_installation_attempted() {
 }
 
 /**
- * Returns a list of languages set up on the site.
- *
- * @param $flags
- *   (optional) Specifies the state of the languages that have to be returned.
- *   It can be: LanguageInterface::STATE_CONFIGURABLE,
- *   LanguageInterface::STATE_LOCKED, LanguageInterface::STATE_ALL.
- *
- * @return array
- *   An associative array of languages, keyed by the language code, ordered by
- *   weight ascending and name ascending.
- *
- * @deprecated in Drupal 8.x-dev, will be removed before Drupal 8.0.
- *   Use \Drupal::languageManager()->getLanguages().
- */
-function language_list($flags = LanguageInterface::STATE_CONFIGURABLE) {
-  return \Drupal::languageManager()->getLanguages($flags);
-}
-
-/**
  * Loads a language object from the database.
  *
  * @param string $langcode
diff --git a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
index 1814564..9917fd1 100644
--- a/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
+++ b/core/lib/Drupal/Core/Entity/Sql/SqlContentEntityStorage.php
@@ -23,6 +23,7 @@
 use Drupal\Core\Field\FieldDefinitionInterface;
 use Drupal\Core\Field\FieldStorageDefinitionInterface;
 use Drupal\Core\Language\LanguageInterface;
+use Drupal\Core\Language\LanguageManagerInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
@@ -121,6 +122,13 @@ class SqlContentEntityStorage extends ContentEntityStorageBase implements SqlEnt
   protected $cacheBackend;
 
   /**
+   * The language manager.
+   *
+   * @var \Drupal\Core\Language\LanguageManagerInterface
+   */
+  protected $languageManager;
+
+  /**
    * {@inheritdoc}
    */
   public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
@@ -128,7 +136,8 @@ public static function createInstance(ContainerInterface $container, EntityTypeI
       $entity_type,
       $container->get('database'),
       $container->get('entity.manager'),
-      $container->get('cache.entity')
+      $container->get('cache.entity'),
+      $container->get('language_manager')
     );
   }
 
@@ -154,13 +163,16 @@ public function getFieldStorageDefinitions() {
    *   The entity manager.
    * @param \Drupal\Core\Cache\CacheBackendInterface $cache_backend
    *   The cache backend to be used.
+   * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager
+   *   The language manager.
    */
-  public function __construct(EntityTypeInterface $entity_type, Connection $database, EntityManagerInterface $entity_manager, CacheBackendInterface $cache) {
+  public function __construct(EntityTypeInterface $entity_type, Connection $database, EntityManagerInterface $entity_manager, CacheBackendInterface $cache, LanguageManagerInterface $language_manager) {
     parent::__construct($entity_type);
 
     $this->database = $database;
     $this->entityManager = $entity_manager;
     $this->cacheBackend = $cache;
+    $this->languageManager = $language_manager;
 
     // @todo Remove table names from the entity type definition in
     //   https://drupal.org/node/2232465
@@ -253,8 +265,8 @@ public function getTableMapping() {
       $key_fields = array_values(array_filter(array($this->idKey, $this->revisionKey, $this->bundleKey, $this->uuidKey, $this->langcodeKey)));
       $all_fields = array_keys($definitions);
       $revisionable_fields = array_keys(array_filter($definitions, function (FieldStorageDefinitionInterface $definition) {
-        return $definition->isRevisionable();
-      }));
+            return $definition->isRevisionable();
+          }));
       // Make sure the key fields come first in the list of fields.
       $all_fields = array_merge($key_fields, array_diff($all_fields, $key_fields));
 
@@ -266,7 +278,7 @@ public function getTableMapping() {
         'revision_timestamp',
         'revision_uid',
         'revision_log',
-      ), $all_fields);
+          ), $all_fields);
 
       $revisionable = $this->entityType->isRevisionable();
       // @todo Remove the data table check once all entity types are using
@@ -295,12 +307,12 @@ public function getTableMapping() {
         // performant queries. This means that only the UUID is not stored on
         // the data table.
         $this->tableMapping
-          ->setFieldNames($this->baseTable, $key_fields)
-          ->setFieldNames($this->dataTable, array_values(array_diff($all_fields, array($this->uuidKey))))
-          // Add the denormalized 'default_langcode' field to the mapping. Its
-          // value is identical to the query expression
-          // "base_table.langcode = data_table.langcode"
-          ->setExtraColumns($this->dataTable, array('default_langcode'));
+            ->setFieldNames($this->baseTable, $key_fields)
+            ->setFieldNames($this->dataTable, array_values(array_diff($all_fields, array($this->uuidKey))))
+            // Add the denormalized 'default_langcode' field to the mapping. Its
+            // value is identical to the query expression
+            // "base_table.langcode = data_table.langcode"
+            ->setExtraColumns($this->dataTable, array('default_langcode'));
       }
       elseif ($revisionable && $translatable) {
         // The revisionable multilingual layout stores key field values in the
@@ -317,12 +329,12 @@ public function getTableMapping() {
         // fields in the data table.
         $data_fields = array_values(array_diff($all_fields, array($this->uuidKey), $revision_metadata_fields));
         $this->tableMapping
-          ->setFieldNames($this->dataTable, $data_fields)
-          // Add the denormalized 'default_langcode' field to the mapping. Its
-          // value is identical to the query expression
-          // "base_langcode = data_table.langcode" where "base_langcode" is
-          // the language code of the default revision.
-          ->setExtraColumns($this->dataTable, array('default_langcode'));
+            ->setFieldNames($this->dataTable, $data_fields)
+            // Add the denormalized 'default_langcode' field to the mapping. Its
+            // value is identical to the query expression
+            // "base_langcode = data_table.langcode" where "base_langcode" is
+            // the language code of the default revision.
+            ->setExtraColumns($this->dataTable, array('default_langcode'));
 
         $revision_base_fields = array_merge(array($this->idKey, $this->revisionKey, $this->langcodeKey), $revision_metadata_fields);
         $this->tableMapping->setFieldNames($this->revisionTable, $revision_base_fields);
@@ -330,11 +342,11 @@ public function getTableMapping() {
         $revision_data_key_fields = array($this->idKey, $this->revisionKey, $this->langcodeKey);
         $revision_data_fields = array_diff($revisionable_fields, $revision_metadata_fields);
         $this->tableMapping
-          ->setFieldNames($this->revisionDataTable, array_merge($revision_data_key_fields, $revision_data_fields))
-          // Add the denormalized 'default_langcode' field to the mapping. Its
-          // value is identical to the query expression
-          // "revision_table.langcode = data_table.langcode".
-          ->setExtraColumns($this->revisionDataTable, array('default_langcode'));
+            ->setFieldNames($this->revisionDataTable, array_merge($revision_data_key_fields, $revision_data_fields))
+            // Add the denormalized 'default_langcode' field to the mapping. Its
+            // value is identical to the query expression
+            // "revision_table.langcode = data_table.langcode".
+            ->setExtraColumns($this->revisionDataTable, array('default_langcode'));
       }
     }
 
@@ -565,11 +577,11 @@ protected function attachPropertyData(array &$entities) {
     if ($this->dataTable) {
       // If a revision table is available, we need all the properties of the
       // latest revision. Otherwise we fall back to the data table.
-      $table = $this->revisionDataTable ?: $this->dataTable;
+      $table = $this->revisionDataTable ? : $this->dataTable;
       $query = $this->database->select($table, 'data', array('fetch' => \PDO::FETCH_ASSOC))
-        ->fields('data')
-        ->condition($this->idKey, array_keys($entities))
-        ->orderBy('data.' . $this->idKey);
+          ->fields('data')
+          ->condition($this->idKey, array_keys($entities))
+          ->orderBy('data.' . $this->idKey);
 
       if ($this->revisionDataTable) {
         // Get the revision IDs.
@@ -649,8 +661,8 @@ public function deleteRevision($revision_id) {
       }
 
       $this->database->delete($this->revisionTable)
-        ->condition($this->revisionKey, $revision->getRevisionId())
-        ->execute();
+          ->condition($this->revisionKey, $revision->getRevisionId())
+          ->execute();
       $this->invokeFieldMethod('deleteRevision', $revision);
       $this->deleteFieldItemsRevision($revision);
       $this->invokeHook('revision_delete', $revision);
@@ -776,25 +788,25 @@ protected function doDelete($entities) {
     $ids = array_keys($entities);
 
     $this->database->delete($this->entityType->getBaseTable())
-      ->condition($this->idKey, $ids)
-      ->execute();
+        ->condition($this->idKey, $ids)
+        ->execute();
 
     if ($this->revisionTable) {
       $this->database->delete($this->revisionTable)
-        ->condition($this->idKey, $ids)
-        ->execute();
+          ->condition($this->idKey, $ids)
+          ->execute();
     }
 
     if ($this->dataTable) {
       $this->database->delete($this->dataTable)
-        ->condition($this->idKey, $ids)
-        ->execute();
+          ->condition($this->idKey, $ids)
+          ->execute();
     }
 
     if ($this->revisionDataTable) {
       $this->database->delete($this->revisionDataTable)
-        ->condition($this->idKey, $ids)
-        ->execute();
+          ->condition($this->idKey, $ids)
+          ->execute();
     }
 
     foreach ($entities as $entity) {
@@ -836,10 +848,10 @@ protected function doSave($id, EntityInterface $entity) {
     if (!$is_new) {
       if ($entity->isDefaultRevision()) {
         $this->database
-          ->update($this->baseTable)
-          ->fields((array) $record)
-          ->condition($this->idKey, $record->{$this->idKey})
-          ->execute();
+            ->update($this->baseTable)
+            ->fields((array) $record)
+            ->condition($this->idKey, $record->{$this->idKey})
+            ->execute();
         $return = SAVED_UPDATED;
       }
       else {
@@ -865,9 +877,9 @@ protected function doSave($id, EntityInterface $entity) {
       // while storing its data.
       $entity->enforceIsNew();
       $insert_id = $this->database
-        ->insert($this->baseTable, array('return' => Database::RETURN_INSERT_ID))
-        ->fields((array) $record)
-        ->execute();
+          ->insert($this->baseTable, array('return' => Database::RETURN_INSERT_ID))
+          ->fields((array) $record)
+          ->execute();
       // Even if this is a new entity the ID key might have been set, in which
       // case we should not override the provided ID. An ID key that is not set
       // to any value is interpreted as NULL (or DEFAULT) and thus overridden.
@@ -927,8 +939,8 @@ protected function savePropertyData(EntityInterface $entity, $table_name = NULL)
       $value = $revision ? $entity->getRevisionId() : $entity->id();
       // Delete and insert to handle removed values.
       $this->database->delete($table_name)
-        ->condition($key, $value)
-        ->execute();
+          ->condition($key, $value)
+          ->execute();
     }
 
     $query = $this->database->insert($table_name);
@@ -938,8 +950,8 @@ protected function savePropertyData(EntityInterface $entity, $table_name = NULL)
       $record = $this->mapToDataStorageRecord($translation, $table_name);
       $values = (array) $record;
       $query
-        ->fields(array_keys($values))
-        ->values($values);
+          ->fields(array_keys($values))
+          ->values($values);
     }
 
     $query->execute();
@@ -1077,9 +1089,9 @@ protected function saveRevision(EntityInterface $entity) {
 
     if ($entity->isNewRevision()) {
       $insert_id = $this->database
-        ->insert($this->revisionTable, array('return' => Database::RETURN_INSERT_ID))
-        ->fields((array) $record)
-        ->execute();
+          ->insert($this->revisionTable, array('return' => Database::RETURN_INSERT_ID))
+          ->fields((array) $record)
+          ->execute();
       // Even if this is a new revsision, the revision ID key might have been
       // set in which case we should not override the provided revision ID.
       if (!isset($record->{$this->revisionKey})) {
@@ -1087,17 +1099,17 @@ protected function saveRevision(EntityInterface $entity) {
       }
       if ($entity->isDefaultRevision()) {
         $this->database->update($this->entityType->getBaseTable())
-          ->fields(array($this->revisionKey => $record->{$this->revisionKey}))
-          ->condition($this->idKey, $record->{$this->idKey})
-          ->execute();
+            ->fields(array($this->revisionKey => $record->{$this->revisionKey}))
+            ->condition($this->idKey, $record->{$this->idKey})
+            ->execute();
       }
     }
     else {
       $this->database
-        ->update($this->revisionTable)
-        ->fields((array) $record)
-        ->condition($this->revisionKey, $record->{$this->revisionKey})
-        ->execute();
+          ->update($this->revisionTable)
+          ->fields((array) $record)
+          ->condition($this->revisionKey, $record->{$this->revisionKey})
+          ->execute();
     }
 
     // Make sure to update the new revision key for the entity.
@@ -1161,7 +1173,7 @@ protected function loadFieldItems(array $entities) {
     }
 
     // Load field data.
-    $langcodes = array_keys(language_list(LanguageInterface::STATE_ALL));
+    $langcodes = array_keys($this->languageManager->getLanguages(LanguageInterface::STATE_ALL));
     foreach ($storage_definitions as $field_name => $storage_definition) {
       $table = $load_current ? $table_mapping->getDedicatedDataTableName($storage_definition) : $table_mapping->getDedicatedRevisionTableName($storage_definition);
 
@@ -1169,12 +1181,12 @@ protected function loadFieldItems(array $entities) {
       // are loading values for multiple entities, we cannot limit the query to
       // the available translations.
       $results = $this->database->select($table, 't')
-        ->fields('t')
-        ->condition($load_current ? 'entity_id' : 'revision_id', $ids, 'IN')
-        ->condition('deleted', 0)
-        ->condition('langcode', $langcodes, 'IN')
-        ->orderBy('delta')
-        ->execute();
+          ->fields('t')
+          ->condition($load_current ? 'entity_id' : 'revision_id', $ids, 'IN')
+          ->condition('deleted', 0)
+          ->condition('langcode', $langcodes, 'IN')
+          ->orderBy('delta')
+          ->execute();
 
       $delta_count = array();
       foreach ($results as $row) {
@@ -1241,13 +1253,13 @@ protected function saveFieldItems(EntityInterface $entity, $update = TRUE) {
         // of an entity.
         if ($entity->isDefaultRevision()) {
           $this->database->delete($table_name)
-            ->condition('entity_id', $id)
-            ->execute();
+              ->condition('entity_id', $id)
+              ->execute();
         }
         $this->database->delete($revision_name)
-          ->condition('entity_id', $id)
-          ->condition('revision_id', $vid)
-          ->execute();
+            ->condition('entity_id', $id)
+            ->condition('revision_id', $vid)
+            ->execute();
       }
 
       // Prepare the multi-insert query.
@@ -1316,11 +1328,11 @@ protected function deleteFieldItems(EntityInterface $entity) {
       $table_name = $table_mapping->getDedicatedDataTableName($storage_definition);
       $revision_name = $table_mapping->getDedicatedRevisionTableName($storage_definition);
       $this->database->delete($table_name)
-        ->condition('entity_id', $entity->id())
-        ->execute();
+          ->condition('entity_id', $entity->id())
+          ->execute();
       $this->database->delete($revision_name)
-        ->condition('entity_id', $entity->id())
-        ->execute();
+          ->condition('entity_id', $entity->id())
+          ->execute();
     }
   }
 
@@ -1341,9 +1353,9 @@ protected function deleteFieldItemsRevision(EntityInterface $entity) {
         }
         $revision_name = $table_mapping->getDedicatedRevisionTableName($storage_definition);
         $this->database->delete($revision_name)
-          ->condition('entity_id', $entity->id())
-          ->condition('revision_id', $vid)
-          ->execute();
+            ->condition('entity_id', $entity->id())
+            ->condition('revision_id', $vid)
+            ->execute();
       }
     }
   }
@@ -1490,8 +1502,8 @@ public function onFieldStorageDefinitionDelete(FieldStorageDefinitionInterface $
     $table = $table_mapping->getDedicatedDataTableName($storage_definition);
     $revision_table = $table_mapping->getDedicatedRevisionTableName($storage_definition);
     $this->database->update($table)
-      ->fields(array('deleted' => 1))
-      ->execute();
+        ->fields(array('deleted' => 1))
+        ->execute();
 
     // Move the table to a unique name while the table contents are being
     // deleted.
@@ -1511,13 +1523,13 @@ public function onFieldDefinitionDelete(FieldDefinitionInterface $field_definiti
     $table_name = $table_mapping->getDedicatedDataTableName($storage_definition);
     $revision_name = $table_mapping->getDedicatedRevisionTableName($storage_definition);
     $this->database->update($table_name)
-      ->fields(array('deleted' => 1))
-      ->condition('bundle', $field_definition->getBundle())
-      ->execute();
+        ->fields(array('deleted' => 1))
+        ->condition('bundle', $field_definition->getBundle())
+        ->execute();
     $this->database->update($revision_name)
-      ->fields(array('deleted' => 1))
-      ->condition('bundle', $field_definition->getBundle())
-      ->execute();
+        ->fields(array('deleted' => 1))
+        ->condition('bundle', $field_definition->getBundle())
+        ->execute();
   }
 
   /**
@@ -1541,13 +1553,13 @@ public function onBundleRename($bundle, $bundle_new) {
         $table_name = $table_mapping->getDedicatedDataTableName($storage_definition, $is_deleted);
         $revision_name = $table_mapping->getDedicatedRevisionTableName($storage_definition, $is_deleted);
         $this->database->update($table_name)
-          ->fields(array('bundle' => $bundle_new))
-          ->condition('bundle', $bundle)
-          ->execute();
+            ->fields(array('bundle' => $bundle_new))
+            ->condition('bundle', $bundle)
+            ->execute();
         $this->database->update($revision_name)
-          ->fields(array('bundle' => $bundle_new))
-          ->condition('bundle', $bundle)
-          ->execute();
+            ->fields(array('bundle' => $bundle_new))
+            ->condition('bundle', $bundle)
+            ->execute();
       }
     }
   }
@@ -1570,10 +1582,10 @@ protected function readFieldItemsToPurge(FieldDefinitionInterface $field_definit
       $or->isNotNull($table_mapping->getFieldColumnName($storage_definition, $column_name));
     }
     $entity_query
-      ->distinct(TRUE)
-      ->fields('t', array('entity_id'))
-      ->condition('bundle', $field_definition->getBundle())
-      ->range(0, $batch_size);
+        ->distinct(TRUE)
+        ->fields('t', array('entity_id'))
+        ->condition('bundle', $field_definition->getBundle())
+        ->range(0, $batch_size);
 
     // Create a map of field data table column names to field column names.
     $column_map = array();
@@ -1585,9 +1597,9 @@ protected function readFieldItemsToPurge(FieldDefinitionInterface $field_definit
     $items_by_entity = array();
     foreach ($entity_query->execute() as $row) {
       $item_query = $this->database->select($table_name, 't', array('fetch' => \PDO::FETCH_ASSOC))
-        ->fields('t')
-        ->condition('entity_id', $row['entity_id'])
-        ->orderBy('delta');
+          ->fields('t')
+          ->condition('entity_id', $row['entity_id'])
+          ->orderBy('delta');
 
       foreach ($item_query->execute() as $item_row) {
         if (!isset($entities[$item_row['revision_id']])) {
@@ -1623,11 +1635,11 @@ protected function purgeFieldItems(ContentEntityInterface $entity, FieldDefiniti
     $revision_name = $table_mapping->getDedicatedRevisionTableName($storage_definition, $is_deleted);
     $revision_id = $this->entityType->isRevisionable() ? $entity->getRevisionId() : $entity->id();
     $this->database->delete($table_name)
-      ->condition('revision_id', $revision_id)
-      ->execute();
+        ->condition('revision_id', $revision_id)
+        ->execute();
     $this->database->delete($revision_name)
-      ->condition('revision_id', $revision_id)
-      ->execute();
+        ->condition('revision_id', $revision_id)
+        ->execute();
   }
 
   /**
@@ -1655,9 +1667,9 @@ public function countFieldData($storage_definition, $as_bool = FALSE) {
       $or->isNotNull($table_mapping->getFieldColumnName($storage_definition, $column_name));
     }
     $query
-      ->condition($or)
-      ->fields('t', array('entity_id'))
-      ->distinct(TRUE);
+        ->condition($or)
+        ->fields('t', array('entity_id'))
+        ->distinct(TRUE);
     // If we are performing the query just to check if the field has data
     // limit the number of rows.
     if ($as_bool) {
diff --git a/core/lib/Drupal/Core/Session/UserSession.php b/core/lib/Drupal/Core/Session/UserSession.php
index 7364da9..1ce8e20 100644
--- a/core/lib/Drupal/Core/Session/UserSession.php
+++ b/core/lib/Drupal/Core/Session/UserSession.php
@@ -7,6 +7,8 @@
 
 namespace Drupal\Core\Session;
 
+use Drupal\Core\Language\LanguageManagerInterface;
+
 /**
  * An implementation of the user account interface for the global user.
  *
@@ -101,12 +103,22 @@ class UserSession implements AccountInterface {
   protected $hostname = '';
 
   /**
+   * The language manager.
+   *
+   * @var \Drupal\Core\Language\LanguageManagerInterface
+   */
+  protected $languageManager;
+
+  /**
    * Constructs a new user session.
    *
    * @param array $values
    *   Array of initial values for the user session.
+   * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager
+   *   The language manager.
    */
-  public function __construct(array $values = array()) {
+  public function __construct(array $values = array(), LanguageManagerInterface $language_manager) {
+    $this->languageManager = $language_manager;
     foreach ($values as $key => $value) {
       $this->$key = $value;
     }
@@ -183,7 +195,7 @@ public function isAnonymous() {
    * {@inheritdoc}
    */
   function getPreferredLangcode($fallback_to_default = TRUE) {
-    $language_list = language_list();
+    $language_list = $this->languageManager->getLanguages();
     if (!empty($this->preferred_langcode) && isset($language_list[$this->preferred_langcode])) {
       return $language_list[$this->preferred_langcode]->id;
     }
@@ -196,7 +208,7 @@ function getPreferredLangcode($fallback_to_default = TRUE) {
    * {@inheritdoc}
    */
   function getPreferredAdminLangcode($fallback_to_default = TRUE) {
-    $language_list = language_list();
+    $language_list = $this->languageManager->getLanguages();
     if (!empty($this->preferred_admin_langcode) && isset($language_list[$this->preferred_admin_langcode])) {
       return $language_list[$this->preferred_admin_langcode]->id;
     }
diff --git a/core/modules/comment/src/CommentStorage.php b/core/modules/comment/src/CommentStorage.php
index 714b4c1..d7e5efb 100644
--- a/core/modules/comment/src/CommentStorage.php
+++ b/core/modules/comment/src/CommentStorage.php
@@ -15,6 +15,7 @@
 use Drupal\Core\Entity\EntityTypeInterface;
 use Drupal\Core\Entity\Sql\SqlContentEntityStorage;
 use Drupal\Core\Session\AccountInterface;
+use Drupal\Core\Language\LanguageManagerInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
@@ -46,8 +47,8 @@ class CommentStorage extends SqlContentEntityStorage implements CommentStorageIn
    * @param \Drupal\Core\Session\AccountInterface $current_user
    *   The current user.
    */
-  public function __construct(EntityTypeInterface $entity_info, Connection $database, EntityManagerInterface $entity_manager, AccountInterface $current_user, CacheBackendInterface $cache) {
-    parent::__construct($entity_info, $database, $entity_manager, $cache);
+  public function __construct(EntityTypeInterface $entity_info, Connection $database, EntityManagerInterface $entity_manager, AccountInterface $current_user, CacheBackendInterface $cache, LanguageManagerInterface $language_manager) {
+    parent::__construct($entity_info, $database, $entity_manager, $cache, $language_manager);
     $this->currentUser = $current_user;
   }
 
@@ -60,7 +61,8 @@ public static function createInstance(ContainerInterface $container, EntityTypeI
       $container->get('database'),
       $container->get('entity.manager'),
       $container->get('current_user'),
-      $container->get('cache.entity')
+      $container->get('cache.entity'),
+      $container->get('language_manager')
     );
   }
 
diff --git a/core/modules/content_translation/src/ContentTranslationHandler.php b/core/modules/content_translation/src/ContentTranslationHandler.php
index 60eb6f3..22c13b7 100644
--- a/core/modules/content_translation/src/ContentTranslationHandler.php
+++ b/core/modules/content_translation/src/ContentTranslationHandler.php
@@ -11,6 +11,7 @@
 use Drupal\Core\Entity\EntityTypeInterface;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Language\LanguageInterface;
+use Drupal\Core\Language\LanguageManagerInterface;
 use Drupal\Core\Render\Element;
 
 /**
@@ -35,14 +36,24 @@ class ContentTranslationHandler implements ContentTranslationHandlerInterface {
   protected $entityType;
 
   /**
+   * The language manager.
+   *
+   * @var \Drupal\Core\Language\LanguageManagerInterface
+   */
+  protected $languageManager;
+
+  /**
    * Initializes an instance of the content translation controller.
    *
    * @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
    *   The info array of the given entity type.
+   * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager
+   *   The language manager.
    */
-  public function __construct(EntityTypeInterface $entity_type) {
+  public function __construct(EntityTypeInterface $entity_type, LanguageManagerInterface $language_manager) {
     $this->entityTypeId = $entity_type->id();
     $this->entityType = $entity_type;
+    $this->languageManager = $language_manager;
   }
 
   /**
@@ -100,7 +111,7 @@ public function entityFormAlter(array &$form, FormStateInterface $form_state, En
 
     // Adjust page title to specify the current language being edited, if we
     // have at least one translation.
-    $languages = language_list();
+    $languages = $this->languageManager->getLanguages();
     if (isset($languages[$form_langcode]) && ($has_translations || $new_translation)) {
       $title = $this->entityFormTitle($entity);
       // When editing the original values display just the entity label.
@@ -133,7 +144,7 @@ public function entityFormAlter(array &$form, FormStateInterface $form_state, En
           '#submit' => array(array($this, 'entityFormSourceChange')),
         ),
       );
-      foreach (language_list(LanguageInterface::STATE_CONFIGURABLE) as $language) {
+      foreach ($this->languageManager->getLanguages() as $language) {
         if (isset($translations[$language->id])) {
           $form['source_langcode']['source']['#options'][$language->id] = $language->name;
         }
@@ -146,7 +157,7 @@ public function entityFormAlter(array &$form, FormStateInterface $form_state, En
     $language_widget = isset($form['langcode']) && $form['langcode']['#type'] == 'language_select';
     if ($language_widget && $has_translations) {
       $form['langcode']['#options'] = array();
-      foreach (language_list(LanguageInterface::STATE_CONFIGURABLE) as $language) {
+      foreach ($this->languageManager->getLanguages() as $language) {
         if (empty($translations[$language->id]) || $language->id == $entity_langcode) {
           $form['langcode']['#options'][$language->id] = $language->name;
         }
@@ -445,7 +456,7 @@ public function entityFormSourceChange($form, FormStateInterface $form_state) {
       'source' => $source,
       'target' => $form_object->getFormLangcode($form_state),
     ));
-    $languages = language_list();
+    $languages = $this->languageManager->getLanguages();
     drupal_set_message(t('Source language set to: %language', array('%language' => $languages[$source]->name)));
   }
 
diff --git a/core/modules/language/src/Form/LanguageDeleteForm.php b/core/modules/language/src/Form/LanguageDeleteForm.php
index a90ee03..3efa38a 100644
--- a/core/modules/language/src/Form/LanguageDeleteForm.php
+++ b/core/modules/language/src/Form/LanguageDeleteForm.php
@@ -96,7 +96,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     }
 
     // Throw a 404 when attempting to delete a non-existing language.
-    $languages = language_list();
+    $languages = \Drupal::languageManager()->getLanguages();
     if (!isset($languages[$langcode])) {
       throw new NotFoundHttpException();
     }
diff --git a/core/modules/language/src/Form/LanguageEditForm.php b/core/modules/language/src/Form/LanguageEditForm.php
index de2213a..4fab4c4 100644
--- a/core/modules/language/src/Form/LanguageEditForm.php
+++ b/core/modules/language/src/Form/LanguageEditForm.php
@@ -49,7 +49,7 @@ public function actions(array $form, FormStateInterface $form_state) {
    */
   public function submitForm(array &$form, FormStateInterface $form_state) {
     // Prepare a language object for saving.
-    $languages = language_list();
+    $languages = \Drupal::languageManager()->getLanguages();
     $langcode = $form_state->getValue('langcode');
     $language = $languages[$langcode];
     $language->name = $form_state->getValue('name');
diff --git a/core/modules/language/src/Form/NegotiationBrowserForm.php b/core/modules/language/src/Form/NegotiationBrowserForm.php
index 39d47cb..87815e0 100644
--- a/core/modules/language/src/Form/NegotiationBrowserForm.php
+++ b/core/modules/language/src/Form/NegotiationBrowserForm.php
@@ -60,7 +60,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     $form = array();
 
     // Initialize a language list to the ones available, including English.
-    $languages = language_list();
+    $languages = \Drupal::languageManager()->getLanguages();
 
     $existing_languages = array();
     foreach ($languages as $langcode => $language) {
diff --git a/core/modules/language/src/Form/NegotiationUrlForm.php b/core/modules/language/src/Form/NegotiationUrlForm.php
index e2e241e..3692605 100644
--- a/core/modules/language/src/Form/NegotiationUrlForm.php
+++ b/core/modules/language/src/Form/NegotiationUrlForm.php
@@ -69,7 +69,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
       ),
     );
 
-    $languages = language_list();
+    $languages = \Drupal::languageManager()->getLanguages();
     $prefixes = language_negotiation_url_prefixes();
     $domains = language_negotiation_url_domains();
     foreach ($languages as $langcode => $language) {
@@ -98,7 +98,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
    * Implements \Drupal\Core\Form\FormInterface::validateForm().
    */
   public function validateForm(array &$form, FormStateInterface $form_state) {
-    $languages = language_list();
+    $languages = \Drupal::languageManager()->getLanguages();
 
     // Count repeated values for uniqueness check.
     $count = array_count_values($form_state->getValue('prefix'));
diff --git a/core/modules/language/src/Plugin/Condition/Language.php b/core/modules/language/src/Plugin/Condition/Language.php
index 523c3df..6f62ac5 100644
--- a/core/modules/language/src/Plugin/Condition/Language.php
+++ b/core/modules/language/src/Plugin/Condition/Language.php
@@ -29,9 +29,10 @@ class Language extends ConditionPluginBase {
    * {@inheritdoc}
    */
   public function buildConfigurationForm(array $form, FormStateInterface $form_state) {
-    if (\Drupal::languageManager()->isMultilingual()) {
+    $language_manager = \Drupal::languageManager();
+    if ($language_manager->isMultilingual()) {
       // Fetch languages.
-      $languages = language_list(LanguageInterface::STATE_CONFIGURABLE);
+      $languages = $language_manager->getLanguages(LanguageInterface::STATE_CONFIGURABLE);
       $langcodes_options = array();
       foreach ($languages as $language) {
         $langcodes_options[$language->id] = $language->getName();
@@ -65,7 +66,7 @@ public function submitConfigurationForm(array &$form, FormStateInterface $form_s
    * {@inheritdoc}
    */
   public function summary() {
-    $language_list = language_list(LanguageInterface::STATE_ALL);
+    $language_list = \Drupal::languageManager()->getLanguages(LanguageInterface::STATE_ALL);
     $selected = $this->configuration['langcodes'];
     // Reduce the language list to an array of language names.
     $language_names = array_reduce($language_list, function(&$result, $item) use ($selected) {
diff --git a/core/modules/locale/src/Form/TranslateEditForm.php b/core/modules/locale/src/Form/TranslateEditForm.php
index 131612f..a9bd3ec 100644
--- a/core/modules/locale/src/Form/TranslateEditForm.php
+++ b/core/modules/locale/src/Form/TranslateEditForm.php
@@ -32,7 +32,7 @@ public function buildForm(array $form, FormStateInterface $form_state) {
     $langcode = $filter_values['langcode'];
 
     $this->languageManager->reset();
-    $languages = language_list();
+    $languages = \Drupal::languageManager()->getLanguages();
 
     $langname = isset($langcode) ? $languages[$langcode]->name : "- None -";
 
diff --git a/core/modules/locale/src/Form/TranslateFormBase.php b/core/modules/locale/src/Form/TranslateFormBase.php
index 4599c44..7dd2943 100644
--- a/core/modules/locale/src/Form/TranslateFormBase.php
+++ b/core/modules/locale/src/Form/TranslateFormBase.php
@@ -161,7 +161,7 @@ protected function translateFilters() {
 
     // Get all languages, except English.
     $this->languageManager->reset();
-    $languages = language_list();
+    $languages = \Drupal::languageManager()->getLanguages();
     $language_options = array();
     foreach ($languages as $langcode => $language) {
       if ($langcode != 'en' || locale_translate_english()) {
diff --git a/core/modules/node/src/Plugin/views/field/Node.php b/core/modules/node/src/Plugin/views/field/Node.php
index ae74239..0bbb9df 100644
--- a/core/modules/node/src/Plugin/views/field/Node.php
+++ b/core/modules/node/src/Plugin/views/field/Node.php
@@ -73,7 +73,7 @@ protected function renderLink($data, ResultRow $values) {
         $this->options['alter']['make_link'] = TRUE;
         $this->options['alter']['path'] = "node/" . $this->getValue($values, 'nid');
         if (isset($this->aliases['langcode'])) {
-          $languages = language_list();
+          $languages = \Drupal::languageManager()->getLanguages();
           $langcode = $this->getValue($values, 'langcode');
           if (isset($languages[$langcode])) {
             $this->options['alter']['language'] = $languages[$langcode];
diff --git a/core/modules/user/src/Entity/User.php b/core/modules/user/src/Entity/User.php
index eb46586..7ca2d98 100644
--- a/core/modules/user/src/Entity/User.php
+++ b/core/modules/user/src/Entity/User.php
@@ -370,7 +370,7 @@ public function getTimeZone() {
    * {@inheritdoc}
    */
   function getPreferredLangcode($fallback_to_default = TRUE) {
-    $language_list = language_list();
+    $language_list = \Drupal::languageManager()->getLanguages();
     $preferred_langcode = $this->get('preferred_langcode')->value;
     if (!empty($preferred_langcode) && isset($language_list[$preferred_langcode])) {
       return $language_list[$preferred_langcode]->id;
@@ -384,7 +384,7 @@ function getPreferredLangcode($fallback_to_default = TRUE) {
    * {@inheritdoc}
    */
   function getPreferredAdminLangcode($fallback_to_default = TRUE) {
-    $language_list = language_list();
+    $language_list = \Drupal::languageManager()->getLanguages();
     $preferred_langcode = $this->get('preferred_admin_langcode')->value;
     if (!empty($preferred_langcode) && isset($language_list[$preferred_langcode])) {
       return $language_list[$preferred_langcode]->id;
diff --git a/core/modules/user/src/Plugin/views/field/Language.php b/core/modules/user/src/Plugin/views/field/Language.php
index 0e287ab..bf97893 100644
--- a/core/modules/user/src/Plugin/views/field/Language.php
+++ b/core/modules/user/src/Plugin/views/field/Language.php
@@ -33,7 +33,7 @@ protected function renderLink($data, ResultRow $values) {
       $lang = language_default();
     }
     else {
-      $lang = language_list();
+      $lang = \Drupal::languageManager()->getLanguages();
       $lang = $lang[$data];
     }
 
diff --git a/core/modules/user/src/UserStorage.php b/core/modules/user/src/UserStorage.php
index 9aa844e..6ea5377 100644
--- a/core/modules/user/src/UserStorage.php
+++ b/core/modules/user/src/UserStorage.php
@@ -15,6 +15,7 @@
 use Drupal\Core\Entity\Sql\SqlContentEntityStorage;
 use Drupal\Core\Password\PasswordInterface;
 use Drupal\Core\Session\AccountInterface;
+use Drupal\Core\Language\LanguageManagerInterface;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
@@ -45,9 +46,11 @@ class UserStorage extends SqlContentEntityStorage implements UserStorageInterfac
    *   Cache backend instance to use.
    * @param \Drupal\Core\Password\PasswordInterface $password
    *   The password hashing service.
+   * @param \Drupal\Core\Language\LanguageManagerInterface $language_manager
+   *   The language manager.
    */
-  public function __construct(EntityTypeInterface $entity_type, Connection $database, EntityManagerInterface $entity_manager, CacheBackendInterface $cache, PasswordInterface $password) {
-    parent::__construct($entity_type, $database, $entity_manager, $cache);
+  public function __construct(EntityTypeInterface $entity_type, Connection $database, EntityManagerInterface $entity_manager, CacheBackendInterface $cache, PasswordInterface $password, LanguageManagerInterface $language_manager) {
+    parent::__construct($entity_type, $database, $entity_manager, $cache, $language_manager);
 
     $this->password = $password;
   }
@@ -61,7 +64,8 @@ public static function createInstance(ContainerInterface $container, EntityTypeI
       $container->get('database'),
       $container->get('entity.manager'),
       $container->get('cache.entity'),
-      $container->get('password')
+      $container->get('password'),
+      $container->get('language_manager')
     );
   }
 
